Jump to content
  • Advertisement
Sign in to follow this  
Cherokee Lakes

Question about flow of game loop

This topic is 2090 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

Hello,

 

I am using SDL with C++ to make a simple arena top down shooter. The issue I am having is with how the layout of the game as far as the game loop and the headers/source files are concerned. Basically, here is how I envision the layout being:

 

gameCore.cpp == This would be the main code of the game, containing the order of the functions that actually make the game happen

 

gameInit.h == this file would be included in the above file, and would contain everything that is initially set up(initialize SDL, etc)

 

*Things such as the player and enemies, environment objects would be kept in their own source file( a .cpp I believe?) For example, there would be player.h, enemy1.h, etc, and an include file that is included in gameCore.cpp for each one. 

 

gameRender.h == this would blit every surface to the screen(basically handle the visual aspect of things) this file would also be included at the top of gameCore.cpp

 

gameLoop.h == this file would be the actual gameplay, it would initialize instances of the player and enemies, etc. 

 

gameExit.h == this would handle what happens when the game exits, mainly clearing surfaces, etc.

 

I guess my question is if this is the best way to do it? I can code the actual functions, my problem is just understanding where it all fits in. 

 

Thanks so much!

Share this post


Link to post
Share on other sites
Advertisement

I don't think what you are doing is the correct approach. I'm sure others can explain this better but I will try to explain the usual way a game is made:

  • First, you use classes. The header files (.hpp) contain the declarations and the source files (.cpp) contain the implementations.
  • You probably want to create a Game class that contains all basic functions.
  • After that you would create a Main.cpp, which creates an instance of the game, initalizes it, and runs it.

If you need a class to know about another class, you only include the header file. This way, you have the code spread to multiple files so you won't have to compile the hole thing again when you change one line. Using classes also makes your code cleaner and easier to manage (in my opinion). A list of files your game consists of could be:

  • Game.hpp. This header file contains the declarations of the class and its functions like OnInit, OnCleanup and OnRun... Or something like that.
  • Game.cpp. This file contains the definitions of the Game functions.
  • Main.cpp. This file includes "Game.hpp", instantiates it and runs it.

If you change "Game.cpp" now, you will only have to recompile that file, not the rest. This may seem a bit weird for you now but you will see other advantages later.

 

BTW, the ".h" extension is normally used for C headers but for C++ this is usually ".hpp", even though many people use ".h".

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!