As was hinted in the previous post, here is some more details on the challenge I took part in march. The aim was to create a roguelike in 7 days or less. If you want to read more about what a roguelike is or how they are made, the excellent Roguebasin wiki comes highly recommanded. But in a nutshell, a roguelike is somewhat like a role playing game in which depth of gameplay is put at the center of the experience. Traditionnally, they have featured ASCII graphics and extensive command lists, are turn-based games, and feature some kind of permanent death (as in, if your character dies, you cannot resume from a checkpoint and need to start from the very beginning of the game).
From a personnal standpoint, I have always liked roguelikes, and decided that this year would be a good time to try my hand at one. Having set time limits tends to make me more productive, so it was only natural that I entered the 7DRL challenge.
For the longest time, I have been an avid fan of the Battle Royale book and movie. Logically, I have from time to time about how I could turn the “Battle Royale experience” into a game that I would like playing. A first-person game used to be the main idea, but without even considering the amount of assets that would be needed, and the complexity of programming everything, the sheer amount of parameters needed to truly recreate a faithful and interesting Battle Royale setting would be much too important.
Enter roguelikes, and their propension to accomodate detailled simulation and complex interactions even without any kind of art needed. The more I thought about it, the more it seemed like a roguelike would be, in fact, the perfect kind of game for what I had in mind. If I did not want to make a glorified deathmatch game, I would need several things :
- Many viable styles of gameplay : Some characters in Battle Royale embrace the game and kill everyone on sight, others try to approach their prey cunningly, some try to find safety in numbers, others try to hole up somewhere and place traps or guards to defend themselves, and some even try to escape the game itself. All these and more should ideally be options for the player. As they should be pursuable by the AI. If it was simply a matter of fighting, the initial random weapon would pretty much settle the end result.
- An unknown island : For best effect, you should arrive on an island which you know nothing about, except maybe the rough shape and a couple of landmarks. This would lead for an always-fresh and stressful game. Without that, you would simply be trying to optimise your initial moves.
- The social interactions : Perhaps the most important item in this short list. One of the facts that make Battle Royale a high-impact story is that the contestants in the ‘game’ are no strangers. Being all from the same class, rivalries, friendships and cliques are already present in the group before the story begins. Including that element is central to recreate the Battle Royale atmosphere.
This list seemed to fit the idea of a roguelike, with the emphasis on simulation and procedural content that these kind of games tend to exhibit. The next step was to fit this idea into a game I could make in 7 days…
Obviously, making everything I wanted in a short span of time was impossible. I decided to trim the concept to a minimum form.
What that meant was to cut much of the open-endedness from the game. No possibility to escape by disabling the explosive collars, no killing the soldiers in the school and taking over the island, no hacking, just basic killing of other players. The only feature I was not ready to drop was the social aspect. I decided to include some form of alliances/friendships into the game, with gameplay implications. For instance, if you had a best friend, killing him or her would have resulted in severe (if temporary) penalties while your character was overcome with grief.
I also dialed way back my ideas on the island generation. Instead of doing many types of structures and terrain, I decided to make only ponds of water, trees, and rectangular buildings. This was an area where more could always be added at a later stage, but having done my fair share of game jams, I know you never have as much time as you think you have.
My plan would then be as follow :
- Day 1 : Island generation
- Day 2 : Player movement, field of view…
- Day 3 : Other students and combat
- Day 4 : Time and forbidden zones
- Day 5 : Weapons and other items
- Day 6 & 7 : Polish
Seemed doable enough at the time…
As they said, the best laid plans never survive engagement with the enemy. While things started pretty smoothly thanks to my tools of choice (Python and libtcod), around the middle of the week I fell ill, and had a mountain of work pile up on top of me, two things that combined to make me fall way short of the goal I had set to achieve.
I started documenting the process of creating the game on my personal blog (read the articles there) and several systems were completed on schedule (combat for the most part, pathfinding, line of sight, random generation…). I tried to push forward during the last 36 hours of the challenge, but was dealt a fatal blow when I realized that the game slowed to a crawl when 20 or so characters where trying to figure out where to go. I had several possible solutions in mind, but by that point I was tired, and too disappointed to make it.
Seeing how a well thought-out plan fell flat, you would be forgiven to think that the whole challenge was a bitter disappointment, right? Well, in a way, yes, surely I would have loved to end the week with a new game to show for it.
But, in the grand scheme of things, I finally started on one of my ‘dream projects’. And that is something. I have a nice code base off of which I will continue to work until I get a more fully realised project.
And I am planning on entering the challenge again next year, that is for sure!