Reader small image

You're reading from  SDL Game Development

Product typeBook
Published inJun 2013
Reading LevelBeginner
PublisherPackt
ISBN-139781849696821
Edition1st Edition
Languages
Tools
Right arrow
Author (1)
Shaun Mitchell
Shaun Mitchell
author image
Shaun Mitchell

Shaun Mitchell is a developer at a high profile online gaming company. He holds a BSc in Game Programming and Development from Qantm College / SAE Institute London. Shaun is also a moderator and active member of the <dream.in.code> programming community.
Read more about Shaun Mitchell

Right arrow

Chapter 9. Creating Conan the Caveman

In the previous chapter, the creation of Alien Attack demonstrated that the framework is now at a point where it can be used to quickly create a 2D side scrolling shooter. Other genres are also simple to make with most of the changes once again being contained within the object classes.

In this chapter, we will cover:

  • Adapting the previous code base for a new game

  • More precise tile-collision detection

  • Handling jumping

  • Possible additions to the framework

This chapter will use the framework to create a platform game, Conan the Caveman. Here is a screenshot of the finished game level:

Here's another screenshot with more enemies:

As with the previous chapter, this chapter is not a step-by-step guide to creating Conan the Caveman, rather it is an overview of the most important aspects of the game. The project for the game is available in the source code downloads.

Setting up the basic game objects


In some ways this game is more complicated than Alien Attack, whereas in other ways it is simpler. This section will cover the changes that were made to the Alien Attack source code: what was altered, what was removed, and what was added.

No more bullets or bullet collisions

Conan the Caveman does not use projectile weapons, and therefore, there is no longer a Bullet class and the CollisonManager class no longer needs to have a function that checks for collisions between them; it only checks for the Player and Enemy collisions:

class CollisionManager
{
public:

  void checkPlayerEnemyCollision(Player* pPlayer, const 
  std::vector<GameObject*>&objects);
};

Game objects and map collisions

Almost all objects will need to collide with the tile map and react accordingly. The GameObject class now has a private member that is a pointer to the collision layers; previously only the Player class had this variable:

std::vector<TileLayer*>* m_pCollisionLayers...

Possible additions


It wouldn't be hard to improve on Conan the Caveman's gameplay; increasing enemy and trap numbers would make the game significantly more exciting to play. The game could also benefit from some height to the levels so that players could really explore the map (Metroid style). Other gameplay improvements could include moving platforms, ladders, and bosses.

Summary


Our reusable framework has proved its worth; two games have been created with minimal code duplication.

This chapter looked at scrolling a tile map using the position of the player along with collision detection. Tile-map collision was also covered, along with the important point of splitting x and y movement for effective movement in a platform game. Conan the Caveman is a great starting point for any other 2D game such as a scrolling beat-em-up or even a merging of this chapter and the last to create a platform shooter.

I hope that by now you have a good understanding of how to use SDL2.0 along with C++ to create games and how to effectively break game code apart to create a reusable framework. This is only the start and there are many more game-programming adventures ahead. Good luck!

lock icon
The rest of the chapter is locked
You have been reading a chapter from
SDL Game Development
Published in: Jun 2013Publisher: PacktISBN-13: 9781849696821
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Shaun Mitchell

Shaun Mitchell is a developer at a high profile online gaming company. He holds a BSc in Game Programming and Development from Qantm College / SAE Institute London. Shaun is also a moderator and active member of the <dream.in.code> programming community.
Read more about Shaun Mitchell