As the demands of hungry customers grow unbearable, you must build a factory to keep up!

I made underground belt interpolation work! It's not the most flexible system and relies on the art working a particular way a lot since I didn't want to clip item sprites, but I think it looks quite nice!
loooots of new stuff!
I'm getting much closer to have full automation working; underground belts now exist and the building system works pretty well.
I fixed a bunch of miscellaneous visual issues that people brought up, so hopefully moving items around feels a bit better now.
There are tooltips once again for most interactions in the game that deserve them, and a lot of descriptions are more coherent.
have fun, and thank you to everyone giving good feedback recently! I really appreciate it :)
Although this doesn't look like a very meaningful change, I restructured the belt tile system to use a separate "underlayer" for a few reasons:
Although I haven't figured out the best solution for interpolation yet, the items now go under ("into") the underground belts, which looks a lot nicer.

the interpolation on moving items is funky, but I have an initial implementation of underground belts now! They have a max distance of 10 tiles and move items as if they were directly connected for now (which isn't ideal, but it's much trickier to implement arbitrary overlapping item streams "underground").

you can place buildings now, yay!
There's no inventory system or limit on how many you can place, and there are some funky interactions I need to fix, but it works pretty well! Next up is placing counters and objects on them.

I've been working on tooltips that automatically show; I used to have item tooltips implemented on hover, but in my effort to make all the UI work without a mouse, I changed most tooltips to automatically show when relevant and hide after a few seconds. I also rewrote all my item descriptions to make a bit more sense in context.

We're so back!! The burnout and tight schedule is (kind of) over so I'll try to work on at least one new thing every day from now on. I'll be posting devlogs more frequently (sorry to everyone who gets notifications .-.) so I can make sure my time is recorded/tracked properly.
I improved item carrying in a bunch of different ways. First, I fixed a big issue that a few people brought up to me which is items weirdly layering above walls. It's kind of difficult to get this right because items are in a weird position where they can be both above and below a wall depending on where the player is so there must be a point where they jump from the top to bottom. I picked a point that looks pretty good and works well with the doors.
I also made it so items are visible when the player is facing upward. I originally made them invisible in this case because I thought it added too much visual noise, but some people said it was confusing.
Next, I adjusted the layering for counters. Previously, items were always placed on top of everything else if the player wasn't facing upward but I found that it actually looks nicer if the items are placed behind counters when the player isn't facing into one. This causes some jumps when the item moves from being held "down" to "up" but I prefer how it feels.

I usually don't post demos before 10 hours, but I wanted to get out some of the recent polishing changes before the next tickets go out.
This mostly fixes a few small things I saw in feedback, improves the auto-tiling system further, and balances the core loop a bit more. Hopefully next time will have automation building :)
On another note, posting devlogs is so much more stressful when a bunch of people are following you haha
Lots of polish based on feedback and construction improvements in this one! You still can't quite build new machines, but I'm getting close.
I mostly worked on stuff that isn't visible, like controller support and some animation/smoothing. The key hints now show the input that makes most sense based on whether a controller is connected and don't require me to manually set up keys since they pull it from the project config.

I continued working on the construction system and experimented with multiple inventory slots for the player (but ultimately decided it added too much complexity). I also implemented some other general polish interactions suggested through feedback like being able to add items from a counter directly onto a held plate.

I didn't properly track what time I'm at for this devlog (burnout hit me hard ahhhhh) so I'm just making one to be safe. I've been working primarily on the construction system, which now properly works with rotating and deleting tiles! Next I want to implement placing down things like conveyor belts and counters (with the appropriate placement restrictions) and adding/removing counter interactables. I've been putting a lot of work into making all actions in the game accessible without a mouse, but there's still a lot to do here! For example, I think I'll implement a custom cursor controlled by joysticks/wasd for using the computer since that pretty fundamentally relies on having one.

<Randomness week update 6> (I don't know when I missed a day lol)
Once again, this demo lacks a lot of new content since I've been working primarily on the automation side of things. The kitchen is expanded a bit, though, and the "construction" mode is at least a little closer to being finished!
I sadly didn't fulfill my goal of adding a new random element every day, especially since there isn't one in this update, but at least I added a few!
Have fun, everyone! Thank you for the really nice feedback so far :)
There's still a lot to be done, but I worked on more autotiling edge cases, incorporated art for other machine directions (which also still has some work to be done), and implemented a really basic editor in-game.

I implemented similar autotiling for the belts as for the counters. Here, you can see the "automation zones" tilemap that internally stores the state of the kitchen/machines. The entire tilemap behind it is generated automatically. I'm yet to implement live updates, so it currently rebuilds the entire thing, but that shouldn't be too difficult.

Some slight fixes and performance improvements. Thanks @Angel!
Oops; I broke timed interactions in that one. Should be good now!
There's not a ton of new stuff in this one, but I'm getting close to being able to renovate the kitchen area and build custom automation! There are quite a few polishing and art fixes, at least.
<Randomness Week Update 5>
I implemented custom autotiling for the counters (it's still a work-in-progress, as you can see by some of the machines being missing)
Perhaps this is a bit of a cop-out since it isn't real gameplay, but the variant of forward-facing counter is pseudorandom based on its position.

<Randomness Week Update 4> (but a bit late)
I started work on the factory editing mode! There's a lot of work to be done here, but I implemented the camera/selection controller and input target logic.
I got a bit distracted, and didn't really implement any sources of randomness... oops. I'll try to have something for the next one!

<Randomness Week Update 3>
I worked a bit more on automation, polished the UI, fixed a few things pointed out in reviews, and added a huge new source of randomness! Now, instead of being manually created, the day data (e.g. customer patience, order difficulties, customer interval, etc) is generated randomly and slowly gets more difficult as the days continue. I had to pull out the Desmos for this one, so you know it's getting serious :3
https://www.desmos.com/calculator/dxh9onpg1q

Oops... resource loading was broken in that previous build and nothing worked at all... I guess Godot renames files when exporting builds? Anyway, this one should work.
And here's a demo for the recent changes! Not much visible has changed, but there were a lot of bug-fixes and polish. I also did some work on automation (which is yet to work in the game, but I'm getting closer)!
<Randomness Week Update 2>
I added procedurally-generated outlines to the items on plates since I got a lot of feedback saying it was difficult to tell when a plate had something white like cooked rice on it. In my opinion, it looks really nice on the other items too!
I also started adding an app for active and old orders on the computer so it's easy to open the recipes for active orders and determine if you successfully fulfilled old orders.
I also worked on other elements leading up to actual automation, like all the required belt tiles.
For today's element of randomness, I updated the order choice logic a bit to randomly choose difficulty levels. I eventually want to set up a probability distribution and dynamically assign a "difficulty" to each day then generate the day data in-game, but it's a fixed list for each day right now.

<Randomness Week Update 1>
I'll be doing an update (or a few) daily for randomness week, and I'm going to try to add a new aspect of randomness for each day!
For today, I worked primarily on automation-related cleanup like in my last post: machine data is now stored similarly to item-data (I just can't get away from data-driven programming no matter what I make...)
I added a bit more randomness, though! The customer interval and patience is now based on a normal distribution. Notice that the waiting times in this screenshot aren't multiples of 1h, since each customer has a random waiting time and arrival time (add that to the random order that they already have; it's a lot of randomness!)

I don't have much to show for this one, but I've been polishing some things and making structural changes in preparation for automation (at last). A few of these include:

Sound update! There are now sound effects for almost every interaction (a few are still a work-in-progress), better music, volume settings, and more! I also worked on some of code cleanup now that I'm more familiar with writing idiomatic GDScript.
I added a volume settings section (with volumes persisted across plays, mostly for my own sake) and more sound effects for things like picking up and putting down items.
There are just a few more things I would like to add sound effects for:

I've been putting a lot of work into sound effects for UI, movement, and interaction. There's still a ton to do, but I'm really happy with what I have so far! I have no clue how to do sound design (my only experience is from low-effort game jam stuff), so it's taking a lot longer than I would wish. It adds a lot to the game, though!
I can't really upload a screenshot showing the audio, so... here's an image of a later day in the progression :)

Demo time!!
A lot has changed since the last demo, including:
Thanks, everyone, for the great feedback so far!
There's a proper game loop now! The difficulty definitely needs some balancing, especially since there's no automation to assist you yet. However, I'm really happy with how it's going! The only major thing missing from the game loop is losing reputation, so there are no consequences for doing poorly yet. That's next on my list, though.

Wait, what?? Is that gameplay I see?
Well, I finally got some of the core game loop working as I'd hope! There are a ton of small tweaks in this one, but I think it's reasonable to say you can play through the first day now :)
I've also been working on a bunch of other things, like a reputation system, scene transitions, making more parts of the game rely on game-time instead of real-time, and more!

I added some nice animated store opening (and closing soon) UI to hopefully help guide the player toward how the time system works without an outright tutorial. It also suggests to players that the requested recipes will get more difficult and customer patience will go down.

I don't even know what time I'm at at the moment (oops, I should be doing a better job tracking) but here's a new demo!
New interaction system! This fixes pretty much all the weirdness with interaction before, improves the UI consistency, and allows you to see interactable information without being able to interact (e.g. see that machines are currently cooking/frying/whatever)

👀 Are those BELTS? 👀 MOVING ITEMS? Which support cyclic structures by using a directed graph-based implementation? Yeah!! I got way too far in the weeds on this one and implemented Kahn's algorithm for topological sorting and cycle detection so the belts work efficiently* and as players expect. There are... still a lot of bugs, though. To be honest, I just translated a bunch of code from other games and it's still a bit of a mess lol
With the customers that line up around the sushi belt (which I somehow never made a devlog about??), I'm really close to having actual gameplay and customers that take their orders! The belts are still bug-ridden, though, and there's no building system anyway.
Soon!
*GDScript is slow no matter what though :(

And here's a demo since it's accidentally been a looong time since I posted one (I think like 15h now, oops)
Still no core loop, but I'm getting reeeeeally close (maybe)! There's a sushi belt (though no automation yet), all the remaining machines and item sources, and a system for moving customers throughout the restaurant. I'm taking so long since I keep changing my mind on how I want the orders to work, but I finally think I have a good vision. For now, it's actually a lot of fun to multitask and try to cook as quickly as possible :)

I have a much more finished cooking system now (you can finally make most recipes!) and I've been working on the game loop with paths for characters to take as they wait in line. I didn't think this would take so long to get the main game loop in place, but I guess I keep procrastinating with polish before I even have a game, oops ;)

Still no core game loop, but I'm getting there! Now, there are at least a bunch of recipes to make (although a lot of them are locked behind ingredients you can't access yet, oops)
Have fun :)
I added most of the remaining recipes and computer recipe features. Except "importing" recipes in emails, the recipe app on the computer is done.

I started work on the factory-building mechanics, but didn't make significant progress yet. I also refactored the recipe system into something more general so the data used for constructing dishes and in the recipes app on the computer (which I made some progress on) can come from a shared source. There are now more than two recipes you can make, too :)

I'm getting much closer to having a proper game loop implemented. There isn't a whole lot of a visual change in this demo except a different layout and working (ish) computer, but hopefully next one I'll have a proper game loop :)
I implemented an email system that acts as a basic and tutorial and provides some minimal story elements. I'm able to add triggers to certain events, like days/times, which will send an email. I also added a proper day cycle that updates the UI.

Here's a slightly more playable version of my game for a demo. It's still missing the core game loop and structure, but there are quite a few cooking mechanics implemented. For example, you can combine cooked rice, sliced cucumber, and nori (seaweed) bundles to make cucumber maki. I also began implementing a computer, which I decided to use for many of the story and management elements. It doesn't do much yet, though.
I added other cooking mechanics, like slicing salmon and cucumbers and combining ingredients on plates to make dishes. Next, I'll begin adding orders from customers.

I added visual feedback to the rice cooker for the time remaining and outputs. I also added tooltips for the current interaction and held item when hovered and made some theming adjustments.

Here's my first demo! It's not much of a game yet, but I'm still happy with what I've achieved planning- and art-wise. Hopefully I can add more actual gameplay next!
I continued implementing interactables, like the rice cooker and trash can (with placeholder art). I also added other functionality like placing arbitrary items on the counters. There isn't much visual feedback for what's going on with cooking for now, but I'm starting to get somewhere. I'm already at over 10 hours, so I guess I'll prep things to submit a demo next even though the game doesn't even have a progression loop.

I started implementing an interaction system for cooking. The player can pick up items and interact with structures in front of them with their current item. Both items and interactables can have specific behavior, like plates having a meal on top of them that the player slowly builds and machines taking time to process inputs. It's been a challenge to figure out how to structure this kind of thing with Godot, but I'm slowly getting the hang of it.

I implemented a player that moves around and collides with the tilemap. I tried a few different styles of movement, like grid-based, but decided that letting the player move in any direction is the most enjoyable. Letting the player move on diagonals (and other directions when using a controller) has the downside of making the animations look weird, but there's no way I'll be able to animate diagonal walking. I'm not yet satisfied, but I'll move on to other functionality for now.

I setup Godot and Hackatime
Expand Journey
Comments
No comments currently