My Progression With Learning Godot

Hey everyone,

Since Dot-DM is the first game I want to make, I wanted to start providing updates on my progression. My progression for this game will include things that aren’t related to the game since I am completely new to Godot and I want somewhere to write about everything I’m learning. That is why I made this thread.

When I start working on Dot-DM directly, I will unpin this topic and create separate progression updates as topics in this forum.

2-25-24

  • I started messing around with third-party first person shooter (FPS) player controllers and assets since I plan to use them as guidance when creating my own in the future.
  • I found there aren’t many working FPS controllers in Godot 4.2. I know Godot 4.x is in heavy development and also new, so there aren’t going to be many maintainers willing to create assets and maintain them between major versions. However, I hope this changes in the future as Godot gets better and becomes eventually stable. I hope to create our own FPS assets in the future to help developers!

2-26-24

  • I started following and completed about 75% of the Godot 3D game tutorial guide here. I stored the game files on GitHub here!
  • I’ve learned many new editor tools including how to create 3D meshes, view ports, and more!
  • The tutorial wasn’t confirmed to be working on Godot 4.2. So I wasn’t sure how it was going to turn out and how many changes I’d need to make. However, I was able to follow the guide without any major changes or headaches! I do recall there being some very small changes, but I do not remember what they were since I breezed by the tutorial for the most part.

2-27-24

  • I finished the Godot 3D game tutorial on Godot 4.2. While the collision boxes and camera angle were very wonky, everything else worked pretty well! I plan to go back and improve on them!
  • I made a new project named source-engine-stuff and tested FPS controllers that were open source on GitHub and claimed to replicate Source Engine physics since Counter-Strike: Source and its game servers are a big inspiration for my games. I tested a controller by Atlrvrse here and another by BleyChimera here.
  • The controller by Atlrvrse was unfortunately not compatible with Godot 4.2 since it was made with Godot 3. I tried a few things in attempt to port it over, but those failed sadly due to my inexperience with the game engine.
  • The controller by BleyChimera worked pretty well! There are things missing like friction to the floor and such, but I was able to easily import and use it in my project.

Here’s a YouTube video by BleyChimera here which showcases their controller!

Here’s also a video of my source-engines-stuff project from February 27th.

Things I’d like to learn between now and the next progression update include the following.

  • How to improve directional lighting.
  • How to improve textures and scaling.
  • How to add crouching support.
  • Maybe make a singleplayer speed run game for testing where a player is timed from point A to point B?

2-28-24

  • I was very busy with work-related programming today, so I didn’t spend as much time as I would have liked on game development.
  • I watched a YouTube video by Lukky which goes over how to add models, materials, and animations to create a first-person view port for weapons and such. I didn’t follow it, but plan on to in the future.
  • Installed Blender so that I can mess with modeling in the future or exporting existing models for Godot.
  • Created a new Godot project to mess with FPS controllers more along with plans to follow the tutorial above to add models, materials, and animations.
  • I wrote out each line of code from BleyChimera’s FPS controller to better understand movement and physics in Godot. I ran into a weird issue where I’ll be floating on the floor/ground and can ‘ice skate’. If I adjust the FLOOR_RAY_REACH exported variable in the player controller to 0.8 instead of 0.2, I stop when not pressing any keys like normal.

Here’s the video I watched by Lukky!

2-29-24

  • I didn’t put as much time as I’d like, but I did make some progress with the FPS controller I’m making.
  • Added crouching and sprinting support.
  • Added lerp functionality when calculating speeds to make movements smoother.
  • Added a current speed counter that updates every second.

3-1-24

  • Improved overall movements by readjusting code that applies velocity to player.
  • Fixed collisions with “Step” prop by making FPS controller’s collision cylinder more wider (x,z axis).
  • Overhauled file structure of test program I was making by separating scenes and scripts.
  • Added dynamic loading of scenes (maps, player controller, and UI in our case). This allowed me to test how dynamic loading works which will play a VITAL part in our future ServerDot tool!