views:

731

answers:

5

I am new to OpenGL ES, and I'm about to begin a 3D game for the iphone in which we are showing some car pursuit or racing. Is it possible just with the OpenGL ES or UIKit only, or do I have to use other tools for it? I am comfortable with UIKit but newer to OpenGL/OpenGL ES; which would be better to start this game?

Or should I use a game engine? If so, then which game engine would give us the 3D feeling, quality of images and motion, and rendering of the views with the sound effects?

+2  A: 

First of all, OpenGL, UIKit and Game Engines are very different from each other and specifically geared towards different uses.

OpenGL is a 3D graphics engine. If you go with this, you'll have to write quite a bit of extra code, maybe some tools and a pipeline, to get a fully-featured game going. For example, collision systems and AI will be on you to develop.

UIKit is geared towards simple applications that don't require complex graphics. As the name suggests, it's best for applications that revolve around a UI.

Game engines usually include tools and pipelines, physics, audio and graphics engines, and possibly some other features such as simple AI/Navigation systems.

For your application, it sounds like you might be better off going with a game engine as it will get you up and running much sooner than if you try to develop those systems yourself. One popular engine is the Unity engine.

dominic hamon
I used openGL for my 2D application. It can be done. It was quick to get off of the ground.
K2Digital
"OpenGL is a 3D graphics engine", probably "OpenGL is a 3D graphics APIs", to avoid confusion.
afriza
+1  A: 

I recommend openGL ES. Works great for me. Start from the EAGL demo code.

Rhythmic Fistman
A: 

This really depends on how comfortable you are programming graphics code. OpenGL is easy to get used to if you have a strong C background, but if you're used to an object-oriented language like Java it can be difficult. As Dominic mentioned, you also have to write a substantial amount of code to get a good game off the ground. 3D adds a substantial amount of complexity over 2D.

I would suggest using a game engine such as Unity. I have a friend that writes iPhone games using it, and I've been very impressed with the results. It will import 3D models from Maya or 3D Studio Max directly and worry about texturing, materials, etc...

The only downside to this approach is that the game engine cannot be optimized to your specific needs. If there's a special OpenGL technique you want to use, or a very graphics-intensive scene you need to render, writing everything directly in OpenGL will give you more control and better results.

Ben Gotow
A: 

HI

I am new to the opengles

You just answered you own question. Game engine.

Cocos2D if you don't need 3D, there is a free 3D engine or two around but the commercial ones are really compelling.

Kendall Helmstetter Gelner
cocos2d I believe.
Neo42
Oops! Fixed. Too close to Cocoa...
Kendall Helmstetter Gelner
You said Cocos2D if you don't need 2D.... don't you mean to say you 'if you don't need 3D?'
DMan
Yes, 3D - corrected post.
Kendall Helmstetter Gelner
+1  A: 

Actually you cannot compare OpenGL and game engines. OpenGL is just a graphics programming API, the very basic rendering stuff so to speak. If you are going for OpenGL you will have to code everything yourself, find out how to render complex effects like shadows, lights, as well as all game objects.

While a game engine is not a rendering engine either, a decent game engine already has all the rendering stuff covered and will manage your game objects (cars, houses, trees, etc.) for you. Depending on how good it is it may impose certain restrictions on what you can do with, but for a beginner using a game engine would certainly be the right start off. With a game engine you can just specify your game's behaviour on a pretty high abstraction level and won't have to bother about all the basics anymore.

Think of the difference between OpenGL and a game engine like the difference between getting a car building factory where you have to program all the machines yourself to get the desired car's part (OpenGL) and having all parts of the car ready for assembly already (game engine) and only having to put them together, maybe change the color here and add a gear there.

karx11erx