Categories
Video Games

Seven Day Roguelike Challenge 2014

Seven Day Roguelike

So it is March now and that means its time for the annual 7drl (Seven Day Roguelike Challenge). Before I continue with this post let me state two important points:

  1. I never made a roguelike before.
  2. I never played a roguelike until a week before this challenge.

So let me explain my two important points. I knew what a roguelike was but I never played one. I had seen them being played but I was usually put off by their graphics. But since games in recent years started to have roguelike features (which I found out I enjoy after playing the original version of Spelunky last year), I decided to look more into what a roguelike is. I first decided to actually play a proper roguelike which ended up being NetHack, a second generation major roguelike. I was surprised how much I enjoyed that. Whilst I was looking more into roguelikes I found out the 7drl was happening in a few weeks. Foolishly (or bravely, you decide) I decided to enter. The finished game will be submitted for 7drl 2014 and also for my March game for One Game A Month. Below is my development log of how the seven days got on.

March 08 2014 Update
So I decided to enter on March 08 2014, which meant I would be finishing on March 15 2014. So on the first day I had to choose a game engine or make my own (highly doubtful choice). I decided to go with GameMaker since I still am trying to improve on my programming skills. First thing I found out was that GameMaker is not made for roguelikes, like at all. So I decided to take baby steps.

I decided to make a roguelike set in the Wild West. My MVP (Minimum Viable Product) for this game was having a single map where the player would have to exit to reach the next level, random levels, one enemies and shooting since this was going to be set in the Wild West. I decided to keep it as simple as possible. First thing I did was create a player character that could move on the screen. I then created a cursor on the screen which would follow the mouse since I wanted this roguelike to have shooting. Now came my first hurdle. I had to find a way to create a turn-based system. I could have used lists to check if every object has moved but since I never used them before I decided to create my own turn-based system. Surprisingly it worked. I then created a simple enemy AI character that moves randomly on the level map. I must say, I was really happy that I managed to have a turn-based system working on GameMaker. If anyone is interested about my turn-based system for my roguelike then let me know and I will make a post about it. The last two things I did today was to give the player the ability to shoot and kill the enemy AI and make the enemy AI chase the player when it is in sight. First day I managed quite a lot for my first roguelike. Let’s see how tomorrow turns out.

Seven Day Roguelike Screenshot - March 08 2014
Screenshot on March 08 2014

March 09 2014 Update
Today I improved on my enemy AI character by making him hit the player when it is right next to him, shoot him if it is a few tiles away or chase the player if it is further away and it can see him. I also managed to create a simple random level generator. Currently there is nothing there as I haven’t had time to generate any pickups for the player or any enemies. But the game does have a start menu (text-based) and it keeps count of how many levels the player has completed.

March 10 2014 Update
Today I just managed to create some art for my game since I did not have enough time to start coding any new features in the game. I updated the art for the player, tiles and walls. I made the enemy character into a bandit so it fits more with the western theme. Last thing I did was create a simple screen shake effect which comes on whenever the player gets hit or shot at.

Seven Day Roguelike Screenshot - March 10 2014
Screenshot on March 10 2014

March 11 2014 Update
On the Tuesday I managed to create some pick-up items which the enemy might drop upon death. I also created some more art for the gun and the bullet. I think I am going to say my roguelike is a roguelike-shooter. It is important to state that it is not a shooter-roguelike. The difference is that a shooter roguelike is a shooting game first with roguelike features. My roguelike game is a roguelike game with shooter features. I hope this makes sense to everyone. At least my first ever roguelike is coming together nicely so far.

March 12 2014 Update
Today I created some GUI (Graphical User Interface) of the roguelike on paper. I still need to create them on the computer though.

March 13 2014 Update
I did not get anything done at all today.

March 14 2014 Update
Another day with getting no work accomplished. This means I have got quite a lot of work to do tomorrow.

March 15 2014 Update
Today was the last day and I had quite a lot of work to do. The first thing I worked on today was creating a bear and a snake. The bear and the snake would just appear on the map randomly and attack any object that gets near them. I then also created a cactus because what is the Wild West without a cactus. After creating these objects I started to work on the art for them and also started to create the GUI. I wanted to implement a message system but I did not have enough time to accomplish that.

Next thing I done then was implement stats tracking. This would allow the players to see how many times they have died, how many times they have killed a certain enemy and other miscellaneous stats. I added some sound effects as well to the game so that the player can feel more immersed whilst playing the game.

Seven Day Roguelike Screenshot - March 15 2014
Screenshot on March 15 2014

The last thing I had to do was improve the level generator by allowing it to create more varied designs using all of the available characters and objects in the game. Hopefully my first Roguelike is not too bad and people will enjoy playing it. The download link for the game is below:

Download

3 replies on “Seven Day Roguelike Challenge 2014”

Leave a Reply

Your email address will not be published. Required fields are marked *