Logo

Lucio's Rambles

Working on a Project Without a Future

December 17, 2025

<- newer✉ reply to postolder ->

Heya all. So, about 10 months back I started working at an indie studio. Small operation with about 10~ people total, working part time, and paying me… a fittingly small salary, but it seemed interesting. Most of the game industry in Israel is gambling games, so having the opportunity to contribute to something that actually seemed to have a vision and fun gameplay was appealing. Also, right now the tech industry is going through a complete car crash when it comes to job offerings, so any job was one I was glad to have.

The year isn’t over yet and I am entirely motivationless and waiting for my degree to end so I can look for brighter pastures.

“But Lucio, that job sounds pretty decent.” True, sounds being the key word in that sentence. While it is true that I am programming a game that actually has fun gameplay, there are two big asterisks to that statement. Firstly: we’re converting a tabletop game to a digital medium, meaning it’s none of the game rules were made in-house, and they seem hesitant to change any of the rules. Not a dealbreaker, but slightly changes the initial picture. Secondly: I’m not programming in Unity, or Godot, or even Unreal (three popular game engines), we are using a custom engine built in-house.

If you work on game dev, you’re already starting to cringe a little, but oh don’t you worry it gets worse: it’s a custom game engine, with a custom, visual programming language, written in typescript.

Allow me to translate that to the non-techy folks in the crowd, while everyone who does understand the meaning of that sentence goes to bash their head against a wall.

So, writing a game from zero is hard. Really hard. It’s so unreasonably hard, that pretty much no one does that, not even the big companies. What they do is take something called a Game Engine, which is a collection of game development related tools made by someone else, and use that to make their game. This is incredibly useful as you get to skip the more monotonous parts of getting a game set up (like programming a camera that can look around a 3d world) and you also get code that’s been time-tested by thousands of other people. You know you’re getting a decent result, even if it’ll take some time to get set up in.

Now, there are cases where you’d want to make your own game engine, but they are incredibly limited. Primarily you do this either as a learning exercise for yourself (and never touch it again), or your game is so highly specific that you can’t make it with any of the existing engines. An example of the latter would be the game Noita, whose physics and interactions are so convoluted they would turn the average computer into a jet engine unless run on code specifically made to handle its style of gameplay. If you don’t have a game that’s this complex at the code level (and let’s be real, you don’t), you should just use an existing engine.

My boss has decided to make his own engine to “save time”. He’s saved so much time doing this, in fact, that the studio’s been incorporated 6 years ago and they still don’t have a game out.

Now, if making an engine sounds like a mess, you do not want to know how bad making a programming language is. You need to make something that’s easy to write in, easy to read, and also runs well on incredibly demanding specifications. A lot of people make programming languages for fun, but those are primarily made just as a joke and aren’t expected to be in anything that’s production level.

Additionally, there are some languages known as “visual scripting” languages, which means that instead of writing code you connect big blocks with wires and hooks around the screen. These languages are more beginner friendly, but they are satan to maintain, so they’re relegated either to intro-to-programming classes or small scripts for the non-programmers to make (for example, if the animator wants a model’s reflection to shine a specific way).

My boss decided to make his own, custom visual scripting language, and that’s the only programming language you can use to write games in this engine.

Finally, we have typescript. Typescript is a version of Javascript. Javascript is a programming language made for browsers. Javascript is a programming language used by everyone and their mom because tech managers wanted to save money on having a team for the computer app and another for the browser app, by firing everyone working on the computer app, and just having everyone use the browser app. If you use spotify, or whatsapp, or discord, you should know that those are just web pages running on chrome. No, seriously, each of those apps reinstalled chrome onto your device and are now running a single web page on it. I do not like javascript. It is hard to maintain, runs like a dying turtle, and has design decisions made by satan.

This custom engine, and its visual scripting language, is all written in typescript.

I hate everything about this.

Now, even then, sure it’s stupid but we can manage. They want to make a simple game, with simple gameplay and limited visuals? Sure, that’s cool. It’s cute! I’m down to help. That’s what I thought initially, that this was a style choice. That they were going to make an underpowered engine to get 6/10 games out the gate and streamline production. I can work with that goal.

That was not the goal.

In the months since, they keep adding “features” to the engine every time they realize “oops! our custom engine didn’t consider this situation!” And instead of letting us just use code to write the code for this specific game, we have to create a new general feature to work in every possible future game. I keep banging my head against the wall whenever I need to tell someone in our weekly stand-up that “the engine doesn’t support that”, as I weakly think to myself “can we just use godot?”

And they’re paying me about 15% above minimum wage for all of this. I’ve asked for a raise, they can’t afford it.

Yahoo.