Post news RSS Project_BuildTutto Development Update 26

In this series of updates I'll document the development process of the game in detail, post timelapse videos of the work, and talk about some features...

Posted by on

Hello everyone!

Stefano here with yet another Project_BuildTutto Update! Not the most feature rich week, but still a lot of improvements during these days since I did many tests and debugging sessions to smooth out all the various edges of the game right now, aiming at the famous "Stable and somehow playable" state of the game. So, lets dive into the changelog, stats, and videos!



IMG CHANGELOG 11


IMG STATS 10

New recipe and library management

As I anticipated you in the previous update, I reworked the way new objects are coded inside the game. In particular I had to think a way to specify for each object all these different properties:

  • The object resources used to craft it
  • Their pattern inside the blueprint grid
  • How all the different object's properties are inherited by its component
  • The final value of the object
  • Its category and materials
  • Its class
  • How big the object is
  • How much time it takes to be crafted
  • Other things that I eventually add into the game

As you can see those are a lot of information and I absolutely needed a parser to understand all that crap and convert it into the game when needed.

The final system that come out of this is a series of functions and an external file. In this external .txt I write all the different objects stuff in this way:

IMG Recipe


Then, on the game startup, this file is loaded and parsed by few functions, and for each recipe a Recipe object is created. When the player will enter the blueprint menu, each time he will add or subtract an item from the grid, the game will run through all the recipes and will look for a matching pattern for that object, saving all the possible valid patterns inside a "validRecipes" vector. Then, the game will create the new object, feed all its stats and properties, and make it available to be saved in the player's library.
I'm happy with this system since it gives me much more freedom and ease of access on all the various details of each object without changing anything inside the actual code, allowing much easier balancing and tweaking.

Improved orders handling by guys

Another quite substantial improvement is found inside the guy's code base. To recap shortly, the main order system is structured like this:

  • Each Level has a list of orders to do to satisfy the current level's needs.
  • Each guy when it is looking for a job to do asks the level object and it gives a set of orders to do.
  • The guy executes all the orders and check back at the level object to tell it he did all these orders and he can erase them from the list.

Now that each guy has its own strength and can lift different quantity of objects, I had to improve the code allowing guys to change internally the orders to fit their stats and capabilities. This wasn't a very easy process since I had to improvement the communication between this two classes, but at the end it worked and I'm very happy with the results.

GIF Bronze

Small minor changes and fixes

Other smaller improvements consists in quality of life tweaks like the library that closes itself when an object is selected, the blueprints menu that doesn't take all the screen but leaves the bottom and top gui still available to be used, reintroduced the serialization save system only for library so I can test the game without having to blueprint all the objects each time I run the game, added information like progress bars and the sprite of the items being produced inside the fuelmachines.

Optimizations improvements like a faster code inside the ghosts checking for materials to be built and better GUI objects code.

Keep in touch

If you are curious to see how things will go feel free click any of these links to join our community:
Discord Server: Discord.gg
YouTube channel for Timelapses: Youtube.com
Twitter: Twitter.com
Changelog: Docs.google.com

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.