this week had a little bit of avoidance and i’m putting off doing a big change that i dont want to do, so i’m working on other stuff in the meantime

This week saw the creation of a main menu. i like clean and simple menus so i’m taking inspiration from factorio. simple inputs on a dark background with large margins. i also wanted to use godots inbuilt system as it takes care of controller inputs and tabbing.

cant get much simpler

making the menus was actually quite fun and a good way to organise thoughts on a lot of topics like keybinding and audio options. i ended up using godots TabContainer object for this and it worked great. just hide the tabs and index based on buttonclicks. given that these menus will change in the future i wanted as little code as possible and TabContainer really delivered for this.

one way factorio keeps it interesting is by having example gameplay in the background.

given that the level loading system is actually quite good now i decided to make a background level with the goal of it being needlessly large and complex.

this was also a great way to test the level editor and i found and fixed a bunch of bugs in the process. then i had the game load this level at startup and put a blur over the top.

with the background loop

Pause Menu

the main menu also includes the pause menu, as they serve such a close purpose. the way i did this was by making the main menu have every button in it for pause as well

each element is tagged with pause or main_menu and then listens for game state changes to hide one group and show the other.

Music

I spent a little time making some music loops as well, and put them in the background. godots music steam node was very easy to use and i set up a music manager pretty quickly. its a simple manager compared to the shooting or factory managers and just DJs when to play what track.

each level also has a slot for a music loop though i found the tracks i created got really fucking annoying which prompted me to make a volume bar in settings.

the general kind of music i’m going for is of course industrial but minimal as its only for playing around after all.

Levels

I also rejigged the levels and added a success state as well as bindings for it in the game manager, its pretty simple: when all enemies are dead; wait 1 second then display the victory screen. failure screen is the same with a similar group based hide and show as the main menu/pause screen

i also added a third level thats a bit more chilled and asks the player to test their knowledge learned so far in building to make at least a 2x4 bullet and fire it a very long way to destroy an inactive enemy