Skip to main content

Day 13 Cosmic Horrors Jam

·813 words·4 mins

6:04

Okay. Menus.

6:37

Man, Tim’s work on the big bad room is sick.

8:41

Menus and credits screen

Start at 50% volume because that’s what all the hip kids do.

Just had a thought maybe I won’t go so boring with credits. Make it less hierarchical and more communal. Deciding the order sucks, why have one in the first place?

9:25

Some notes to Niel of the Future.

Start with this structure to make it much easier to add title menu later.

Main
 - GameContainer
   - TheGame
 - (PauseMenu)
 - MusicManager

Don’t use an autoload singleton for game state. I thought I was good for some reason but now that I realize I need to start the game after the player dies, well… I’ve either gotta do a janky solution that might break additional attempts or a refactor.

Whoops.

Pause menu first?

10:46

Learning a lot today. I was hitting escape in the same frame as releasing the movement key and the pause menu wasn’t working. That’s because I was reading the two different events as two escape events and pausing and unpausing in that frame.

So.

Instead of

func _input(_event: Event) -> void:
  if Input.is_action_just_pressed("ui_cancel"):
    ...

What I want is

func _input(event: Event) -> void:
  if event.is_action_pressed("ui_cancel") and !event.is_echo():
    ...

11:11

Another note to Niel of the Future. Gotta figure out how to create controls to add to controls. My AudioControls scene did not work the way I wanted to. Couldn’t figure out how to get the sliders to show up at all. Ended up going back to duplication between the title screen and the pause menu. Oof.

It works but it’s nasty.

11:36

More hacky UI things. When I hit the pause menu “restart” button in the middle of a Dialogic timeline it forces me to finish the dialogue first. Horrible. I couldn’t find anything in the documentation about interrupting a timeline from code but! I can switch to an empty timeline like so:

Dialogic.start_timeline("my_exit_timeline")

And it works! Not pretty bug functional!

Am I done with UI yet? It’s been six hours at it, oof.

I have really made some mistakes here, hah.

12:16

Okay, refactor the global state variables. They always say not to use these and I don’t and then I did and then now here I am.

13:34

Yaaay. Okay. Got rid of them global states. Mostly just involved passing a reference to the game down to each object.

In hindsight I wonder if it was so important or if there was an easier way. Pretty tired after 13 days of game jam and brain isn’t at its best right now but I tested multiple playthrough on the same execution and it all seemed to make sense so.

Phew!

15:49

These weird little problems usually have a solution that makes sense. I couldn’t figure out why, when the dialogue in the endgame was over Prima would exit back to the catacomb corridor. There shouldn’t be any room to spawn to (I checked and there wasn’t).

Turned out, I had a leftover signal connection on Dialogic. When the timeline ended, the handler for NPC room was being triggered and was spawning a new room.

More dangerous globals.

I guess I need to remove that listener even for cases like pressing “Restart” from the pause menu during dialogue. Ouch.

This is getting way into the weeds, though. Bigger fish to fry.

Actually, I don’t think that’s an issue since the signal connections are weak references and the NPC room is unloaded along with the game. But then it should’ve been unloaded when the NPC room was exited, too…

Man.

18:21

Phew. Crashed a bit there but I’m back at it.

Good thing I stepped away. The bug I was struggling with earlier was caused by the dev bar. Clicking the buttons their focused them so when I’m pressing spacebar to move through the dialogue it was also triggering the button.

It wasn’t a lingering listener afterall.

19:56

Got into a groove working on the intro now. I’m mixing some speech bubble segments around a Dialogic segment. I think it’ll be alright.

Meanwhile, Tim Rolls is working his magic around the level. Damn.

What a difference some point lights and god rays make, especially when you’ve got the eye for it.

Meanwhile, me working on the intro with my GIMP painted wall art:

20:36

Quickly made a doctor so that Tim can work his magic for that scene, too.

21:40

Doing some little things at the end of the day.

22:08

Still here doing little updates but important ones. For example, Dina was OP. She was switching to the windup state directly if you enter her attack area. That meant she would often attack twice very quickly. Hard on new players and the punishment is death so. Rolled that back a bit.

The intro is pretty fun. I like it.