The Crossroads of Choice#
During the era of game cartridges, I dreaded having this game cartridge. Usually, if you had this one, the other games would definitely be games like "Super Mario" or "Rocket Car". If you have experienced the FC era, you should know that these cartridges are all small games that are easy to get tired of. Time has passed, but what remains vivid in my memory are these small games that used to annoy me. So this time, I'm remaking this classic "DigDug", also known as Inflatable Man or Pump Dog.
Organizing Thoughts#
The most important step is...revisiting the classics, howl~ It turns out that I'm still just as bad, I can't get past a few levels before running out of lives~ But that's not important, as long as I understand the basic gameplay, I can start working.
I have played two versions of Inflatable Man, the first one involves pushing soil and inflating, and the second one involves cutting land and inflating. The version I want to remake is the second one.
Game Elements#
1. Attack method: cutting land to make monsters fall into the sea, using a pump to inflate the monsters
2. Monster behavior: they will chase, attack, patrol, and jump into the sea (the monsters jumping into the sea in the original game are very interesting, I will deliberately keep one monster to watch its performance)
3. Types of monsters: from what I observed, there are red bombs and green dinosaurs. I'm not sure if there are other types in later levels because I'm not very skilled.
4. Map features: these maps should have been carefully designed. Back then, my friends and I would compete to see who could cut the largest area of land or kill enemies more effectively.
The above is also an important part of this remake.
Technology Selection#
Engine: In my previous attempts with other projects, I found that exporting to Android with godot4.x was very troublesome. So this time, I will use godot3.5. If nothing unexpected happens, I will continue to use version 3.5 as the default version in the future.
Resources: I will use Aseprite to create pixel art. I didn't completely copy the original, but rather drew what I remembered it looked like.
Music: After listening to pure 8-bit music for a long time, it really gets a bit annoying. So...I won't add any music. In the future, I will try mixing other electronic music with 8-bit, which might be better.
Yang Fan Sets Sail#
Resources, Thoughts, and Preparation#
I don't want the movements of the monsters and characters in the game to be too stiff, so I plan to use 2D skeletal animation technology to make the movements smoother. At the same time, it can reduce the number of resources needed. I drew the monsters like this, but after binding and adjusting the animations, the effect is still good.
I also have some ideas for the gameplay. As a player, I am the same size as the monsters. Why should the monsters die from just a touch? This...is not reasonable. As long as it's not an attack, it shouldn't have any effect. But this weakens the monsters a bit, so I'll give them a charging attack. Since the small dinosaurs are humanoid creatures, they should be able to speak and think as well...
The original UI was simple and good-looking, so I should try to restore it as much as possible.
Building the UI#
First, I will organize and develop all the interfaces that may be used, including the basic layout and the classification of scenes. I will try to restore the original layout and divide the scenes into Logo, selection interface, score interface, and main game interface. By continuously looping, the entire game logic can be completed.
Game Data#
One important element of this game is the map. To make it easier to expand the game map, I am using a 2D array to save the tiles. During the game, the status of the tiles is dynamically determined to refresh the game interface. To facilitate unified management, I have also included the monster data in this data set.
Code Implementation#
The specific logic needs to be seen in the code. Here, I will mainly list the more important parts.
1. The flames of the small dinosaurs and the fuses of the red bombs use particle systems.
2. The small monsters maintain their current state using a state machine, such as attacking and chasing.
3. The monsters use the same skeletal animation. If you want to add more monsters, you just need to bind the skeleton.
4. There are several reserved numbers for the tiles, corresponding to different cracks, which are important indicators of "whether they will fall".
5. The tiles use a tileset. If you want to expand, you just need to adjust the tileset index.
6. The map data uses a flood fill algorithm to calculate the status.
7. If you plan to give the player new weapons, you can take a look at the specific implementation of the pump gun. The pump gun is implemented separately.
Conclusion#
Actually, when I first designed this small project, I had many ideas, such as a map editor, multiplayer mode, vampire gameplay, etc. But they deviated a bit from the original intention of the remake. The purpose of remaking these classic games is to try out gameplay implementation, data usage, and peripheral tools. So, this small project is considered complete.
Finally, I would like to share
Source code version: https://download.csdn.net/download/at555444/88439951
Release version: https://download.csdn.net/download/at555444/88439952