Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

The productivity of solo indie game devs is just really impressive.

While I’m aware of the “go fast alone, go far together” quote, I’m depressed by how inefficient app/ui development is at big tech companies compared to game studios, especially short staffed indies.

Really makes me wonder about the “engineering excellence” that tech leads and “architects” pride themselves in when games are developed much more quickly and are - to my eye - much more stable and performant.



A lot of it is about tradeoffs (long term vs one-off projects, business stakeholders, and a long etc), but there's also significant selection bias. Most "indie" projects die before having much of a playable thing, and many successful solo indie projects can take many long and grueling years (e.g. Stardew Valley).

Engineering in most organisations will place stability and predictability very high among priorities, and pay a hefty price for it (sometimes, messing up along the way and getting neither benefit). An individually brilliant engineer can be a great asset if properly managed, but you need the majority of people to be less of an outlier.


I think we can ignore the selection bias because I’m not aware of any “AAA app” (for lack of a better term) that moves as quickly and productively as the best game studios do (see my comment about Grinding Gear Games below). Additionally, these apps employ engineers that are supposedly amongst the best money can buy. At least, if there is some better way to hire top engineers it should be fairly obvious in AAA app output of some orgs with better hiring processes - but I’m not aware of any such apps or orgs.

As for stability and predictability, I’m not confident that AAA apps are hugely (or maybe even significantly) more stable or predictable than the best games. Maybe my tolerance for bugs is higher in games than apps, but I do seem to tolerate quite a lot of jank and slowness from apps, so I’m not sure.


Part of that is probably that game developers tend to be passionate about the work they do, whereas most people working in app development probably don't give too much of a shit about the boring apps they're making. It's hard to get motivated when you're just making a glorified front-end to a database, another e-commerce site, etc.

Of course, the tradeoffs in work-life balance for game development is massive, so it's not like that extra productivity is free (unless you're management). Nobody working at a typical software firm is going to be expected to crunch 12 hour work days for weeks just to ship.


I've had my eyes opened recently onto the world of modern game editors (Unity, Unreal, Godot, etc.) by watching gamedev streams. The productivity of these environments, and their associated asset stores, is amazing. You can't help but think that other domains would also be well-served by a fully-integrated experience like this. Surely the universe of "webapps" or "unix-y network services" is at least as constrained as "3D games" is (possibly more?).

I would certainly be interested in a "Unity for line-of-business apps." I guess this was VB6 lol.


The interesting thing is that the other comment alongside yours is talking about GGG, who rolled their own as a team of about 6 (in the early days), and they're by far the most productive game developer I've ever seen.

I think Unity and the like have made the average project much more productive, but they don't add power to the top end. The power of having everything perfectly customisable by a team of experts with perfect domain knowledge is just too much for anyone else to match by getting quick wins off the work of others.


do you have any streams that you'd recommend?


I typically bounce around the twitch category before settling on one. These tend to be smaller streamers who don't have regular hours. One that I try not to miss is Jonathan Blow, though his current project is in a custom engine (written in new language on a custom compiler, even) so it's not immediately relevant to learning about modern game editors.


A bit of a tangent, but I lost quite a bit of respect for Jonathon Blow when he made comments about impostor syndrome:

https://youtu.be/ECwHZlvvVH4?t=3370


Interesting you feel that way, I found it comforting.


I think what he said is awesome! You are presuming that others are on the same page as you: I have zero understanding as to why you “lost respect” at all.

Perhaps you could share your own thoughts, opening yourself to criticism and a chance for interaction, and perhaps learning. I wrote a few comments on https://hackertimes.com/item?id=31990217 (discussing an opaque article titled “The Mysterious Return of Imposter Syndrome”).


Expanding on this in a reply to my own comment.

Grinding Gear Games, as an example, is a NZ based game studio that releases a new expansion to their famous RPG - Path of Exile - every three months.

The game is not a simple program by any stretch - which might be a fair criticism for Papers Please by comparison since it is purely client-side and all possible states of the game can be fairly easily enumerated.

Path of Exile is a persistent cross-platform 3D online multiplayer game that has daunting requirements for consistency, latency, and graphical performance.

Despite that, each three month release cycle introduces more new UI elements and features than I think the entirety of Google apps release in the same timeframe. And that’s not because Google isn’t trying to build new things - they are and I’ve written UI for several of those projects.

Does anyone else feel a real sense of deflation when it comes to app/web development velocity compared to games?


I have the exact same feelings.

Is immediate mode GUI's just that much better? Instead of a complex React/Redux style setup, how much easier would state management be if we had a render loop like game dev? Does that even make sense?

I am very envious at the pure programming skills of so many game developers. UI's in indie games are just a side thing in the deep complexity of a game and they end up looking incredible compared to the level of effort required for year long web app projects.


They've drifted away from calling it that, but the whole idea behind React was to bring immediate-mode rendering to the web. It has an event loop where each "frame" you render the current state from scratch, rather than explicitly updating the state of retained controls.


I use Zui with Kha/Haxe - an immediate mode GUI library. I cannot overstate how immediate mode GUI greatly simplifies ui development. React is massive step up from OOP/scenegraph/display list style gui, but it is still so complex and cumbersome compared to immediate mode. I can’t fathom why there is such little exploration in this space and it seems mostly limited to gamedev.

https://github.com/armory3d/zui


Immediate mode GUI makes perfect sense for applications that repaint themselves all the time 60 (or more) times per second, as they're already doing the work and there's little overhead added by handling such GUI. I can deal with 3D editor working this way, but I don't think I would be very happy if my e-mail client did.


That's just an implementation detail. The main benefits of an immediate mode UI is the API for using it. There's no reason that the loop has to run at 60 FPS. It could even be event-based, so it only updates when the user does something, for example.


Yes and no. That API makes certain approaches easier and other harder. Even if you manage to render only the changed parts of the screen, you still execute all your UI logic all the time so the renderer can be aware of what changed in the first place. Also, more involved stuff like animations become much more complex once you go event-based, to the point where retained mode UI may end up being a better choice from the API perspective. It all depends on what exactly you're implementing, and games often are a natural fit for immediate mode as they usually allow to keep it simple with no real downsides.


I don’t have much understanding of the internals of the immediate mode renderers, but I think there are optimisations to only redraw regions where component inputs have changed.


You typically have to implement those optimizations yourself, and most people don’t. It’s outside the scope of the renderer in most cases for it to decide what should or should not be rendered. As a result, immediate mode GUI, while fast to develop, typically really kills a battery life on mobile.


Not to take anything away from the game devs (PoE is great and I wish I had started playing sooner) but I wonder how much internal politics plays a part.

I can imagine that the game studio has most if not everyone onboard helping collectively to make the game better each iteration. It is a common goal.

How many different product teams and managers get in the way for products at other companies where each is fighting for funding or privilege?

Being in that kind of environment is draining for the product teams.

Having worked at places that matched both these situations, I know where the quality and quantity of my output was greater.


They don't start fresh every three months.

Usually they have multiple leagues cooking up in the oven at any given time, so that if the league they want to release isn't ready in time, another, simpler idea will likely be within reach of completion.

The timeline is as such because their business model requires engagement spikes every three months. Remember that Path of Exile is free-to-play.

I also want to add that PoE has grown into one of, if not THE most complex games ever made; there are so many overlapping systems and mechanics that there were memes about what would happen if they added any more special destination buttons to the worldmap. And I'm not even talking about the initial release; it was a complicated game then, but now it has the mechanics of at least a dozen leagues baked into the core game play; many of those leagues are an entire game unto themselves (like Delve)

I love it for this, but it makes me sad that most gamers don't try and reason about this complex thing, and instead follow build guides and copy streamers, instead of experiment. Also, because of the nature of the game's deisgn, you need to play for a stupendous amount of hours to reach the end- endgame, and for most folks you also need to trade items with people IRL as the designers intentionally do not add a decent trade system. There are a lot of other quirks that reflect the designers' intent to not make life easy, either, and players both love and hate that.


The inertia at big tech companies is likely from the overwhelming weight of the business itself. No one wants to push out updates lest it upset the finally tuned business machinery.

A UI change can impact usage. Which can impact revenue. Which can impact stock price.

The end users for large tech companies are essentially shareholders and investors.


Remember last Tuesday when you wanted to add something, but your manager said no.

Remember 2 weeks ago, and you really wanted to implement CICD, but the DevOps team told you not to.

When you're developing any solo projects, you don't have anyone else telling you what you can't do.

This is amazing, but you can also easily spend countless hours building something nobody really likes. I've made a small handful of games, a few of them have been released publicly. If I had to guess, at most maybe 20 people have played my games.

But I taught myself everything I know via learning game development, and my career is amazing.

Even now, I'm trying out different engines and having a blast. Odds are. I'll probably never produce anything that becomes all that popular. It'll just be another throwaway game on itch that nobody plays, but I can say without a doubt I had a hell of a time building it.


Having a complete mental map of your work environment is the key. Nothing changes without your approval and you have some idea of when and where every change was made along with what it does.

Most of dev work is making sure other people can make sense of your work. With solo dev, that step is basically unnecessary.

I think it’s also why some indie games (eg binding of Isaac) get completely remade instead of making updates a year later. Walk away from the project for a couple months and it’s an untamable beast.


I don’t play a lot of games anymore, but the last one I spent a considerable amount of time with was Stardew Valley. And I couldn’t believe it was made by just one guy.


Yea the self wankery you see when these people place on insubstantial things like correctness against all possible situations in their PRs is amusing.

Elon once wanted to move his programmers to windows upon seeing how fast world of warcraft was developed. Goes to show how fast people can be if they care about the things that matter.


how far do you really need to go, alone

You need a win, but not that big of a win in the grand scheme of things

Six figures, a couple million

Whereas big studios need multiple hundred million+ hits




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: