The End: I can not finish Limit Theory
kickstarter.com
kickstarter.com
My June update has a little bit of what “winding down” a 5 year old Kickstarter feels like for me:
https://www.kickstarter.com/projects/flutterwireless/flutter...
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.
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.
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.
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 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.
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.
Considering he stopped ~6 years ago, he'd probably have to start his degree again from scratch.
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!
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.
He said in the link
"I will prepare the source code for release"
And he will be in touch after the source is released.
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
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.
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?".
I have seen projects in industry that deliver a button of a different color for more.
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.
---
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.
We only hear about the successes in either camp. To get an accurate picture, we'd need to look at all the attempts.
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.
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.
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.
Minecraft, or anything anyone has even heard of, is very much an exception to the norm.
There’s nothing wrong with building your own engine but it and the intended game are going to need to be constrained.
I hope that the author can learn from this and move on to more fruitful endeavors. You deserve to.
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.
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.
But that still took two extra years and loads more money and people.
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...
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.
No other explanations needed :(