PDA

View Full Version : Choosing the right engine



pitfiend
29-02-2012, 03:08 AM
I wasn't sure where to post my doubts, so I create a thread in the newcomers corner. What troubles me now, is how to choose the right engine to begin a new project (game related). There are many options, but also many questions. I think the most important question is: Which Engine is the better and easier to learn? my spider sense says it's SDL, maybe it's wrong, maybe not.

I never take on game development before (at least using pascal), have some knowledge on game stuffs, a lot of experience building commercial apps, databases and SQL. For my first pascal game I choose to develop a 2D game, sort of block busting/shooter (more on this later, I promise ;D).

Currently I'm using Delphi 2007, maybe my selection list will be little, I don't know. GDI+ is an option?

Relfos
29-02-2012, 11:26 AM
SDL is good choice indeed, there's lots of documentation around.
Also if you are willing to try, there's my game engine, I tried to make it as simple to use as possible, check www.pascalgameengine.com

Stoney
29-02-2012, 07:08 PM
I wouldn't say that there's one engine which is better than all others. In the end, it comes down to personal preference. Try the one that caught your attention. If you like it, stick with it, if not, try another one. Trust me, knowing more than one engine/framework is definitely a plus. There are always different concepts and it's always good to learn new things :)

Also: SDL is not an engine. And there's a difference between a graphics engine and a game engine.

pitfiend
02-03-2012, 03:39 PM
SDL is good choice indeed, there's lots of documentation around.
Also if you are willing to try, there's my game engine, I tried to make it as simple to use as possible, check www.pascalgameengine.com (http://www.pascalgameengine.com)
Going to try SDL. I think it will be fine to start and learn.


I wouldn't say that there's one engine which is better than all others. In the end, it comes down to personal preference. Try the one that caught your attention. If you like it, stick with it, if not, try another one. Trust me, knowing more than one engine/framework is definitely a plus. There are always different concepts and it's always good to learn new things :)

Also: SDL is not an engine. And there's a difference between a graphics engine and a game engine.
I'm aware that graphics and game engine are not the same. I agree about learning to use more that one framework, but when you have no knowledge you must start with one, the easier and most complete in features maybe a good choice.

That's why I asked for advice.

Stoney
02-03-2012, 04:01 PM
In that case you might need to rephrase your question to "What are you expecting from a (game) framework?"

SDL is very low level (but not as low-level as WinAPI), function-based (no class structure), you have to fiddle around with pointers, create a game loop by hand, there are no game logic helpers (i.e. no entity management, no scene management or any game design concepts whatsoever). All of that is not a bad thing of course.
If that is what you were looking for, go for it. :)

code_glitch
02-03-2012, 04:59 PM
Thing with SDL is it has a nice progression, SDL is interoperable with OpenGL so when SDL becomes too restrictive or too slow, just throw in some GL code. And once you're comfortable with OpenGL you dont need SDL and you can write your own libs!

Jimmy Valavanis
03-03-2012, 08:55 AM
SDL is quite low level, is not an engine exactly. I 've worked in the past with (Un)DelphiX and GLScene, but you can also find other engines to start with, a lot of them can be found at http://www.pascalgamedevelopment.com/forumdisplay.php?16-Your-Projects

Andru
03-03-2012, 05:40 PM
I just leave it here (http://www.pascalgamedevelopment.com/showthread.php?6404-Description) :)

WILL
03-03-2012, 09:26 PM
Starting in on making games and working with graphics, I'd stay away from "engines" as they will teach you very little, or nothing at all about how the code needed works. An engine is designed to do all the work for you, which is great if it is designed well(fast and memory efficient) however when learning you need to code these things for yourself and be able to play with them to understand how this code effects performance and the effects generated by what you have put into the functions you wrote. Engines eliminate this for you as a convenience which makes them better suited to more experienced developers who want to cut time from a project than have to do what they already have done before and know well.

As a first library you want to pick one that will give you the most control over your code. You ware looking for low-level functionality of the code yet simple enough so as to not make the learning process tedious. SDL based libraries, such as JEDI-SDL are great for this. There are some libraries or alternately called "frameworks" that go more towards the engine ideaology, but you want to avoid these too for now. They serve the best of both worlds, yet they still are designed to take away from those things you want to learn at the beginning.

After you have done the basics with a good starter library you may want to move onto something (engine, framework, library) that will help speed development in a project that popped into your head and excites you. If you are using this project to learn something about a different concept of programming, make sure that you choose a library that doesn't take away from you being able to learn that concept for convenience or your efforts will be stunted. On the flip-side you may want to use such a library if the code is open source to see how they have implemented it. It is still best to try your hand at your new project without the assisting code before hand.

Well there is my buck and a quarter. :) (inflation)

pitfiend
04-03-2012, 08:50 PM
Starting in on making games and working with graphics, I'd stay away from "engines" as they will teach you very little, or nothing at all about how the code needed works. An engine is designed to do all the work for you, which is great if it is designed well(fast and memory efficient) however when learning you need to code these things for yourself and be able to play with them to understand how this code effects performance and the effects generated by what you have put into the functions you wrote. Engines eliminate this for you as a convenience which makes them better suited to more experienced developers who want to cut time from a project than have to do what they already have done before and know well.

As a first library you want to pick one that will give you the most control over your code. You ware looking for low-level functionality of the code yet simple enough so as to not make the learning process tedious. SDL based libraries, such as JEDI-SDL are great for this. There are some libraries or alternately called "frameworks" that go more towards the engine ideaology, but you want to avoid these too for now. They serve the best of both worlds, yet they still are designed to take away from those things you want to learn at the beginning.

After you have done the basics with a good starter library you may want to move onto something (engine, framework, library) that will help speed development in a project that popped into your head and excites you. If you are using this project to learn something about a different concept of programming, make sure that you choose a library that doesn't take away from you being able to learn that concept for convenience or your efforts will be stunted. On the flip-side you may want to use such a library if the code is open source to see how they have implemented it. It is still best to try your hand at your new project without the assisting code before hand.

Well there is my buck and a quarter. :) (inflation)

Thanks for the advice. Learning is a step-by-step process (this is not an industrial secret), and I'm commited to go all the way from basics, then I'll embrace a 3th party framework or mine if I'll ever make one (chances are high).

Darthman
05-03-2012, 07:32 AM
I just leave it here (http://www.pascalgamedevelopment.com/showthread.php?6404-Description) :)
I just can't walk along and don't leave it here (http://www.pascalgamedevelopment.com/showthread.php?6299-quad-engine).