What's new
Frozen in Carbonite

Welcome to FiC! Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Kanata's Godot Game Devlog (Old)

Startup

Kanata.EXE

Programmer
Author
Kanata's Godot Game Devlog
Startup


Hello, everyone. My name is Kanata, Kanata.EXE. Welcome to my Godot Game Devlog.

This is my development log of me making some video games. I just thought that I should record my progress as an amateur game developer and share it with everyone. This also pushes me to be more productive by keep updating my state of game development. I was thinking to start with YouTube first, but it's much more complicated, so I decide to choose post-by-post devlog.

1200px-Unity_Technologies_logo.svg.png

Unity

Before using Godot, I was using Unity for developing games. My first game was 2D Space Shooter like those games in arcades. I learned to make it from a 2D Space Shooter tutorial by Pixelelement Games. Unfortunately, I deleted the project, so I can't show the end result.

1920px-Godot_logo.svg.png

Godot

After using Unity for a while, I switched to Godot Engine. For me, Godot is much better than Unity. The engine is much smaller than Unity, its UI is much more intuitive, and GDScript allows for fast prototyping. Those are the reasons why I switch to Godot.

Now that's out of the way, let's go down to my game development, shall we?

List of Games:
Xeno Platformer (2D Platformer) (Abandoned)
Plane in a Cavern (Flappy Bird-Style) (Completed)
Zig-Zag (2D Endless Runner) (Completed)
 
Last edited:
Xeno Platformer Part 01 - Making the Levels
Kanata's Godot Game Devlog
Xeno Platformer
Part 01 - Making the Levels


cWgpqMD.png

Level 02​

Hello, everyone. This is Kanata.EXE. Welcome to Xeno Platformer.

Xeno Platformer is a 2D platformer game like Mario games. To be honest, I wanted to make an action platformer game, but with the limited assets I have from Kenney, I decided to make it a simple platformer and focus on solid gameplay first.

Anyway, I'm currently making the levels for the game. Making the levels is both easy and hard. Easy because I just have to put the tile to my need like playing sandbox. Hard because I need to make it challenging for the players. Too easy will make the player bored playing it. Too hard will make the player quit, unless I want to make a rage-inducing game.

iZCVZz0.png


xTnhoIT.png

Decorations play important roles too. Without them, the world feels empty and has so much wasted space. So I decorate the world with bushes and plants. I wish I could use trees, but the asset doesn't have them, so I make use of anything from it.

OwPvrOd.png


nCgzZPa.png

I'm planning to make five to nine levels with each level having their own theme. For example, level 01 is grassland and level 02 is floating land. From the asset, I can make mountains, snowlands, and other levels too.

That's all for this part. See you later.
 
Xeno Platformer Part 02 - Making the HUD
Kanata's Godot Game Devlog
Xeno Platformer
Part 02 - Making the HUD


Hello, everyone. This is Kanata.EXE.

I'm working on the HUD (Head-Up Display) where it shows the time and the score of the player. Making the HUD is quite easy. Just make the Control Node and add some labels to it.

rUOX6bA.png

The Nodes of HUD

GRHMbGK.png

HUD​

But... looking at this, it looks pretty bland, isn't it? It doesn't look appetizing to the eyes.

The good thing is Kenney does provide some fonts for the developer. I have been experimenting with which font I should choose. In the end, I decided to go with the Kenney Rocket font. It looks clear and futuristic.

AjUuMWM.png

Text with Kenney Rocket font

oxAM8Km.png

Game Test with HUD​

But unfortunately, the game won't record how much time has passed or how much score the player has earned. One way to store them is to use a singleton. To put it simply, it's a class that you can access anywhere on the game. You can instantiate it in the very beginning where the game got booted up.

That will be the next thing I will do. I see you later.
 
Xeno Platformer Part 03 - Fixing HUD and Restructuring the Scenes
Xeno Platformer
Part 03 - Fixing HUD and Restructuring the Scenes


Hello, everyone. This is Kanata.EXE.

Sorry, I have been busy this week. Doing Godot tutorials, Steam Winter Sale on December 22, testing all the games on my laptop if they run or not, and my big sister and big brother come to our house with their children. So yeah... it has been a busy week.

Still... I should at least update the state of the game. I need to record the progress.

Anyway, I fixed the HUD. The HUD was not wrong, but there was an easy way to put the nodes. I should had used the container to contain the nodes. It will automatically put the nodes where it should belong by the engine.

EUoowVL.png

HUD with Containers

QNgp347.png

The HUD Structure​

I also decided to restructure the scenes. The previous structure was... not wrong, but it would be confusing to other people. A good code is a code that can be read by others. So I want to apply that here too.

So the best way is to use a Main scene as the entry point. I can use the Main scene to change the level when the player completes the level. This is also one of the suggestions in Godot Engine documentation.

tB5u8zj.png

The Structure of the Main Scene​

I haven't forgotten the script for storing score and time. I have made them, but I haven't implemented them yet.

... I think it's more like I don't know how to implement it yet. There are multiple ways to do it. I'm trying to find which one is the best while also learning how to. Besides, in the future, I know which one I should choose.

I'm currently asking other Godot game developers about it. It takes time, but there should be an answer to it.

I think that's all for this post. I'm gonna try to update this more frequently. Maybe Wednesday and Friday/Saturday. I see what I can do.
 
Xeno Platformer Part 04 - Getting the HUD Working and Fixing the Slimes
Xeno Platformer
Part 04 - Getting the HUD Working and Fixing the Slimes


Hello, everyone. This is Kanata.EXE.

Sorry, I can't post this Wednesday. It seems I can only post this once a week, not two a week. I guess from now on this will be a weekly thread.

Anyway... about the HUD, I've got it working fine. I've been speaking with other Godot game developers about it. How do you make it work, what would be the best practice, and so on. Thanks to them, I've got this HUD work.

wTDTezx.png

But... I still need to review this code with others. I feel like something doesn't feel right about it. Like it works, but not exactly efficient.

mwTt7Ew.png

I also rework the enemy scene. I previously use duplication, not inheritance. That means if I need to tweak something, I have to do it three times with precision. So I want to fix that by making one Slime scene as the parent and Slime_Color as the children.

5NDrU3X.png

What I want to do next is to make the game over condition (For example, when the player reaches the flag, the level is clear) and make the main screen.

Oh, another thing. Happy New Year, everyone.
 
Xeno Platformer Part 05 - Fixing Sprite, Flag & Groups
Xeno Platformer
Part 05 - Fixing Sprite, Flag & Groups


Hello, everyone. This is Kanata.EXE.

I've been fixing some of the problems I have with the games. For example, some of the outermost pixels of certain objects. When I'm using sprite, there's a leftover from the cut. People will notice the leftover, so I want to fix that.

ilpGQD3.png

There are several ways to fix this problem. The first solution is to turn off the filter in the import setting. The second solution is to use a texture region that is slightly smaller than each grid cell in the texture. The last solution is to make enough margin/space.

I choose the first solution. The outermost pixels are gone, but it's not filtered well. The sprite looks rough and crude. I could have just arranged the sprite sheet again using GIMP, but I want to use the simplest one. Maybe next time I will arrange it.

b0gXTxU.png

I'm also working on the goal post for the player to finish the level. On the sprite sheet from Kenney, the flag is the logical object for the goal post. I was thinking to use a star, but I think I can use it as a power-up.

DyeUb7L.png


33wagXX.png

Another thing, I add a group into the game. A group is basically similar to a tag in Unity. If you want the player to stomp enemies, but don't want to stomp other objects like a flag, you can use a group to... group them.

0PTE64V.png

I haven't implemented the method to finish the level. There are things I have to consider first, like how the flag interacts with the main scene. It's something I want to talk about on the forum and official discord of Godot.

...

Sorry if this post is short. Looking at the previous posts, I should have updated it 2-3 days later after the last post, but things happen IRL. Both my nephews are together at my house, so it's quite noisy and busy. Not to mention, the oldest one has a virtual school that I sometimes help with. And... well... motivation. My motivation is low.

... maybe I should try making another game if I found this boring? That's an option. I can switch between two games if I ever bored.
 
Hmm. So these are default art assets, right?

What format are they?
 
Xeno Platformer
Part 06 - Screens & Levels

Hello, everyone. This is Kanata.EXE.

Sorry for the late post. Things happen IRL, so I have to post this late.

Anyway... I'm currently working on the start screen and the result screen. Start screen is a screen when you enter the game. Result screen is a screen that shows the result of the level. I think those are self-explanatory.

aa8QQdy.png


ERYO2Gn.png

To be honest... I don't like the background right now. I want to color the background with something else. I'm currently asking other developer about it. I'm thinking to use dark blue for both background.

I also ask about how to properly switch the levels. There are two methods to do it. The first method is using a LevelManager node. As the name suggests, it's a node to manage level. One Person suggests to use singleton for that, but this method is quite complicated, so I don't use it.

The second method is using signal. Basically, when the player reaches the flag, it will trigger a signal to the level - in this case, Level01. Then the level will trigger signal to the main node. The main node will then change the level. Though in this case, it will change to the result screen. Unfortunately, I haven't tested this method yet.

This method is recommended by other developer, like KidsCanCode. They suggest not to access the parent through Get_Node method. It's best to use Signal if you want to change something.

933SUM5.png


UKlmBcN.png


4bQsgX3.png

...

Sorry, but I'm thinking to take a break. I need to sort something out IRL.

Hopefully, the next two weeks, I can go back posting this again.
 
Interlude 001
Interlude 001

Hello, everyone. This is Kanata.EXE.

It has been two weeks and more since the last time I posted (17 days). I should probably update my status right now.

Since the last post, I have been taking care of my problem. I also doing some Godot tutorials on YouTube when I have free time. Need to keep myself busy.

rvwZkyn.png


b6Met0B.png

Right now, I'm working on my android game. I need to make some money for myself, so I'm diving into the android game business.

The Xeno Platformer will be stopped right now. I need to make some money for myself.

I'm gonna post the next update when it's published.
 
Last edited:
Plane in a Cavern
Hello, everyone! This is Kanata.EXE!

After two months, I've finally published my android game on Playstore.

It's named...

pVBB3t8.png

...

...

...

*Sounds of chair scrambling*

Wait! Come back! I have an explanation! There's a reason why I make a Flappy Bird-style game!

I was thinking about what game I should make first for playstore. I need something simple so I can learn the process of publishing games there and learn how AdMob works. In the end, the Flappy Bird-style game was my first choice. There are tutorials about making it online, so it should be easy.

I thought that within one month, I will be able to finish this, but things... happen. To be more precise, during the export and publishing where things got complicated.
  1. Android Export: There's a manual about exporting as an android game, but there were some unexpected things that happen because I use Linux. For example, Godot can't find the jarsigner even though it's there. Turns out, I have to download it from the website, not through flathub.
  2. Opening account: In order to publish games, I have to pay $25 for registration using a credit card. I don't have any, but my brother has one. I have to wait about a week since he's away.
  3. Assets are used: I previously used Kenney for the game. In hindsight, I should have used something else because it violates the impersonation policy. So I make the new assets all by myself. This takes me about two weeks.
  4. Waiting game: The waiting is... long. When I first try to publish it, I have to wait for three days for confirmation.
  5. Visiting Grandparent: When I published my game, I was away from home to visit my grandparent. I haven't visited her for three years. It was then I got the warning to change the assets and there was no connection on the village.
What was meant to be a one-month project becomes 2+ months.

The last thing I'm handling right now is the AdMob. You see, when it's registered, it will show test ads, not real ads. I have to wait for Google to display it. I ask other developers about it, but it's very opaque. The best way is to make as many requests as you can. In other words, I have to showcase this game to others.


If you're interested to check it out, I put the link below. It will also help me in this trying time.

-Redacted-
 
Last edited:
Tried it

...

and remembered that my reflexes are shit.

Good game so far, though. Congratulations.

Edit: just reviewed it. Sorry I didn't give you a five or four star though.
 
Hello, everyone! This is Kanata.EXE!

After two months, I've finally published my android game on Playstore.

It's named...

pVBB3t8.png

...

...

...

*Sounds of chair scrambling*

Wait! Come back! I have an explanation! There's a reason why I make a Flappy Bird-style game!

I was thinking about what game I should make first for playstore. I need something simple so I can learn the process of publishing games there and learn how AdMob works. In the end, the Flappy Bird-style game was my first choice. There are tutorials about making it online, so it should be easy.

I thought that within one month, I will be able to finish this, but things... happen. To be more precise, during the export and publishing where things got complicated.
  1. Android Export: There's a manual about exporting as an android game, but there were some unexpected things that happen because I use Linux. For example, Godot can't find the jarsigner even though it's there. Turns out, I have to download it from the website, not through flathub.
  2. Opening account: In order to publish games, I have to pay $25 for registration using a credit card. I don't have any, but my brother has one. I have to wait about a week since he's away.
  3. Assets are used: I previously used Kenney for the game. In hindsight, I should have used something else because it violates the impersonation policy. So I make the new assets all by myself. This takes me about two weeks.
  4. Waiting game: The waiting is... long. When I first try to publish it, I have to wait for three days for confirmation.
  5. Visiting Grandparent: When I published my game, I was away from home to visit my grandparent. I haven't visited her for three years. It was then I got the warning to change the assets and there was no connection on the village.
What was meant to be a one-month project becomes 2+ months.

The last thing I'm handling right now is the AdMob. You see, when it's registered, it will show test ads, not real ads. I have to wait for Google to display it. I ask other developers about it, but it's very opaque. The best way is to make as many requests as you can. In other words, I have to showcase this game to others.


If you're interested to check it out, I put the link below. It will also help me in this trying time.

Congrats comrade on your game. I like the simplicity of the game. Need improvement on texture but that's fine. 4.1/5. Good job!!
 
Plane in a Cavern - Update
This is an update about my first android game.

Almost two weeks, I haven't got any revenue from the ads. This is weird because I should've got it maybe a few days at best.

Turn out, I made a mistake on the AdMob plugin. As the result, it keeps showing test ads instead of real ads. That's why I don't get any revenue. Thankfully, I just fixed it yesterday. So I finally got some revenues, if still small.

I also decided to update the game a little bit. I change the ad unit to both interstitial and banner ads. The reason is that I need to comply with Google's policy about it. So, there will be no coins system and you can keep playing it. Though, after the 3rd game, it will show the ad.

JpBx4W8.png


Lfmyt9M.png

I was thinking to add a leaderboard into the game, but I want to move on to the next project. Besides, my goals were to understand how publications work on Play Store and how AdMob works. Maybe I'm gonna use it on the next project.

Anyway, if you have the game, I suggest you update it. And if you're interested to play it, I have the link below.

-Redacted-
 
Last edited:
Zig-Zag (Temp Title): Vertical 2d Endless Runner - Part 0
Hello world. This is Kanata.EXE. I'm here to announce my next game.

I will call it Zig-Zag for now. The title will be different on the release.

It's a vertical 2d endless runner where you try to avoid obstacles. The twist is that you can only move zig-zag. So each tap will change the direction of the player.

I'm currently working on making the obstacles. Once I'm happy with it, I'm gonna work on the next part.

1tNdPS0.png


1C0cAQP.png
 
Zig-Zag (Temp Title): Vertical 2d Endless Runner - Part 1
Hello everyone. This is Kanata.EXE.

Sorry, it has been almost 3 weeks since the last update. Things happen, so I can't focus on the game.

Anyway, I'm still working on the obstacles. I've added more variety of obstacles to make it exciting. I also work on the UI menus a little bit.

jV5CHeL.png
VEWiBEd.png
xD0Rxea.png


Right now, I'm thinking to add more obstacles. I still have some obstacles that I want to implement.

Another thing is color. As you can see, it's still very colorless. Thankfully, Godot has a modulate, so I can make it colorful in-game.

That's all for now. I see you later.
 
Zig-Zag (Temp Title): Vertical 2d Endless Runner - Part 2: Colors and Background
I have added some color to the walls and the player. I also add some particles to make the background attractive.

Honestly? This looks pretty good.


5Y2ksIt.png


oISQ0O8.png
KWCJxKF.png
q05BqjD.png

Yes, I know the obstacles are still white. I'm currently thinking about how to make it colorful through code.
 
Zig-Zag (Temp Title): Vertical 2d Endless Runner - Part 3: Coloring the Obstacles and Working on the Menus
Hello, everyone. This is Kanata.EXE. It's almost a week since the last time I posted.

About the color of the obstacles, I was able to paint a color a few days ago. The best way to do it is by using a set of colors and then randomly pick one color. I could go and randomize the color, but there's a chance that it will be dark, so I drop that idea.

v42aPQq.png

The node structure of Obstacles

jNxkEnO.png

The Result​

I also decide to add an animation when the player hit an obstacle. The player, the obstacles, and the walls will become smaller and invisible and then it will be gone.

Sorry, I don't have a video to showcase it. Maybe another time.

Now that the gameplay is set, I can work on the menus. I've designed some of the menus. All that left is connecting each menu through a script. I'm also gonna work on the high score and leaderboard later.

vgrBZvw.png
mzHXIMO.png
pOpBFXY.png
 
Zig-Zag (Temp Title): Vertical 2d Endless Runner - Part 4: Leaderboard
Yesterday, I just finished my game and created the release for it. I originally wanted this to be the last post, but considering the reviewing takes a long time, I think I should update this. Besides, there's a chance that the title will be rejected, so might as well make an update for it.

One last addition to the game is the leaderboard system. There's a Godot back-end service for the leaderboard called Silent Wolf. If you know how to code it, the plug-in is pretty simple to use.

G4dzMkU.png

The Leaderboard​

That's all for this post. The next one is the store page and the last post for this game.
 
Where is the game now?

Getting:

We're sorry, the requested URL was not found on this server.
 
Plane in a Cavern. The links on the first post don't work.
 
Back
Top Bottom