7DRL 2020 memories


I got a moment to collect thoughts and look at that week from distance. Parts of this entry are based on hot notes made during the jam, so I'll stick to present tense.

It won't be a typical devlog explaining what exactly I did and how. Instead I'll focus on various feelings and impressions which accompanied me.

Preparations


Taking part in Seven Day Roguelike Challenge again. I enjoy this event alot — not only it's about roguelikes and it's well organised since 2004, but it takes longer than a usual game jam. 168 hours is something that a working person like me can somehow spare during a year and it's enough to make a complete game with much wider scope than during typical game jams lasting 48 hours. It's like a marathon — a long effort giving much satisfaction and making me want to challenge myself more and more.

Last two years for 7DRL I experimented with fencing ratfolk in Artifex gladii and with a witcher brewing potions in alembiques and pots in  Quinta essentia. Both games were kind of big since I could utilise the engine and many ideas from an unfinished game I'd been making. This year I want to make something of this size again. Not sure why, but I really want to stick to the schema from previous years:

  • latin name
  • very serious story
  • wide scope despite highlighting a single piece of mechanics

One day I'd really want to break this set and make something totally different for the sake of freshness (highly valuable for 7DRLs), but not this year. Let's make it kind of a trilogy.

The tougher part comparing to previous years is that I'm employed now and my daughter needs more and more attention. But 7DRL is an important event for me, so beforehand I planned the time with my wife so that I can focus on work while not being totally apart from the family. Also I took all needed 5 days off from my company. I'll be allowed to work in the office, so I will have perfect conditions for long hours of work every day. Think 5 days off is alot? It would be, but my hobbies were important enough for me to arrange part-time (80%) work, so my holiday schedule isn't really hurt.

Office benefits during 7DRL: two monitors, whiteboard and my rubber duck debugger. Also some humans around to talk to and play ping-pong with. For unknown reason they stopped to show up during weekend.

Lots of design and ideas for the game has been written down on paper, but I actually didn't do much planning. I could, but let's make it part of the challenge itself this year. I just have strange feeling that few of my ideas will become reality.

Before start

The team has been collected. There are two artists (including Mordan) and a tester (Bartek). I'm excited to have a real musician (Settergren) since my previous 7DRLs barely used utilised speakers. Now with perspective of my game having music and sounds I see how the previous ones were lacking it. Good. If each time my game has some important feature the previous ones didn't have, that'll be a sign of progress.

I'm not sure how it'll go with the artists. This plot is more tricky since there will be three of us making graphics, while many of them being modified versions of open source sets.

Days 1-2

In the beginning the pace is fine. Osnowa, my roguelike framework for Unity gives me solid basis. I'm working on the core mechanics: shooting UI and enemy field of view with cone representing their focus.

It starts to look different than Osnowa sample game.

During day 2 I also started to work on map generator. I quickly realise how naive it was to assume that this part will take me 1-1,5 day. It's a stealth game after all and in this genre the level is kind of a riddle, or at least has its zones which are not accessible with the same degree. Another obstacle is that I wanted very much to mix my Osnowa generator with Wave Function Collapse. The latter intrigued my for last year and I was impressed by images I was able to produce with it before the jam. However, when I need to apply a modification to its code which would allow me to add constraints to the generated output (namely being a closed area) I hit a high wall made of dirty code. Got some precious help from roguelikes Discord server, but still the problem overwhelms me.

Seriously? A library with almost 15000 likes and hundreds of forks on Github has almost no documentation in code? And utilises mostly names like _t_, _argmin_, _r_? For a professional software developer working with business-related systems it was total shock. My discovery is that programmers working in area of science or math, while being much smarter than me when it comes to understanding complex abstractions, are unable to produce maintainable code or even do some basic refactoring when this code becomes widely used.

Another problem is that it takes a good while (~10-15 seconds) to create single output of size I desired.

Days 3-4

I cut short the struggle with Wave Function Collapse. I kept 10 outputs as PNGs, and am picking one of them in runtime to skip generation time. As for the problem with borders, I chose another, out-of-WFC way of showing only some parts of generated features which fit to given area (and without cutting some of them in half on boundaries). The solution took me no more than an hour and the result was satisfying.

This was a warning for me — don't get lost in rabbit holes. Ask yourself if things costing much time are worth of it. Game jams are all about it.

Terrain and vegetation made by Osnowa generator. Encampment perimeter made by Binary Space Partitioning. Roads and buildings made by WFC.

Apart from that — working on many aspects of the game like stealth, enemies, stunning, UI. There are some many things to do which are not exactly in core of the game. They must be done, but time's running and I don't even have a barely playable game. There is nothing to deliver to Bartek (my tester) and my sisters are pointing out why the game is not fun (as if I didn't know :). But there are always some things that make me happy — if not progress with my tasks, than a new music track from Settergren (musician) or set of characters from Mordan (artist).

Day 5

Still putting together the game. Physically I feel great. Despite working 14 hours a day, I still having lots of energy reserves. Looks like my wife finally convinced me that a habit of getting relatively enough sleep, eating healthy food and taking breaks for mind and eyes doesn't make me produce less, but actually more. Nevertheless, crisis gets me. I feel like this 7DRL may just fail. The scope is killing me, I don't know how and if at all my generated maps mixed with stealth mechanics will produce something that is fun to play. And there are still so many smaller things to do. And one of the artists has gone mute after producing 2 tiny images.

Tweaking the visuals can be so relaxing when your brain is overheated.

It's easy to escape doing hardest tasks and take care of the story, intro, graphics, even polishing the title screen animation (not counting the game name since it just came to my mind in a struck of genius). I even  happily take over making sound effects from Settergren, so that he can focus on music.  Actually creating SFX with JFXR is easy and gives lots of fun. I don't blame myself for switching to such subjects (such change is relaxing for mind), but I'm just worried about the final result.

Day 6

The pace is getting high. This game can be saved and I must do it. Probably the last 4 hours of sleep during the jam are already behind me. It's Saturday. It's weird to be alone in the office (almost alone in whole building), but that helps me to focus even more. Whole whiteboard is for me. If I want to finish this game, I need to write down again what I need. After filling the whiteboard many things become clear. I recall  having heard from someone that making notes on a board, due to making wide moves with arms, stimulates some parts of brain and improves bloodflow. I also realise most of the things I noted are not really needed for Minimum Viable Product. I'm not so screwed as I thought.

I fall into this weird state of mind when it feels almost physically weird to think about something else than the game. I feel the growing bond between my brain and fingers hitting the keyboard. 

It's getting its shape. I already know how many things I won't do. But I see a clear path to making it playable.

Completing tasks point by point. Hours are passing, the sun goes down. Bartek says it's actually becoming fun to play it. It's nice to hear something like this.

There are not so many dilemmas like during the first days — only problems which get solved almost automatically (but not necessarily fast). The only tension is between making core features that simply must appear in the game (like win condition and changing the map between missions) and cool features that are cheap to do now, but also are not must-bes (like different weapons and levels). Usually the former ones win, but in some cases it would be a mistake to resist picking low hanging fruits which add niceness to the game.

Another crisis between 10 pm and 2 am. I struggle with usage of my FloodSpill algorithm for marking some isolated parts of the level. Something doesn't work. Debugging takes ridiculusly long time. I take breaks, fight with deconcentration, sketch up the situation on a piece of paper, make an ad-hoc debug tool. Nothing helps. At the end I realise I don't need to fix it if I can make a workaround in 10 minutes. Another rabbit hole — let it be the last one!

Day 7

It's hard to recall many meaningful moments. It's just work, work, work. Then, around 13, I leave the office after spending 23 hours there. Then a break for lunch and a visit in church. It was surprisingly easy not to think about the game during the Holy Mess. During this hour I experienced an interesting mix of moments of total focus on the liturgy and prayer and almost falling asleep. A flashback: I had same feelings in the same place a year ago during the last day of making Quinta essentia for 7DRL 2019.

The eye is surprised it's not bloody at all. Actually it was fine until the end.

Still many things to do for the minimal version and only a few hours left and the game is barely tested. This sounds bad. I have to cut down the scope even more. Pity that there won't be any place for inter-mission time for the player where he could read parts of the story and for time management of the character which would be a nicer way of levelling up. There won't even be any ending apart from showing a message with quit button. There won't be so many other things including guard patrols, alarms, traps, lockpicking and utilising vodka for making the guards drunk. But well... I'm still happy that the other things that were made. This game simply couldn't be done with initial scope with my resources.

And there comes the moment of submission. First two builds were made with mistakes (not showing some menu, forgot about mentioning all the persons included). But finally it's out.

It's hard to go to sleep, but the next day I go to work. I only can't resist to spend two more hours on the game page on Itch.io.

Two days later

I'm resting (8 hours of work in the office is ridiculously short) and spending time on what I've neglected. But I also want to make a version with bugfixes and balance (most of the 7DRL participants do that) while I'm still somehow familiar with this messy code. I give myself some time to play the game. Discovered like 10 bugs during 20 minutes. Some of them make me laugh:

  • player can eat any thing held in hands, including a slingshot and an unconcious enemy
  • enemies don't stand up after they regain conciousness — they are chasing me in horizontal position
  • a description of a notepad (quest item) says that you can tie your enemies with
  • all the stationary guards which were supposed to be spread around  building on level are actually generated in one single room

I start fixing them at 8 pm. I want to give myself 2 hours (the next day is workday again). At 2 am I decide it doesn't make sense to go to sleep anymore. Let's fix and balance all of this and then I'll be free. I finished at 8 am and went straight to work. Was it rationality or addiction? I don't know, but I think it was indeed better to do it. Otherwise I probably couldn't focus on other things for a few days.

Summary

It probably wasn't my best 7DRL week. While I'm glad of the game that was born during this time, but I also made mistakes:

  • allowing two serious rabbit holes to eat my time (WFC and map zone marking algorithm problems)
  • not delivering a sensibly playable version for 5 days
  • underestimating the problem of map design when thinking about the game for past weeks


Nice graphics and hundreds of words for intro, only a few for endgame — that's probably not fair to the player who managed to beat the game.

There were also definitely good things:

  • deciding to find people to cooperate with (had various experiences, but I dare to say that working with some people to create something together, even in limited degree, is a challenging but rewarding experience for a roguelike developer, which is often a lone wolf)
  • despite having spent crazy amount of time (110 hours) on development, I did it in healthy way without hurting my body too much with hectoliters of coffe, square meters of pizza (okay, you might have noticed one on the ping-pong table) and bloody eyes
  • quite rewarding feeling of having made these stealth mechanics, the world and the story
  • using a known and well-proven tool (Osnowa+Unity) which allowed me to focus mainly on fun part of development
  • first experiences with Wave Function Collapse — I definitely want to try more in the future
  • lots of laugh about the bugs
  • lots of good memories from this week; that's probably what made me want to write this post.

For a positive final note — despite this roguelike being less complete  compared to my other 7DRLs, I think it's actually the first one that makes me think about further development and making a “real” game out of it. Maybe it's a good idea, but let's give it some time to digest and limit myself to making notes about it. Time to be more with the family, with other people and with my internal non-gamedev-programmer which waits to learn something about non game-related things like C# 8, Docker and Domain-Driven Design.

It's not so easy to justify why exactly this www.PBFcomics.com strip represents for me the 7DRL Challenge in short, but maybe if you try, you'll feel the same.

Get Res furtiva

Leave a comment

Log in with itch.io to leave a comment.