Welcome to part two of the blog series "Remake of a classic game". Here is a link to the first part if you've missed it or you don't know what this is all about. In short, I'm doing a remake of Julian Gollop's hit release from the eighties "Laser Squad" for the Android platform.
Of course not :)
Although I'm in the middle of development, and many features that are planned for the next phase aren't finished yet, I've decided that it would be nice to write a small project update here on Gamasutra after another three months of development. Actually today I'm celebrating a small anniversary; it's the 50th working day on my game. Just as a reminder, I am developing the game completely in my free time, after working hours, alongside with my family commitments. In short, that gives me about two or three hours of coding every third day. It's far away from high speed development, but I'm very satisfied how things are moving forward.
The game is actually almost playable in two player mode, well theoretically it could be playable in a few weeks, if I would concentrate on all the missing things needed to play the game normally. Right now players can chase and shoot each other on the map, with some predefined weapons in their inventory. What's missing is the whole armoring and equipment part of the game, then deploying units and concrete victory conditions for a given scenario (currently only the first scenario from the original game is available). On the other side there are many other things that I would rather do and improve now before jumping onto parts needed to make the game playable.
I would like to share with the audience some of my impressions what I have done right, and what could be done better; I hope some of you will find my tips useful.
I've invested about five months into this project, and that is a hell of a time. It's a hell of a time also because I don't know how many more months I'll need to complete the project. When I look now how the game is developing, I'm very happy not only about the progress, but also that I have chosen such a great game to remake. It would be disastrous for me if I would realize now, after so much time, that the game is going nowhere, or that the original game sucks after all, and it's not worth remaking it.
TIP: If you are going to do a remake, choose the game wisely, choose something what you can expand with your own ideas, something what you can expand without ruining the original game concept.
Another good thing was that I've decided immediately that I'd ignore the graphics and I've separated the UI and rendering stuff completely from the game logic, so it could be easily replaced in future with "whateverIwant" top-Łber-AAA graphics, engine... "orwhateverIcomeupwith". One more convenience was that the in-game map is tiled based, so it could be easily represented with ASCII characters. Later on I've realized that there is a whole game genre called RogueLike games; RPG games with no graphics, just plain ASCII - yes, somehow I've slept over that part of the eighties. I was fascinated how these games can be good looking and currently I'm pretty sure that the first fully playable version of my game will be also done complete with ASCII graphics.
TIP: use mock graphics and sounds at the beginning
So, skipping the whole graphics and rendering part and jumping directly into the game logic and data modeling was very exciting and fun, and it still is. I didn't want to bother at the beginning with intros, title screens, menus and other stuff; a working gameplay was for me priority one.
TIP: jump right into the gameplay, leave other less complex parts for later
It started to be very interesting when I was researching how to implement the field of view and line of sight for units, what units can see when they are looking at a specific direction, which tiles are blocking the view, how to implement some basic AI pathfinding algorithms... etc. I've covered probably almost every feature how to develop a already mentioned RogueLike game, and Laser Squad contains most of those features. I've also found interesting articles covering procedural generation of maps, which is usually used in RPG games, and that gave me an idea that I could also include scenarios in my game where maps are randomly generated.
TIP: do a research even if you know how things work, you may discover something new that you can use in your own game
Unfortunately, I haven't planed at the beginning every aspect of the game in detail what resulted in multiple modifications and plenty of refactorings later on. Sometimes it is very helpful to draw the whole flow and how classes interact with each other on a flip board. Also I haven't had a plan in which order I will be implementing the features, so I've jumped from one topic to another. If I had more time, I would probably use some planning tool or ticketing system for all the features.
TIP: write down all the features, do estimation and milestones, perhaps use a tool for all this
One more negative thing is that I had a few breaks lasting more than a week, and it turned out that this is not so good especially when you're developing more complex parts of the game (in my case - gameplay). Every day away from the code makes it later on much harder to read.
TIP: before taking a longer break, finish all features planned for the current phase
Last but not least, the decision to write a development journal was a very good idea. It's one of the things that is motivating me to continue working on the game.
TIP: write a development journal, or at least make as much screenshots as possible during development
I was thinking about releasing the game as soon as it gets playable, even if it's in the development phase. I hope there are some Laser Squad fans out there who like old school games and can survive the ASCII graphics. I can't promise any release dates, but you are all invited to follow my website and social channels and get the latest news about the game and my other projects:
Thank you for reading.