I did a few variations before I landed on that version. I kinda like all of them? It's a fun expression to draw!

Didn't quite get this out in time for Screenshot Saturday, but still surprised that I managed to fully implement my mockup from last week in so little time!

Including a bunch of stuff I'd put in my "polish this later" list, which I promptly ignored and implemented.

Experimenting with using my script expression tags to give character mouth flap animations while dialogue is drawing.

Going to automate and improve this later by hooking directly into Scribble's typist object, so the mouth will also automatically close during delays mid dialogue.

#goblingirlgame #gamemaker #gamedev

Bluesky has started an important ship building project.

https://bsky.app/profile/spookysquid.bsky.social/post/3lxsmistgq22f

Realized I should probably post the full quality version of this here!

Really happy with these little action emote pop ups for examining and talking.

#GoblinGirlGame #indiedev #gamemaker #pixelart #γƒ‰γƒƒγƒˆη΅΅

They've appeared in earlier posts in the background, but wanted to show them big. Also last night I added a neat little transition when they pop up, using TweenGMS

Going to dive a bit into the code for this one 🧡

I mentioned awhile back that I'd come up with an idea for a way to automate dialogue animation with basically no extra work. The above is the result!

My original plan was to just have a static open and closed version of each facial expression depending on who was talking.

Here's what the script for the new conversation looks like. A mix of native Chatterbox/Yarn and Scribble markup plus some of my own custom stuff. Details in alt text.

The real driver of all the portrait stuff is the markup:

[character_name,expression]

Which runs this GameMaker GML function.

Breaking that function down. It's designed for both flexibility and laziness.

First look for stage direction keywords. Right now that's just "exit" which lets me force a portrait to exit the screen before the conversation ends. I plan to add more.

If it doesn't find a state it looks to see if I have an appropriately named sprite in my project and runs a generic state that just loops the animation. So I can just drop a new image file into GameMaker and it's immediately accessible to the dialogue scripting system, no extra setup needed!
All the two frame talking animation files end with the suffex "_talk". When the function spots this in the expression string, it loads a different generic state with all the talk animation logic in it. Again no setup, it's entirely filename driven.
Here's the talk state code. It checks Scribble's "typist" to see if the text bubble is in the process of typing out text. If it is typing that frame then the animation runs + adds a little tween bob up and down on the portrait for extra juice.

if the typist isn't typing text this frame, it sets the mouth to the closed frame and pauses the animation, but lets the bob tween complete.

This means that the mouth flaps match up with the text typing and the result looks pretty close to hand keyed animated mouth flap without all the effort.

Obviously in a world in infinite art resources, fully animating these with proper phoneme shapes would look even better.

But realistically that's completely out of scope for a one artist game. I think this strikes a nice balance between that and just doing simple static images!

Bonus #screenshotsaturday!

After you talk to the elf you'll get this extra bit of text when examining the stone egg again.

Chatterbox makes it very easy to add little hidden bits of dialogue like this. Great library!
#goblingirlgame #gamemaker

Someone on bluesky mentioned this ancient meme and I felt compelled.

Have enough game now in #goblingirlgame that I made a little demo with a tutorial so I can throw it in front of friends.

I do a regular library work session with
@matthammill once a week, and we've been referring to this state as our respective projects being "game shaped now"

Definitely making #goblingirlgame for a very specific kinda retro games sicko, while also inviting others to join us.

Late night #screenshotsaturday!
Getting back to some gameplay portrait fun, adding this quick toothy grin for picking up chests and other important items.

#indiedev #GoblinGirlGame #gamemaker #pixelart #γƒ‰γƒƒγƒˆη΅΅

If you're wondering, did I animate a version of this grin with all her portrait damage states, for both attacking and defending? Yes, yes I did.

#indiedev #GoblinGirlGame #gamemaker #pixelart #γƒ‰γƒƒγƒˆη΅΅

Haven't posted about it, but I was able to work full time on #GoblinGirlGame over the summer thanks to a grant from Ontario Creates.🍁

I submitted my final report this week, so I'm back to balancing dev on #GoblinGirlGame with contract work. That means updates will be a little slower for awhile. Though I'm hoping to keep up the regular Screenshot Saturday posts if I can!

Been mostly doing behind the scenes work on #GoblinGirlGame this week. Stuff like refactoring most of the in game text to work with Chatterbox. So here is a set of cute cactus enemies from my "enemy ideas sketch file" for #screenshotsaturday.

#pixelart #gamedev #indiedev #γƒ‰γƒƒγƒˆη΅΅

No promises these will make it in, not sure if there will be an appropriate dungeon biome or not. But I really like this bunch.

Razor Shroom, the next enemy I'm animating for #GoblinGirlGame

#screenshotsaturday #pixelart #γƒ‰γƒƒγƒˆη΅΅

This week I'm sharing an older mockup I haven't shared in full before for #screenshotsaturday. This is 1/2 of a two screen character respec menu you access between dungeon floors in #GoblinGirlGame

#gameui #pixelart #γƒ‰γƒƒγƒˆη΅΅ #indiedev

Haven't made a lot of progress on #GoblinGirlGame this last month. October has been super busy due to a glut of contract work coming in at the same time a family member was hospitalized. Just a real bad confluence of events. Hoping to have new stuff to show soon.
The upside of solo/small team dev is that *theoretically* you're more agile, downside is that when life interferes all progress kinda unavoidably grinds to a halt.
@spookysquid I miss the moments where you synch to source control and whoa what who put that bit in it's awesome!
@Farbs Ooh! That sounds fun, I've never been on the programming side of a team large enough to have multiple coders.
@spookysquid Oh, I have but it usually wasn't the programmers invoking that effect.
@Farbs Ah, art team surprises? I guess you had stuff setup so they could drop things into the project easily?
@spookysquid Yep, art team, audio team, designers etc. They just learnt to use source control because, y'know, they're adults, and sometimes doing work means doing work.

@spookysquid Soz that got a little harsh :)

I've worked with a handful of people who _did_ refuse to learn source control, or do any asset integration or even run the game, and that always became a huge drain on everyone else.

The worst were the people who'd endlessly argue and debate design, only for you to realise they hadn't actually played the build and were just banging on about the vague imagined version in their head.

@Farbs Wow that sounds like an absolute nightmare.

I can't imagine having access to the game and not actually playing builds. I've often been in the opposite situation when doing contract art, making all the assets but unable to play them in game, and just kinda hoping it's all coming together ok.