Devblog #2 - Automation isn't just about gameplay
09/2023 - #1 - Who? What? Where? When?
10/2023 - #2 - Automation isn't just about gameplay (Here !)
[/olist]
Hello!
Welcome to this second DevBlog of Manufactur'inc!
If you didn't read the first one and want to know about the game, you can read it here!
Today, we're going to talk about automation, but not the one you will be able to set in the game, we will talk about how I automate my own stuff to make my life easier to release update faster and automatically test whole parts of the game.
As I presented in the first DevBlog, I'm here to vulgarize things. I hope to share pieces of my developer life with everyone here without going into technical details :)
Something that made me lose *a lot* of time on my first game was releasing updates. You can't imagine how it's a pain to manually build a game build for 3 Operating systems (Windows, MacOS, Linux) and two architectures each (32bits/64bits, except for MacOS which only has the latter). So, something I set up 3 years ago with Exortion was to automatically create all 5 builds on a server every time I was going to "save my code" on the server. It reduced the time I dedicated to releasing an update from 1+ hour to ~15 minutes: download 5 .zip files from my server, upload to Steam and itch, trigger Steam update, and here we go! "That's cool" you would like to say? Yes, but some improvements were still possible! One year later, I was using SteamCMD to automatically push to Steam servers and Butler to push to itch.io automatically. What do I still have to do now? Press the release button, and write a nice update announcement! So here's what it looks like now for Exortion's demo for example, pretty cool no ?
Of course, Manufactur'inc already has this, from day one of development (and that's really cool to have !):
Another important topic that took up a lot of time in repetitive actions was testing. Being able to re-test every feature of a game before updating is something almost impossible when done manually (and we're not even talking about the time spent !). Automated testing is something common in my original development field (web development) and I wanted to bring this to my games as well, it easily prevents tons of bugs (not all, unfortunately !) and can test dozens of times faster than a human does, while being less error-prone! So, how and what do I test? I do two kinds of tests: - Feature specific tests (called unit tests) - "Global" test (called end-to-end)
A good example of unit test is about this part of UI:
I have to test that the number is displayed correctly, e.g. "123" is displayed as "123" "1230" as "1.23K" "1200001" as "1.2M" and so on So, I write lots of rules about this, and every time I run tests, it will check that this is okay! So, if ever I modify the system because I need to have "P" after "K" (=1 000), "M" (=1 000 000), "G" (=1 000 000 000), "T" (=1 000 000 000 000), I can be sure I didn't accidentally break anything!
As for end-to-end tests, I will test a scenario from start to end, e.g: - Login to the game - Place a building - Check that resource X is generating - Go to the contracts tab - Check that we succeed contact Y (because it asked to construct this building) - and so on If you want to see what it looks like for Alchemistry you can watch a video here (Sorry, I can't embed it on Steam !). Or another cool example of Extortion:
End-to-end testing and administration tools have been both my main focus since the game announcement (hence why I'm talking about this here). Those tools will both make me work easier and faster in the future (and I will need this since I will be solo on this project !).
I hope you liked this little behind-the-scene of game development! If you think things could be improved, you can add a comment under this post and I'd love to talk about it! You can also join Dysnomia's discord so we can talk about this! If you are interested to follow me elsewhere and get more than a monthly update about the game state, you can: - Join Dysnomia's Discord - Follow me on Tiktok (I will try to post as much as I can here, but it takes a lot of time !) - Follow me on Twitch where I sometimes do game development live - Follow me on mastodon - Follow my new and shiny Bluesky account! Thanks for reading this second DevBlog, and have a nice weekend! Elanis
[ 2023-10-21 14:26:26 CET ] [ Original post ]
Devblog history [olist]
Auto-updates
Something that made me lose *a lot* of time on my first game was releasing updates. You can't imagine how it's a pain to manually build a game build for 3 Operating systems (Windows, MacOS, Linux) and two architectures each (32bits/64bits, except for MacOS which only has the latter). So, something I set up 3 years ago with Exortion was to automatically create all 5 builds on a server every time I was going to "save my code" on the server. It reduced the time I dedicated to releasing an update from 1+ hour to ~15 minutes: download 5 .zip files from my server, upload to Steam and itch, trigger Steam update, and here we go! "That's cool" you would like to say? Yes, but some improvements were still possible! One year later, I was using SteamCMD to automatically push to Steam servers and Butler to push to itch.io automatically. What do I still have to do now? Press the release button, and write a nice update announcement! So here's what it looks like now for Exortion's demo for example, pretty cool no ?
Of course, Manufactur'inc already has this, from day one of development (and that's really cool to have !):
Automated testing
Another important topic that took up a lot of time in repetitive actions was testing. Being able to re-test every feature of a game before updating is something almost impossible when done manually (and we're not even talking about the time spent !). Automated testing is something common in my original development field (web development) and I wanted to bring this to my games as well, it easily prevents tons of bugs (not all, unfortunately !) and can test dozens of times faster than a human does, while being less error-prone! So, how and what do I test? I do two kinds of tests: - Feature specific tests (called unit tests) - "Global" test (called end-to-end)
Unit tests
A good example of unit test is about this part of UI:
I have to test that the number is displayed correctly, e.g. "123" is displayed as "123" "1230" as "1.23K" "1200001" as "1.2M" and so on So, I write lots of rules about this, and every time I run tests, it will check that this is okay! So, if ever I modify the system because I need to have "P" after "K" (=1 000), "M" (=1 000 000), "G" (=1 000 000 000), "T" (=1 000 000 000 000), I can be sure I didn't accidentally break anything!
End-to-end tests
As for end-to-end tests, I will test a scenario from start to end, e.g: - Login to the game - Place a building - Check that resource X is generating - Go to the contracts tab - Check that we succeed contact Y (because it asked to construct this building) - and so on If you want to see what it looks like for Alchemistry you can watch a video here (Sorry, I can't embed it on Steam !). Or another cool example of Extortion:
End-to-end testing and administration tools have been both my main focus since the game announcement (hence why I'm talking about this here). Those tools will both make me work easier and faster in the future (and I will need this since I will be solo on this project !).
Conclusion
I hope you liked this little behind-the-scene of game development! If you think things could be improved, you can add a comment under this post and I'd love to talk about it! You can also join Dysnomia's discord so we can talk about this! If you are interested to follow me elsewhere and get more than a monthly update about the game state, you can: - Join Dysnomia's Discord - Follow me on Tiktok (I will try to post as much as I can here, but it takes a lot of time !) - Follow me on Twitch where I sometimes do game development live - Follow me on mastodon - Follow my new and shiny Bluesky account! Thanks for reading this second DevBlog, and have a nice weekend! Elanis
Manufactur inc.
Dysnomia
Dysnomia
2024
Action Indie Strategy Casual RPG Adventure Simulation F2P Sports MMO Racing Singleplayer Multiplayer Coop EA
Game News Posts 14
🎹🖱️Keyboard + Mouse
🕹️ Partial Controller Support
🎮 Full Controller Support
No user reviews
(0 reviews)
https://dysnomia.studio
https://store.steampowered.com/app/2146380 
Welcome to Manufactur'inc, a game where you'll guide your new company towards becoming a major player (pun intended) in the industry!
In this game, you'll have the opportunity to design and organize your business.
But is achieving financial success your ultimate goal? What about ecological impacts or worker happiness?
You'll need to balance these aspects along with others while expanding your industry!
To assist you on this journey, a range of contracts will be at your disposal! Global, recurring, or special, they'll present you with diverse objectives and enticing rewards upon completion!
For those seeking more freedom, you can also completely disregard most of these contracts and opt to sell your resources independently!
Developer Notes
I am a solo developer working on this game primarily during my free time. I genuinely hope you have fun and enjoy this game :) Creating this type of game has been a long-standing aspiration of mine, and as a significant undertaking, I wanted to familiarize myself with Steam beforehand. That's why I released two other games before. But I now feel ready to start this adventure !
We have a discord community, if you want to join us, where you can share your opinions, questions, etc. about the game.
MINIMAL SETUP
- Processor: 2 GHz Dual coreMemory: 2 GB RAMNetwork: Broadband Internet connectionStorage: 250 MB available space
- Memory: 2 GB RAMNetwork: Broadband Internet connectionStorage: 250 MB available space
- Storage: 250 MB available space
- Memory: 4 GB RAMNetwork: Broadband Internet connection
GAMEBILLET
[ 5951 ]
GAMERSGATE
[ 1903 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB