Devlog 0 - Getting back into the grind

screenshot of a pixel art player in an empty grass world
"Hello World" -player in vamp-game

Hey all–it's been a minute!

Actually its been exactly 8 months since my last post about my gamedev journey. To be honest I've had an itch to work on my side projects for awhile now but work has just been way to busy that I lost the motivation to program after hours. After a much needed break I'm ready to get back into it.

Starting this year I've made the commitment to myself on regular blog updates and to re-ignite my deep-rooted gamedev passion.

Let's set some expectations... this will be the first game I've built in over 3 years. I have no expectations of selling it, rather my whole goal with the project is, by the end of it, to be able to say that I have completed a game project from start to finish.

_Starting Off Slow

To get back into the groove of making games, I want to focus on the workflow and game design without having to think too much about what makes a game fun... I know this sounds counterproductive but stick with me.

I'd like to use an existing game's mechanics as a sort of "framework" so that I can spend more time planning and learning how to effectively use my game engine and tools. That way, when it comes time to build a passion project game I already have experience with the gamedev workflow!

So what game am I using for reference? That's right, you guessed it– Vampire Survivors!

screenshot of vampire survivors gameplay
The gothic pixel beauty that is Vampire Survivors

Vamp-Game (I know great name) will be built in the Godot 4 game engine and is designed as a web game first and foremost. If there is time after the initial game is finished I'll attempt a mobile port.

Speaking of finishing a game, here is an initial feature list for what I consider the finished game project to look like:

MVP Goals

  • Score is based on time alive, player has to fight waves of enemies to survive.
  • Player can collect coins to buy items at shops that spawn throughout the world.
  • Several powerups can be picked up by the player to enhance stats, the player can also level-up / layer these power ups to become more powerful.
  • Player has weapons they can also use that are interactable.
  • Stretch goals: Building system, online stats, multiplayer?!?!

_Structuring Godot Project

It sounds a little silly to say but one of the biggest blockers for me starting a project is the actual project/file structure of the source code. I don't know how many hours I spent researching the most optimal source code structure for Godot project but as with all things in life, nothing is perfect.

Premature optimization is the root of all evil.

-Sir Tony Hoare

After a while I YOLO'd it and just used a feature-folder-like system for storing the entities while separating the core game logic, world levels, and UI into separate folders.

Screenshot of the Godot File System for vamp-game
Here is how the folder structure looks in Godot

Using this structure allows me to separate all my source code and assets into specific entity folders that pertain to an object within the game. So, for example, all my player art, code, and scenes, are located in the assets/entities/player folder.

We'll have to see how this folder structure scales but I like it so far because it keeps all the files I need for an entity in one spot.

_Smooth Camera Implementation

0:00
/0:19

One of the aspects of the original Vampire Survivor that I dislike the most is the lack of dynamic feeling in the camera. The camera feels quite stiff, there is no sense of speed based on the pure movement of the player.

I wanted to change that in my game, and to do that I created a simple script for the camera to lead the player by a certain distance. This allows the player to see any potential obstacles that are in their direction of movement

Also, I added a zooming system because why not? Zoom in to see all the little details of the player, or zoom out to see a better view of what's attacking you.

_Conclusion

Thank you for reading the first installment of my devlog for vamp-game. My next tasks for the game are to create a working in-game UI system and to create a weapon system.

I'll be posting more regular devlogs here now that I have a structure to follow.

I also hope to accompany these devlogs with a YouTube video version, but I'll save that for when I have more exciting things to talk about.