Yal

Yal

@yaru.itch.io

Software engineer | Game Maker user for >20 years | Maker of Burgertale, Hotline Sanzu, and like 50 other games | Computers peaked in the 8-bit days | Put "perfect is the enemy of good" on my tombstone

377 followers781 following2.9K posts

idk if we're gonna get a real newsletter this halloween, but I'm working on a fake one as a treat~

Working on some battle background layers... So far pretty much every background is sourced from a photo I've taken myself, it's wild how many traditional videogame biomes you can spot IRL if you just touch grass hard enough #gamedev #indiedev #JRPG

(the two main steps of the editing process is tweaking the color balance, because IRL settings are usually pretty drab and boring-looking, and making a second layer with a pixelization effect on that can be blended with the "pure" photo to make it look more digital) (and of course, an alpha fade)

No concrete stuff to show yet, but I finally went through my boss plans and created placeholders for all their state machines (with precise details on exactly how each attack will work) Now I can do the actual implementation in my sleep... once I have the motivation #gamedev #indiedev #Burgertale

(the plans are big & detailed enough that the diff is legit almost 600 lines of code... or, well, most of that is COMMENTS, but you get the idea)

I really like the way FROMSoft makes placeholder strings so you can instantly tell WHAT sort of data didn't get properly initialized, so I adopted the style for my project (the names are intentionally mismatched from variable names so they're easier to search) (also I think bad english is funny)

I just fixed a bug where the "don't draw if hidden behind a fake wall unless the player is also there" code also applied to THE PLAYER (letting them get stuck permanently invisible sometimes) the solution (special exception for player) feels kinda inelegant though... #gamedev #indiedev #JRPG

Though ultimately, I don't see when it ever could cause a problem (the player also being hidden by foreground geometry was never the intention, and if I want the player to be hidden I can turn off "visible", which doesn't interact with the foreground system and thus can't cause the softlock)

(And for context; the main purpose of the "fake wall" system is to have building interiors be explorable, but covered up by the exterior if you're not inside them, thus making the explorable space look like walls)

Simaster figured out it's possible to bring Frie to Miasma Village if you backtrack / use spellboosts (and a lot of patience) after you get the miasma immunity herbs in the Witchgrave sequence I kinda wanna keep that exploit and turn it into some kind of Burgertale weird route...

(Also it's numerically impossible to escape with the Crystal Burger without speed boosts even with the 7 minute timer, and even if you did you'd run into the cutscene trigger that triggers the "abandon Frie" ending before you can reach the exit. I'll need to do something about that...)

Finally got the save system complete enough that I can start TESTING it, and it has had some really intriguing bugs so far. Highlights includes NPCs loaded from a savefile having corrupt palettes, and me learning GM has two different, unrelated JSON parsers... the hard way #gamedev #indiedev #JRPG

View full thread

Sorted most stuff out at last! Currently the most serious bug is that the player's palette isn't read properly, you need to take a step to apply it. ...unless you saved behind fake wall, which covers you up during init, making the palette not generate that frame, making you PERMANENTLY invisible

also shoutouts to the bug where I FORGOT TO ADD SEPARATORS when saving the data, so despite formatting each item individually, they became all one giant inseparable blob in the file

Finally got the save system complete enough that I can start TESTING it, and it has had some really intriguing bugs so far. Highlights includes NPCs loaded from a savefile having corrupt palettes, and me learning GM has two different, unrelated JSON parsers... the hard way #gamedev #indiedev #JRPG

(currently I'm trying to fix a bug where all data saves and loads successfully, but the game immediately crashes after a save because NPCs try to read nonexistent parameters from a map chunk - presumably they get lost after a save purges temporary data and I purge too much / forget to reload it)

also remember to stock up on Super Garlic before spooky season, regular garlic isn't guaranteed to work on vampires

Slowly chipping away at the save system... the file select menu works, and also my structured data format! (This isn't a real savefile, I created it by hand to test the menu code that detects which slots are in use) #gamedev #indiedev #JRPG

(if anyone's curious, the card icon is the number of unlocked classes (they're represented by tarot cards) and the trophy icon the number of cleared unique dungeons; both the MAX values are calculated from the game's database) (the game already has 60 classes???? I didn't even realize lol)

I realized I'd somehow forgotten to draw ears on Falala so I had to transplant some from one of the other deer portraits. I guess my original line of thought was that she has enough hair to completely cover them up, but none of the other portraits does that so it felt kinda inconsistent...

(and of course, her overworld sprite has the ears clearly visible so I really have no excuse)

I'm slowly approaching something that feels like a reasonable save system... data is stored as JSON-like structures, with per-datatype validation tables to validate that stuff has reasonable values and all mandatory values actually are in the files when loading them. #gamedev #indiedev #JRPG

View full thread

I can't just stow them away in predefined city data, because cities are also fundamentally just map chunks, and most of them are procedurally generated too instead of being preset.

Oh, and items are also pretty complicated data structures on their own, since there's several systems that randomizes loot. Rarity, prefixes, upgrades the player has applied, personalized skill loadouts, ... (potions, materials etc aren't using most of this data so they're way more lightweight)

I'm slowly approaching something that feels like a reasonable save system... data is stored as JSON-like structures, with per-datatype validation tables to validate that stuff has reasonable values and all mandatory values actually are in the files when loading them. #gamedev #indiedev #JRPG

It might seem like overkill, but one of the core issues with my progen world chunk system is that tons of very DIFFERENT things can be in a chunk, and I only want to save certain types of data (objects have a lot of temporary cached stuff, like e.g. VRAM palette texture references)

Then some entities have a lot more data than others - e.g., shopkeepers need to store their entire inventory, because each one has a randomized selection and they will hold onto buybacks for a while so you don't accidentally lose rare items. And being NPCs, they also need to store their visual info.

Added a day-night cycle which affects the mood lighting of outdoor areas! Not 100% sure I got the golden hour / dusk right but the night at least looks kinda passable... #gamedev #indiedev #JRPG

(I also don't really know what I'm gonna use this FOR, I just have some vague ideas that I want night travel to be more dangerous, and that enemies / resources respawning over time means that the game should indicate time passing in some way)

don't you love when you realize you accidentally indented a file with the wrong type of whitespace and now you need to replace tons of things you can't even SEE

The woe of data structures I want to save world data *fast* (so there's no lagspikes when loading/unloading level data), but I can't use json_stringify to dump everything directly since a lot of data is dynamic or temporary stuff that shouldn't be saved as-is (e.g. VRAM surface references)

And slowly getting stuff done on the OTHER menu that uses materials: crafting. Everything uses the same underlying recipe system, but you use different crafting stations for different item types (e.g. a cauldron to brew potions) #gamedev #indiedev #JRPG

I'm not sure how much I want to focus on this aspect but especially in the early game it'll be hard having access to a shop to restock on consumables, being able to make them yourself feels like a natural fit to plug that gap.

Considering how precious inventory slots are, I've also made a conscious decision to make recipes not demand collecting too much stuff to be worthwhile, e.g. you get THREE basic potions from a single leaf material, or FIVE regen potions. Only the REALLY strong stuff needs a lot of materials.

Next up from the feature backlog, a menu for upgrading gear at blacksmiths! It's mostly reusing the inventory menu, but I added a new window that lists material/cost. (I think pointing out you're missing something by coloring it red is pretty much mandatory for a menu.) #gamedev #indiedev #JRPG

View full thread

Two stretch goals I might add later is upgrading stuff you're wearing, and peeking into storage containers for materials rather than requiring you to have them in your inventory (fully upgrading something requires holding 30 slots' worth of upgrade stones, and your inventory starts with 50 capacity)

(On the flip side, fully upgrading an item multiplies its base power by about TEN TIMES, so enduring all that hassle and investment pays off with a lot of extra power in the end...)

Next up from the feature backlog, a menu for upgrading gear at blacksmiths! It's mostly reusing the inventory menu, but I added a new window that lists material/cost. (I think pointing out you're missing something by coloring it red is pretty much mandatory for a menu.) #gamedev #indiedev #JRPG

One flaw with this system is that the player must manually unequip something to be able to upgrade it. Peeking into everyone's equipped items would be a lot of extra work so I'm not super keen on adding that. But I guess it makes sense stuff can't be upgraded while you're holding/wearing it?

Yal reposted

Where the games are and where the money is. Horror: 5,762 games on the map, 15 in 100 past $100k. Platformers: 4,148 games, 11 in 100. Souls-likes: 315 games, 52 in 100. Team shooters: 855 games, $10.5B between them. For all of Steam it is 18 in 100. #steam #gamedev

I uh I might be a BIT generous with how much power you get from upgrading gear, huh... (currently the formula is 5% per level, plus a flat bonus depending on item type so upgrading early-game stuff isn't pointless) granted, I could balance it by steep gold costs...? #gamedesign #balance #JRPG

I originally made these getters for EVERY item property because I didn't wanna bother remember the names and structure for all the internal variables... but as a nice bonus, it made it trivial to make upgraded items show a "+X" at the end of their name! #gamedev #indiedev #JRPG

I realized the flavor text for the Necromancer ("revives slain enemies to fight for you") was completely inaccurate since all their skills generate specific undead summons, so I'll need to rename it and introduce a NEW necromancer class (already planned it out at least) #gamedev #indiedev #JRPG

(I mean, I could've just *changed the flavor text*, but there's a big plot arc about necromancers so adding more stuff tying into that game-mechanics-wise felt like the right move in the long run...)

Didn't feel like starting to code the 4 new bosses yet so I finally got started on the level design for the first Nameless Institute level. The green path is mostly about two types of spiderwebs (climbable and bouncepad) #gamedev #indiedev #Burgertale

(And don't worry; instead of potentially triggering arachnophobia with real spiders, these are abominations with a human eye for a body and really slow leg animations.)