Home Manufactur'inc DevBlog #2 - Automation isn't just about gameplay
Post
Cancel

Manufactur'inc DevBlog #2 - Automation isn't just about gameplay

This post was originally published on Steam

Devblog history

  1. 09/2023 - #1 - Who? What? Where? When?
  2. 10/2023 - #2 - Automation isn’t just about gameplay** (Here !)

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 :)

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:

Thanks for reading this second DevBlog, and have a nice weekend! Elanis

This post is licensed under CC BY 4.0 by the author.