It turned out that a month has passed already since my last blog post. Clearly I got distracted from any kind od game development activities for too long.
Anyway, I wanted to share some of my experiences from the development process of 1 Room Demon Slayer game which I've submitted to the 1 Room RPG Jam.
So here goes:
Learn about the jam details
It turned out that the jam did not have any voting activities whatsoever - meaning that after the games have been submitted and the deadline has passed, nothing else happened. That was quite a surprise for me, as I (and surely not only me) was looking forward to see how the others rate my game.
Define gameplay pillars
Yeah, I know that this sounds like a no-brainer - but for a person who did not complete any full game up until now, that is an important thing to remember. Before you actually start building up the game, try to define two or three core aspects of the game. Of course the Jam rules themselves did enforce some gameplay decisions, but they were not that restrictive. So I came up with following pillars:
- Game would be turn-based, but fast paced (by making the interface and interaction as simple as possible),
- The mechanics should be transparent, simple and has as less randomization as possible,
- The game should reward risky play.
Having such core values in place, it is much easier to stay on track when designing stuff. For example: initially I thought about introducing more randomized approach to combat - by introducing to-hit percentage values. However, this made the gameplay too random and disallowed the player to plan ahead their actions - so I decided to drop this.
Have a version control set up
Seriously - if you're not using any kind of version control system, go set it up. This is the only way in which you will be able to track your changes and not to worry about loosing any of your code history. You do not have to necessarily store it in the cloud - it should be sufficient just to set up a local instance of a repository. Aim for Git or Mercurial, or any other kind of distributed version control systems. Personally I am using Mercurial, due to my bigger experience with it.
Use free assets
When you're racing against time, especially in jams with tight deadlines, it is no shame in using some existing stuff. I stated a slightly different opinion myself in that matter, in one of my older blog posts, but I am pretty sure about this now: if you want to deliver stuff, do not waste time on creating the assets yourself.
Make sure someone else playtests your game
Man, this is so crucial. In my case, I went full hardcore and let my wife check the game out. I didn't give her any pointers whatsoever except the possibility to read the readme file. Then I just watched as she tried to understand how stuff works.
The thing is that my spouse is not into gaming whatsoever - so observing her struggling with the interface was actually a great thing, and gave me a lot of pointers on how to improve the flow of the game and its usability.
Unity is cool
Yeah, it is. I love the modular design behind it. I love the fact that I can use Visual Studio when working with the code. And the fact that the community is extremely big and helpful helps even more.
That being said, I haven't really researched what other engines I could use. I went with Unity as I heard good stuff about it. Maybe there is a better 2D game engine out there, waiting for me to be discovered?
That's all the tips I got for now. I am not sure what should I do with my game from the Jam though. I guess that I will try to tweak it a little bit - especially on the visual side (add some animations, effects etc.). This will allow me to know Unity even better.
Take care everyone!