Winkeltje - A year of progress from Prototype to Early AccessFebruary 14, 2019
Winkeltje has been in development for over a year now, and I thought it would be a good idea to look back to where we came from and how we got to where we are now.
The prototype
We started working on our first prototype of Winkeltje (aptly named “Shopkeeper” at the time) in October 2017. We played with different different systems and mechanics for about a month or so, until we decided to write up a Game Design Document and get started on the full version. Here is a video of what that looked like:
As you can see, the core mechanics of placing furniture & items, customers coming in and buying stuff and crafting were in there. The biggest change from that prototype is the crafting system which went from fully customizable crafts (as seen in the video), to minigames to a simple progress bar.
Here is what Winkeltje looks like roughly a year later:
Let us look at a couple of features and how they changed from the prototype to the Early Access version:
The Shop Builder as it was originally prototyped:
The Early Access version has gone through a lot of changes. The UI has changed multiple times, and the UX has probably seen about 10 iterations to get it to the current point.
Placing Furniture, back when it was still grid based:
Placing Furniture in Early Access, without a grid. Bonus wall masking effect as well!
The Radial Menu has gone through a lot of iterations. We initially chose this because it would require little work to get to work with a controller. Over the year this has gotten a lot of changes, we had to try out a lot of different things to see what worked and what didn’t.
This is the Early Access version of the Radial Menu, showcasing nested menus and a sneak peek at our developer cheats.
Pipeline
One thing we learned from our previous game, Fragments of Him, was the need and desire to quickly iterate on patches. We have spent a lot of time on improving our workflow and pipeline for Winkeltje. Below you see an overview of 2 of the major systems we use to smooth out our production.
Jenkins
Winkeltje uses an automated our build process by using Jenkins.
Whenever anyone makes a change to the project, we have Jenkins create the game and run through a suite of automated tests ( ~170 ). If all of the tests are completed successfully, a new build is created and uploaded to our ‘unstable’ Steam branch, making it immediately playable for those who want to play the very latest builds. While we can’t catch all bugs, at the very minimum we will know that the game doesn’t crash when booted up and that most of our core features work. Our Perforce commit messages of that build are then posted on a Discord channel.
Discord Integration
We decided to heavily leverage our Discord for the closed alpha, and will continue to do so during Steam Early Access and after it launches. We have written a small bot that allows us to quickly give someone a steam key, which automatically assigns them the correct user role and provides access to the alpha tester channels. One of those channels is the one mentioned earlier, where the change logs of every build are posted.
This kind of integration allows us to rapidly iterate on feedback and bugs as they come up. Our fastest time from reported bug to having the fix up on steam is under 10 minutes. Our users seem to enjoy the direct interaction with us, and being able to fix things quickly seems to be much appreciated as well. It also gives us a great platform for discussion and suggestions.
Spreadsheets
With Fragments of him we used a google spreadsheet to track almost everything about the production. Our tasks, bugs, production overview (scenes, characters, hundreds of animations), trailer storyboards, and much much more. With a different type of game comes a different usage of spreadsheets. With Winkeltje we manage most of the game data in a Google Sheet. This allows anyone in the development team to quickly make changes and have them be reflected in the game. We also support community translations that we import from a semi-public spreadsheet where it becomes pretty easy to support a language if people would like to help with that.
Subsection of our Furniture data sheet
Once someone makes a change online, the developer will be able to download the latest version of that sheet inside Unity. We heavily leverage editor scripts for this part.
All the separate options for downloading data from Google Sheets
If the changes are as expected, it will be committed and become part of the next build. This process allows anyone to very quickly make balance changes and lets the person in the spreadsheet make use of all the power of formulas and diagrams. Adding new content to the game is now as easy as making sure the model is in-game and adding a new row to the sheet.
I will now use this time to tell you to go wishlist the game on Steam! For real, it would help us out a lot.