Hacker News new | past | comments | ask | show | jobs | submit login
The End: I can not finish Limit Theory (kickstarter.com)
172 points by CharlesW 5 months ago | hide | past | web | favorite | 63 comments

I’m in the same place in many ways. I had a successful kickstarter in 2013 but totally over promised and was unable to deliver.

My June update has a little bit of what “winding down” a 5 year old Kickstarter feels like for me:


I still have people demanding refunds, and I’m inclined to make sure everyone is satisfied, but after five years it’s pretty hard to keep going.

But to the author of this: you’re not alone. And it’s okay. Some people will be upset and many people will be totally okay with this. What’s important is that you take care of yourself. You are no deadbeat - you’ve really given it a solid effort and after all this time, it’s okay to admit failure, defeat, exhaustion, or whatever you want to call it.

In time you will see that the work built character you never intended to build. You will be better for it. The dream you once had may haunt you at times, but try to remind yourself that the dream you imagined apparently wasn’t as realistic as you’d believed. It’s okay to let go, and the healthiest thing to do if you’re feeling burnt out.

You’ll be okay. The backers will too. You’ve given far, far more than any backers have. You may feel forever in their debt, but nonetheless it’s okay to stop. Kickstarter invites us to make impossible promises, and it’s insanity at some point to keep pushing forward.

Take time off, accept that you’re done, and see what it feels like to relax.

To anyone else in this boat, you’ll have to follow your heart. Everyone’s path is different. But many of us fail. Failure is a necessary part of experimentation. I hope you genuinely realize that most people never even try to launch their own company or project like this, and few succeed. We all want to be the one who had success, hit the killer growth curve, and made it through the hell to the kind of traction we’d always dreamed of. But we will not all succeed. I did not succeed. But I’ve made what I’ve made and I’m sure as hell proud of the work I’ve done.

Take care of yourselves. It’s hard to admit you were wrong, but it’s harder to pretend you weren’t.

Honestly, if you’ve given a project 6 years of your life, regardless of how much money I pledged I wouldn’t ask for more.

If you made a good effort and are burned out, you should just stop. I can only imagine how liberating writing this post must have been, even if it was hard.

I've been following this project since 2012. For some reason the kickstarter caught my eye and I've been periodically checking the development forums at least monthly.

This was an absolute journey. He was attempting to make a game engine completely from scratch, including procedurally generated everything, NPC AI's somehow running in this infinite universe all in real time. The demos/screenshots were really beautiful throughout development.

A couple of years ago he had some kind of mental breakdown and stopped updating the forums. When he came back he joined some kind of accelerator and hired a couple of developers.

The project never seemed to evolve beyond engine work. The only "gameplay" was some kind of mini game written for E3 multiple years ago. The most recent updates are months and months of rewriting things back and fourth from lua to C++, infinitely tweaking to make the framerate perfect (at least this is my impression).

For having no stake in this at all - I'm really unreasonably sad about this announcement.

> He was attempting to make a game engine completely from scratch ... The project never seemed to evolve beyond engine work. The most recent updates are months and months of rewriting things back and fourth from lua to C++, infinitely tweaking to make the framerate perfect.

Re-inventing the wheel and premature optimization are red flags in software development. I can't say I'm surprised they never got around to building a game. Based on their approach, it looks like they suffered from an XY problem. Was inventing a new game engine really the right approach from the start? In hindsight, looks like it wasn't, and I'm surprised they continued that approach for so long.

It's mildly infuriating when the wrong team gets backed to build something. This is why the founders matter so much. Anyone can have a great idea, but it takes the right people to execute on something. Looks like this team was unprepared to build what they imagined, taking funding for X and then spending all of their time on Y, where they thought Y was a precursor to X, when it actually wasn't. If I was a backer, I'd be incredibly disappointed.

I’ll play devil’s advocate here. The guy (yes, just one guy, not a team) who was building this game dropped out of college to make it after the initial Kickstarter. It’s likely that he was a fairly smart and driven guy, but simply inexperienced both in terms of software engineering and game development. He didn’t know it beforehand, but he likely bit off more than he could chew. He devoted time and resources to things that were not critical for the success of the project. He likely lacked good mentors (and a team) who could guide him along the way.

I understand that it must be disappointing for the backers, but it is infinitely more disappointing for the developer who obviously feels like he let those backers down. Hopefully he picks himself up and learns from his mistakes and does a better job next time, whatever that job may be.

>I’ll play devil’s advocate here. The guy (yes, just one guy, not a team) who was building this game dropped out of college to make it after the initial Kickstarter. It’s likely that he was a fairly smart and driven guy, but simply inexperienced both in terms of software engineering and game development.

The "dropped out of college to make it after the initial Kickstarter" part doesn't support the "smart" part that well. At best he's smart despite doing so.

I mean, it’s not like he can’t go back to finish his degree. It’s better to try and fail than not try at all.

Especially while still at an age where you can drop out of college. It’s a bit hard for me to drop out of a marriage, child and job to take on spending years on a passion project.

He'd probably have to restart his degree completely - many universities will not recognize credits for incomplete degrees past 5 years of their accrual (institution-dependent, of course).

Considering he stopped ~6 years ago, he'd probably have to start his degree again from scratch.

Plenty of smart people drop out of school. Even more smart people never get a chance to attend a school out of which to drop.

You're right, but he addressed this near the bottom of the KS page:

What Engine Does the Game Use?

I have written the engine from scratch using C++ and OpenGL... Most importantly, the engine is designed completely around procedural paradigms, and this influences the architecture of the engine in many ways. Every file is written with "everything procedural" in mind.

So, not so much re-inventing the wheel, but creating his own paradigm in a new engine. Brave to attempt something so novel, but this is how progress is made. If nothing else, he has a (hopefully) solid game engine that could form the basis for any number of future games.

Gavan Woolery's Voxel Quest is another example of someone striking out on their own to invent a new engine. Look how awesome that turned out!

I would argue that the kind of game that he was working on could not be made in a regular game engine.

I'm a backer, and am now very used to non-delivery after backing hundreds of projects as a gamer on Linux. The non-delivery of projects, either complete failure or just failure to deliver to Linux, is probably around 20% or so in about 100 projects backed.

As a FOSS proponent I'm obviously biased in this, but I believe failed projects have a duty to release source to the backers in some way. In a perfect world, the community will help carry the project over the line, but worst case at least the backers receive something of value and can do with it what they will. It doesn't matter if the original developer has concerns about levels of quality or completion.

Please see this both as a general comment to the community, but also a plea directly to the developer in this particular instance.

"I believe failed projects have a duty to release source to the backers in some way."

He said in the link

"I will prepare the source code for release"

And he will be in touch after the source is released.

Commenters on the KS page were also asking about the source code despite the author mentioning that it will be released. Maybe they suspect that the source code release be failed to be released in a timely manner just like the product was. If it is indeed a duty, it might be prudent for a creator in a similar situation to delay the announcement until the source code has been prepared.

Sounds like the latest version may not compile, after incomplete refactoring. Would be good if he released the full git repo - a previous version might be a better starting point.

For all the charlatains on Kickstarter you also have folks like this that feel an almost unbearable burden to make good on a promise made. I feel bad for the guy, hope he can dust himself off and take the good and leave the bad from the experience.

I feel worse for the people that believed he could deliver on something he clearly didn't know how to handle.

That is the nature of kickstarter. You are not buying a product, you are funding the development of a product that may or may not ever succeed.

Exactly. Funding any project is a gamble. Gambles don't always pay off. There could more emphasis on this. The mental health of the developer is placed way below the importance of delivery.

Why? Because they fell from space yesterday, and don't know that that's a possibility in any project, and in kickstarter even more so?

We already have a place to buy products from folks that know how to deliver them.

Josh, you have my sympathies. IME, in 'our culture', whatever that is, people like to boldly ignore limits to emotional energy. 'Just Do It', 'live with no regrets', and all those slogans. If you say you're not doing something due to a lack of emotional energy, people will call you a wimp, sometimes to your face.

And so it's a mistake that everyone, it seems, ends up learning from hard, scarring experiences. There really are limits and they are just as real as limitations to how fast you can run and how quickly you can code. Often I see consequences that are similar to Josh's - you fail others because you didn't take emotional energy into account when you made serious promises to them. A failed Kickstarter is no big deal, those are expected to be risky; I see failed marriages; people neglecting or otherwise hurting their kids; people failing their employees, partners and investors; and people losing their family's and friend's money and good faith.

IMHO, if you want to be honest with others you need to be honest with yourself; you need to know yourself and your capacity. Also, you can then learn to manage and increase your emotional energy, to spend it efficiently, and to use it to your advantage as the powerful, irreplaceable capability it is. Ignoring it is like ignoring any constrained resource, such as cash flow for your business. It might help if we taught people these things as children.

EDIT: A few additions

As a developer who's not in the game industry I am constantly surprised how often I read that an indie effort has decided to build their own game engine. Are Unity/Unreal/etc really that limiting or is it a psychological trap engineers keep falling into?

I haven't done gamedev in a long time, but there's an old saying the community: you either make a game engine or you make a game --- not both.

That's news to me... Also news to some of the biggest hits ever, like Minecraft.

I feel like Minecraft should be the exception to nearly every single rule in game dev (except when it itself is the rule).

That said, there's a difference between making an engine for a game like Minecraft vs. the kind of engine needed for Limit Theory.

At the end of the day, it's the same stories and questions about core competency present in almost every business. If you want to build a shelf, and you have to start by making the tools that will cut the tree that will become the shelf... it's going to be a while until you see a shelf, and in the process you'll probably be producing more useful tools than shelves.

Unity is popular for the same reasons AWS is popular: It allows you to focus your time on what you excel at, instead of spending it reinventing various wheels. Some businesses (and games) can succeed despite reinventing those wheels, not necessarily because of it.

And in some extremely rare cases, "what you excel at" is both building the engine and making an excellent game out of it (Present company included; I'd recognize your name anywhere). Stardew Valley and The Witness are the only two examples I can give off-hand of significant, outstanding, indie games that were released with a custom engine. And I would maintain that in both cases, it wasn't necessary to create the engine. In SDV's case it's even questionable if it actually helped at all.

Every other example I could come up predates the days of high quality engines being readily available to sub-$100k budget games.

Edit: I'll add Psychonauts to that list; once again, a decision of questionable gain that the author AIUI regretted.

I’ll preface this by saying I have tons of respect and admiration for what Notch did, however I think it fair to say that Minecraft came about from Notch making a game engine not a game. The game was already made and was called infiniminer. He was definately an engines guy and successes mostly because Minecraft let he users build the game experiance themselves.

Take a browse through /r/gamedev or github and see how many people start game engines only for their efforts to vanish into the aether or never actually be used for a game.

Minecraft, or anything anyone has even heard of, is very much an exception to the norm.

NIH Syndrome. Also, I imagine that a lot of game development is fairly menial drudgery from a software development standpoint, so the temptation to make it more intellectually stimulating probably becomes pretty high.

I've been researching a design recently and have faced the temptation freshly, so perhaps it'd be useful to share.

Having investigated every 2D and 3D engine for the web (it's a nice UI, not a game), it seems none of the existing options scratch my itch: SVG and its huge complex object graph grind to a halt burning CPU after your first few thousand nodes, while game engines that can often cope with huge entity counts just continually burn CPU and apparently have no concept of 'idle'.

So the itch is there: just a little <canvas>, a few wrapper objects, and I'm sure I'll be done in no time. Just gotta reimplement D3's TopoJSON renderer, that's all.

Of course it's a lie, but at this stage I'm old enough to realize that :) I think the only way many people (just like me) in IT learn this is the hard way: be getting burnt too many times.

I haven’t looked closely at game engines. Is it possible to write the game at the level of abstraction you want, then write a translation layer into various game engines? Or do these game engines tend to creep into all of your code, preventing you from decoupling your game from the engine? If this were possible then you could prototype the game using a game engine to get a “MVP” and if you aren’t satisfied, swap out portions of the engine with custom code.

All of these engines (Unreal, Unity, etc.) are written as monolithic "frameworks" that want to own the top loop and have you override certain bits to customize behavior. Also, the nature of games requires that various components (graphics, physics, ai, networking, etc.) are tightly coupled together. So, no, you're in a world of pain if you want to use Unreal and not do things "the Unreal way".


Honestly though, I see nothing here that couldn't be done in any modern engine out of the box though. They can all stream assets in and out of the level asynchronously (for "infinite extent" levels), build meshes/textures programmatically, support fully dynamic lights, etc. If you have some requirement for procedural generation that isn't supported out of the box (e.g. baking lightmaps at runtime), surely it'd be easier to just write that part yourself and inject it into the existing pipeline.

> Is it possible to write the game at the level of abstraction you want, then write a translation layer into various game engines?

At that point, aren’t you almost writing your own engine anyway? You’d need to design the abstractions, interface with the game engine, and consider how those two things impact performance. That’s a big chunk of what a game engine is supposed to do for you.

Game engine code and data types creep into all your code. I once heard an indie game developer describe this as "smushing playdough against a mold" (where your game-specific not engine-specific code is the playdough and the mold is the engine API).

> temptation to make it more intellectually stimulating probably becomes pretty high.

This is not OK when you have made promises to people who expect a product. This guy took advantage of those people, and it's incredibly sad. I don't know how they kept on doing this for 6 years without reassessing if their approach was really the correct approach. I can't fathom that in 6 years, not one person raised their hand and asked "why the hell are we writing a game engine?".

It's only 180k. That's one years developer salary.

I have seen projects in industry that deliver a button of a different color for more.

Caveat emptor. Due diligence. Blame/fault isn't helpful here, and it's shared regardless.

I write small games some times and I used Godot and Unity for 2d and 3D small projects. I find both of them very annoying to work with in the way intended. Luckily both are customizable enough to follow my own workflow (which is 95% code; I basically detest the graphical tooling; they really get in my way); I can understand why people, for whatever reason, roll their own, however, because I have no time as it is, I wouldn't attempt that now. If I would do full time game dev for a game of my own I probably would though.

Building and tweaking tech is a trap for engineers even with Unity and Unreal. Game design is a lot less easy to pin down and most engineers are conditioned that time spent not tapping away is wasted. Building your own engine, particularly for an over ambitious game idea is a recipe for prevarication.

There’s nothing wrong with building your own engine but it and the intended game are going to need to be constrained.

I can’t say, but keep in mind that there are plenty of examples of indie games that used a custom engine and went on to be highly successful. It could be that those games would have been just as successful with an off-the-shelf engine, but perhaps there is something to be said for the DIY approach.

Watch out for survivor bias on this, though. How many games never made it to release because they bit off more than they could chew building the engine? How many of those could have been successful if they had used a commercial engine?

We only hear about the successes in either camp. To get an accurate picture, we'd need to look at all the attempts.

Not a game dev but can Unity/Unreal/etc do procedurally generated everything? I thought they were more designed for manual map/environment building.

Unity gets shit on a lot because of how easy it is to churn something out with it (of dubious quality), but if you understand how it works at a fundamental level and also actually know how to code, you can pretty much do anything with it. It would be difficult do something of this scale procedurally, but you can definitely do procedural generation in Unity. You would just have to be smart about how you load resources at runtime to avoid hangups.

> but if you understand how it works at a fundamental level

This circles back to another key reason I think a lot of people choose to build their own engine, many people don't want to spend time learning the ins and outs of somebody elses creation. When you build your own engine, you know the entire api in and out from the start and as it evolves, you know what it can and can't do, and you know where to go if it's missing a feature or has a bug.

Can't comment on Unity but Unreal4 definitely allows this, although you may have patch the engine source or implement your own base classes etc. I would imagine Unity is not that much different.

See Astroneer for an example of this, the planets surfaces (which are deformable by the way) are procedurally generated, even if they are deployed from a kind of template specifying the parameters.

UE4 has a ProceduralMeshComponent for this sort of thing, not to mention procedural foliage component etc.

yes, but you probably wont have the benefit of the map editor

I'm more surprised that they continued this (clearly wrong) approach for 6 years, leaving all of those people waiting, eagerly. This was irresponsible. The lesson here is, don't bite off more than you can chew, especially if you don't know what it is you are eating.

Kickstarter isn't as I hope people have realized by now a store with extreme preorders. Its not an act of bad faith to fail and its not shameful. A substantial portion of software projects fail and many burn through a lot more than 180k of investors money.

I hope that the author can learn from this and move on to more fruitful endeavors. You deserve to.

I'm not even surprised. I took one look at how much he raised and the scope of what was promised and instantly knew it would be damn near impossible to ship everything.

Games are super hard. Even with near unlimited budgets. I don't fault Josh for closing up shop one bit. He spent 6 years on it.

I commend the author for deciding to open source the code up until now - it could of been fairly easy to just go off the radar and never look back.

6 years is a heroic effort. Great work Josh. If your life obligations permit, grab your backpack and head to a warm, strange country, lie on the beach, clear your head for new battles ahead on a different field.

You (creator of Limit Theory) should get a $300,000 job with the skills you have shown. You did not fail. You just underestimated that one person can't do the work of a 50 head game studio alone.

Honestly, I don't think there is a person alive that could single-handedly develop a game of this scope without getting burnt out.

That's the first problem. The subsequent problem, once you've realized that, is that many people that want to pursue solo development of a game are unlikely to be good PMs once they bring on others.

I mean, just look at what a joke No Man's Sky was, and realize that they had way more funding and many more people working on it at various points.

To be fair, No Man's Sky is a much better game today than it was around launch, when it was getting peak bad press. At that point, the prudent move might have been to cut their losses and move on to other projects. But instead Hello Games has spent the last couple years releasing free updates.


But that still took two extra years and loads more money and people.

> many people that want to pursue solo development of a game are unlikely to be good PMs once they bring on others

When I went from being on a small independent consulting team, to working for a company with project managers, it really blew my mind just how important a good PM is. I had that cocky developer attitude of "We don't need no stinkin' PM", but now I see so many projects that, if they only had a good PM, would have gotten so much more done, faster...

What stands out to me is the supportive comments on the Kickstarter page for this announcement. I only speed-read the first page, but they're almost uniformly "that's OK, you gave it your all". One person said they found his updates inspiring.

He may not have reached his goal, it may have been an unrealistic goal for one person, but clearly he ran the process in such a way that he kept his supporters rooting for him. Compare that to the pitchfork-and-torches ending of a lot of failed Kickstarter projects.

> We've written a custom engine from scratch using C, Lua, and OpenGL

No other explanations needed :(

Part of starting a project is in understanding the scope, commitment and time you will need to dedicate to finishing it. Ideas are easy, execution is hard. If there are people depending on you, don't start what you can't finish -- it will just leave tons of people sad and disappointed.

Did I just waste 6 years?

This is in reference to the top post today, “Did I just waste 3 years?” https://news.ycombinator.com/item?id=18092108

Applications are open for YC Summer 2019

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