I'm not really in a good mood for writing paragraphs about what I'm asking, so I'll just state it clearly. I'm sure nobody will mind that.
--What is this thread about?
I am looking for a group of people who would like to help develop an easy to use, at least sort of powerful game engine for iOS. This engine could also be ported to Windows for people to prefer using Windows to develop and test apps. They wouldn't be made specifically for Windows, just for testing iOS apps made with this engine ON windows. Sort of like the iOS Simulator tool but for Windows, and only able to replicate the features of the game engine itself and nothing of iOS.
So pretty much, let's make an engine for iOS games. This engine could also be used to test and debug iOS games on Windows in an iPod or iPad (landscape or portrait) sized window.
--What am I looking for?
Just a random group of (at least a little bit) skilled programmers to contribute their skills to creating this engine. Not only this, but maybe some people who could contribute ideas and maybe design plans or something.
I'm not looking for a team of people who have specific jobs or anything like that. I'll set something up somewhere so that the code can be publicly accessed and people can do anything.
--Who can help?
Anybody.
--Do I need to dedicate myself to working on this if I start?
Nope, I just ask that you finish what you start. If you absolutely have to stop what you're doing and can't finish it, please leave a nice description of what you did and what needs to be done in a nicely written comment block.
--Okay, I think I get it. But what if I contribute some code?
Well, thank you! I will make something somewhere that will store a list of people who worked on it, and each time somebody contributes something I will add that contribution to your name. All you have to do is PM me here or email me or contact me in some way. This list will be viewable to anybody and in the same place that the code is hosted most likely. I've never used one of those before, so I'm not really sure how the whole update and update description thing works. I may not even need you to contact me if you can update that list yourself. But we'll figure out this whole thing when I actually get that started if people decide to do anything with this.
--
What do I get out of it?
Well, you get the satisfaction of knowing that you contributed to a potentially large (or potentially crappy) game engine that potentially many people (or just us) will use. It all depends on what gets done and the quality of the work. This won't cost any money for anybody and nobody will be paid unless they use it to release a paid app on the App Store. Also, if anybody uses it they will be encouraged to give us credit (or the engine as a whole). If it gets used for game development you will feel great knowing that you contributed to that game. That they couldn't have done it without you.
--Tell me about this engine
It doesn't exist yet. It will be programmed in pretty much all C++, the only exception being the Obj-C needed to tie the engine's driver into iOS. The engine will cover 2D and 3D rendering, 2D and 3D physics (either using existing libraries such as Box2D and Bullet Physics or created by us), a scripting language of some kind, file I/O, and audio. More can be added to this list if suggestions are made.
Okay, so if I actually get at least a few people who are willing to help me start this up, the first thing we'll need to do is think of the basic things like a name and how we'll start and the structure of it. I've been programming for like 4 years, and during that time I've done a lot. I have an already existing engine, but I'm not happy with it. This is the how I like to set things up, but that doesn't at all mean that's how it has to be:
I have a base driver class with virtual functions for things like vertex array rendering, debug printing (printf or fprintf), and important things like that. Actually, I'm not in a very descriptive mood right now and this isn't really important anyway. Just look at the base driver class I derive the other drivers (Windows, iOS, Playstation Portable) from.
---->
I used codepad because of the 10,000 character limit <----
This is also pretty important:
---->
More codepad <----
And that StrackMain(VideoDriver *Driver) function you see, that's used for allocating an event receiver that is derived from this:
---->
Event Receiver stuff <----
And inherits any of those functions. Here's an example:
---->
Event receiver example <----
There you see that StrackMain thing again. When compiling for iOS, that function is called here:
Code:
// Create an OpenGL ES 2.0 context
- (id)init
{
self = [super init];
//Simply because ********...
NSBundle *Bundle = [NSBundle mainBundle];
NSString *ResourceDir = [Bundle resourcePath];
const char *RDir = [ResourceDir UTF8String];
chdir(RDir);
Driver = new GLESDriver();
SetStaticDriver(Driver);
if(self)
{
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!context || ![EAGLContext setCurrentContext:context])
{
[self release];
return nil;
}
}
StrackMain(Driver);
float AccelerometerFrequency = 50.0f;
UIAccelerometer* theAccelerometer = [UIAccelerometer sharedAccelerometer];
theAccelerometer.updateInterval = 1 / AccelerometerFrequency;
theAccelerometer.delegate = self;
return self;
}
And that's when the event receiver is registered and stuff. The events are called from the ES2Renderer.mm file for things like rendering and accelerometer updates and screen touches and other things that iOS provides you with. The EventReceiver::OnUserEvent is also very useful for interfacing with the iOS GUI stuff. Send a user event to the receiver whenever a button is pressed or a slider value is updated or whatever you want at all. You can both send AND receive data from the OnUserEvent function.
But anyway, I hope you get the picture of what's going on here. The rest of the content of the engine is sort of irrelevant but if anybody is interested I'll explain it.
------------------------------------------------
But yeah. That's pretty much it. If there's nobody here who is interested, could anybody suggest a place for me to bring this? I think it's a really good idea. If you're not interested in this, maybe provide feedback of some kind?
In any case, thank you for your time, anybody who posts in here or even just views it.