My first game that is simple and has some basic actions like moving, opening and etc.. that built with Godot Game Engine version 4.7.
At first, I want to give special thanks to:
- 1 : Kenney, who creates beautiful tilesheets, you can visit www.kenney.nl to get
some free assets.
- 2 : www.opengameart.org website gives us real good and high quality game assets
- 3 : DevWorm channel on YouTube helped me so much
This game is my first game on Godot
I think Godot is a good engine to learn, it's very easy and light, it has a lot of options, and we can find a lot of documents for it
My friends tell me all the time learn Unreal Engine, that engine is better than this and so on
(I know that Unreal Engine is a powerful engine specially in AAA Games!), but because of my system requirements (4GB of RAM and 2 GB VRAM and 7100 CPU), I decided to use an engine that is light and powerful, That is GODOT!
Everything I say here, they are somehow my ideas in creating game, I mean the game structure.
I think nobody can claim one game structure is the best game structure in the world!
I believe "nothing is perfect!"
By the way,
The game structure is in hierarchical
Like this (This is a small sample):
Let's start from top level (Main scene)
Main scene is our start point (In Programming Languages called, Entry Point)
Here in this scene, we have 2 other scenes that we instanced them into it.
We made this scene to run at first in this path:
Project/Project Settings/Application(Run)/Main Scene (Option)
In second scene, we have BaseGround. BaseGround is somehow like a container, it contains all the parts of our world, like city, jungle,beach, sea, and so on.
When we open our BaseGround, we only have Farm(Because we just created this part of our world):
So we open our farm scene:

Here we have 2 containers, Outdoor and Indoor.
In Outdoor, we have tree, grass, water, flowers and so on. One of the reasons that I made it like so, is because of fade in and fade out, I just wanted when the player entered to a place like Home, it focuses to the house and make the outdoor hide(Not remove),and when exited, show the outdoor and hide the indoors.
In indoors container, we have our places(here I just build House)
A preview of Show and Hide:
I designed the outdoors and indoors in Tilemap Layers
We have separated AnimationPlayer node for each place,
with it, we can hide and show the house or outside.
For each place, it should be there!

With Area2D node, we can understand the player states, is it inside or not!
After that, we change the global variable for this, cause in other parts of game we need it.
I connected the signals of it to Homeland place, Each place should have at lease one Script!
This script only has fade in and fade out (Hide and Show).

I created the door scene individually, because I wanted the player control the doors, we just need to instance it on our places and change its children (I wrote some notes on its description in Godot's Inspector)

In indoor container, we have 2 other tilemap layers:
- 1 : The HomeLandBase : that is the body of home
- 2 : The HomeLandDesign as child of HomeLandBase : In this tile we design and decorate the items in our home
Here is Outdoor container, I designed outside with layers on layers
(I know I'm not a good designer => ):
This is our project structure (All the scenes):
Let's take a look of our player scenes:
We have other nodes here like: AnimatedSprite2D,CollisionShape2D,Camera2D
But the important nodes and scenes are :
- 1 : BackGround : Background is the back color of all scenes, when we hide outside this color will show up itself, if we don't use this, we will have null color behind all other scenes.
- 2 : DayAndNight scene : This is for day and night cycle
In this scene, we have 3 nodes, ColorRect that is black and we just change the alpha channel of it, with changing the "A" Channel, we can create day and night cycle
This is some details of how this thing works!
This is preview of Time Cycle:
In DayAndNight scene, the timer works in second, I just entered them as second too, for converting them in minute, just multiply them to 60(On Script, I wrote something as comment, Take a look).
The timer works for 2 parts:
- 1 : For playing animations(Day to night or Night to day)
- 2 : For Day time or Night time
So for these parts, we should have a variable to understand which part we are in, (playing animation or day/night Time),
we use is_playing_animation variable, the next thing we should understand is, which animation (Night to day) or (Day to Night)? and which time? is it day or is it night?
Here we use the value of TimeNow variable
I didn't really build this game for fun (I know this is funny game => ), I just built it to get some experiences from Godot Engine and I wanted to share my experiences with you.
You can use this or contribute to this project or change it as you wish! It's your choice and your game, my friend.
I hope you enjoy my First Game...
That's it. Thanks for reading.
Just for NB!









