Advertisement · 728 × 90

Posts by dgbaumgart

When you use AI to do your writing, you are telling your audience: “I deserve your attention, but you do not deserve my effort.”

1 day ago 3241 1053 14 40
A screenshot of my goblin game showing that the number of dice can now successfully overflow the first row instead of breaking the game.

(Bennybog actually rolled rather poorly here; the average roll is 30/31.)

Also: rolling for resource gains does *not* allow for exploding dice rolls because it'd probably be bad for balance. (That said, I should add it as a possible option, just for fun exceptional situations...)

A screenshot of my goblin game showing that the number of dice can now successfully overflow the first row instead of breaking the game. (Bennybog actually rolled rather poorly here; the average roll is 30/31.) Also: rolling for resource gains does *not* allow for exploding dice rolls because it'd probably be bad for balance. (That said, I should add it as a possible option, just for fun exceptional situations...)

OK, it works now!

Reverted most fonts to Lato (for now!!) and started using Godot's theme system at all correctly now that I understand how it works.

Same re. rebuilding UI layouts to work better across different resolutions now that I understand how all the pieces work & logic of the design!

2 days ago 3 0 0 0

I feel like the big font sellers - which all have storefronts and license terms that are pretty much copies of one another - have a total blind-spot for people in my world. (Which, admittedly, is a pretty small market vs. all the others.)

But no consideration for *desktop software*? That's wild!

3 days ago 1 0 0 0
Screenshot of a dice roll challenge in my goblin game. I had two dice, rolled two sixes. That added two more dice, which also rolled sixes... which should add two *more* dice, but the layout broke when it tried to add another row.

Two problems:
1. adding another row doesn't work
2. it shouldn't add another row until it hits 8 dice, as each row can hold 7 dice!

Screenshot of a dice roll challenge in my goblin game. I had two dice, rolled two sixes. That added two more dice, which also rolled sixes... which should add two *more* dice, but the layout broke when it tried to add another row. Two problems: 1. adding another row doesn't work 2. it shouldn't add another row until it hits 8 dice, as each row can hold 7 dice!

I rolled so well that it broke the game.

Turns out adding another row of dice to the layout isn't working because, um, I never tested it! Fair enough.

(And still messing with fonts and unhappy with them. Free fonts just aren't great. Explains much about the sad state of text in indie games.)

3 days ago 7 0 2 0

Found a couple perfect, gorgeous sets of fonts.

Price per font family is around $300. Sure, I can swing that. Oh, print and static media only?

... OK, the license for an "app" is $3000. Per year. And no mention of desktop computers, only *specifically* mobile OS platforms. So, ????

4 days ago 6 0 2 0

Naturally the font I like best doesn't have bold/italic versions

4 days ago 5 0 1 0
A screenshot of cropped dialog boxes comparing various fonts for my goblin game. They're all from Google Fonts.

1. Oldenburg
2. Sour Gummy
3. Fresca 
4. Gelasio
5. Lato

A screenshot of cropped dialog boxes comparing various fonts for my goblin game. They're all from Google Fonts. 1. Oldenburg 2. Sour Gummy 3. Fresca 4. Gelasio 5. Lato

Happy #GoblinFriday!

I finally found the MSDF button & I'm trying to get my fonts in order, again. Tried some out (img):

1. goofy noir/steampunk game
2. way, way too twee
3. this might just be the one. A touch of whimsy + easy reading.
4. too serious
5. what I've been using all along, a little dry

4 days ago 11 0 1 0
Screenshot of the main map of my goblin game with a new "fog of war" implementation.

Instead of splatting sprites all over, there's now two texture layers drawn overtop the map, a "gray" fog (transparent, to show what you know but don't currently see) and a "black" fog (opaque, to show where you've never seen). 

It basically works! Going to need to add some features and adjust lots of details, but I'm glad the texture method was so simple to implement and I don't have to do the weird fog tile system that I was considering before.

Screenshot of the main map of my goblin game with a new "fog of war" implementation. Instead of splatting sprites all over, there's now two texture layers drawn overtop the map, a "gray" fog (transparent, to show what you know but don't currently see) and a "black" fog (opaque, to show where you've never seen). It basically works! Going to need to add some features and adjust lots of details, but I'm glad the texture method was so simple to implement and I don't have to do the weird fog tile system that I was considering before.

Had a longstanding item to redo the "fog of war" feature, so I did that today. Had to wrap my head around just a little weird math and some shader coding.

(And still need to make the location circles & connection lines go under the fog.)

Also redid font rendering. Everything looks weird!

1 week ago 16 2 0 0
Advertisement

Fixed it.

1 week ago 4 0 1 0

I imagine I'll be doing more debugging for the rest of the day rather than getting back to writing actual adventures :(

So it goes! Unless I find the weird, secret error behind my first, stupid error in like 5 seconds...

1 week ago 3 0 1 0
A screenshot of my goblin game! This is an example "dice contest" where Bennybog has a roll against Jorten. This is working great and has nice tooltips.

There's a bunch of extra padding at the bottom of the widget that I didn't notice 'til I started posting this - it's due to the minimum height of the widget being set to the old value for the old layout.

This layout has less junk, so it can take up less vertical space. That's good!

A screenshot of my goblin game! This is an example "dice contest" where Bennybog has a roll against Jorten. This is working great and has nice tooltips. There's a bunch of extra padding at the bottom of the widget that I didn't notice 'til I started posting this - it's due to the minimum height of the widget being set to the old value for the old layout. This layout has less junk, so it can take up less vertical space. That's good!

#GoblinFriday!

Okay, so making dice contests (pictured) work wasn't hard, nor was building out tooltips.

The "cool" thing today is hunting down rules condition error(s).

Part 1: At some point I commented out the conditional token parser so everything got set to "equals".
Part 2: another thing???

1 week ago 6 1 1 0

That's actually how I started making these back in 2014!

I was working on a couple styles of custom Dominions maps back then (never finished) and thought, hmm, people seem to like these tiles and want to buy them.. may as well give it a shot.

Haven't played in a few years though; no time for it.

1 week ago 1 1 1 0
A working sheet for 128x128 hex tiles. Especially notable is a huge number of coast hex variants to match all possible arrangements of land/water neighbours - and it's not done, at all.

A working sheet for 128x128 hex tiles. Especially notable is a huge number of coast hex variants to match all possible arrangements of land/water neighbours - and it's not done, at all.

Look, this is why I don't like doing seamless border transitions, particularly for hex tiles. I might just do a generic alpha mask for land tiles and let people Deal™, because the sheer number of variants is oppressive.

(OTOH it's nice to just turn on a podcast and zone out in Photoshop for a bit.)

1 week ago 8 0 0 0
The AI Great Leap Forward In 1958, Mao ordered every village to produce steel. The steel was useless. The crops rotted. Today's top-down AI mandates are producing the same pattern: ba...

This is the good shit.

1 week ago 246 131 5 9
A screenshot of revised dice-rolling system in my goblin game.

The white dice are bonus dice which are added if a die rolls a six. Bonus dice can add more bonus dice (because this makes it more fun). So if the spirits favour you - as they favour Wormsy here - you can get truly incredible rolls even if the base odds are fairly poor (in this case, rather under 50% chance of success.)

Key here - I should capture a video - is not JUST the tooltips, but the redone timing: dice are rolled, then it checks if a bonus die was added. If so, it pauses for a moment, adds the bonus die (and does visual effects on both the die/dice that rolled 6, and on the new die summoned by their success), then rolls those bonus dice in an additional roll. This loops until all are resolved. Once done, the total is added and FAILURE or SUCCESS is displayed.

To truly cap this off, I need to add a fail/success sound effect.

... Also need to get this totally working for "dice contests" between a goblin and another character (or themself).

I don't think, as a rule, NPCs will be allowed to have bonus dice unless some weird magic effect is in play. To make up for this I'll have to give them better stats across the board - and increase the challenge of dice checks overall while I'm at it.

A screenshot of revised dice-rolling system in my goblin game. The white dice are bonus dice which are added if a die rolls a six. Bonus dice can add more bonus dice (because this makes it more fun). So if the spirits favour you - as they favour Wormsy here - you can get truly incredible rolls even if the base odds are fairly poor (in this case, rather under 50% chance of success.) Key here - I should capture a video - is not JUST the tooltips, but the redone timing: dice are rolled, then it checks if a bonus die was added. If so, it pauses for a moment, adds the bonus die (and does visual effects on both the die/dice that rolled 6, and on the new die summoned by their success), then rolls those bonus dice in an additional roll. This loops until all are resolved. Once done, the total is added and FAILURE or SUCCESS is displayed. To truly cap this off, I need to add a fail/success sound effect. ... Also need to get this totally working for "dice contests" between a goblin and another character (or themself). I don't think, as a rule, NPCs will be allowed to have bonus dice unless some weird magic effect is in play. To make up for this I'll have to give them better stats across the board - and increase the challenge of dice checks overall while I'm at it.

(Had to finish this before I could let it be.)

Rewrote dice rolling!! Now we have a logical loop that rolls 'til all dice are resolved and has nice pauses to show bonus dice added.

Wormsy shows how it works- she rolled double sixes, adding two bonus dice, one hit a six and added another die. Yes!

1 week ago 3 0 0 0

(Do you want witches? Because this is how you get witches!!)

2 weeks ago 4 0 0 0
Advertisement
Post image

[Back on my hex bullshit.]

Basically: had some thoughts on terrain hex assets over the past ... (god, 12?) ... years I've been selling these things.

So these have: smaller size, all seamless tiling (not all done in image) (thus fewer biome variants), flat top/bottom, less visually noisy style.

2 weeks ago 26 4 3 0
A screenshot of a dice roll check in dialog mode of my game.

There are an awful lot of fiddly details here that need to be adjusted so they're just right. Much respect to UX folks!

A screenshot of a dice roll check in dialog mode of my game. There are an awful lot of fiddly details here that need to be adjusted so they're just right. Much respect to UX folks!

(Pro-tip: don't code when running a fever.)

Anyway, doing _slightly_ better today. Got double tooltip action here, with extra info to the left AND right. Some of which is redundant.

Also experimenting with changing die face colour for bonus/exploded dice, along with other interaction hints.

2 weeks ago 5 0 1 0

Oh! And got 'exploding' dice working!

'Course if a player doesn't know about them already, it's pretty confusing why more dice appear and roll themselves. This'll take a good bit of visual effects to 'sell' - and *more tooltips*!

Almost makes the game easier; may need to adjust difficulty values.

2 weeks ago 4 0 2 0
A tooltip for a dice roll challenge! There's another tooltip for the actual dice section that explains the stat being used... though I kinda want to show that in the main layout. We'll see.

A tooltip for a dice roll challenge! There's another tooltip for the actual dice section that explains the stat being used... though I kinda want to show that in the main layout. We'll see.

A tooltip for rolling to gain resources! 

It's fun to add colours to text.

(That big blank spot at the top where a text label goes in other situations is annoying me quite a lot, but my head hurts.)

A tooltip for rolling to gain resources! It's fun to add colours to text. (That big blank spot at the top where a text label goes in other situations is annoying me quite a lot, but my head hurts.)

Working on tooltips and styling, (but still sick and I think my brain isn't working good). So not going to push myself any more today.

Anyway, overall goal: offload additional mechanics information into tooltips & reduce extraneous text as much as possible.

2 weeks ago 2 0 1 0
Bennybog rolls for how many snax he finds, and "Bennybog found [b]7[/b][color=f4a460ff]Snax[/color]. Continue..."

Something broke. (Not my fever, obviously.)

Bennybog rolls for how many snax he finds, and "Bennybog found [b]7[/b][color=f4a460ff]Snax[/color]. Continue..." Something broke. (Not my fever, obviously.)

... can you eat that?

2 weeks ago 4 0 1 0

(Long explanation in the img alt text, as usual.)

ALSO: adding exploding dice! Really excited for how this'll make everything feel more goblin-like.

(They don't quite work yet. Working on it.)

Man, I have some Words for past me about how all this junk is "organized".

2 weeks ago 3 0 1 0
A screenshot of my new unified dice roll widget working in-game.

The key thing here is it's one class that drives ALL dice rolls (rather than unique code per type of roll). 

The dataset that ends up telling this widget how to look and act is also used for the dialog buttons, their tooltips, and even how dialog rules are executed - and has to be passed down a LONG chain of classes to finally arrive at actually rolling the dice.

The problem is I also had semi-unique data structures for each type of roll, built to suit each individual type of dice roll. And: ugggh.

So what I'm doing: putting everything into one simple data structure that is shared between all buttons, tooltips, and dice rolls so they're all pulling from the same source of truth.

(This is not a great thing to do while sick, but watch me do it! I have coffee! It'll be FINE!)

A screenshot of my new unified dice roll widget working in-game. The key thing here is it's one class that drives ALL dice rolls (rather than unique code per type of roll). The dataset that ends up telling this widget how to look and act is also used for the dialog buttons, their tooltips, and even how dialog rules are executed - and has to be passed down a LONG chain of classes to finally arrive at actually rolling the dice. The problem is I also had semi-unique data structures for each type of roll, built to suit each individual type of dice roll. And: ugggh. So what I'm doing: putting everything into one simple data structure that is shared between all buttons, tooltips, and dice rolls so they're all pulling from the same source of truth. (This is not a great thing to do while sick, but watch me do it! I have coffee! It'll be FINE!)

Happy #GoblinFriday!

Sick this week, so brain work less good.
New dice roll widget (kinda) works, but needs much effort.

Data is passed through a LOT of places before turning into a roll: csv to rulesDictionary to ruleScript to ruleOption to responseButton to dialogBlock to diceRollWidget, oof.

2 weeks ago 12 0 1 0

hope you like rules.csv *double fingerguns*

2 weeks ago 15 0 1 0
Post image

Starsector 0.98.5a in-development patch notes:

fractalsoftworks.com/forum/index....

A conclusion to the Sindrian Diktat storyline, alongside a number of smaller features and QoL changes.

(Not yet available for download; this is just a preview of what will be in the next release!)

2 weeks ago 196 43 23 2
Advertisement

Yeah, I think the base-building sprites are still the ones I did, then like that title screen. Possibly some other background UI elements, but they're probably changed by now.

2 weeks ago 1 0 0 0

Heh-heh, this contains a bit of my art that's in Xenonauts 2 game - see the little people in the bottom left and right? Some classic Me(tm) rim lighting going on.

Modelled the console-greeble off photos of Cold War era military command/control rooms. The chairs, however, are Herman Miller.

3 weeks ago 24 0 2 0
A base template for a simplified, and unified, dice rolling widget. It will handle all of the different ways the player rolls dice in the game, and it'll use a simplified layout that offloads extra data into informative tooltips.

A classic coding situation: It's not that this is hard, it's just work I've avoided doing. And now that I have all the ways dice rolling works more-or-less coded out already, I just need to pull all of that one-off code into a unified Thingy that is adaptable enough to cover each case.

And this shouldn't be hard, they're not that radically different. And what I gain: in the future, as I iterate effects and UX, and fix bugs, and improve the art, it'll all happen *in one place* rather than having to update everything in four different places.

Now, um, I just need to do it. I'll get back to work.

A base template for a simplified, and unified, dice rolling widget. It will handle all of the different ways the player rolls dice in the game, and it'll use a simplified layout that offloads extra data into informative tooltips. A classic coding situation: It's not that this is hard, it's just work I've avoided doing. And now that I have all the ways dice rolling works more-or-less coded out already, I just need to pull all of that one-off code into a unified Thingy that is adaptable enough to cover each case. And this shouldn't be hard, they're not that radically different. And what I gain: in the future, as I iterate effects and UX, and fix bugs, and improve the art, it'll all happen *in one place* rather than having to update everything in four different places. Now, um, I just need to do it. I'll get back to work.

Happy #GoblinFriday!

I have 4 unique layouts & classes for rolling dice in slightly different ways. I need to unify them into one widget + class that handles all dice rolls so I can have shared UX & effects.
AND add exploding dice!

Here's the base template so far, just need to code... everything.

3 weeks ago 5 0 0 0
Troll bridge encounter. Here, Eyeball tries to sneak onto the bridge - and runs into a troll.

(Eyeball doesn't have a very good "sneek" stat.)

HOWEVER I think it'd be fun to add "exploding" die rolls - so when I do that, if you roll a 6, you'll get a chance to roll another die. If that gets a 6, guess what? Another!

Goblins should be able to achieve very unlikely victories on occasion when they're willing to (unwisely) attempt impossible odds.

Troll bridge encounter. Here, Eyeball tries to sneak onto the bridge - and runs into a troll. (Eyeball doesn't have a very good "sneek" stat.) HOWEVER I think it'd be fun to add "exploding" die rolls - so when I do that, if you roll a 6, you'll get a chance to roll another die. If that gets a 6, guess what? Another! Goblins should be able to achieve very unlikely victories on occasion when they're willing to (unwisely) attempt impossible odds.

Here Eyeball is going to try to think of some better ways to cross the Troll Bridge. Basically, this should open more options, and possibly some easier options.

What's fun here is adding a roll vs. self challenge - Eyeball needs to roll smarts against her own goblinism to be able to ignore the fly buzzing around her head.

Sometimes a goblin can be their own worst enemy.

Here Eyeball is going to try to think of some better ways to cross the Troll Bridge. Basically, this should open more options, and possibly some easier options. What's fun here is adding a roll vs. self challenge - Eyeball needs to roll smarts against her own goblinism to be able to ignore the fly buzzing around her head. Sometimes a goblin can be their own worst enemy.

The Troll Bridge dialog is up to 95 rule blocks. More to go! Lots of possibilities.

Two new features:
- can now have a dice contest roll against oneself (roll stat vs stat with different outcomes based on which wins; very Disco Elysium.)
- can now roll dice to LOSE resources (eg. troll shakedown)

4 weeks ago 6 0 0 1
This is how the map for Scenario 2 starts, more or less.

In the upper left are tokens for Jorten the Fighter and Kreeee the Goblin - Kreeee has been captured (note the bars on his hotbar element in the lower left) and Jorten's goal is to sell Kreeee before Wormsy can help him escape.

Wormsy, meanwhile, is on the right side of the map, across the river. Based on decisions at the start of the scenario, she can appear anywhere between the Goblin Swamp (lower right, bushy trees) and the Tavern itself, where Kreeee is. 

Crossing the bridges requires being sneaky, clever, or having lots of resources. And Wormsy starts with *nothing* on this map, so basically the player has to figure out the basic mechanics of exploring locations and acquiring resources in order to solve the problem presented by the map in order to fulfill their objective(s).

Like I said: open-ended. 

_However_ this requires that all those circles have something interesting to do in them! That's a lot of scripting and dialog to write, but: it'll pay off, because once I have something there, they'll be useful for every other scenario I make in the game.

This is how the map for Scenario 2 starts, more or less. In the upper left are tokens for Jorten the Fighter and Kreeee the Goblin - Kreeee has been captured (note the bars on his hotbar element in the lower left) and Jorten's goal is to sell Kreeee before Wormsy can help him escape. Wormsy, meanwhile, is on the right side of the map, across the river. Based on decisions at the start of the scenario, she can appear anywhere between the Goblin Swamp (lower right, bushy trees) and the Tavern itself, where Kreeee is. Crossing the bridges requires being sneaky, clever, or having lots of resources. And Wormsy starts with *nothing* on this map, so basically the player has to figure out the basic mechanics of exploring locations and acquiring resources in order to solve the problem presented by the map in order to fulfill their objective(s). Like I said: open-ended. _However_ this requires that all those circles have something interesting to do in them! That's a lot of scripting and dialog to write, but: it'll pay off, because once I have something there, they'll be useful for every other scenario I make in the game.

This shows off how the custom CSV scripting system works to set up Scenario 2. Starsector modders will recognize this, some with horror, as essentially a copy of Starsector's rules.csv system.

And yeah, I coded my own version of it! Because I'm already using it almost every day to create content for Starsector; my brain thinks in it now.

Anyway, just reading through as plain text should tell you more or less what is happening there: setting up the map, the player resources, and character in-play, and the basic properties of the scenario.

In the second row the game actually starts, with the "StartScenario" trigger. The script block, the next column over, executes each script in order from top to bottom and in my implementation it is possible to add time delays, or a condition to fulfill, before firing the next line of the script.

SetBoardModeTo has a default delay that waits for UI elements to fade in and out before proceeding (0.3 seconds, if I recall correctly.)

CameraPanToEntity will pause execution until its at the target position.

Wait, of course, simply holds a position for the given number of seconds.

(And so on.) -- Because the game is turn-based, not real-time, I can safely script on-map sequences like this using the rules.csv system. The possibilities are pretty wild, but for now it's all pretty simple "move camera here, pause meaningfully, then open a dialog" type stuff.

This shows off how the custom CSV scripting system works to set up Scenario 2. Starsector modders will recognize this, some with horror, as essentially a copy of Starsector's rules.csv system. And yeah, I coded my own version of it! Because I'm already using it almost every day to create content for Starsector; my brain thinks in it now. Anyway, just reading through as plain text should tell you more or less what is happening there: setting up the map, the player resources, and character in-play, and the basic properties of the scenario. In the second row the game actually starts, with the "StartScenario" trigger. The script block, the next column over, executes each script in order from top to bottom and in my implementation it is possible to add time delays, or a condition to fulfill, before firing the next line of the script. SetBoardModeTo has a default delay that waits for UI elements to fade in and out before proceeding (0.3 seconds, if I recall correctly.) CameraPanToEntity will pause execution until its at the target position. Wait, of course, simply holds a position for the given number of seconds. (And so on.) -- Because the game is turn-based, not real-time, I can safely script on-map sequences like this using the rules.csv system. The possibilities are pretty wild, but for now it's all pretty simple "move camera here, pause meaningfully, then open a dialog" type stuff.

Here's my token worksheet. I think I've showed this off before, but here I've added a bit more to it - at first I experimented with more naturalistic renders of characters, then figured it'd be better to make them more symbolic, like little carvings on an ancient chess set.

This signals to players the board game-like interaction metaphor of the game map.

Here's my token worksheet. I think I've showed this off before, but here I've added a bit more to it - at first I experimented with more naturalistic renders of characters, then figured it'd be better to make them more symbolic, like little carvings on an ancient chess set. This signals to players the board game-like interaction metaphor of the game map.

Happy #goblinFriday!

Working on Scenario 2: "The Small Escape", where the game becomes a lot more freeform after some linear tutorial scenarios.

Need to write a TON of content for locations - much of the 'meat' of the game is random events hit while running around.
(more in alt text for images.)

1 month ago 28 1 2 0