SupplyChains
- 27 Devlogs
- 271 Total hours
A game inspired by transport fever and mindustry centered around building road networks and logistics chains around construction and mining operations, with farming and forestry planned for a future update.
A game inspired by transport fever and mindustry centered around building road networks and logistics chains around construction and mining operations, with farming and forestry planned for a future update.
I have fixed the vehicle pathfinding (mostly) and I have made the construction system.
I have fixed the vehicle pathfinding and it works now mostly. I say mostly because it breaks when a trailer is equipped, but that is a way smaller thing to fix.
It’s almost done. The system makes it so the resources actually have a function and you now need to deliver resources to a building site before the factory can get built.
I know I said it would be done this weekend and it still isn’t, but it’s almost there. What I still have to do:
So 2 devlogs left, and otherwise I will just ship incomplete because I don’t have time anymore.
I’ve finished base building and am now working on the factory UI.
I’m working on the factory UI, where you can see the factory’s storage and change its recipe. It’s almost finished.
Base building is finished you can now make taxiways and build a warehouse. I’ve also put these into a UI like the factory’s, so it only takes one button.
I’ve spent yet another hour on vehicle physics/pathfinding, and I’ve narrowed it down to a bug in the handoff to the prebaked paths of the factories.
I’m pretty sure I am gooing tho finish it this weekend. What’s left:
I’ve finished the trading system!
The trading system is done. Orders are generated, you can accept them, and accepted trades show up in the UI. The only thing left is adding the planes, but that depends on finishing the base-building system first.
I’ve started working on base building. It’s pretty simple and mostly uses systems that already exist, so it should only take around an hour to fully implement.
Development has been going way slower than I hoped because my codebase is currently a bunch of bandaids stacked on top of each other. I also need to ship this week since Thirdspace starts next week, which means I probably won’t have time to add much polish.So I need your opinion: is it worth delaying the game for another week? 😭 Or should I just ship it?
Do you think I’ll still be able to afford the Framework 13 if I release it now?
My current plan is to focus on getting the core systems working, fix any major bugs, and leave extra polish and construction vehicles for a post-launch update.
Got the backend for the trading system done and overhauled the UI to go with it.
I made a trading system. It generates contracts with the recipient’s name, the resource being traded, and the price. Basically the foundation for the aircraft system.
Redesigned the time and date display because it looked kinda rough. Also switched the economy back to money instead of the resource, makes way more sense for trading. Oh, and vehicles now actually speed up when you speed up time, which is pretty cool.
I’m not including construction vehicles in the initial release because that’s like 40+ more hours of work and I want to actually finish this before Thirdspace starts (I’m gonna compete too). So yeah, that’s going to a post-launch update.
Hope I can get that done this week. Tryna hit at least 14sd/h so I can hopfuly buy that Framework 13 lol
I’ve implemented pre-baked docking paths for factory entrances to solve some pathfinding issues with vehicle physics.
The A* pathfinding system was struggling to navigate the sharp corners around factory entrances. When the trailer tried to find its own path through these tight spaces, it would instantly jackknife, not ideal. Rather than spend 50+ hours refining the vehicle physics, I decided to pre-bake specific docking paths to each factory.
It’s not a perfect solution visually, but it’s functional and gets the job done. I can always refine this for a post-launch update if needed.
I’m still wrapping up the final details of the docking path system before moving on.
My next major task is implementing mine logic, which includes the excavator logic and ore detection and depletion.
After the mining logic I will add the last vital gameplay system the aircraft system which will be responsible trade and contracts with other villages.
I’m currently deciding whether to push construction vehicle implementation to a post-beta update or delay the release by a week to include them. Construction vehicles aren’t vital to core gameplay, but they would add a lot of polish. I’m still on the fence about this one, it depends on how the mine logic implementation goes.
I’ve built a system for placing factories in the world.
Turns out it’s an absolute pain in the ass to place objects that are multiple tiles big while also having them connect to multiple Godot terrains. So I had to write a whole system that places every tile separately and keeps track of which tiles are occupied.
I also had to rework how roads are placed. Originally, every road type was its own terrain, but that doesn’t work if you want them all to connect to factories and to each other. So now they’re all just one terrain, and a script gives each tile the correct color for its road type. This only works because all the road types are identical in shape just different colors.
I’ve added several new aircraft sprites: the Bo 105, the Twin Otter, the PC-6, and the H225. I’m planning to add the Chinook and the A400M next, which will round out the aircraft lineup for the beta launch.
It’s going to be close. I’m not sure I’ll hit my self-imposed deadline, since some things took a lot longer than expected but I might still make it. Either way, I’m not going to rush it. I’d rather ship a week late than release something that gets 5 SD/h because it isn’t polished.
I’ve reworked the factory sprites and added aircraft.
I have made new sprites for every factory execpt the concrete mixing plant. the sprites are now 2x2 or larger so vehicles can realisticly unload there.
I’ve decided to add aircraft, which will serve as a trading terminal so you can trade with other villages, get contracts, and earn money. Aircraft fit well for this since no other villages spawn in the world. they let you trade with other vilages without them needing to exist in the world. I still need to add alot to make this work but currently I have a working runway building mecanic
Next, I still need to build out the factory logic. I plan to make them with custom resources, just like vehicles. I made the new sprites first because I needed to know where (un)loading would need to happen before I could design the logic around it.
I’ve completely restructured how vehicles work under the hood. The main goal was to break down the code into readable, reusable pieces.
The vehicle script had become too large to work with, so I split it into five scripts: vehicleBody.gd, drivetrainComponent.gd, path_movement_component.gd, CargoComponent.gd and attachment_component.gd. This makes the code easier to maintain and reduces the chance of bugs when adding new vehicle types.
I have converted the nested Dictionaries into custom resources which makes it easier to add vehicles and less error prone.
I tweaked how the pathfinding works by chamfering the corners so vehicles navigate them more smoothly. It doesn’t look quite as I want yet, but combined with animations, it should look acceptable for now. This is something I’ll have to find a more permanent solution for later.
I’m targeting version 1.0.0 for Saturday, August 22nd. There’s still quite a bit to do, but I think I can make it. I set this deadline because I’ll have less time once school starts.
The route system is now done
The route system turned out to be more complicated than initially expected. I restructured it so the route is calculated centrally in the Global script, and every instance using it reads from there. This keeps things synchronized and maintainable. For now, the system has one mode implemented: a ping-pong mode where vehicles travel back and forth between two set points.
There’s a persistent issue with vehicle physics where they cut corners and miss checkpoints, requiring them to turn around. I’ve set this aside for now to focus on other features, but it’s something I’ll need to fix down the line. I realy have no idea how though I cant seem to find the issue.
The last major things before release are:
I am currently working on the route ui and the route system.
The route UI is almost done I only need to link it to the route system.
I am almost finished with the route system I only have to connect it to the vehicle and rewrite the factory system a bit so it works with the route system. there will be multiple modes distribution of one factory based on demand or a ping pong mode where it drives back and forward between 2 set points. You also will be able to assign vehicles to construction projects but this will come later.
The trailer UI is finised you can connect trailers to vehicles via it.
I’ve connected the vehicle systems to the world and to the UI.
I’ve made a vehilce manager script. This manager stores and retrieves vehicle data efficiently by ID, making it easy for the UI and other systems to access vehicle information.
I’ve made a UI where you can see the fuel, total weigth, health and engine load of the vehicle by clicking on it. There are also 2 buttons 1 for selecting a route and the other for coupling a trailer.
When you buy a vehicle it gets assigned a base tile you now need a base tile per vehicle.
Next, I need to implement the route selection and trailer coupling buttons to complete the vehicle system integration as far as I can right now.
I’ve put together a roadmap for the rest of development.
I’m planning to release the game in 3 weeks and have laid out a plan accordingly.
I’ve spent about half my time since the last devlog tweaking vehicle physics, and I’ve decided to compromise on a few things — for example, when the trailer jackknifes and gets stuck, it’ll just clip through the vehicle.
I am almost finished with reworking the shop it now displays all the stats that the vehicle uses
I’ve almost finished all the vehicle logic.
A working pathfinding system is now in place using AStarGrid2D. This system works with vehicles both with and without trailers, and handles both on-road and off-road navigation.
Trailers can now couple to vehicles with the correct hitch and follow them around in a realistic manner. The coupling mechanics work as they would in real life.
The vehicle logic still needs some fine-tuning, and I haven’t tested it yet with every vehicle type. I still need to implement the articulation system for the articulated dump truck.
I am currently working on the vehcile logic
There are alot of variables now that determain the behavier off the vehicles like engine and weight
I have fixed the scaling of the sprites.
I still need to implement the trailer logic and pathfinding.
Just returnt from vacation, and i forgot to make a devlog before i went so i dont fully know anymore what i changed.
I have implemented the core factory system. Factories can now receive resources, process them and output the procesed resource. I haven’t fully tested the logic yet since the UI and vehicle systems ( needed for input/output) aren’t complete.
I have probebly done more but i dont know anymore because i have been a way for a week.
My next priority is implementing vehicle logic, but first i need to fix vehicle sprite scaling. Currently all vehicles are 11px wide, which makes a dump truck as wide as a car. I want to make everything a consistent scale (probably 5px = 1m) and update all sprites accordingly for a more realistic appearance.
Been working on the supplychain structere last 2 days, including new sprites
I have made new factory sprites. All sprites are new i am not realy happy with how the steel and wire mill look but the rest look prety good i think.
I have also added a couple new resources their are 4 resource types now: copper, coal, gold, iron. The resources spauwn in mixed vains on the map determent by a NoiseTexture2D.
I am now gooing to work on the logic for the factorys and i want to take a nother look at shadows because the didnt work last time but i have found a otherway to do it i want to try.
Today i have been focesing on the inviorment
I have now linked up the hole UI. In the last devlog I had already shown the ui but now it also linked up properly with the game.
I am currently implementation a dynamic day/night cycle. Right now, the timing and transitions aren’t lining up the way I want them to, so i still need to do some fine tuning .
This is where I’ve been strugeling. I’ve been trying to figure out how to implement proper 2D shadows. The issue is that the built in directional shadows in Godot aren’t really designed for top-down games. They make the sun’s shadows look infinitely long and completely distort the perspective. Every custom solution I’ve tried so far looks terrible. I’ve easily spent about 5 hours making custom shaders making a static shadow, but I’m still stuck.
If you have any experience with top down 2D lighting or custom shadow shaders in Godot, please let me know in the comments!
I could really use some help right now. The biggest problem is that the fastNoiseLite texture doesnt calculate the same in the shader as via the cpu which is also the thing that is hindering me in the ovelays.
Been working on the UI this weekend. its nothing special yet but it is good enough for now.
I have made a menu where you can see all your vehicles. It is pretty simple but i need it for programming the vehicles.
I have made a shop ui where you can buy the actual vehicles. The are sorted by type. You can see the stats and capabilities and you can decide if you want to buy the vehicles or if you want to finance it.
I have also made some improvments and additions to the selected tile ui, you can now choose a variant if the selceted tiles has them like the factory. You can also see what number is connected to what if you hover over the ui.
I am also working on a overlay so you can see the height, temperature and humidity I am doing this with a shader but it is not working how i expected at the moment because the shader doesn’t line up with my terrain.
As i mentioned in devlog #6, i am rebuilding the game in godot. I am almost done with the essentials and development has already almost doubled in speed.
I have build a biome system using three noise textures to determine temperature, altitude, and humidity. Each tile uses these values to determine which biome gets drawn. This means the world has natural variation and will hopefully look less boring. It also sets up the foundation for biome specific resources and mechanics down the line forcing players to make a bigger network.
You can now place roads this works with terrainSets which makes it easyer to draw roads. Roads are the only thing you can place for now.
I’ve also made a simple pathfinding script using the built-in NavigationAgent2D. The destinations are hardcoded for now. I’ve heard AStarGrid2D might be better suited for grid-based pathfinding in my case, so I’ll be researching how to implement that.
Before I’m back where I was with the Greenfoot version, I still need to add:
Spent the last week trying to fix the UI and physics in Greenfoot, and honestly? It’s just not happening. Greenfoot wasn’t really built for games like this the UI support is basically non-existent, and getting clickable buttons to work properly is way more of a pain than it should be. And i decided it was no longer wordt fighting for.
So I’m switching to Godot. I’ve made some prototypes in it before, so at least I know the basics, and it’s way better suited for what I’m trying to build. The downside is development is gonna be paused for about a week while I set everything back up and rewrite some stuff. But after that? Should be able to move way faster, which will hopefully make up for the lost time.
it has been a bit since my last devlog i have some major changes this version. It is nowhere near done yet but it is almost playable. here is what changed:
I have added sand and gravel that are used in multiple new recipes
I got rid of the money system because it gave the ability of players just focusing on one resource. Now players need to use all the resources like iron ore, copper ore, sulfer ore, sand, gravel and many more. You have to mine all resources and process them
This forces the player to actually spent time making a supplychain with diffrent mines and factories. This way it feels less as a idle and more like a managing game.
I have added new factories using the factory system i made last time these factories all require two or more inputs. Some factories make concrete from gravel and sand, others make PCBs and other compilicated stuff.
I plan to add more in the future but for now it is way beter than before.
I have added multiple new vehicles:
I am planing to add more construction vehicles so that every building needs a construction vehicle to build instead of the building just appearing out of nowere.
The old ui didnt fit anymore there where to many tiles and the route tab did not support construction equipment, so i made a new tile ui that groupes the tiles in road, factory and mines. I have also made a new vehicle ui which i call the garage this shows
it’s way better than before but you currently cant buy the vehicles yet
Roads can be upgraded: gravel -> cement -> asphalt. Gravel roads are cheap but slow, asphalt is fast but expensive. Upgrading is expensive but can speed up your production or reduce the number of vehicles required to keep the factory full. The road level doesnt effect offroad vehicles and some vehicles may get a max speed in the futer
It is the same as last time because i had to many new ideas and no motivation to implent mutch backend stuff
Finised the factory ui / recipie ui that now tracks input output and procesing time
Added new sprites for the vehicles now have 2 types a dumptruck form the drill and a flatbed to the sellpoint