In my last post I discussed my experiences in LD26, gave a nudge to Walk Softly (a continuation of our Ludum Dare game), and introduced my latest project – creating a modern reimagination of the popular Shockwave game Spybot: The Nightfall Incident. In this post, I intend to expand on the last part, as well as provide some screenshots of the current progress so far.
This Is Not The First
The two main reasons why I decided to recreate Spybot: The Nightfall Incident (note, however, that this is not an exact recreation) are because of its popularity as a Shockwave game and because I liked playing it. In fact, it is one of the highest rated Shockwave games on Jayisgames, an online arcade portal and is still fun to play today. If you have never played it, I highly recommend downloading Shockwave and giving it a try.
Indie game developers get a lot of inspiration from older games they have played that they enjoyed. When searching for ideas on what to work on next (yes, ideas can be hard sometimes), we often look to the games we enjoyed, find a few flaws or aspects that could be improved, then start working on ‘reimagining’ the older game. These reimaginations are often called spiritual successors and include the general feel of the previous game but incorporate a different story/setting and add elements to make the game more modern. BioShock being a spiritual successor to System Shock 2, and Assassins Creed being a spiritual successor to Prince of Persia are two good examples of this in mainstream gaming.
The idea of a spiritual successor to Spybot: The Nightfall Incident is something I have toyed with in my mind for quite some time, and I’m not the first to try to do this. A quick YouTube search pulls up a work-in-progress of ApparentEtch’s port to iOS, which at this time of writing is over 2 years old, meaning it is likely vaporware (digitally nonexistent) by now. A Google search pulls up a port of the game to Java, with added mechanics and a different story. However, just like ApparentEtch’s port, the last update to the Java port is over 2 years ago, meaning the project is likely abandoned.
I am unaware of the reasons behind both projects being dead. It seems like ApparentEtch wanted to make an exact copy of the game and port to iOS, which brings up legal issues and requires approving from Lego. An exact copy is never something you can pull off nowadays, and if you’re going to put work into a project then you’re best off making a spiritual successor so your work actually becomes your game. Stravant (author of the Java port) seems to have just gotten tired of the project (game developers call this ‘burnout’), or had to quit for personal reasons. My goal is to succeed where they have failed, and see this project to the end.
Almost every indie game nowadays starts with a prototype of the gameplay. This is because the story and the media do not matter as much if the gameplay itself is uninteresting, so we work on getting this aspect solidified before adding in the polish. Many mainstream game developers still prefer a top-down approach, and for companies with great designers (believe me, game design is a hard job to do well), this approach can still work. Still, there are some very famous disasters, with the most recent one being Final Fantasy XIII, a game praised for graphics but criticized on almost every other aspect from poor level design to poor story development. By developing a prototype first, developers who are not very skilled in design (such as myself) can slowly craft a game that works out its kinks. For CoHack, my first goal is to create a working prototype of the battle system, and that is what I am going to showcase in this post.
Battles in Spybot: The Nightfall Incident
This is what the player sees during a battle in Spybot: The Nightfall Incident. I’m including this image here for comparison.
The following pictures will showcase what my prototype looks like.
Start of The Battle
Right now, the prototype starts by creating 3 spawn points for the player and computer, then generated a random grid. My goal is to create a prototype that would offer a slightly different experience for the player each time, and if I ever add multiplayer to the game then random grid generation could be a useful feature.
The entire game right now is touch-operated, meaning everything is currently designed to work with iOS and Android devices. I personally test the prototype on my iPad to ensure it maintains a solid framerate. The game has mouse fallback, so if your device doesn’t have touch input (such as PC), you can use the mouse to ‘simulate’ a touch.
The highlighting of the spawn point in the image is rather faint, but if you take a look at the full resolution image, you should be able to see which spawning point is currently selected.
With the UI in CoHack, I’ve decided to deviate from the placement the UI had in Spybot: The Nightfall Incident and move it to the bottom. I believe the UI in the Shockwave is awkwardly placed on the left, and that a bottom UI is more reminiscent of modern strategy games (Command & Conquer, Might and Magic, etc.). In addition, I’ve split the UI into three sections – a left section that shows the player information about the currently selected object, a middle section that gives the player options based on the selected object, and a right section for displaying crucial in-game information such as victory conditions and other special conditions such as showing the player how many turns they have left to win. This right section is not being used at this time of writing.
After the player has finished spawning, a notification appears and then the computer spawns its programs. The computer spawning happens quite quickly because my intention is to minimize the amount of time the computer spends on its turn while still making its actions recognizable and understandable to the player.
This is the aspect of the prototype I am currently working on. Player object movement is working but currently not to a polished state. I am working on cleaning up program movement before I go on to add other parts of the player turn, such as combat. For now, each player object only has the ‘No Action’ option after it has expired its maximum number of moves that turn.
After cleaning up the small (but noticeable) issues in player object movement, I will move on to add computer program movement and basic AI. Computer behavior is one of the most challenging parts of development, and this is why many games are often criticized for terrible AI. I will try my best to eventually create an AI that is smarter than the behaviors used in Spybot: The Nightfall Incident, but I cannot guarantee that the prototype will actually feature such improvements as my main goal is to create a working prototype for public display.
The very last thing I will likely do for the prototype is find a sci-fi/computer font to use. If you know of any good ones, please let me know!