1. City Game Studio
  2. News

City Game Studio News

No More Returning to Main Menu to Load

Hey everyone!

This week was a bit complicated, I got sick, and I had quite a few appointments, but despite all these setbacks I managed to do what I wanted, so I hope you did too!

[h3]This Week's Recap[/h3]
First, a quick word on loading games. Because that's what we're going to talk about today. Until now, to load a game you had to be on the main menu. This made my life easier on the programming side, but for you it makes the game a bit less accessible.

Indeed, if you have to be in the main menu to load a game, that means if you made a mistake when loading the game, you then have to wait for the game to load, then return to the main menu, then load the saves, and finally load your game.

This cycle, a bit long, has been shortened. Now you just need to go to the menu to quit your game in order to fetch the save you want to load. And there you go, done! I think this will make your life easier.

Since I was in that menu, the one for quitting the game, I took the opportunity to give it a little facelift, to make it more attractive and readable. I hope you like these changes.

Under the hood, there are some small optimizations in save management, but nothing you should notice.

[h3]What's Coming[/h3]
I got some feedback on Steam Deck support that could be improved. So this week I'm going to look into that. Make the game more enjoyable on Steam Deck.

I'd also like to work on employee balancing. Actually, I'd like to rework their happiness system so they don't leave the company right away, but instead offer you alternatives. I don't know yet how I'm going to do that, but I think it's important.

Well, that's all for me, I know it's a bit brief as a devlog, but I didn't have much to say since I spent all my time on a simple feature which is being able to load a game while you're already in-game.

I won't hide from you that I want to continue optimizing the game so loading times are faster, but I also need to add content, so we'll see for the rest.

I'll leave you here, see you next week. In the meantime take care of yourselves
Xavier aka Binogure

Patch v1.26.0-rc6

[p][/p]
[p]Default version of the game, we want to make sure to have a chance to discover bugs and adjust the balancing, to give you the best game experience possible.

Access the Unstable branch on Steam by right clicking City Game Studio in your Steam library, and then select ‘Properties’. In the new window, select ‘Betas’. The Unstable branch should now be available for you to choose from.

Please leave any feedback you may have in the appropriate channel in our Discord, or in the subforum on Steam.

As always, remember to be considerate towards players not partaking in the Unstable, in case they want to avoid spoilers.

Please make sure to make backups of your save files before playing.[/p]

[h2]Changelog - rc6[/h2]
[h3]Save Game[/h3]
  • Added ability to load save games while already in-game
  • Added caching system for save game listing (internal optimization, not for browsing)

[h3]Interface[/h3]
  • Redesigned the exit menu while in-game

[h2]Previously[/h2]
[h3]Rendering[/h3]
  • Use higher resolution for platform sprites (1024px instead of 512px)

[h3]Platforms[/h3]
  • Add the Steam Frame
  • Balance the Nintendo Switch units sold
  • Balance the PlayStation 5
  • Balance the Xbox Series X
  • Adjust the end of life of the first Steam Machine

[h3]Updates & DLC[/h3]
  • Redesigned the game update interface
  • Redesigned the game DLC interface

[h3]Interface[/h3]
  • Added the GOTY award to the "Misc" filter in the shop menu
  • Added a way to access the devkit panel from the bottom menu
  • The email panel now uses more colors to help you manage messages
  • When unlocking a new game engine component, added a button to navigate directly to the game engine update panel
  • Added a grid overlay when furnishing studios

[h3]Custom-platforms[/h3]
  • Add a copy-protection parameter to avoid the 1983 market crash

[h3]Quality of Life[/h3]
  • The game now remembers the sorting filter when opening the game genre panel
  • The game now remembers the sorting filter when opening the platform panel

[h3]Optimization[/h3]
  • Reworked the tips thread to stop once completed
  • Optimized startup time (39% faster on high-end computers, 55% faster on low-end computers)
  • Replaced the `call` function with direct function calls (250% performance improvement)
  • Optimized label refresh to only update visible labels
  • Optimized the bouncing animation (switched from animation node to process)
  • Optimize the function 'compute_employee_happiness' since it takes up to 2300 ms (with hover 1000 employees). It takes now ~66 ms. This function is used every 3 seconds in the game, it used to update the staff happiness.

[h3]Clean-up[/h3]
  • Removed 108 unused textures
  • Closed all open I/O operations

[h3]Modding[/h3]
  • Add a new parameter when creating a new difficulty (copy_protection_costs)
  • Add a new parameter when adding a new platform (copy_protection)
  • Add a new parameter when adding a new platform (backward_compatibility)
  • Add a new parameter when editing an existing platform (backward_compatibility)

[h3]Staff Panel[/h3]
  • Added a new filter to display employees not assigned to any studio
  • Add the studio size to the studio name

[h3]Balancing[/h3]
  • Added a new threshold for additional cost reduction on custom platform manufacturing

[h3]Save Game[/h3]
  • Redesigned the save game panel
  • Added ability to name save games when duplicating
  • Added ability to name save games when creating new slots
  • The game now warns and asks for confirmation when overwriting existing saves

[h3]Misc[/h3]
  • Add support for 3440 x 1440 resolution
  • Removed a yield while loading scenes (fixed memory leak and other issues)
  • Configuration files are now only written when changes are detected

[h3]Bugfixes[/h3]
  • Fixed fullscreen mode (Windows only)
  • Digital store: Fixed an issue where updating the assigned studio for a digital store feature wouldn't update the in-development panel
  • Fixed a rare crash when closing in-game messages
  • Fixed achievement unlocking incorrectly when releasing games on competitor-made consoles instead of own consoles
  • Fixed the progress bar for manufacturing cost reduction on released custom platforms not progressing correctly
  • Fixed an issue preventing GOTY awards from being placed
  • Added migration to update the count of GOTY awards won
  • Fixed mouse wheel scrolling the page when adjusting sliders
  • Fixed slider mouse input positioning issues preventing accurate adjustment
  • Fix a crash when updating a "green" game
  • Cannot use the mousewheel to update the micro transactions price
  • Fix an issue with the double slider (renting studio)
  • Fix an issue with some savegames where the game price is not taken into account (due to the studio director)
  • Fix an issue with the studio director where it ports games that has not yet been released.
  • Fix an issue with the fanbase change label, it always shows 0 (which is not correct)
  • Fix an issue when a savegame keeps hint, it might crash the game (at start up)
  • Add a missing font size (godot 2.1 manages font size individually)

Optimization From 2300ms to 44ms!

Hey folks!

Another excellent week just wrapped up!
I worked hard, but not on saves. As the v1.26.0 release date approaches, I took the time to do a pass on bug reports. And I'll tell you all about it right now

[h3]This Week's Recap[/h3]
To sum up, there weren't that many bug reports, barely 5 over the last 30 days. But each of these bugs was valid and needed my attention.

First, the in-game gauges. I'm not talking about gauges for making a game, but gauges for adjusting sound, microtransaction prices... Well, I made fixes so they work better and respond better. But I introduced a few bugs, which are now fixed.

There's a fairly complex bug that was affecting the studio director, and it's fixed. Actually, if you were developing a game manually but the studio director was handling the port, then the game would have a bug. The price wouldn't have been set correctly. But as I mentioned, it's fixed.

Another small change, but one that'll please you I'm sure, concerns changes in the number of fans. Before, this number stayed at 0, and now it changes correctly and it's nice to watch I think.

I made a few more fixes on missing fonts or even a crash (fairly rare) when launching a game while keeping hints from previous games. But I'd rather talk to you about optimization.

V1.26 is dedicated to saves, but I spent a non-negligible amount of time doing optimization. In a previous RC I was optimizing game launch, and now I took the time to optimize the game itself.

Actually, more and more of you have large companies. With many employees, so I took the time to optimize this part. Previously, when you had over 1000 employees, you could notice regular slowdowns. This was due to a single function that handled balancing your employees' happiness.

So I worked on that and reviewed a few small things. First, the way the function is called. Instead of being called in the middle of other functions, it'll have its own dedicated cycle. Which will allow the game engine to do other things in the meantime. On top of that, I did caching, simple calculations that saved a few milliseconds. But the biggest thing was changing data access, which previously meant this function could take 2300 milliseconds to execute. And that's noticeable. Your game literally freezes for a few seconds. But with all the changes I made, we go from 2300 milliseconds to 44 milliseconds. Let's just say you're going to notice the difference!

Otherwise there's another small change concerning the employee panel - from now on, you'll see the number of employees and available offices directly in the studio names.

[h3]What's Coming[/h3]
Given that I haven't worked on saves at all, I plan to tackle it. It's high time you could at least load your games even if you're already in-game. I know that just that alone is going to require quite a bit of work. Because the game isn't designed for that. So I don't know yet how I'm going to approach it, but I'm going to have to rip out and rewrite quite a bit of code!

Well well, it was a long post for not much in the end, mostly fixes and optimization, but at least you know what I did this week!

See you next week, in the meantime take care of yourselves
Xavier aka Binogure

Patch v1.26.0-rc5

[p][/p]
[p]Default version of the game, we want to make sure to have a chance to discover bugs and adjust the balancing, to give you the best game experience possible.

Access the Unstable branch on Steam by right clicking City Game Studio in your Steam library, and then select ‘Properties’. In the new window, select ‘Betas’. The Unstable branch should now be available for you to choose from.

Please leave any feedback you may have in the appropriate channel in our Discord, or in the subforum on Steam.

As always, remember to be considerate towards players not partaking in the Unstable, in case they want to avoid spoilers.

Please make sure to make backups of your save files before playing.[/p]

[h2]Changelog - rc5[/h2]
[h3]Bugfixes[/h3]
  • Fixed mouse wheel not working for microtransaction price adjustment
  • Fixed an issue with the double slider (studio renting)
  • Fixed an issue where some save games wouldn't account for game pricing correctly (studio director related)
  • Fixed the studio director porting games that haven't been released yet
  • Fixed the fanbase change label always displaying 0 (incorrect value)
  • Fixed a rare crash on startup when loading save games with persistent hints
  • Added missing font size definition (Godot 2.1 requires individual font size management)

[h3]Optimization[/h3]
  • Optimized the 'compute_employee_happiness' function from ~2300ms to ~66ms with over 1000 employees (35x faster). This function runs every 3 seconds to update staff happiness.

[h3]Staff Panel[/h3]
  • Added studio size information to studio names

[h2]Previously[/h2]
[h3]Rendering[/h3]
  • Use higher resolution for platform sprites (1024px instead of 512px)

[h3]Platforms[/h3]
  • Add the Steam Frame
  • Balance the Nintendo Switch units sold
  • Balance the PlayStation 5
  • Balance the Xbox Series X
  • Adjust the end of life of the first Steam Machine

[h3]Updates & DLC[/h3]
  • Redesigned the game update interface
  • Redesigned the game DLC interface

[h3]Interface[/h3]
  • Added the GOTY award to the "Misc" filter in the shop menu
  • Added a way to access the devkit panel from the bottom menu
  • The email panel now uses more colors to help you manage messages
  • When unlocking a new game engine component, added a button to navigate directly to the game engine update panel
  • Added a grid overlay when furnishing studios

[h3]Custom-platforms[/h3]
  • Add a copy-protection parameter to avoid the 1983 market crash

[h3]Quality of Life[/h3]
  • The game now remembers the sorting filter when opening the game genre panel
  • The game now remembers the sorting filter when opening the platform panel

[h3]Optimization[/h3]
  • Reworked the tips thread to stop once completed
  • Optimized startup time (39% faster on high-end computers, 55% faster on low-end computers)
  • Replaced the `call` function with direct function calls (250% performance improvement)
  • Optimized label refresh to only update visible labels
  • Optimized the bouncing animation (switched from animation node to process)

[h3]Clean-up[/h3]
  • Removed 108 unused textures
  • Closed all open I/O operations

[h3]Modding[/h3]
  • Add a new parameter when creating a new difficulty (copy_protection_costs)
  • Add a new parameter when adding a new platform (copy_protection)
  • Add a new parameter when adding a new platform (backward_compatibility)
  • Add a new parameter when editing an existing platform (backward_compatibility)

[h3]Staff Panel[/h3]
  • Added a new filter to display employees not assigned to any studio

[h3]Balancing[/h3]
  • Added a new threshold for additional cost reduction on custom platform manufacturing

[h3]Save Game[/h3]
  • Redesigned the save game panel
  • Added ability to name save games when duplicating
  • Added ability to name save games when creating new slots
  • The game now warns and asks for confirmation when overwriting existing saves

[h3]Misc[/h3]
  • Add support for 3440 x 1440 resolution
  • Removed a yield while loading scenes (fixed memory leak and other issues)
  • Configuration files are now only written when changes are detected

[h3]Bugfixes[/h3]
  • Fixed fullscreen mode (Windows only)
  • Digital store: Fixed an issue where updating the assigned studio for a digital store feature wouldn't update the in-development panel
  • Fixed a rare crash when closing in-game messages
  • Fixed achievement unlocking incorrectly when releasing games on competitor-made consoles instead of own consoles
  • Fixed the progress bar for manufacturing cost reduction on released custom platforms not progressing correctly
  • Fixed an issue preventing GOTY awards from being placed
  • Added migration to update the count of GOTY awards won
  • Fixed mouse wheel scrolling the page when adjusting sliders
  • Fixed slider mouse input positioning issues preventing accurate adjustment
  • Fix a crash when updating a "green" game

Duplicate and Rename Your Saves

Hey everyone!

I hope you're doing well! As for me, I've been working hard and I think v1.26 already has tons of new ultra-quality changes!

[h3]This Week's Recap[/h3]
That's it, I did it. City Game Studio now has a save system that rivals AAA games. You can duplicate saves, but also rename them. And that's honestly awesome. It's what I'd been planning to do for quite a while, and now it's done.

Cherry on top, I took the opportunity to move a thread and clean up the code. Result: the game is only more stable on long sessions. On top of that, there's an improvement to the load game panel. Since you can rename your saves, I thought it was important to display it, so I took the opportunity to make a few changes. It's subtle, but it makes a visual difference I think.

I also optimized file writing a bit so the game no longer constantly writes to a config file when there's no need to. Your hard drives are going to be happy!

On top of that, there's a last-minute fix that concerned game publishing. Indeed, when you hire another competing studio to make your games and you want to update those games, it would crash City Game Studio. Thanks to Boerkovic for reporting this problem to me. It's now fixed!

[h3]What's Next[/h3]
I plan to continue working on saves, but not really saves - more like loading games. Actually, I'd like to offer you the ability to load a game while you're already playing.

Now you're going to tell me you can already do that by going back to the main menu. Which is true, but it's not super convenient. Being able to load a game while you're already in-game would be ideal. I'm going to do everything I can to make it available next week, but it's going to require quite a few adjustments.

Rest assured, I still plan to add options for the banker, but that'll come once the saves are finished!

Well, thanks for being more numerous each day to buy and play City Game Studio, see you next week for more!

In the meantime, take care of yourselves
Xavier aka Binogure