Huh looks like a bug in mastodon, there is supposed be a delay at the end of the gif before she does the sparkle eyes again. Weird!

Improved last weekend's damage facial expressions, adding blinks, flinches and some tween animations.

Going to post some of the subtle art stuff I'm doing to convey both the mechanics and her character with these...

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

Because in bump combat you're simultaneously hitting the enemy and getting hit, I kept the attack mode flinch to just the eyes, keeping her mouth unchanged.

It's really important that players don't feel they're doing something wrong when they attack enemies even though it means taking damage.

#pixelart #gamedev #GoblinGirlGame

If you aren't attacking the flinch is more expressive and involves the mouth. At first she takes her hits with a cheerful yelp, but eventually these get more pained looking.

She still reverts back to her smile no matter how beat up she gets though. She's small, but optimistic and scrappy!

#pixelart #gamedev #GoblinGirlGame

I created blinks for every level of damage, for both the attack and defend modes. Hopefully that doesn't come back to bite me as I expand the portrait animations.

A subtle detail, but once she's really hurt, her left and right eye blinks are a little out of sync.

Promise something other than damage faces for next week's screenshot Saturday! I've been busy on the dialogue system, so maybe that!

#goblingirlgame #pixelart #gamedev

Time for the obligatory fourth wall breaking dialogue test!

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

This dialogue setup is built on @jujuadams 's fantastic Scribble (text rendering) and Chatterbox (narrative) GameMaker libraries, on top of my own pop-up window GUI library. That library is the same one driving the debugger menus I've shown before, earlier in this giant thread.
Here's what the script for that dialogue sequence looks like in the Yarn variant Chatterbox uses, this also has a bunch of Scribble formatting tags and a custom function for changing the character portraits mid-dialogue.

I haven't implemented choices yet but plan to do that in the future, which will really unlock the power of yarn/Chatterbox.

Having access to a rich narrative design tool like this has already sparked some great ideas for future features in this game.

For #screenshotsaturday this week, I have a mockup of a campsite area. If you discovered enough secrets on the floors before, you'll be able to bank your new items and use the camp as a shortcut/save spot. If not you can still continue on to later floors.

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

A thing I want to try to preserve from Druaga, or to use a more modern example, the chains of secrets in Spelunky, is the idea of an exploratory run. A session where the goal might not be to make permanent progress or win, but to poke at secrets you haven't solved yet and add to your knowledge.

#GoblinGirlGame

Cozy little goblin camp. I wonder what's for dinner?
πŸ›πŸ³πŸ‘©β€πŸ³

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

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 #γƒ‰γƒƒγƒˆη΅΅

@spookysquid In the interest of being maybe technically slightly more correct(?), I think the most appropriate way to shorted β€œlittle” would be β€œli’l”, as the apostrophe goes in the place of the letters that are removed (with the β€œe” being silent anyway). Though in practice both spellings are used.

(Thanks for the cute updates. πŸ’š)

@copygirl Thanks for the info!

I knew about the variation in spelling, since both are commonly used I just went with the one that felt like it had the right vibe.