views:

394

answers:

5

What do you guys think is better??? because I am going to start learning objective c but should I also buy this so I can make game apps easier and better?any ideas? I am definitely learning objective c but maybe I should buy this game engine so I can develop games also.?????????

Some of the game engines I am think about are Unity, Torque, and Shiva.

Update!!! I am pretty sure I dont want to develop games for the rest of my life. I just want to develop some games for Christmas to bring in some profit. I will probably know objective c by that time and maybe some cocoa then I want to build some things of my own. Ps: I am only 12 and know a lot of c.

+1  A: 

Maybe its just me, but if you want to learn game programming (really learn it), I'd say start at ground zero.

Learn to be able to put pixels onto the screen in assembly if possible, once you understand how things work at a low level, move up and start learning about simple line painting algorithms.

Then move up and learn about how to do do 3d (transforms, models, etc) learn about raster graphics and look into backface culling and painters algorithm.

Then start at looking at basic physics, then back to rendering techniques.

At each stage try coding your own.

Then put this all together to make a simple game, from scratch.

You will learn more than you ever could using a specific engine.

Darknight
I don't think assembly is really necessary in this case. How many games are developed in assembly? I'd venture to say none.
Doomspork
Update!!! I am pretty sure I dont want to develop games for the rest of my life. I just want to develop some games for Christmas to bring in some profit. I will probably know objective c by that time and maybe some cocoa then I want to build some things of my own. Ps: I am only 12 and know a lot of c.
Not the entire game, but assembly is needed for critical parts of the game, e.g custom graphics pipelines, where EVERY clock counts.
Darknight
+2  A: 

If you wants to learn game programming, make a game with the easiest tools possible first. Yes, a game engine could help you a lot in the process and you should take a look at Cocos2D which is a nice framework to make games on the iPhone (in Objective-C).

Jodi
I think this hits the nail on the head, if your just trying to get into game development, there is no reason to learn how to write your own engine. Once you get some experience under your belt, and feel that you REALLY NEED your own engine would I both to write one. Never reinvent the wheel unless you have to
Aaron M
+1  A: 

I mostly agree with Darknight here, though I'd say C or C++ instead of assembly.

That said, assuming you do go with a pre-made engine, spending money on one is silly when free ones are available. Especially if you don't know if you'll like it or not, and if you'll be motivated to write your own after your experiences with it evolve through time.

So my point of view is that rolling your own game engine is an amazing and enlightening learning experience, and is 100% necessary if engine design is what you want to do (or if you just MUST know everything about what's going on). If you want to be a specialist in terms of graphics, AI, sound, or networking for games, then a pre-made engine is probably a better choice because you can focus in on what you really want to do and not get bogged down in the other areas.

Entertaining Code blog by Mikael Hedberg of DICE has a nice view on this debate, as well. Specifically with students who want to do engines/games for their final projects.

Kyle Walsh
Update!!! I am pretty sure I dont want to develop games for the rest of my life. I just want to develop some games for Christmas to bring in some profit. I will probably know objective c by that time and maybe some cocoa then I want to build some things of my own. Ps: I am only 12 and know a lot of c.
I admire your ambition! With this info, I'd say that Jodi's suggestion might be best, then.
Kyle Walsh
+1  A: 

The problem with giving you a clear answer for your question is that we don't really know what kind of games you'll be developing.

A game engine may be overkill for simple games which don't need advanced physics engines, AI, or any of the other features that you won't be able to utilize.

If you're developing 2D games then you've got everything you need in Core Graphics.

But if you're going to venture into the 3D world you'll need to think about what your game will involve. For simple games you could write the OpenGL yourself which isn't too difficult and would give you a good understanding of how things are drawn on the screen and transformed. There are plenty of OpenGL resources online that can help you from your very first pixel to complicated collision detection.

Doomspork
Update!!! I am pretty sure I dont want to develop games for the rest of my life. I just want to develop some games for Christmas to bring in some profit. I will probably know objective c by that time and maybe some cocoa then I want to build some things of my own. Ps: I am only 12 and know a lot of c.
Age has nothing to do with it, so don't discount yourself because you're only "12", I too wrote code when I was around your age. You're off to a good start.Game development is intensive and time consuming, you may be able to generate some christmas money easier through other programming means like web application development. But if you choose to stick with developing a game you should look into 2D iphone games using Core Graphics.
Doomspork
maybe with torque?
yeah they are all very expensive. I might also learn some php to develop a facebook application if you say web apps will make some good money. any tips or ideas?
A: 

As someone who has used both options, I'd say it depends on what you want to do.

Unity is great because it has physics, model loading, 3D etc. already in there, and you don't have to deal with Objective-C or XCode, which are both pretty irritating. It also gives you out-of-the-box level editing, and all sorts of great goodies like that. Torque is similar, and I've never used Shiva. Either way, you get a whole lot here for a pretty cheap price.

So what are the disadvantages? Mainly three: First and most obvious is that you've got to pay a few hundred dollars for these apps. Second is that every distribution comes with a lot of useless coupled information - increasing app size and initial load times. Third is that you've got to rely on the Unity guys to resolve any possible memory leaks, bugs, etc. that their package may have - there's no fixing it yourself. Coupled with that is that you need to wait longer to have a version that matches the current iPhone developer seed. Another potential disadvantage with this is that you're limited to the efficiency of the Unity programmers - their code may be bloated and slow for all you know, or you may have a better way to do things.

In the end the question is whether you just want a simple sprite-based 2D game, or if you want a 3D game with physics. Whether you think you're good enough to write some efficient game backbone, or if you don't think there's any chance you can do better than the Unity guys. In a lot of cases you might know less than the Unity devs, but you will be able to jump a few redundant obstacles that apply only to your own game, thereby making your code better for it.

Eli