Mito is no longer in development

Xiaohan Zhang
9 min readJul 19, 2021

Mito is no longer in active development. The game in its current form will continue to be playable at https://hellochar.github.io/mito/. Mito is open-sourced (and always has been) if anyone wants to maintain or improve it — https://github.com/hellochar/mito.

A huge thank you to everyone who’s played Mito in the past two years. It’s been a wonderful journey. Some of the best moments of my last few years have been working on this game, so thank you for sharing that with me. And a special thank you to my Discord community — I have been absent this past year and I apologize for that. I’m touched by your persistence, and I’m here to explain the story of Mito.

The beginning

Day 1 of the prototype

Mito began as a 7-day prototype as part of the 2018 7DRL. I wanted a roguelike with city-builder challenges instead of combat. I built out the original, keyboard only, turn-based 7drl version, submitted it, put it up on my website, and promptly moved onto other projects.

Day 5 of the prototype

About two years later, I discovered a Youtuber’s Lets Play of the 7DRL version which had positive signal— the view count, like ratio and positive comments were all very good signs. I also found positive feedback from folks on itch.io, and from my r/Webgames submission. Here are some of the reviews:

“Mito is such a fantastic idea for a Roguelike. Found out about it last night and have been playing non-stop trying to win the game in an efficient number of turns ever since…”

“It’s the first Roguelike I’ve seen in ages that instantly grabbed me and made me go “Wow!”.

“Thank you for making this game! … I had hours of fun …”

“Wow I really think you did a great job with this game. Sorry for gushing but I truly enjoyed it”

Wow, we need more such simple, brilliant games.”

I also had Google Analytics to see playtimes and etc. Here are some stats for the original 7DRL:

Pageviews, totalling ~24k for 2018. The three spikes are: (1) March 26th, when Nookrium posted his video, (2) April 8th and 9th — not sure, (3) April 15th, when I posted onto r/Webgames. After that it basically stops getting any attention.
Playtimes — people were playing for 30–60 minutes or longer

This was enough positive signal for me to invest in Mito seriously. I went in with a maximal-learning approach — to find out what it really takes to build a game, to see how game development as a career fit, and to see how well I could stick to one single project.

The middle

So throughout 2019 and early 2020, I worked towards making Mito competitive with other titles like Minecraft or Factorio. One of my design goals was to help the player actually learn about real world plants while playing. I researched how plants work in real life — xylem and phloem channels, how different root structures perform in different soil types, how factors like temperature, climate, insects, fungi, elevation, and gravity all interplay to create such plant diversity in the real world. I would walk down the street and think to myself “could I make that tree in Mito?”.

My job then became refining this complexity into a digestible game. This involved a lot of experimentation. I learned early on that accuracy isn’t necessarily fun. Example: I started with a real time temperature simulation for each grid tile, but it felt horrible — It was difficult to understand, opaque to the user, and no one cared whether your cell was 43° or 45°. I pivoted towards paring down mechanics and making them clear and simple.

As a solo dev, I also had to do visuals, animations, sound, UI, first time user experience, QoL/usability, and ensure it all worked across different browsers and OSes. A friend and I developed a regular new playtester schedule. I had a booth at Fanime 2019. I created a community Discord and had lots of great conversations, as well as some lessons in community management. And of course, the actual game development. During this time we:

  • moved from turn-based to real-time,
  • went from one level to 12 different levels,
  • added a generative hex-based overworld which you could populate,
  • dramatically improved the UI and controls with mouse support,
  • introduced 25 different Genes to allow different playstyles you could mix-and-match,
  • added a tutorial,
  • several balance patches.
Early experiment in Overworld generation
Experiment in explicit light rays
Trying to control cancerous cells

Project management also became vital — keeping track of new features, bugs, ideas, balance notes, and player feedback. In retrospect, it was an overwhelming amount of work, but I was having fun. I intentionally did not set a release date because I wanted to have space to explore and learn, both in terms of gameplay and to see what my own feelings would be months deep into the project.

I also went into Mito with the goal of not being controlled by the highs and lows of your daily mood. If you’ve worked on a creative project, you know the cycle: a new idea grips you, you furiously work on it for X weeks, and then burn out before the project’s potential is realized. I went into Mito telling myself that I would approach work from a balanced perspective — not burning out, but also not just giving in whenever “I don’t feel like it” arose. As the months went on I went through the highs and lows of development. Some days I felt incredibly energized to knock it out of the park; other days the sight of the issue tracker weighed heavy, and it was a drag just to open the page. I am happy to say that I kept with it far longer than any other personal project, even though the project did end.

So why did it end?

The downfall

After about a 15 months in, the cost of some poor choices caught up to me. Maintaining a custom game engine and renderer was a nightmare. Frustrating performance issues kept cropping up. In one instance I spent two hours debugging a rendering slowdown, two hours building a caching system to avoid it, only to realize three days later that it introduced a new bug, which I began to fix, only to realize it was actually indicative of a deeper issue within my game engine itself, which would take upwards of a week to refactor. Issues like this cropped up time and again.

Then I had to build the game itself — the levels, the cells, the genes. I had to do balancing and content, and put in a progression system of some sort. I built several genes around diffusion and water/sugar movement only to find that they weren’t that fun. Finding the sweet spot where multiple playstyles are viable, but still a satisfying challenge, and each one balanced, proved extremely challenging. Also the new player experience took up a huge amount of time: clearly communicating the systems and what the player is supposed to do in a way that is fun for them to learn is a challenge. About 8 months in I made a decision to improve the tutorial that effectively removed the most fun part of the game… oops. Then to top it all off, the UI. Building good UIs takes a lot of work. The current system is probably iteration 9 or 10, and it could still be improved.

A scrapped feature obtaining genes by combining DNA — one “beneficial pair” and one “negative pair”

Overall, the work just piled up and became too much. I’d spend nights fretting about all the work left and it felt huge. I stopped playing Mito, which was a red flag. I realized I made significant mistakes around the design of genes, and messing up the balance, and it would’ve taken a long time just to get back to where the game was previously. To truly make Mito be what it deserved — a full set of genes, and enemies, and interesting challenges that made many different types of plants viable— would be a multi-year endeavor, and not something I could do alone. That was too high of a cost for me.

I realized I had lost sight of the original goal. Mito was always supposed to be a testbed, and I was getting antsy to start work on new projects. I realized my mistakes and learned from them. At the end of the day, that was enough for me.

Game design lessons learned

Do one thing. I kept chasing this ideal of making Mito a real life plant simulator. I should have kept focus on the best part of the prototype — automation — and built the game around that. Especially as a solo-dev this is the one thing that really killed me. I spread myself too thin.

Systems aren’t enough. I thought that if you just keep adding gameplay systems, you get more variety, and as a result, more fun. This is not the case. Systems are important, but they’re not enough by themselves. You need to add content to fill in the systems, especially in procedural games.

The limitations of your technology are the limits of your game. I chose the web because of my familiarity with it, and thought the game would be turn-based so performance was not a concern. Then, I made the game real-time, and performance did become a concern. This caused a chain reaction of consequences that eventually led to performance hell. I thought I would surely find some way to “work around” the realities of the web — but when push came to shove, the work around was, in fact, for me to just start from scratch. Oops.

What’s next?

While Mito the game did not succeed, the experience of working on it was a wild success — I feel more excited than ever to keep building games, and armed with my knowledge from Mito, feel more confident in actually making something great. Thank you all for going on this massive journey with me and I feel blessed and honored to have shared Mito with you all.

In fact, armed with my experience from Mito, I’ve already started developing on a plant-themed mobile 2D roguelike. Follow my Twitter to stay updated!

Special thanks to

The Mito Discord — I’m both impressed and touched by your persistence; you’re the main reason I’m writing this.

r/roguelikedev — for hosting 7drl where Mito started from, and being a community of fellow devs who I could share in the experience with.

Derek, Niko, and all their friends — for giving me that initial push and doing tons of playtests and feedback.

TJ, Dolan, Skye, Andre and all of my friends — for playtesting, giving feedback and generally being awesome ❤️ u guys.

Thanks for reading!

Bonus — screenshots of players’ plants

Dexapnow’s plant
Dexapnow taking advantage of cancerous cells
Edit’s high offspring plant
Edit’s even higher offspring plant
streetlamp’s “most minimal plant I can make”
Edit once again breaking the game
Edit once again again breaking the game
You guessed it, it’s Edit!
Ubbajabba’s “Some type of gourd”
Hexo’s dry level plant
DrEthan’s grass and wide roots
Top of streetlamp’s plant
Bottom of streetlamp’s plant

--

--

Xiaohan Zhang

I am a new media artist in the San Francisco Bay Area, interested in discovering and sharing the beauty of mathematics and physics.