I’ve made a few minor fixes to Zummoning recently:

  • Cards get dealt in a smoother, less jerky manner
  • Help text now stays on screen for as long as your mouse is over card
  • Fixed an issue where the drop target would turn purple, indicating a you could put your card there, even though you could not

Currently reading: Against Worldbuilding, and Other Provocations by Alexis Kennedy 📚


Star Trek: Deep Space 9, or The Continuing Adventures of Miles O’Brien.


Orchestrator

I spent some time last night and this morning learning about Orchestrator, a visual scripting plugin for Godot. I was mostly taking a look to see if my son might want to try it out, as an alternative to “regular” coding. He knows Scratch pretty well, but hasn’t taken to written coding yet. I thought Orchestrator might offer him a way to make stuff happen in Godot, using a style of programming he’s used to.

At first, I was amused and appalled that in an example, this short line of gdscript:

rotation += angular_speed * delta

… equated to a six-node graph. After completing the step by step tutorial, I appreciated it more.

I’m missing the words for describing this coherently, but, to me, it encourages a different way of thinking about the functions you write. Instead of the step-wise, imperative march from input (or not) to return value (or not), you kind of need to start at the end, with the impact you want to cause, and then work out the information and logic needed to inform that action.

I haven’t spent much time studying (let alone doing) functional programming, but… is that what functional programming is like?

I’m not sure I’ll reach for Orchestrator in my own projects, and I’m not sure the kiddo will either. I did show him the results I was able to get it, and if he wants to learn more I’ll certainly work with him. I was wrong to assume that it’s anything like Scratch, and I don’t think it really improves on gdscript in terms of reducing the cognitive work involved in programming. Orchestrator doesn’t simplify Godot.


GameOps

I used the Pong Wars deployment as an excuse to try out GitHub actions. It’s nice! Almost too nice, like the fact that it’s free makes me suspicious.

I ended up struggling with what I thought would be the easy part– GitHub pages. Back when I was a young man, all you needed to do was push your site files to the gh-pages branch. That still works, after you do some extra configuration. It was only the next day that I figured out what the problem is.

Godot-CI worked pretty well, though I needed to build my own version of the container image, because I’m not using a supported Godot version. I’m using a pre-release build of Godot 4.3, because I wanted to take advantage of the improvements to web exports.


Pong Wars

I’ve published my Godot re-creation of Pong Wars by Koen van Gilst on GitHub (and embedded it below!) It’s not exactly a game– more of a “visual toy”. I did add some fun extras:

  • left click a block to instantly flip it’s color
  • right click anywhere to flip ALL of the blocks.


People who think the web is dead or dying haven’t used the Domino’s Pizza Tracker.


I recently updated my /games page so that each game has video.


Finished reading: My Favorite Thing Is Monsters by Emil Ferris 📚


The kiddo and I had a good time at NOVA Game Developers Meetup this afternoon! It was fun to play games, show what we’ve worked on, and chat with other devs.


Today is Free Comic Day, for those who observe


It’s like they really see me.


GWJ 68 Results

Honestly, I had convinced myself that I was going to rank higher in Godot Wild Jam #68, at least in the originality category. Being in the top third for originality is OK, though.

Much of the written feedback (even on the much rougher Ludum Dare version) supports the idea that this is worth developing further. I’m thinking of digging in and trying to make the best version of “Zummoning” that I can, and see where I am at the end of summer.


Here’s footage of gamedev and streamer ObsidianBlk playing The Zummoning!. He’s got some (entirely fair) critical feedback, which I respond to (in writing) here.

I would have put more work into the game description if I knew it was going to get a dramatic reading…


Currently reading: My Favorite Thing Is Monsters by Emil Ferris 📚

Part 2 comes out next month, and I want to refresh my memory of the characters and unresolved mysteries.


Finished Listening: The Sandman Vol. 8: Worlds' End by Neil Gaiman 📚


Zummoning Redux

I’ve made many improvements in the new version of “The Zummoning” submitted to Godot Wild Jam. Unfortunately, the name isn’t one of them. Oh well.

  • Every card combination now actually does something
  • There is help text that explains what the cards do, while you’re playing
  • It’s clearer what is happening during the combat phase of the turn.
  • More art, some music, and sound effects!

It’s still far from a professional production. But, I think it’s fun?

One thought I had while relaxing after submission: the game seems to come down to the decision every turn to play a strong creature on a single location, or weak(er) creatures on two locations. Maybe the card system is sort of extraneous?


More Zummoning

I’m cleaning up “The Zummoning” for submission to Godot Wild Jam this weekend (The GWJ folks usually disallow games submitted to other jams, but make exceptions sometimes when schedules completely overlap, which was the case with Ludum Dare this month).

Tonight, I hope to improve the card-combining systems and remove some of the annoying gaps.

If I get more time before the deadline (Sunday night), I hope to add some UI improvements (primarily, make it less mysterious what the cards do, alone and in combination). I’d also like to make it clearer what’s actually happening during the combat phase.

As the screenshot shows, I’ve at least added a background image and improved the layout, since the LD submissions. Not obvious from the screenshot, the color of the spooky forest background gradually shifts between a handful of hues. It’s stupid simple, but I find the effect really pleasing. The (gdscript) code is just:

func next_color():
	var colors = [
		Color.DARK_RED,
	 	Color.DARK_GREEN, 
		Color.DARK_BLUE, 
		Color.DARK_ORANGE, 
		Color.DARK_OLIVE_GREEN, 
		Color.DARK_MAGENTA]
	var tween = get_tree().create_tween()
	tween.tween_property($SpookyForest,"modulate", colors.pick_random(),15)

The next_color function is connected to a timer that fires every 15 seconds.


If this works, then this blog post was published with Godot!


Finished Listening: The Sandman Vol. 7: Brief Lives by Neil Gaiman 📚