January 2025 - Week 3
This is now the 11th week of development for Cosmic Construct, and it comes with a many substantial changes to the game's future and its scope. Unfortunately, this creates more work for me, but don't worry about that. I'm familiar with having large scope projects.
Most importantly, Cosmic Construct now has a steam page! (You might even be reading this on the steam news page.) In addition to being posted on itch as these logs typically are, they will be echoed on the steam for the benefit of people there. If you want more frequent updates to Cosmic Construct's development, you can follow on bluesky. (Although, I have admittedly lapsed on daily updates as of late. I'll do my best to get that back on track.)
Each week I cover the development goals set the prior week and see if they have been meet.
---
[] New save management system for the main menu. (Multiple Save Slots and New Game)
There is now a half complete saving and loading system on the game splash / main menu. Players can load from up to 8 individual save files. Each save file has its own maps and pawn database files. The main menu will still only load the characters from save slot 0.
[] Settlement value, population, currency, and rank display.
In the save slot there is a gold number representing settlement value. This value is calculated the simulation once every 5 seconds. It includes the value of all objects in the orgin map (the one with the totem), all objects in storage, and all production buildings outside of the origin map. This value serves an endgame function of determining total economic strength of the settlement, which will be needed for triggering events for non-pawn NPC interactions. (Something that will be more obvious as the tech tree for the game grows.)
In the below screenshot, the same gold number is overtop of the totem level progression bar. Marked as "wealth".
[] Rewriting the item database.
The item database was in a very poor state. As I was mostly calling items by their item id, which was largely unsorted and unwieldy. The play save file would only list items from the length of the item database and break each time a new item was added to the game. This is naive, and I knew this when I wrote it. Working with it is now painless.
Now the save file is fully futureproofed. I can add as many items to the database as I which whenever something new comes up. This also applies to item and structure records. However, I still need to do the same thing for the interact objects database, but its going to use the same json struct format. It'll take like 30 minutes to implement, so it'd not really a concern.
[] Objectives for settlement ranks 6-10.
[] Structures and items to support ranks 6-10.
I didn't quite get this done. Largely, the structures are already in place. I don't know why I said this last week. However, the items really weren't. I added 22 new items to the tech tree, which each needed icons. I'm not going to tell you what those items are, but most should be pretty obvious.
As for objectives planning, I decided to take a more wholistic approach to the design of objectives. I'll be working on advancement levels 6-50 all at once, and as I get each totem level finalized I'll put them into the game. Because of the way the tech tree is arranged, I will naturally complete the lower totem levels first.
[] A secret feature. (If I have time. What could it be?)
These are the big ones, and ended up taking up a majority of my development time. It also broke almost every map handling system, which needed to be restructured.
The first is multimaps. The game now has multiple maps. Before the entire game consisted of a single 101 by 101 tile grid, with the totem at the center x 50, y 50 position. I've nested these maps in a similar 101 by 101 tile grid. So the game now has 10,201 map cells, each with 10,201 grid cells. Making the game 10,201 times larger by area. Totaling 104,060,401 tiles.
Alright cool, so the game is big now. It would be boring if it was all forest.
Well, I also added support to the terrain generator for additional biomes. Which was the most difficult thing I have had to do for this game up to this point. Was it worth it? Yes, absolutely. The map you have seen time and time again with all of the trees is the "Shatterlands" biome. It's been that way in the game's code for a while, and I have intended to add additional biomes much later in development.
This is the new "Hinderlands" biome. A red and dry themed biome with a lot more wheat, a lot less berries, birch-like trees, and red grass.
It also rains a non-descript red liquid.
[] Rewriting the place mode function. (maybe, it's hella spaghetti right now)
I didn't work on this at all due to complications with the integration of multimaps. As the code working in its current state, it actually places just fine in the multimaps. I didn't expect that to be the case, but I also didn't want to mess with it too much in case I broke that also. Once I fix the multimap bugs, I'll work on this.
Here is what I didn't plan on doing, that I ended up implementing
---
[] Multimap Database & Origin Simulation
With the addition of multimaps. I also had to write functions to generate the maps, and tween them from map edges. This sounds like a trivial array assignment and player teleport. Unfortunately, hidden from the player is a function that is colliding with array indices all over the map to update it. This is to trigger the growth of plants and spawning of resources.
The pawns are still being simulated in the origin map when the player is away, so those plants need to be growing in a map the player currently isn't in. This creates a huge issue with the way that update function works.
Unknown to the player, I'm just making all of the entities invisible while one the same map. The pawns are just interacting with a reality that is different to the players. To do that, I have to load and update two maps simultaneously. It's very complicated.
[] Trees
For the new Hinderlands biome, I needed to make some birch-like light trees for what I envisioned, but none of the trunks of the existing trees were straight. Meaning I had to take the existing 8 trunk assets and make changes to them to create 8 new trunks for the lightwood trees. They actually differ in appearance quite a bit. Although, I also can't really tell a difference when they are clumped together. The trees are also a little sparser in the Hinderlands than in the Shatterlands.
[] Text Outline
It might be a little difficult to tell from the screenshots, but I added a black border to all of the UI text so that it is easier to read overtop of all of the game's foliage.
---
Over the next week, here is what I have planned.
+ Create images for the Hinderland terrains underlayer, so that it actually feels like an obvious new biome.
+ Fix the bugs created from the implementation of multimaps, and make sure the saving and loading of maps operates as intended.
+ Write the update simulation function to separate pawn simulation in the origin map, from the player's current map.
+ Create new placeable structures to prepare for pawn garrisoning, and passive income mechanics.
+ Further expand the tech tree, and add objectives. (If I have time).
Again, if you are reading this and haven't wishlisted Cosmic Construct on Steam, please do that. See you all in next week's devlog.
Cosmic Construct
A 2D colony simulation game with cute creatures.
Status | In development |
Author | soaringmoon |
Genre | Simulation, Survival |
Tags | Animals, Crafting, Cute, Dark, Farming, Furry, Management, Sandbox |
More posts
- February 2025 - Week 41 day ago
- February 2025 - Week 37 days ago
- February 2025 - Week 215 days ago
- February 2025 - Week 122 days ago
- January 2025 - Week 429 days ago
- January 2025 - Week 244 days ago
- January 2025 - Week 152 days ago
- December 2024 - Week 461 days ago
- December 2024 - Week 370 days ago
Leave a comment
Log in with itch.io to leave a comment.