The making of Super Fancy Factory Mania - a one week journey
Hey there!
Because I really enjoyed participating to this game jam, I decided to make a post mortem on my last week experience.
I hope you enjoyed / will enjoy my game Super Fancy Factory Mania and will learn thing reading this article!
Why the #BTPGameJam?
First, I want to explain why I joined the Blackthornprod Game Jam.
The first reason is simply because I LOVE Noa’s Youtube channel. His tutorials are incredibly easy to understand and the video editing is always great and clean. I can really feel his passion of game dev and I wanted to reward him for his hard work by joining the community.
The second reason is that I didn’t join a jam for a very long time, and my recent attempts were failure. Two days jams are very short and I don’t manage to feel satisfied by my works. Monthly jam are too long in my opinion and I don’t feel 100% involved which leads to games I don’t finish in time. One week though felt like the perfect length, and it was the occasion to jump in!
The development, step by step
Day 1 & 2: Nope, not today!
I was busy the first two days. I was thinking about the, but I didn’t really work on the jam. Yet, I already had the idea of something about “game dev as a machine”.
Day 3: 3, 2, 1 … Let’s Jam!
The idea of the player building a machine that generates funny game names came very quickly. I didn’t want to make a story-driven game or a game with classical succession of levels as it’s what I am used to work on. I wanted to make a fun experience with humour and juiciness.
My main reference is an old flash game where you control an elephant (I think) and unlock dozens of achievements just moving, jumping and dying on the environment. I can’t find the name of this game but I remember it as a very cool a juicy experience and I wanted to find this excitement.
So, after finding the idea, I quickly made a list of things to do. I named this page on my notebook “Battle plan”. If you read these lines because you want to join your first jam and try to learn more about how you should work during this kind of event, consider doing this. This list has many purpose and can save your game: it brings a clear overview of your game, help you prioritize your tasks and help you mentally when you look at everything you have done so far.
The battle plan done, I launched Unity and started by the game main gameplay: create blocks and put them in a grid. After only few hours, the core gameplay was already done.
Then I started to design my game part system and name generation. And then, oh boy, serious business started. I had to design part types, different variations of each type and then random variations of name generated. This was a little brain-melting but I managed to achieve this at the end of 3rd day.
Day 4: Systems and big amount of data
The design was done. I started to code the name generation system. It worked pretty well and I was very happy with the result.
Then, I started to work on unlock and progression systems. The design was kind of easy. When you do a certain amount of a certain action, it unlocks a new part. Implementation was not that easy and dealing with dozens of items to unlock leads to heavy code. I really need to learn how to work with .xml files or to structure my code in a better way. My process here is really stupid: when you build a game, I increment a different variable for each part type and subtype. Then I check with a way too big number of “if statements” if any variable unlock a thing. If you have any advice on how I can make it more “game dev friendly”, please feel free to teach me!
This implementation was way too long, and I started to feel like the next days will be very busy.
Day 5: Achievement unlocked
I designed my achievement system and then started to implement it. The issue at this time was that my “tracking system”, also known as “increment variable on everything the player do” was designed for the previously made “unlock part system”. I had to start the tracking data from scratch and lose half my work of the previous day. Note to myself: next time you have systems that work together, design both of them before coding anything.
Day 6: Illustrator at max speed
At this point, the gameplay and UI were totally implemented. But it was not juicy at all and veeeeeeeery ugly.
So my art journey begins. I started by making a quick prototype of animations in unity to validate my idea. Make some generic elements with two simple animations types: rotation and bouncing. Then assemble them to make cool parts, and change sprites. The result was pretty cool and I started to produce my elements.
I worked on my dearly beloved Adobe Illustrator. After making assets, I had to assemble every elements with some logic. For instance, I only use chimneys on “engine parts” or fans in “art parts”. This was very time consuming due to the amount of parts I had to manage. I realised at this point the scale of my game was too big, but I couldn’t go back. Some things will have to be cut.
Day 7: UI, juiciness and sound
UI was still very rough. I managed to come with a good design and implementation at the end of the day. I was very proud of this notification UI I made. Small ribbons to show the player new parts and achievements unlocked worked very well, but the time spent here to find the perfect design had a cost. The sound design cost.
Let’s be honest: sound design is definitively my weak point. I am a game designer that also studied art back in the days. I like to code and practice it for many years now. But music, I really never practiced it. So when it comes to make a good theme, and when you are missing time, it’s a disaster. I started to mix things on FL Studio at 1am, with no experience, the last day, with the idea of an electro-wing theme. Nothing good can happen here.
Day 8: FIRE
Without anything good coming for my night mixing stuff, I quickly implemented a short beat it the game. I mixed some fun sound FX to make my game less empty. I made a quick tutorial in 30 minutes. And then I pressed BUILD GAME and uploaded it. Made some screenshots and a fancy game page. It was over! Finally!
What went right and what went wrong?
The Good
I will not talk a lot about good points as they are less constructive. But indeed, I had a really good time making this game.
This is probably the first time I am proud of my work and the very first time it fits perfectly with what I had in mind at start.
The “battle plan” process is definitively the most effective tool that leads to such great experience. Designing game mechanics and data before prototyping was also a good idea. I had a clear idea of what I had to code. Doing design while you are coding is often a mistake when making a game for a jam.
The Bad
Three things went pretty bad in my opinion. And they all are methodology issues, which means they can be avoided next time!
The first is the loss of half a day when I had to merge my “unlock” and “achievement” systems. Why? Because I didn’t have a complete overview of these two systems together. In the previous part I told you how great it was to design complete systems before coding them. This is an even better thing to implement them when EVERY system is designed and when you know how they interact each other. The problem with this approach is that if your systems don’t work very well, you won’t know it until very late in the dev. And the time remaining for iterations become very short.
The second point is obviously my issue with sound design. I kept this task at the bottom of the “battle plan” even if I knew it was my weak point. This is a bad strategy. I don’t think working on it too early is a good strategy though, because I would probably came with a nice sound design but other things would have suffered it. I think that when you have a weak spot, a good approach is to work every day on it, but only during few time. Try to improve yourself one hour a day (if you work on a one week game jam) can be way more productive than rushing it at the very end.
The third and last bad point of my week is the final rush. As I ran out of time, I managed to export only a Windows game. I didn’t anticipate the build and upload time. I don’t have a Web build uploaded on itch.io and a lot of people won’t play the game due to this. Mac and Linux users won’t be able to play the game easily and I know lot of Windows users don’t like to download .zip files, extract them, play, and then delete files. It’s very long and not user friendly. Anticipation of this build and upload time is a thing to remember next time.
What is next? IDEAS EVERYWHERE!
As you may have noticed now, I really had great time making this game. That’s why I consider making a complete version of Super Fancy Factory Mania (game name generated with the game, of course). I have a lot of idea that can make the game greater and extend its lifespan. I wait the end of the jam to know exactly how people enjoyed the idea, but if you guys loved it, you may see one day the release of Super Fancy Factory Mania: Turbo Edition!
Some ideas here, feel free to comment with yours!
- More content, of course. Name generation can be pretty redundant. Only 3 to 5 different words can be generated by each part right now. And the room for adding dozens of success is huge in this game.
- Smart name generation. In the current game, one part correspond to one word. But making combos can be a great idea. For instance, Stealth + Military can make things like “Ninja 1914”, which sounds kind of stupid. With smart generation this combo could make games like “KGB Agent” or “Information Warfare”, which sounds way better.
- Score system. One of my first idea was to add a score system, close to a “metacritic” rating for games you make. I didn’t have the time to work on it but adding this in a TURBO version of the game can make it way more interesting. Combo systems that generates more points or a better optimization of space can leads to a cool race for the perfect game!
- Challenge. Yes, the main issue of my game is the challenge. I have to design a “workshop” grid that forces the player to think and optimize space.
- Show the player what he does. I currently track everything the player do in the game. But I never show him, excepted in achievement. I could had list of games made, frequency of part usage, and so on.
- Mobile! I think the concept can work very well on mobile devices!
And that’s it! Thanks a lot if you read this very long post-mortem. I hope you learn things and enjoyed it!
Files
Get Super Fancy Factory Mania
Super Fancy Factory Mania
Build a steaming machine that generates games on its own! For #BTPGameJam
Status | Released |
Author | SaltyThor |
Genre | Puzzle |
Tags | 2D, achievement, btpgamejam, Casual, gamedev, Procedural Generation, Steampunk, Unity |
More posts
- Two years old!Oct 01, 2020
- SFFM v1.1 and other stuffNov 20, 2018
Leave a comment
Log in with itch.io to leave a comment.