Clover-Man vs. EVIL is a 2D side-scrolling platformer starring a clover superhero (named Clover-Man) who must successfully navigate through eight different levels. He can jump and shoot razor leaves. Version 1 was released in December 2010, but a second version is currently in development.

Report RSS Clover-Man Boss Implementation Begins

Moving forward with the development of version 2, I talk briefly about implementing bosses in the game.

Posted by on

One of the biggest features left out of version 1 of Clover-Man vs. EVIL was bosses. I intended to originally have a boss after each level in the game. However, in order to make my "deadline" of releasing the original game at the end of last year, I had to cut bosses from the game. Needless to say, bosses are one of the biggest features being added to version 2.

Implementing bosses is a bit tricky. You can think of the bosses in Clover-Man as being large (nearly "full screen") opponents with several independent moving parts and specialized attack patterns. Therefore, significantly basing them off any "generic" code in the game is near impossible.

My current (and initially planned) boss implementation strategy is to have all bosses inherit from a pretty simple base "Boss" class. Each boss subclass will then be implementing the functionality specific to that boss (which will be most of the functionality of any boss). This generally seems to be working pretty well.

As mentioned, bosses in Clover-Man will have several independent moving parts, like many classic games. My plan is for each moving part composing a boss to be an independent sf::Sprite object. This should make it easier for me to perform independent motion and collision detection on each part (with some parts damaging the player and others not). Each of these sprites will be positioned relatively to a central point representing the position of the boss in the game world.

At the moment, I have the basic setup working, but I still need to put the "pieces" of a boss together and then add in the actual behavior to the boss. I'm starting with the final boss in the game. This way, if something goes wrong, and I can only add one boss to the game, things will make a bit more sense.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: