Display posts from previous

Sort by

I've been trying to read between the lines in the devlogs and it seemed like the team was really kind of getting to a place of wrapping things up in a really positive way. Then people went their ways as they certainly needed to (and weren't replaced, so wow, that had to make a person feel weight on their shoulders), and Josh understandably felt that a combination of things gave him the perspective that furthering development wasn't possible. (At least, not with him at this time.)

Totally understandable.

But I've been wondering: What exactly happened on the technical side of the equation? When I read the details of some of the stuff that a number of you easily have a grasp of, I'm pretty amazed at the depth of the concepts grasped (and ease of which they are manipulated). So it's pretty sobering when the leader has to say, "Ok, that's enough of that!"

The only clues I have are that "Bullet", a physics engine which was at least partially responsible for things such as collision detection (using convex detection, ok, I think I get this part of it) required -- or the next stage of development required -- the need for massive loads of lua code to be ported over to C, and possibly something about concerns of conflicting categories of UI control types. All of this under a banner of "synchronize everything running together and make it run at 60 fps"! (I do feel I kind of get the old monolith/resources problem of modification vs. performance issue set that ultimately led to the C & Lua port.)

But that is where the trail kind of ends for me. If the source can be downloaded and groups of us and others can kind of make our own branches and pick things up in the source where it last left off, what were the concerns, what was the direction? Josh said that he gave everything and it was nowhere near enough, yet the directions of the development prior to that seem to point to possible attainable goals.

What were the big concerns that yielded a perspective of technical impossibility, if it was more than just time?

Whats kind of striking is, that this work on concepts and testbeds represents a point almost 6 years after the game development started.
This is way too late.

The simulation of a living world was THE core of the game as it was imagined. Nailing it down should have been a priority way before dabbling in optimizations of ui rendering, spacial partitioning for physics or how much modding is possible.

A simulation like this is at first independent of the technical implementation. Once it works, there is always a way to convert it to a faster implementation at a later time. If time does not permit a fundamental optimization, well, you have to scale down the number of actors in the world then. But it will still be a running simulation, allowing the GAME to work.

Josh's problem was not the ability to grasp and implement complex technological concepts.
Its was perfectionism that lead to overspend time to try and optimize parts of the engine tech, while the actual game itself was still not a rounded concept.

In the end, the budget was not nearly enough for 6 years of development.

Nothing happened recently technically that prevented further developement. If this was about mountain climbing then he was trying to find the best way up for about 6 year (stopped at the 2000m mark to go back down) and when the sky finally cleared up (he never saw how high this mountain was) to show the top he realized that he is still at the beginning, out of resources and the top seems to be the one from Mount Everest.

Not only were each of these (other than dogfighting) hard problems on their own, they all had to work well together.

My impression is that building an architecture capable of handling all these goals performantly was just too hard for any one person to accomplish in five years. Josh solved several of the hard technical problems (in particular the Fundamental Problem of Limit Theory), but in the end ran out of money and energy for the rest.

Making a good piece of software is hard. Making a good game is really hard. Making a good game as complex as LT was meant to be is incredibly hard.

Doing that mostly on your own when you have trouble leaving anything in a "good enough for the moment" state....

(But note that I'm not putting all this on Josh's personality. I've made games. No matter how much you've done, there are always more things that have to get coded. It's remarkable any game is ever released.)

...and from a programming perspective, please bare in mind that these were the easy ones to figure out. There is so much more behind-the-scenes work that makes this insanely difficult (even the simple act of getting one system[ui, economy, etc] to play nice with another is just *one* of the hardest things).

Early Spring - 1055: Well, I made it to Boatmurdered, and my initial impressions can be set forth in three words: What. The. F*ck.

...and from a programming perspective, please bare in mind that these were the easy ones to figure out. There is so much more behind-the-scenes work that makes this insanely difficult (even the simple act of getting one system [ui, economy, etc] to play nice with another is just *one* of the hardest things).

You better believe it.

It's not an exaggeration to say that any of the high-level things I listed, plus other desirable features, entails literally thousands of microdecisions. All of these little possibilities have to be decided on and coded and tested and integrated and retested and polished and re-retested... and then thrown out and re-coded, etc., because it wasn't as much fun as it should/could be.

And those are just for visible gameplay features. Engine stuff is an entirely different breed of cat that demands its own kind of attention, which you can't get too wrong or none of the gameplay stuff will matter because none of it will run.

And did I mention integrating third-party libraries? (While watching out for GPL infections?)

And I don't even know for sure all the features Josh was planning on implementing in LT.

Which is how I arrive at my guess that what technically happened is that LT was a technical monster.

And those are just for visible gameplay features. Engine stuff is an entirely different breed of cat that demands its own kind of attention, which you can't get too wrong or none of the gameplay stuff will matter because none of it will run.

For more references, I believe we even had a thread at one point that asked the question "What is a game engine?"

Everyone has their own interpretation. If you want to just cover the basics from a 50,000ft overview, there are tons of references online.

...then again, we could all be wrong. It could be that Josh had an epiphany and realized the scope of the project was far more than he originally thought and it hit him like a ton of bricks. There's too much to speculate against unfortunately.

Either way, we definitely can all agree that he gave it his all, and for those who have accomplished it already, it gives a much better perspective on the thing. Even Duck who created a fairly small game could probably attest to the fact that it too a lot of time.

There are no shortcuts. There really isn't much ease in pumping things out fast unless you're ripping others off (*cough* Zynga *cough).

Early Spring - 1055: Well, I made it to Boatmurdered, and my initial impressions can be set forth in three words: What. The. F*ck.

Nothing happened technically. That's the problem. There absolutely are shortcuts, but Josh declined at every step to take them. His extraordinary mind refuses to make concessions, approaching every problem with the ceaseless striving towards a perfect answer.

I keep remembering his dependency graph comment. In the end, Josh's search for a tidy answer, a single entrypoint promising the unraveling of the entire puzzle, proved his undoing. This isn't me being hung up on a four-year old comment; consider the new editor tool he came up with earlier this year. In it, as well as previous similar developments, you can sense the search for an idyllic state of LT development in which the project will effortlessly be completed.

The promised scope of LT is extraordinary, but also tends to be overblown. Dwarf Fortress, arguably a more complex project, keeps trucking on. The X series, which shares the feature set of LT minus the procedural generation, has existed for nearly 20 years. Both of these projects are playable products because their creators recognized that taking things slow and piecemeal was necessary to fulfill a grander vision, spread out over time. They were pragmatic, but Josh never was. This, you can even see in his farewell letter, with him genuinely appearing to think "he has become unfit to build a source of joy."

Nothing happened technically, because with Josh it's a 0 or 1 all the way down. I'm unwilling to say that he's recognized this about himself, because the susceptibility towards delusion is the human animal's chief feature, and he's if nothing else a master storyteller.

Although my thoughts aren't too far from alpan's, I think there were a couple of important exceptions worth considering.

1. The LT Prototype. Absolutely it wasn't the full procedurally generated multi-star system game with factions and a closed economy... but it was a surprisingly full implementation of multi-ship class dogfighting in a single star system. The LTP actually got done and delivered to backers.

2. Con builds. When a convention was coming up where LT would be shown, Josh was intensely focused on getting a semi-playable demo up and running, adding multiple useful features in the days (and the night) before. It would have been a terrible way to operate for more than a couple of days, but it did show that when there was an external milestone, Josh absolutely could be extraordinarily productive on building out functional, even if imperfect, gameplay and support features.

I'm not going to wallow in what-ifs or speculate on what-nexts; Josh is an adult who'll be responsible for his own choices. I can't change him. Rather, I'm always going to reflect on whether my occasionally less-than-enthusiastic reactions to some of Josh's devlogs contributed to his loss of morale. That was my choice.

For now, I just hope he's seen the comments to his last Kickstarter update, so that he can see beyond any doubt that one disappointment does not define him entirely and forever to the many people who got to know him a little.

The con builds bring up a really interesting point, IMO; I wonder whether it was the external deadline that did the trick, or whether it was that Josh allowed himself to produce less-than-perfect code in order to get to that specific goal.

The con builds bring up a really interesting point, IMO; I wonder whether it was the external deadline that did the trick, or whether it was that Josh allowed himself to produce less-than-perfect code in order to get to that specific goal.

Dont forget: the convention builds has much smaller scope, and focused on gamplay and elements that can be showcased within sessions lasting only a few minutes.

Flatfingers, the exceptions you note are indeed worth pointing out, if only for the tantalizing possibilities of what could have happened if Josh had been working with a director/producer type who kept him beholden to such milestones. I remember you making similar points throughout the development of the game, and I don't think you have anything to worry about with respect to keeping Josh's morale up or your enthusiasm for his work.

For now, I just hope he's seen the comments to his last Kickstarter update, so that he can see beyond any doubt that one disappointment does not define him entirely and forever to the many people who got to know him a little.

If there is one thing that worries me about Josh Parnell the person, it is the risk of exactly this happening. I am hoping his family and friends can keep him grounded, because I don't doubt he is making this very difficult for himself, more than it needs to be.

Last edited by alpan on Sat Oct 06, 2018 11:02 am, edited 1 time in total.

The con builds bring up a really interesting point, IMO; I wonder whether it was the external deadline that did the trick, or whether it was that Josh allowed himself to produce less-than-perfect code in order to get to that specific goal.

Personally, I'm convinced that it was the external deadlines. If you remember, the same thing happened for every single dev video, back when he viewed the dev videos as a requirement. He would work ceaselessly for the few nights before and then post up the finished product - a video of him showing off his work.

I tried to write up a set of "milestones" for him earlier this year - somewhere around February, I think (I'd have to check). It was a roadmap would've spanned until December of 2019, taken in logical steps toward completing a final product, with very careful "guidelines" toward what would be completed by when, and why. Each step built atop those previous, aiming at the goal of creating a working world of LT, with a beta at the end of this year. It would've been released just a couple weeks before Christmas.

He said he already had a roadmap, though, when I presented it to him - in his notebooks, he said, and it was parceled into tasks much as mine was. I really do think the external deadlines were the thing that drove him the "most effectively". Unfortunately it's a moot point now, but nonetheless interesting to speculate on.

For now, I just hope he's seen the comments to his last Kickstarter update, so that he can see beyond any doubt that one disappointment does not define him entirely and forever to the many people who got to know him a little.

I completely agree. I really hope he's seen it. I know I've been getting Josh-addressed mails from fans over the past week (my email is up on the site next to Josh's) - so I can only assume he's gotten more than I have. If he's checked his email account at all, he's seen it.

I can't even count how many times I've been programming something and at a certain point I just got stuck because I got into a mental loop of pre-evaluating the fitness (both in terms of performance and elegance - which, in programming, are often pretty equivalent) of several different ways I could approach solving the specific problem instead of just picking one approach and doing it. It's hard, because you want to pick the right one. But you need to be able to recognise that "being stuck pre-evaluating the fitness of various solutions" is itself an approach you end up picking for solving the problem - and it's obviously not the right one, because it fails to solve anything, because you end up not creating anything.

Josh doesn't seem to be able to recognise that.

That's what technically happened.

Most of his development effort was spent figuring out how to reduce the amount of development effort. Even non-programmers can recognise that that's not a good kind of recursion.