Quote:http://scientificninja.com/advice/write-games-not-engines Ok, I found this great article. Now, my question is. Should I use a game engine to create games? If I'll create a game and use a game engine, I can't reusing it's functionality because that's for the only specific engine that I've use. So in the end, I didn't make an engine at all. Honestly, I'm really confused on where to start. I've made many games in 2D using the SDL API and reuse some of it's code like creating text, image, menu, sound and etc. Now I moved to 3D. I want to make games also here but I also want to make an engine so I can use it to create my next game.
If you repeat this process long enough, after a few games you’ll have the beginnings of a solid collection of reusable functionality that has been proven to have practical applications.
Write Games, Not Engines
Members - Reputation: 100
Posted 31 January 2009 - 03:21 PM
Members - Reputation: 2747
Posted 31 January 2009 - 03:49 PM
The article does not expressly say "Don't use an engine", nor does it advise you to "never write an engine". Its really advising you to have the humility to recognize when you are not yet ready to write an engine up-front, and to be sure of the requirements of your game and that you are writing code to fit the game, rather than writing some misshapen code and then trying to shoehorn your game into it.
Go ahead and use an engine if you like, exposure to an established engine will be enlightening -- though be careful to view it realistically. Every engine has things it does well, and things it does not so well. Under no circumstances should you take an engine like, say, OGRE or even a commercial engine like Unreal Engine 3, and assume its construction is doctrine.
Members - Reputation: 194
Posted 31 January 2009 - 04:00 PM
Original post by m3rk
I want to make games also here but I also want to make an engine so I can use it to create my next game.
The idea behind that article is that simply writing a game, produces and engine anyway - you don't need to "write and engine" because if you write a game, you get an engine for free. The first game you write will need a menu, a way to get from that into the game, a way to render 3D models and play sounds for example.
So you have scenes and scene management, resource management and use in there. Thats an engine :) Sure it might be a simple one with 4 classes but if thats all you need then bham your done. Maybe copy it into a /src/Engine/ sub directory so you know never to put game specific code into any file in that directory. Next game just cut+paste /engine/ and your good to go.
Next game you start you'll have so much code already there -> that IS your engine. Engines are NOT something mythical or magical, its just a set of source code that does what you want which you can reuse.
Members - Reputation: 102
Posted 31 January 2009 - 04:16 PM
But it is also a great learning experience, if a long path to success....
I would hazzard that most of the now very successful and long lived engines have come out of the quagmire of finding and solving problems for an original game concept they were used for. If you take a close look at their history you'll see that the owners / designers of those engines are often the ones leading trends, and the people who license them are often stuck one iteration behind, often having to augment the engines to get what they need.
Personally I have not found a game engine yet that does everything I need.
I have also never been entirely happy with any engine I have produced.
If you have the time then I would always suggest having a go yourself.
But if you are producing something that fits the kind of game produced with a particular engine that is available to you, then why not take advantage of that? YOU can always augment that engine with specific modules you require.
However, with most of the cheap and readily accessible engines out there. Torque, Unity, etc. etc. I have always found that learning to use them, and adapting to their methods takes almost as long as writing those things yourself. And you are then stuck with those methods forever, often not fully understanding what's actually going on deep under the hood.
So if that is the case with you then perhaps you are ready to write your own.
Moderators - Reputation: 2286
Posted 31 January 2009 - 04:26 PM
Original post by Ravyne
I think the primary point the article was trying to make, and Josh can come along and correct me if he likes, is that...stuff
Yea, pretty much. The grand, overarching idea is, of course, the one get shit done. So certainly if the option exists to use an existing engine (either a full-spectrum game engine or something more specific, such as a rendering engine like Ogre), by all means, go ahead.
You can still build your own "engine" of reusable bits frameworks of code around something like Ogre just as well as you can build it around something like Direct3D, too.
Josh Petrie | Lead Tools Engineer, ArenaNet | Microsoft C++ MVP
Members - Reputation: 285
Posted 31 January 2009 - 10:40 PM
After this if you want to progress onto bigger and better games (not neccasarily the same thing ;)) choose an off the shelf engine like Ogre, Torque or something similar.
On the other hand if you prefer to write an engine and arn't too interested about games go ahead and write one but, remember the chances of you being able to produce something better than a dedicated middleware company are very slim.
Even AAA games companies think twice now before developing in house tech as the cost in man hours to create an engine will likely end up being more than licencing an off the shelf solution.
Members - Reputation: 37
Posted 17 February 2009 - 11:41 AM
CGame* game = new CGame();
Members - Reputation: 135
Posted 17 February 2009 - 11:52 AM
This is what I suggest you to do : make games, when you want to try something new, make the engine. That's what I would do and that's what I will certainly do in a near future.
Members - Reputation: 1084
Posted 17 February 2009 - 12:17 PM
Original post by m3rk
Now, my question is. Should I use a game engine to create games? If I'll create a game and use a game engine, I can't reusing it's functionality because that's for the only specific engine that I've use. So in the end, I didn't make an engine at all.
Now I moved to 3D. I want to make games also here but I also want to make an engine so I can use it to create my next game.
If you use an existing engine, you don't need to write your own - because you can use that same engine for your next game too. What's the problem here? :)
Members - Reputation: 176
Posted 17 February 2009 - 01:17 PM
Start it small, keep it modular and extensible, and build it up over time. Eventually you'll have enough re-usable code to make flexible sub-systems that have passed "trial by fire" by being used in multiple games. That's extremely important, and it's why the big engines have so many licensees -- they've been proven to work.
So while you shouldn't set out to "write an engine", you should actively be re-using your code, and building up your framework of helper functions, utilities, tools, algorithms and sub-systems. You'll eventually end up with something you could call a Game Engine.
[Edited by - ThrustGoblin on February 17, 2009 7:17:32 PM]
Members - Reputation: 138
Posted 07 November 2011 - 05:16 AM
Well, care must be taken when someone is writting a game in order to get an engine for free, because someone could write a "hardcoded game" by accident, with no reusability in mind.
Refactoring - if you're an agile developer you're probably doing it anyway many times while developing, and it becomes the step that turns the meat of your asteroids clone into the engine for your breakout clone.
Moderators - Reputation: 4827
Posted 07 November 2011 - 07:00 AM
Making games fun and getting them done.
Please do not PM me. My email address is easy to find, but note that I do not give private advice.