I had to take a break from updating Mosa Lina in December 2023. In order to keep my brain busy enough so that it wouldn’t force me back to work, I asked you for game dev related questions on twitter! Thanks for the large response, here are your answers!
For the tools it was all about using them during the constant and extensive playtesting. If I felt like a tool wasn’t conductive to creative solutions anymore, then it got reworked. Since I was testing the game for multiple months, a lot of the tools got reworked a lot as I got bored by them. I think around 70% of the tools that I was prototyping ended up being cut. This process was so sound in creating tools with a plethora of uses, that I am now REALLY struggeling to add comparatively interesting things into the updates.
For the levels it was a kind of desperate lurching and crawling to get anything done at all. I used my trusted old technique of making 100 levels, deleting them and then remaking only the ones that I remember, but since this game requires a LOT of levels, that wasn’t really working as well. So now I just do these sprints, where I take a bunch of tiles and obstacles and try to combine them in interesting ways and then don’t really test the level a lot and just push it live. Lol.
I call this thing the “arrow engine”! It’s a framework I developed inside of construct 3 to be able to build complicated narrative branching inside of a level editor. It’s a kind of homebrew blueprint system. Instead of a mess of analogue nodes, it runs on 90 degree angles.
Basically, there’s a little object in the background of the game. It can move left, right up or down. When it hits a block, it stops moving and executes code.
There are then a bunch of teleporters and node-adjacent connectivity blocks that allow me to keep (literal) branches of conversations distinct from each other in the level editor, creating these kind of islands and continents of content. Like, you can zoom out really far and see the structure of the game represented visually because the visualisation of the game and the game itself are actually the exact same thing.
The unique thing about this system is that it allows for blocks to have “health points”. If you hit a standard block, it will delete itself. So if you come down the same conversation branch again, you will hit the block behind the first one and see some new text. This was an unintentional side effect of the framework, but it quickly became the most basic thing I used to keep repeatedly investigating the same objects fresh and interesting.
While it’s really cheap to write these specific type of interactions, other things are very hard to achieve in the framework. Narrative games generally tend to just become these insane collections of brambles and intertwined madness, but the “arrow engine” is missing some super basic functionality. Like, I can’t do a automated spellcheck on the whole game, as each unit of text is not stored in a spreadsheet, but in a unique game object (lol).
It’s a mess of a framework, but it’s a cute mess and it’s very easy to understand. The dream is to one day make a standalone version of the arrow engine that keeps the unqiue narrative quirks and ease-of-use while also having the comforts of exporting & importing .csv files.
@AxolotlSmiling, @bicorniclopse, @wackytoaster and @dash_davi asked about
I collected all these questions into one block because they referred to work done by other people! I have to wrap the Q&A up quickly and am pretty unorganised right now so I will have to answer for them to the best of my knowledge!
Tom “Silkersoft” Schley made all the audio. He had a very clear vision for the audio direction. It was supposed to be alien and dark and scary in a kind of moody way. He also used a lot of technical words I don’t really understand (“Low pass filters” I think?) to describe what he wanted to to.
The Workshop, Level Editor & Modding Support for Mosa Lina is handled by Rollin’Barrel, who has free reign over that part of the game. I have no clue how he is doing what he is doing, but I am very grateful for his work. He as been added to the development team (credits will update with next update) and told me that he has some ideas about how to add modding support for tools but that nothing is certain.
Complete Multiplayer is not possible to be added to the game, but I am thinking about a kind of fake-out options to allow a drop-in local multiplayer-ish experience!
Not being able to fix a bug and not knowing what project to dedicate the next years of your life too are kind of similar problems, in that they prohibit stuff from getting done. So while the scale of the problems are wildly different, the solution is the same:
I take a break.
Coming back to work after spending some time away from it is often all that is needed. Ideas and solutions are often worked on by the brain in the background, but you need to REALLY stop thinking about the problems, for to them to get pushed into the background. It’s a kind of paradoxical thing.
I often imagine myself, sitting down to meditate or whatever and then getting a really red head as I scream at myself: “Relax! Relax harder! Relax harder so I can work better!”
It’s not easy, but if you can learn how to make games then you can also learn how to take breaks.
In fact, you need to.
The churn. The long middle. The endless stumbling without perceiveable progress.
There’s that middle section of a project, after you’ve set up the foundations but before you’re wrapping it all up, where nothing seems to really progress. It’s as if you’re crawling toward a goal on the horizon but every meter you gain with bleeding nails just shows you how far you still have to go.
It’s as if you don’t have enough information to make decisions yet, so you just have to try more and more stuff. Projects that become bloated with features in the middle of development will get dragged down by their weight. It’s crucial to keep rolling back changes that don’t work and to cut large, painful chunks of stuff to keep everything moving. The relief after shedding old weight is not going to last long in this phase. You now know one thing that you shouldn’t do, but there’s still infinite things that you could do.
This is a place where only presevereance and vision can help you. External deadlines might lead to a finished project, but if the project isn’t where it needs to be, being forced to finish is going to completely drain your life forces, leaving you bitter and sad and full of regret.
If you really want to drop your project in the middle then be honest about it. Put it to rest with dignity, don’t just slowly deprive it of oxygen over multiple months. Look at what went wrong in the production and reflect on that.
It’s really hard to know wether or not to call it quits. It’s in the long middle where I keep pushing back deadlines the most often, where I experiment the most with my workflow and various types of documentin my process. You need something small, something concrete that allows you to confirm to yourself that you are actually moving. Because things are happening, it’s just really hard to notice.
You need to change the artstyle maybe. It’s a painful decision but the knock-on effects will speed up your asset creation. Now that you actually have a reliable understanding of how long it takes to create an asset, you realise that you have planned too many assets. You need to cut them. How? The solution to that problem will inevitably impact the pacing of the game, which will then oh my god does this ever end?!
The road seems impossibly long, but then, one day, you play through the rough skeleton of the game (bits of sinews and muscles and skin hanging loosely on the analogy) and you realise that you can finish this thing if you just make one last pass of scope reduction. After this final cutting & cauterising, you’ll be able to actually start wrapping up.
You made it through. How? Thanks to a contradictory cocktail of persevereance & adaptability. You probably kept your larger vision but you definitely had to change how it was expressed. Welcome to the world of creative pragmatism.
Next time, it will be a little bit easier. Not the work itself. It will be cruelling and hard and impossible in completely new and unexpected ways. But getting through the middle will be easier because now you know, in that kind of physical way - with your body instead of your mind, that it is possible to make it through.
I guess most projects die in their very early stages, but the middle is the next big hurdle. Once I make it through this phase of endless iterations over nothing, the project always releases.
I can’t remember any tasks of the recent developments that was boring. Stuff gets difficult and directionless and discouraging but… boring? No.
Sure, I hate doing marketing. If fills me with anxiety as if there was some sort of monster of narcisism and ethics waiting for me in the presskit. I don’t want to do it (and I don’t) but it’s not boring.
Sure, I hated doing levels for Mosa Lina. There was a huge resistance there, a kind of wall that I had to claw over before I could even start to test out basic ideas. It was like running through a swamp with heavy boots, but it wasn’t boring.
Sure, I can’t bring myself to work on the content for unnanounced project, but it’s not because the work would be boring, it’s because I couldn’t find an angle to it that makes sense to me. The whole project was set up in a weird way, leading to a lot of friction now, but it’s intensely exasperating instead of boring.
I guess I am not getting bored with my work because I’ve been trying to push myself in what I do.
qomp was a highly linear puzzle game, a culmination of years of efforts to create a frictionless experience that tells a story through gameplay alone. After that, I had to do something completely different or I would’ve gotten bored.
Producer was a visual novella with like 25k words that I wrote in a weird homebrew framework. I had now made a linear “gameplay” game and a semi-linear “reading” game so the next step was to attack the structure, the “linear” part.
Now that Mosa Lina is done, I am looking at some new concepts related to communication with NPCs and couch co-op voiceacting. Basically, I keep experimenting, doing stuff that I have never done before.
But there is a key factor to this:
There are few external pressures on me, so i can pursue what I find interesting instead of only following stuff that makes economic sense. Sure I was broke for most of my adult life, but I could be sure that I would never be homeless. My country has socialised healthcare. My family supports what I do. I have priveliges that allow me to pick and choose what I work on. This, much more than any technique or workflow, is what allows me to genuinly enjoy the work.
Speaking of which: The most exciting moment during any game is when things comes together.
Imagine every part of the game as a kind of spiritual gamble. You have to make a lot of decisions without knowing wether they will work out. And then, even if they do, you can’t be sure that they will connect with all the other parts of the game. It’s multiple layers of gambles you have to make with very limited information. The joy of having some of your weird hunches and clandestine beliefs proven correct, the joy of seeing the different parts of the project merge and become one concrete thing… that excitement borders on the religious for me, it’s a deep and existential joy that makes me feel as if I have found my place and purpose in this world.
Because you want to!
P.S.: And because it’s fun!
Are okay with bashing your head against a strange problem that nobody asked you to solve until either your head or the problem cracks? If yes, then you’ll love learning game development by trial and error.
Are okay with looking at the work of others really closesly to carefully reconstruct how they achieved certain effects? If yes, then you’ll love learning game development by imitation.
Are you okay with hunting for truth deep within your soul, trying to grasp at the vast and incomprehensible with feeble fingers? If yes, then you’ll love learning game development by spiritual experience.
Are you okay with sitting in a room full of other people who want to learn while listening to someone who tries to explain stuff to you? If yes, then… etc etc
The core thing here is not game development the core thing here is learning. And that just works differently for all of us. I recommend to try a bunch of stuff and see what hooks you.
(I am actively restraining myself right now so that I don’t pontificate about the ways of learning that suit me and that, curiously, also happen to be the best ones, what a weird coincidence that the things that I like are also the best ones, the ones that are just less flawed and that I always recommend to people on the internet. What a coincidence, huh?)
After you’ve found a way of learning that suits you I’d recommend you to check out some other ways of learning, just to get a different perspective on the stuff you think you know enough about.
Hello, my name is Josh but I’m better known as Stuffed Wombat on the internet. I’ve made a whole bunch of free browsergames and a few commercial games. The most recent of those is Mosa Lina, a weird kind of technical overinterpretation of the immersive sim genre, which was a comparatively huge success and now I am in this kind of limbo state, where the work on Mosa Lina updates is not yet complete but I am also taking a break and so, to keep myself busy without resorting to actual work, I’ve asked on twitter for some questions about game development, so that I could answer them to best of my knowledge in a more free-form, semi-commersatial (probably somewhat parasocial) rambly kind of way.
Various jokes about immortality and world peace aside, I wouldn’t want to make one specific game, I’d want to start a artisan/workshop/game studio, where ~10 people from completely different disciplines make various types of art together.
We all have this kind of shameful desire to be seen as very smart-game-design-genuises. Hm, maybe not all of us, but most of us. Okay, maybe I’m projecting, but we all have these expectations within us, this drive to do “good work”, whatever that means to us.
The fiddling that you describe is a delay tactic, brought on by uncertainty and doubt and fear. Sure, you want to do well, but what if you fuck up? It’s much more comfortable to endlessly tweak some isolated variables than it is to deal with the overarching dynamics of a complicated system. By limiting your perspective to a small part of the game, by endlessly trying to make it “perfect”, you can safely ignore the larger context in which those janky sub-system will operate. Better to never finish than to see your work in the harsh light of day.
There is no permanent solution to this. It’s a basic instinct to be afraid of failing. No matter how often I overcome it, it pops back up in the next project. Pushing through this fear is simply a substantial part of the creative process. You might fail. You might show your ass on stage. Overcoming fear is what making stuff is all about (at least it was for me for a long time) and nobody can do that for you. Nothing I write is going to allow you to automatically overcome your fear of finishing.
But maybe it can help! Whenever I recognise that the fear of failing has snuck up on me and taken over my process, I try to remind myself of a few things:
What also helps (and what everyone hates to hear) is to make many small projects. The smaller the game, the smaller the potential humiliation of being a bad-stupid-dumb-designer and so it’s easier to overcome the fear.
After many years of being afraid of it, I have actually really fallen in love with the last third of my projects, the phase where all fiddling has to cease and decisions have to be made. It’s really, really satisfying to overcome your fear. Even if the project actually does fail, at least you actually finished it. From this perspective, you can only win. Yehaw.
I didn’t intentionally settle on an engine so much as that I just got stuck with Construct. Don’t get me wrong, I love this piece of software. I am VERY fast with it. Switching to any other engine feels like a huge setback in realisation speed. Anyways, I got stuck with Construct in 2017, thanks to Edu and Quike from Brainwashgang.
Edu told me to drop Stencyl and switch over to Construct 2, the engine they were using at the time as well. Being generally very impressed with Edu, I followed his advice and really enjoyed the new engine, managing to cobble together a prototype of what would eventually become qomp.
I should state here that every engine I’ve ever worked with has some sort of visual scripting component. I don’t know how to write c# or whatever. My main concern is always with making games, not with writing code. For many years I didn’t understand basic coding concepts and just did all my work by trial and error.
So, at this point in the summer of 2017, I could do stuff with Construct, but I didn’t feel super comfortable yet. Luckily, only a few months later, I was in a hotel room in Johannesburg, trying to fix a collision bug in the demo of pomg before Amaze kicked off. Quike, who came along to babysit my inexperienced ass, stepped in to help. He quickly wrote a few lines of direct movement code. Something like
every tick set X to self.x+self.hor_dir.
This simple line unlocked something in my brain about how code works. I was using inbuilt behaviours and strange hacks to get stuff working before, but now I felt like I had clean access to the core of the engine.
For the next few years I would manically prototype lots of stuff, becoming so proficient at Construct 3 that I can not imagine working with anything else. I assume/hope that when/if I start working on 3D games, someone else will handle the code and technology.
It occured to me at some point after writing an essay about the Dishonored series. I played a lot of immersive sims as research and felt the general trend of the genre drifting towards a systems-driven-playground style. Genuine creative problem solving became less of a focus, because all possible playstyles seemed to always be accounted for. You could do everything, at all times. Playing Dishonored 2 without using any abilities is relatively easy because the designers always put an route in the game that doesn’t require you to use any abilities. The game essentially formalised some of the player-made challenges & playstyles from the first game, loosing the judgemental edge of it’s morality system in the process.
I am rambling about Dishonored so much because this was the headspace I was bouncing around in when I had the Idea to push the immersive sim to it’s breaking point. What if a game presented you with a problem that has not intended solution?
But this is only one composite part of the whole idea.
All of this disparate stuff then came together in what now looks like a single, concrete thing, but which is actually a whole melting pot of ideas and interests!
This is always different. Full productions take a long time, so I need to make sure that there is some driving force, some concrete interest that will help me to push through the endless slog of actually making a game. But what exactly that driving thing is will always be different.
There’s no formula. I only want to encourage you to try and be honest with yourself about what you desire to gain from making the game. Whatever it is (and you can desire anything, it’s fine, really) will make the decision about which idea to focus on a lot easier.
This is all a bit vague, so I’ll just describe the decision making process for some of the commercial games as I remember them now:
Ord. was a game that could be made with very low effort, so we decided to pursue it in order to learn how to publish & sell games on Steam. It was a kind of opportunistic move.
When I got fired from my hostel job at the start of the pandemic, I wanted to make a game in a single month to try and see if I could earn more money than I would’ve earned in the hostel.
These are, of course, only the decisions that worked out, the ones that got finished. All the failed attempts at commercial games are hidden in unreleased-status, making me look like I really know what I am doing. Lol. Lmao.
My “process” is always changing, but I’d roughly describe it as “highly iterative dirtbag development” where I don’t really care about clean code or appealing visuals for a loooong time. Instead I make many prototypes and ponder philosophical implications. Then, after a few fitful starts & stops, I snap into full production mode. This is a period of very regular and rythmic work, where I slowly churn out the actual game. I tend to loose track of time while doing that and am then surprised by the deadline, triggering a final revision of the project. What do I really need? Usually, lots of stuff gets cut at the last moment, creating a lot of loose ends that then connect in surprising new ways. The joy of those cool connections then pushes me to actually wrap up development.
I tend to radically misjudge how long projects will take. I wanted to finish qomp in 3 months, but it took 4 years. Producer was planned to take 5 months or so and it ended up taking 1 1/2 years. Mosa Lina was supposed to be done in a single month but it took 7 or 8 months to release and is still receiving updates.
You never really know if a project will work or not when you start. Never. It’s what makes the work interesting.
I add it like a sprinkle of salt here and there, but when I started to make games I was really obsessed with these concepts. I saw them as absolutely integral to my process. Like, I used to add screenshake before I even had a gameplay loop.
This intense focus lead to me becoming quite intuitive with juice, but over time I lost interest in it. My focus shifted to more abstract game design stuff. I still try to get the “Game Feel” to a place where whatever I am making is enjoyable to touch, but beyond that I haven’t really been thinking about these concepts a whole lot.
Actually, thinking back now, I had to actively stop myself from focusing on juice. It was like a compulsion, a kind of automatism, that slowed down my work. When a protoype is all juiced up, it automatically feels cool, no matter wether it actually is. It’s the whole “investing too much into an early prototype” thing again, where your attachement to your very first attempt is so large that you can’t let go and get lost in the sauce.
ACTUALLY, this happened to me a lot! In the years before shipping qomp, I was in this kind of desperate manic state. Always prototyping, always experimenting, only sometimes finishing. I would have an Idea, quickly bang out a rough approximation of gameplay and then (here comes the mistake!) add some juice to it. But once the joy of having a cool looking thing on the screen faded, I would be left directionless, vaguely dreading the next steps. So why not add some more juice? Wouldn’t it be fun to code a really smooooth camera system? Nobody wants to face the uncertainty of the games larger direction and pacing, but everybody loves it when the screen goes brrrr.
I now feel the compulsion to yell at you and warn you. I want to tell you: “Don’t think about Juice, think about Game Design! Ignore Game Feel and explore Structure instead! Don’t repeat my dumb mistakes!” But such yelling is pointless. What I call “mistakes” is actually an integral part of my larger development as a developer. You can only really move on from things when you yourself are done with them. I am very happy that I stopped caring about juice so much and instead went on to explore new areas, but I don’t want to discourage you from being interested in anything.
Because now, in these new places, I heavily benefit from the years of my game feel obsession. The games I want to make are weird and new, their ideas are abstract and cold, but I want as many people as possible to play them and so the games need to feel as warm and welcoming as they possibly can. My long history of “juicing” makes me very confident when handling that part of the work, freeing up mental load to focus on the more interesting problems.
someone who’s @ I didn’t copy properly and whose tweet I can’t find right now asked:
I can’t move on yet, simply because I need to wrap up two projects that have been running paralell to Mosa Lina before I can start anything new.
But yes, generally speaking, moving on to the next project is always the goal. Making new things is what I really care about. It’s what gives me the energy for the long run. There will always be some more interesting stuff to work with later BUT I need to wrap up the old stuff before I can get to the new stuff.
Mosa Lina itself is just not finished yet. There are some ideas and designs that I need to test out before I can leave it behind me. These ideas will simply keep bothering me until I try them out. So even if I started a new thing now, I’m pretty sure that I couldn’t really focus on it.
I have to leave Mosa Lina in a very “complete” state, where it’s the most clear version of itself that it could possibly be.
This sounds very cheesy because it is very cheesy. This line of thinking has been my northstar during development. Mosa Lina needs to become more substantially random before I can move on from it. This will be some work, but not a extremely large amount of it. I expect to cease work on it in the next few months.
Geist Traft (@traft25372) asks:
Basically, there’s an invisible sensor at the bottom of the player object that checks if you’re overlapping ground or not. This sensor is VERY wide. Like, almost as wide as the character, allowing you to kind of jump-climb even super steep slopes.
It’s also just pretty heavily tweaked physics!
When you’re not giving any input while standing on the ground, the game will radically slow down the character, resulting in this kind of slow sliding. There’s probably a whole lot of small clamps and lerps and little tweaks that I can’t remember right now. Making non-90-degree-ground enjoyable to traverse was one of the very first things that I tackled with this version of Mosa Lina. It took like six or seven iterations to get it to where it’s at now.
Vlp (@SomeVolp) asks:
In some ways, it’s is a lot easier because I really dislike negotiations and paperwork. Companies also move slowly. I don’t want to spend 6 months writing emails to maybe get funding. By self-publishing I can spend that time on making the games instead.
Self publishing on steam really makes it pretty easy to reach a large amount of people. Doing it is not very difficult (if a bit confusing). Making sustainable money off of it is a different beast entierly.
Even though most of my games made back the money that was spent on them (and even though I was living very cheaply) the profit would not have been enough to finance my life. I was living off of the money from a low-stake loan and the freak accident of selling an IP.
It’s only with Mosa Lina that a self-published game actually produced enough money to live off of directly.
It all comes from being interested in things. The more things you’re interested in, the wider the variety of ideas that you’ll have. The more intensely you focus on a single thing, the more specific ideas you’ll have. But if you are not paying attention to the world around you, if you aren’t curious about the stuff you experience, then ideas will be slow to come and you’ll imbue every single one with way too much importance, potentially dragging you down for years to come.
Here is a list of the places where some of my ideas came from:
Interestingly enough, most of my ideas seem to come from engagement with games & game design!
I’m trying to figure that out right now. My go to meal changed a lot over the last years. It used to be midnight pizza, then it became sage-sauce-spaghetti and now it is… I don’t know. I made some onion & pees soup today. Before that I ate sausages with mashed potatoes two days in a row because I didn’t know that you shouldn’t freeze mashed potatoes. I’m working on it.
This is a question of vision. You can only make decisions like that when you have a pretty accurate idea of what the game should be.
Is the game about memorising attack patterns or is it about finding weak spots? If you can’t answer this question, then you can’t know if your enemie compliments the game or not.
The idea of a vision (or northstar or pillar etc) is that it is larger than any single problem. It is not concerned with details, but with the larger impact. It’s about what the finished game wants to achieve.
List of things that you could want to achieve with the finished games:
It doesn’t really matter what your vision is. As long as you commit to it, you can use it to help with decisions like the ones you described. Just ask yourself:
Does doing THING make the game more aligned with VISION?
Three things are especially interesting to me here:
Every game has a message. Most of the times the message is something like: “Hey! Look at this!! Isn’t this super fucking cool?!?”
You can make games for any reason whatsoever. Most people make games because they love games. You can love more than one thing though.
Actually, I would highly recommend it.
Three things come to mind immediatly:
If your prototype isn’t doing what you hoped it would, throw it away. Don’t be too precious about specific ideas or approaches. Holding on to a failed prototype and investing more and more time into it in order to salvage the previous effort is just going to leave you with a thing that you won’t recognise. Instead of trying to realise a specific vision, it will only be a reaction to the problems you encountered. Such a thing can not serve as a building block for future work, it just muddies the water with weak direction.
You don’t want to constantly have to look up how to code that specific thing again. If you can’t realise your idea quickly and without substantial googling, then the idea is too complicated for you right now. Simplify it, dumb it down, abstract it and try again.
The prototype you are making right now is just a small stepping stone towards a larger goal. You are not trying to find the perfect implementation of that cool idea you had, you are just exploring the possibility space around that idea. If you try to approach the same concept from 3 angles I guarantee you that you will find surprising commonalities and contrasts, the kind of raw fundamentals that you can use to make something that’s genuinly your own.
Thanks for all the questions <3