Sign in to follow this  

Framework options with full control

This topic is 405 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi GameDev,

 

I'm thinking of learning some game development. As you know, game engine choice is an important question. I'm pretty lost at it, as I don't have enough information on each one to take a good decision. I'm interested in game development, but in the programming part of it. I'm searching for a good engine/framework and all the recommendations I see are mostly drag and drop software. I really want to learn about graphics programming, patterns, game engine architecture, shaders and that sort of things, and I think that game engines gives too much abstraction to learn about that things.

 

I've seen some frameworks that seem good choices for my goals, like LibGDX and OGRE3D. My problem is that, being a beginner, I don't know if an engine will do "too much", giving me too little control, or if it will fall short and I'll be overwhelmed. I want an engine/framework that can babysit me in every aspect of game development, but that lets me implement or extend whatever part I want with full control and no restrictions. I'm doing this alone, and I'm not counting on doing a game engine from the scratch, but I want to have the option of getting down to the metal. I know C++, Java and Python, but I prefer C++. Also, I would like an engine to be in active development and have a considerable community. In the technical side, a clean and modern API, nice documentation and good performance (auto hardware acceleration would be great) are the biggest selling points for me. What are my options?

Edited by galaxxy

Share this post


Link to post
Share on other sites

Hello and welcome in the wonderfull world of game engine development ;)

 

First, I would suggest reading the book Game Engine Architecture, Second Edition to get a rough look of what fields of progress are to be mastered. Because an engine is not that complex pice of software it looks like you should first get a look into the basic API's of your prefered OS (I think it is Windows isnt it?) because an engine is these days build arround a third-party (or in-House) framework that encapsulates any of the required OS feature may be in a multiplatform manor to have the engine self access the filesystem, create and manage threads, call into the message loop, create and manage a window/surface to render to and way more than simply load some assets and render scenes.

 

You could use Ogre but I wont recommend it because Ogre is plain old and its maintenance is chaotic. If you dont want to start from scratch as I did 3 years ago then you might take a look at SFML, SDL as wrapper frameworks to setup your environment on. If you want to use an already existing engine you could look at either Urho3D or Bitsquid/the Bitsquid port Crown. Both open source and accessable at GitHub

Share this post


Link to post
Share on other sites

I really want to learn about graphics programming, patterns, game engine architecture, shaders and that sort of things, and I think that game engines gives too much abstraction to learn about that things.

Hello,

Well, yes, the entire point of a framework is to provide abstractions. The "give me everything" option is a plain programming language with a few simple libraries below the level of your interests (assuming you don't want to start writing a video driver and an operating system first).
 

I want an engine/framework that can babysit me in every aspect of game development, but that lets me implement or extend whatever part I want with full control and no restrictions.

This is impossible. You cannot build software that has functionality, but can be be extended without limits in any direction.

Instead of trying to find the impossible, why not play around with various frameworks, sort of just make several small games to find out how things work.
That also lets you focus on one aspect of programming more easily than when you try to combine all stuff into one ever-expanding program. Edited by Alberth

Share this post


Link to post
Share on other sites

Hello and welcome in the wonderfull world of game engine development ;)

 

First, I would suggest reading the book Game Engine Architecture, Second Edition to get a rough look of what fields of progress are to be mastered. Because an engine is not that complex pice of software it looks like you should first get a look into the basic API's of your prefered OS (I think it is Windows isnt it?) because an engine is these days build arround a third-party (or in-House) framework that encapsulates any of the required OS feature may be in a multiplatform manor to have the engine self access the filesystem, create and manage threads, call into the message loop, create and manage a window/surface to render to and way more than simply load some assets and render scenes.

 

You could use Ogre but I wont recommend it because Ogre is plain old and its maintenance is chaotic. If you dont want to start from scratch as I did 3 years ago then you might take a look at SFML, SDL as wrapper frameworks to setup your environment on. If you want to use an already existing engine you could look at either Urho3D or Bitsquid/the Bitsquid port Crown. Both open source and accessable at GitHub

 

I know the existence of SDL/SFML, but they are more geared towards 2D. There is anything like that but for 3D?

 

 

 

I really want to learn about graphics programming, patterns, game engine architecture, shaders and that sort of things, and I think that game engines gives too much abstraction to learn about that things.

Hello,

Well, yes, the entire point of a framework is to provide abstractions. The "give me everything" option is a plain programming language with a few simple libraries below the level of your interests (assuming you don't want to start writing a video driver and an operating system first).
 

I want an engine/framework that can babysit me in every aspect of game development, but that lets me implement or extend whatever part I want with full control and no restrictions.

This is impossible. You cannot build software that has functionality, but can be be extended without limits in any direction.

Instead of trying to find the impossible, why not play around with various frameworks, sort of just make several small games to find out how things work.
That also lets you focus on one aspect of programming more easily than when you try to combine all stuff into one ever-expanding program.

 

 

Maybe it's impossible. I have some frameworks in mind that does things this way, but not for game development.  I worked with Apache Flink (distributed streaming data processing) and I'ts very close to the idea I have. You can make things work with few lines and lots of abstraction, but if you want to go deeper, the framework has a very good documentation for the source code and you can extend base clases (maintaining the design and architecture of the data flow). You can even rewrite specific functionality very easily to meet your needs. The underlying design (how data flows, how timestamps are managed) must be keeped, but it's so flexible you can do whatever you want. SDL/SFML is a good example for 2D (I explored SDL a bit, you can use the framework and it's also very easy to get deeper), but leaves you alone in 3D, only helping with network, input...

Edited by galaxxy

Share this post


Link to post
Share on other sites

you can extend base clases (maintaining the design and architecture of the data flow

That is hardly "no restrictions", but much closer to "intended extensions".

However, I think the basic suggestion stands, you're new to everything, so try a few frameworks to get an informed opinion about them. Even if you don't like them in the end, you can use what you found for comparison of other frameworks.

Share this post


Link to post
Share on other sites

This topic is 405 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this