Advertise Mobile SDKs Books Events Forum News Social Networking Support Us
Follow @iphonedevsdk on Twitter

Interface 2, Advanced iOS
Mockup & Code Gen
($9.99)

Make your own iPhone apps
and run them live!
(free)

Pic Frame Dynamo: Photo Editing
($0.99)

Abiliator
($1.99)

Want your application or service advertised on iPhone Dev SDK?

Go Back   iPhone Dev SDK Forum > iPhone SDK Development Forums > iPhone SDK Game Development

Reply
 
LinkBack Thread Tools Display Modes
Old 09-26-2011, 08:13 PM   #1 (permalink)
Programmer
 
Stinkee2's Avatar
 
Join Date: Nov 2010
Location: New York
Age: 17
Posts: 15
Stinkee2 is on a distinguished road
Default Engine Development

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.
__________________
This is a signature.

Last edited by Stinkee2; 10-03-2011 at 08:35 PM.
Stinkee2 is offline   Reply With Quote
Old 09-26-2011, 08:38 PM   #2 (permalink)
Registered Member
 
Join Date: Sep 2011
Posts: 3
Lisa520 is on a distinguished road
Default ok

ok,your paragraph is good.
Lisa520 is offline   Reply With Quote
Old 09-26-2011, 10:24 PM   #3 (permalink)
Programmer
 
Stinkee2's Avatar
 
Join Date: Nov 2010
Location: New York
Age: 17
Posts: 15
Stinkee2 is on a distinguished road
Default

Heh heh, thanks. I didn't actually intend on it being that long. I guess I got more into it than I thought I would. I couldn't think of any other way to introduce the thread so I just left my whole "I'm not in the mood" thing there.
__________________
This is a signature.
Stinkee2 is offline   Reply With Quote
Old 09-27-2011, 12:19 AM   #4 (permalink)
Registered Member
 
Join Date: Apr 2011
Location: California
Posts: 225
KarlJay is on a distinguished road
Default

isn't there already a few engines out there? I've been looking at a few like Unity and the price tag looks pretty steep.

Problem is that the work required to create a good engine is pretty heavy.
KarlJay is offline   Reply With Quote
Old 09-27-2011, 05:24 AM   #5 (permalink)
Programmer
 
Stinkee2's Avatar
 
Join Date: Nov 2010
Location: New York
Age: 17
Posts: 15
Stinkee2 is on a distinguished road
Default

I know that there are, but the price tags are indeed steep. That's one of the only reasons I came up with this. Yes the work is heavy, but divided up between several people I would imagine it's not that bad. I am the only one who worked on the engine I made, and that has all of the things I described in the first post. It wasn't at all top notch, but I figure if I alone could do that, then a bunch of people could do much more.
__________________
This is a signature.
Stinkee2 is offline   Reply With Quote
Old 09-27-2011, 11:32 AM   #6 (permalink)
Registered Member
 
Raffaello's Avatar
 
Join Date: Apr 2011
Posts: 91
Raffaello is on a distinguished road
Default

I have created an engine like this, full 3D, uses OpenGL and runs on iOS, Windows, Linux, Mac and soon Android. However it is not written in C++, but rather in Pascal, so I guess it is not useful to the general public
However, sometimes people want to use it, so if you (or anyone else) are interested on it I can give you a license for a good price.
It took me some years to write it, but now I use it in all of my games (check my sig)
__________________
My games:
Raffaello is offline   Reply With Quote
Old 09-27-2011, 04:55 PM   #7 (permalink)
Programmer
 
Stinkee2's Avatar
 
Join Date: Nov 2010
Location: New York
Age: 17
Posts: 15
Stinkee2 is on a distinguished road
Default

Quote:
Originally Posted by Raffaello View Post
I have created an engine like this, full 3D, uses OpenGL and runs on iOS, Windows, Linux, Mac and soon Android. However it is not written in C++, but rather in Pascal, so I guess it is not useful to the general public
However, sometimes people want to use it, so if you (or anyone else) are interested on it I can give you a license for a good price.
It took me some years to write it, but now I use it in all of my games (check my sig)
Why did you choose Pascal? How does it work?

Do you think you'd be interested in helping anywhere here? Do you have any input? Any ideas or suggestions?
__________________
This is a signature.
Stinkee2 is offline   Reply With Quote
Old 09-27-2011, 11:25 PM   #8 (permalink)
Registered Member
 
Join Date: Apr 2011
Location: California
Posts: 225
KarlJay is on a distinguished road
Default

I did a bunch of Pascal years ago. Started a business base on Turbo Pascal from Borland.

Someone could translate from Pascal to C++.

One other note about a project like this. If the game engine doesn't compare to some of the 'big' engines, it's not going to amount to much.

Most have character editors built in as well, but not needed.

I'm still doing research on game engines, I've heard one of the big ones want 35% of your sales. I think it was unity or Unreal.

One other note: if this engine is to be competitive with the 'big name' engines, wouldn't it have to take advantage of the hardware in order to squeeze out the best performance? That could be a problem in a multi-platform environment: IE the code to get max performance on iPhone might not work on Droid / WinPhone...

I don't have enough handheld hardware background to know if this is an issue or not.

Last edited by KarlJay; 09-28-2011 at 12:25 AM.
KarlJay is offline   Reply With Quote
Old 09-28-2011, 12:38 AM   #9 (permalink)
Registered Member
 
Join Date: Apr 2011
Location: California
Posts: 225
KarlJay is on a distinguished road
Default

Actually I just re-read your post about the Pascal code... you said it runs on IOS, how is that? Is it some kind of compiled object file, where your app calls an API lib?

One idea we used to do in the old days was known as 'wrapper' functions, you write the code in C++ to call the Pascal functions.
KarlJay is offline   Reply With Quote
Old 09-28-2011, 06:49 AM   #10 (permalink)
Registered Member
 
Raffaello's Avatar
 
Join Date: Apr 2011
Posts: 91
Raffaello is on a distinguished road
Default

I can mix object-c with pascal in Xcode, in the same way we can mix C or C++ with pascal (well, with a bit of help from fpc, a pascal compiler)

"Someone could translate from Pascal to C++."
Well, that's the problem, the engine is about 100k lines of code, and that's why I don't want to write an engine again, now, just games, way less complex
__________________
My games:
Raffaello is offline   Reply With Quote
Old 09-28-2011, 07:30 AM   #11 (permalink)
Programmer
 
Stinkee2's Avatar
 
Join Date: Nov 2010
Location: New York
Age: 17
Posts: 15
Stinkee2 is on a distinguished road
Default

Quote:
Originally Posted by KarlJay View Post
One other note about a project like this. If the game engine doesn't compare to some of the 'big' engines, it's not going to amount to much.

Most have character editors built in as well, but not needed.
Well it doesn't really have to be as good as them, with all their fancy tools. It just has to be good enough that people who can't or don't want to pay for the license will want to use it. Then it just has to be shown around a little bit.

Quote:
Originally Posted by KarlJay View Post
I'm still doing research on game engines, I've heard one of the big ones want 35% of your sales. I think it was unity or Unreal.
I think Unreal wants 25% on sales but only after the first $50,000. I'm not sure what I think of that.

Quote:
Originally Posted by KarlJay View Post
One other note: if this engine is to be competitive with the 'big name' engines, wouldn't it have to take advantage of the hardware in order to squeeze out the best performance? That could be a problem in a multi-platform environment: IE the code to get max performance on iPhone might not work on Droid / WinPhone...

I don't have enough handheld hardware background to know if this is an issue or not.
I can't see it being any more of a problem than writing a different driver class for each device was for me. Back when I was programming for the PSP I got pretty close to the hardware. But that's all I have in that area.
__________________
This is a signature.
Stinkee2 is offline   Reply With Quote
Old 09-29-2011, 04:51 AM   #12 (permalink)
Registered Member
 
Join Date: Apr 2011
Location: California
Posts: 225
KarlJay is on a distinguished road
Default

Quote:
Originally Posted by James Henry View Post
An engine or motor is a machine designed to convert energy into useful mechanical motion. Heat engines, including internal combustion engines and external combustion engines (such as steam engines) burn a fuel to create heat which is then used to create motion. Electric motors convert electrical energy in mechanical motion, pneumatic motors use compressed air and others, such as wind-up toys use elastic energy. In biological systems molecular motors like myosins in muscles use chemical energy to create motion.
So how can do we write this in Objective C ??
KarlJay is offline   Reply With Quote
Old 10-03-2011, 05:35 PM   #13 (permalink)
Programmer
 
Stinkee2's Avatar
 
Join Date: Nov 2010
Location: New York
Age: 17
Posts: 15
Stinkee2 is on a distinguished road
Default

Quote:
Originally Posted by TimRocker View Post
Thanks, lots of good stuff u have shared
You're welcome, even though nobody was interested I started development on a new engine. So far I have this:

-Base driver class, ES1Driver and ES2Driver that derive from it
-VertexBuffer with some good stuff in it like dynamic vertex arrays and a += operator to add new vertices (or the contents of another vertex buffer, coming before the night is over)
-Camera class with some good features
-Math stuff (Vector2/3/4D,Matrix4x4,Quaternion,Dimension2/3D)
-The whole event receiver thing I described in the first post
-More I'm forgetting so it probably is less important

But I just started like last Friday and haven't had much time so I don't have much. Currently I'm having a problem with the camera's MVP matrix and whether or not it's singular. I think there's a problem with my matrix class. Perspective projection also doesn't work yet.

But if anybody wants access to this stuff for help or to contribute I'd be happy to upload it.
__________________
This is a signature.
Stinkee2 is offline   Reply With Quote
Old 10-07-2011, 03:15 AM   #14 (permalink)
Banned
 
Join Date: Oct 2011
Posts: 4
Bipomita is on a distinguished road
Default

Quote:
Originally Posted by Stinkee2 View Post
Heh heh, thanks. I didn't actually intend on it being that long. I guess I got more into it than I thought I would. I couldn't think of any other way to introduce the thread so I just left my whole "I'm not in the mood" thing there.
That is more funky than you think that you would make it... I hope that readers are going to enjoy your post in here... Is not it? :-)
Bipomita is offline   Reply With Quote
Old 10-07-2011, 03:22 PM   #15 (permalink)
Programmer
 
Stinkee2's Avatar
 
Join Date: Nov 2010
Location: New York
Age: 17
Posts: 15
Stinkee2 is on a distinguished road
Default

Quote:
Originally Posted by Bipomita View Post
That is more funky than you think that you would make it... I hope that readers are going to enjoy your post in here... Is not it? :-)
I'm not sure I understand what you are saying correctly. What's more funky than I think?
__________________
This is a signature.
Stinkee2 is offline   Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



» Advertisements
» Online Users: 394
11 members and 383 guests
7twenty7, apatsufas, comicool, Creativ, Dalia, dansparrow, Duncan C, HemiMG, Murphy, pbart, Tomsky
Most users ever online was 1,387, 04-10-2012 at 04:21 AM.
» Stats
Members: 175,676
Threads: 94,127
Posts: 402,915
Top Poster: BrianSlick (7,990)
Welcome to our newest member, jleannex55
Powered by vBadvanced CMPS v3.1.0

All times are GMT -5. The time now is 06:56 AM.
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0