Jump to content

  • Log In with Google      Sign In   
  • Create Account


Question about flow of game loop


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
1 reply to this topic

#1 CherokeeLakes94   Members   -  Reputation: 111

Like
0Likes
Like

Posted 01 February 2014 - 09:35 PM

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!



Sponsor:

#2 ProtectedMode   Members   -  Reputation: 1109

Like
1Likes
Like

Posted 02 February 2014 - 04:38 AM

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".






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS