Integrating tools and concepts

Started by
2 comments, last by solarnoise 14 years, 1 month ago
Hi everyone, just joined the forum. I'm a CS and game development student at a university and want to be making games outside the classroom for practice. I can tell you that I am proficient with programming in Java, C, and C++ and am soon going to be learning how to use Lua for scripting. My problem is that I do not know how to integrate all the concepts and tools needed for game development. Yes I can play around with Unity or Unreal, but I feel a little too spoiled by those engines. I'd like to have more experience with actually picking and choosing libraries and integrating them. ...but I'm kind of puzzled as to how to do that. I can pick all the libraries and API's I want, but I'm not proficient enough with software engineering to know how to use them. For example, how DO you integrate graphics with physics? Is it as simple as importing their libraries into your project (in Visual Studio)? Honestly I've been researching this and just can't seem to find how all the pieces fit together.
Advertisement
My own advice is to write your own 2D graphics and physics engine. Start small and build up. You'll learn a lot about what goes on in the background. There's no need to fully-feature it if you don't want to.

Warning: Lots of math. Including calculus.
Quote:Original post by solarnoise
Hi everyone, just joined the forum.
Be welcome!

Quote:Original post by solarnoise
...but I'm kind of puzzled as to how to do that. I can pick all the libraries and API's I want, but I'm not proficient enough with software engineering to know how to use them. For example, how DO you integrate graphics with physics?
Not at all. Graphics and physics are 2 parts that should not know anything about the other. Instead, the core of an engine provides all data and APIs so that the physics sub-system can operate on it. Later then, the graphics sub-system uses the data as provided for graphical rendering. Perhaps other sub-systems will operate in-between these steps. The coarse workflow can be seen when searching for the keyword "game main loop". E.g. this article, an excerpt from Jason Gregory's fine book "Game Engine Architecture" may give you some insight, althought it may be overwhelming when reading such stuff the first time. There are some threads in this forum and blogs about this topic, too. However, the essential point is that it should be avoided to couple sub-systems directly together.

Quote:Original post by solarnoise
Is it as simple as importing their libraries into your project (in Visual Studio)?
Independent libraries bring their own API into play. If you integrate the library into an own project then you can write your project a-priorily with that in mind. However, usually you have to write glue code in a thin layer that adapts the API of the library to your project.
Thank you to you both! Good suggestions and thank you for the info on the game loop. I have also been reading articles at lazyfoo.net and they have been very helpful.

I may pick up that book on engine architecture for reference. It seems to be fairly popular.

I would love to see a meta-guide that shows how to incorporate some of the popular libraries (OGRE, FMOD, Bullet, etc) and shows some sample game loops and code snippets. Perhaps I'll write one once I've established a development pipeline for myself.

This topic is closed to new replies.

Advertisement