Short story: I completed a game with advanced fencing mechanic. Learnings: 1. Don't wait three years for prototyping a game you have an idea for when this idea comes back to you every now and then. 2. Unity rules. 3. My wife really loves me (who else would spend a week with a coding zombie in the same room and then test his game for long time even when he says you can stop).
https://pawel-s1.itch.io/artifex-gladii
https://github.com/azsdaja/7drl-2018
In this 7DRL I wanted to explore the possibility of creating a combat system (with focus on melee) that would be more realistic and entertaining than the one traditionally used in roguelikes. I just thought that melee combat should be something more challenging for the player than just standing next to a monster and pressing arrow directing towards it and let the engine calculate the hit and damage.
Fencing for me is some kind of game where you can both gain visible advantage and loose it without hurting each other. It's like on football pitch where you slowly push your opponent or try to counter him when you regain initiative. So I thought that the characters should have some kind of score representing their condition in the combat: it should be high when you are skilled fencer, with no distractions, with good position etc.
What I had on the start was:
— many mental notes about how the combat may look like
— the glorious Unity engine with brand new Tilemap feature; by the way it's amazing for me how this engine is developing and how it speeds things up to make a game with it
— some roguelike engine code that I've been developing for last 3 months for another game
The development looked more or less like this:
Monday: adapting my engine, starting the combat system
Tuesday: working on combat system, starting to make/adapt graphics
Wednesday: adding different kinds of monsters and weapons; adding traits for the player to gain when levelling up
Thursday: Simple dungeon generation with monsters, working on AI, adding first elements of UI, polishing the combat engine. The prototype was not ready as I expected which made me scared.
Friday: adding more traits, monsters and weapons, more UI and AI, adding stairs and moving between dungeons. The prototype was ready in the evening. Didn't give me really much, it was too simple and unbalanced.
Saturday: adding items, lots of testing and balancing, adding lots of UI, adding more graphics to the dungeon and sketching the story. On this day I speeded up my coding by breaking the rules of clean code even more than in previous days. It was a considered decision, because I knew that even if I make messed up code, I'll have a fresh enough image of it in my head by the end of the Jam to make necessary fixes. Now I see that was a good decision.
Sunday: making the last level and wrapping up the story, adding some final monsters, weapons and traits, finishing up the UI. Thanks for help of my wife (she was testing it live starting from 7 PM) I managed to balance many elements of the game and to fix last crucial bugs to make the final version at midnight.
Measured time of development: 71 hours.
Sleep: around 5 hours per night.
I'm glad of the result and spending this week jamming — I feel tired but also I feel that I should do this often instead of keeping my ideas for games in my head and letting them die. I didn't feel stuck at any time and many problems had found their solutions just in the course of development, without any moments of helplessness. Also, many ideas came naturally out of my head during the development, for example I was adding pieces of story to the game almost subconciously and at the end I realised I made a story (which wasn't my goal at first).