In the last month…

Monsters in the dungeon Monsters started wandering into the dungeon… for whatever reason…

Ground holds items The ground became a place to drop infinite items, in fact, _EACH_ tile in the ground became an infinite container

Monsters drop coins Monsters start dropping hundreds of copper pieces as they die!

Combat messages Colourful messages decorate the message box.

Looking back at the commit log since mid November, I’m surprised to find I’ve actually done quite a bit! Such as generating each level of dungeon, aligning up/down stairs, adding the combat system such as chance to hit/dodge, damage rolls, status messages, hotkey (g) for picking up loot, click to move, shift+direction to walk, refactoring coins so they are just normal items and other less exciting stuff.

Man, making a game is a hard thing, sometimes it can be a major slog… however, in the last couple of days, I’ve been working on something fairly exciting. Let me introduce… The Arena

The Arena

So I know I talked about this last time, it’s a tool that I can use to pit various monsters against the hero to balance the gameplay out and quickly see how various gameplay rules and changes to equipment or stats can affect the combat outcome. The idea is to pit each monster against the hero in a large number of battles, then get the statistics on how many times the hero won and was it a tough match up.

arena results Hero vs monster out of 50 battles, using his bare hands!

So I’m currently adding equipment and adjusting the stats of the monsters. The win % shows that the majority of the monsters are pretty easy to kill except for the kobold early on and most of the level 7+ creatures. I’ve made the hero level equal to the monster that he’s fighting otherwise, most of the win % past level 1 would be 0%.

I’m pretty excited about making the combat system and tweaking these numbers to make a relatively challenging game. Once the percentages are in the right ball park area, then it would be up to some real alpha testing to make sure they reflect actual difficulty because it could be easy for the hero to use hit and run tactics to wear down their opponents unless I get really nasty and make the monsters heal… hum interesting.

So this should occupy me for a few more weeks next year. I’ve deployed the current version of the arena to game.castleofthewinds.com/#/arena for those who wants to play around with it. Not very impressive so far… well, it depends on when you’re reading this.

2016 - Summary

So this is it. I’m off on holidays in two days and this entry would mark both the last blog entry and the last check-in and deploy of the year! And what a year it has been.

This year, I started a new job, which in itself isn’t very impressive since in the last 4 years, I’ve been job hopping quite a bit. Funny, in the first 8 years of my career I’ve had 2 jobs, and in the last 4, I’ve had 4 jobs. But what has been different is that I’ve completely switch stacks from .NET to Ruby, from React to Ember, Windows to Mac and MSSQL to Postgres, well, that last one is quite similar. Haven’t gotten deep enough to know the difference yet.

I’ve started riding a bike to work and a few months ago, got rid of our second car! So my options are now bike or train. The bike is amazing and I feel that it’s a integral part of my life now. In this year, I’ve ridden 5000km, lost 15kg, gotten alot fitter and probably saved a few thousand in petrol, insurance and maintenance. But these are minor benefits. For me, getting on the bike and riding to work is a form of meditation and pain! It’s a mental escape for when my mind slips into those dark brooding moods of depressive and negative thoughts. Those rides allows me to focus on pedaling and nothing else, just like how this project allows me to focus (for those small moments) on the pure joy of coding and nothing else around me.

I met Elm. I should thank the guy who got me into it. It’s probably the best technical thing that’s happened to me in a long time. Some things in the language just feels so right. In my decade of coding, there’s really nothing that has compared to what I feel now when I’m writing Elm and this is something I want to get involved in much more in 2017. I have noticed that in more recent times, my C# and my Javascript have mostly been written in a pure functional way anyway. Especially in React recently, but these languages uses pure functions like a crutch to the flaws in their syntax where as Elm feels natural, simple and powerful with ADTs, pure functions, global states and no null types.

Castle of the Winds is still alive and actually looks like it’s about half way! So it’s definitely been a slog. Especially in the last month. And in the dungeon generation phase. I’ve asked myself a couple of times, why am I doing this? I mean, I’m remaking a game that’s existing, that you can get an emulator and play, that most people won’t even want to play. So why am I remaking this? And spending hours of my evenings, most evenings after work, sometimes even taking time away from the family, to remake a old RPG. Wow, that’s a pretty strong case to stop right there…

Five years ago, as I was leaving my then company that I’d spent 4 years of blood and sweat at, relationships in tatters, without a job to go to and in the throes of a damaging and debilitating depressive period of my life, I would not have imagined myself where I am now. In fact, all my imaginings were pretty bleak and dark. I’m not exactly sure what happened in that time, but somehow I found something to keep me going, step after step, day after day. I learned to accept the things that I could not change. I learned to stop chasing the perfect path and live with the mistakes that’s been made, and make the best out of them. And I started to consciously do the things that mattered most to me. I didn’t know where I was going then and I still don’t know any better now, but I trusted that if I stayed true to myself that things would work out and they have.

So I’m going to keep doing the things that matters most to me, keep exploring my interests and trust that whatever it is I’m looking for will become clearer in time.