My first actual game in Godot. The game idea is based on a scratch game i made couple years ago. Play as a monster that catches asteroids in an arcade-like Gameplay.
My first actual game in Godot. The game idea is based on a scratch game i made couple years ago. Play as a monster that catches asteroids in an arcade-like Gameplay.
Changed all this:
Log in to leave a comment
I added support for color blindness in the main menu. A playtester had some problems distinguishing the asteroids, this should be better
Log in to leave a comment
My first game! I definitely learned the basics to make other games now, more coming soon ;)
The Gameplay is very simple and arcade-y. You need to catch the green asteroids and dodge the red ones. I would love to hear your people’s high-scores. Mine is 37.
It was a very fun experience, and it’s not really programming, but I’m proud of the music too.
Added a tutorial and music. I made the music completely myself, in Renoise.
The game is now in a state where I am comfortable with shipping it, which I will probably do now.
What a ride! :)
Log in to leave a comment
VISUAL OVERHAUL PART 3 (Sound effects):
Added three sound effects for catching asteroids, one for selecting buttons, and one for dying.
Next up will be the music. I don’t know how long that will take. Still a newbie to Renoise
Log in to leave a comment
VISUAL OVERHAUL PART 2 (Sprites and Fonts):
With the NES-NTSC color pallete, I updates all sprites. And with the Mr Robot font, I updated all the text in the game, also using the sprites colors. Let me know what you think!
Next up would be the sound effects and music. But I have to figure out how to make Renoise run on Linux first.
VISUAL OVERHAUL PART 1 (Background):
This took 2 days because i couldn’t really figure out what exactly i wanted to do with the visuals. My first inspiration was Moonpong and its trippy background, but i’m not really hyped about learning a whole shader language. So i wasted some time trying that.
Then I found this game called “VVVVVV”. This and ss14 are the inspirations for the space parallax background, and I will use VVVVVV as a color reference for the next sprite changes.
I am actually going psychotic.
First, i wanted to add a fullscreen, but after testing, I didn’t include one because windowed players would have an advantage.
Then, i tried to fix the dreaded occasional frame drops. I implemented a whole pooling system just to fix it, only for the stutters to still be there. I included a stutter tracker that shows the stutters in the console. Please, if someone could clone the repo, look at the project themselves and tell me what is going wrong, PLEASE tell me. I wasted 1 hour (2 hours because godot just closed in the middle of editing) for a fix that didn’t do anything.
Log in to leave a comment
Changed a few variables names and fixed the bug where the time in between Asteroid spawns would decrease infinitely until 0, essentialy making it unplayable.
Before I get on with the “Complete Visual and Audio Overhaul”, i want to make sure the Gameplay is as good as it can be. If you have any Gameplay related ideas i could add, please tell me! The current Gameplay is in a video from the previous devlog. I will also set up a repo for the game in a minute so you can playtest it yourself.
Log in to leave a comment
I added a system that increases the difficulty over time. It took so long because there are so many timers to keep track of, and i had to rewrite some code to fit that.
The video shows how the difficulty of the game gets harder as time goes on. The console shows some useful information for you guys.
I added a high score and the automatic saving of it. I didn’t really run into issues so there isn’t much to say about that.
But i had a bug: When detecting if a badAsteroid entered the player collision, it would use the parents name as reference. This wasn’t good because Godot names instances like this “Node2D@10”. So sometimes my detection just didn’t work because of the name. I fixed this by adding a new badAsteroids group and setting the detection to reference this instead.
The video showcases the high score and saving features even when closing the project.
Log in to leave a comment
Added the bad asteroids and a Game Over screen. It pauses the game and shows to options. Either to restart, or to exit. This whole process was relatively easy to implement.
The next game play addition will probably be the difficulty rising over time. And a high score
Log in to leave a comment
To prepare for the main menu, i restructured all my nodes. So now i basically have the main node that instances the menu, then the spawner, and the spawner instances the rest.
The video shows in the remote tab how the main node instances the menu, the menu deleting itself, and the spawner being added
Log in to leave a comment
This one took waaaay longer than expected. My first goal was to change the movement from keyboard keys to following the mouse. When starting that one, it led me to the first fix:
If next time there aren’t a million deviations like today, i will definitely add the main menu. And if the main menu coding goes by fast, then I’ll add the dangerous asteroid causing a game-over too
I am getting more and more used to Godot, and its starting to get smooth.
This time, i fixed two bugs:
I didn’t have much time today so this is a short one.
I modified the spawner so it now spawns multiple asteroids, at different y-positions inside the viewport, and different times between 1.5 and 2.5 seconds.
The only thing i was ‘stuck’ on for a moment was getting the random y-position to work, but I’m surprised at how quick i was able to make it work.
Next time I’ll fix the player collisions so only asteroids that passed the outer collision can get accepted by the inner collision as a point (see image for reference)
I am slowly running out of ideas to add. so feel free to give suggestions please!
Log in to leave a comment
The reason this took me so long is because signals were hard to understand. And it didn’t help that i kept seeing different results for godot 3 and godot 4 when googling for help.
What I added was two collisions to the player, one outer collision (changes to the open mouth sprite) and a inner collision (changes to the closed mouth sprite and emits a signal to the scoreboard) that get activated when the asteroid enters them.
I’m still not sure if I understand signals 100%, but at least i have something. You have to make it exist first to make it good later, right?
Log in to leave a comment
I added the asteroid this time. It took a while because I am still figuring out Godot and all its stuff, but it worked!
Figuring out the instancing was my biggest problem, because I didn’t know that I had the player scene as the main scene, and so my spawner script didn’t instance. I fixed this by moving the spawner into the player scene. I tried setting my main node as the main scene, but the asteroid visibilty was a bit weird. Next time i’ll fix it, i dont know what stopped me really.
Right now the asteroid moves to the right, but doesn’t have any interaction whatsoever, it just slides forever to the right.
If there are any ways to do stuff better, then please comment! I am still learning, so any help is appreciated
Log in to leave a comment
As an introduction, i want to explain the game idea I want to go for. It is based on a game I made in scratch a few years ago.
The player can control a character that can only move up and down on the y-axis. With that movement, the player has to catch objects that spawn from the left side.
I first made the sprite for the player and set up the movement. Getting into GDScript took a bit, but setting up the movement was relatively easy. Only problem is that the sprite looks weird for a few frames sometimes, you should be able to see that in the video. If anyone has any ideas on how to fix it, please tell me.
Log in to leave a comment