Talvieno wrote: ↑Sat Dec 08, 2018 11:27 am
Bigger grain of salt than the rest of this post! I have no direct confirmation of exactly what went on, and only able to assemble a picture of what happened based on what I saw in the push/pull logs and the conversations I'd held with both of them much earlier this year.
Adam and Josh are two entirely different types of programmers. Josh is a graphics programmer. Adam is an engine programmer. Josh just wants things to go fast, even at the expense of physics - he even
turned off physics collisions entirely for most of the dev videos! Adam, however, approaches it from a different standpoint: to him, physics are important. Second, Adam likes to use pre-built libraries and tools, whereas Josh wants to make his own. This was a common theme throughout LT's production cycle.
Some of the first major stuff Adam did with Limit Theory was all about engine work. He found different resources online and tried putting them into LT, with the goal and making collision detection work "decently enough". And it did! Unfortunately, collisions were still... strange. Collision detection does not a physics engine make, and if you hit an asteroid, there's no telling what direction you would've bounced off of it. Without a physics engine, you can definitely tell when one object collides with another object (for example, shooting a weapon at an asteroid), but if you want to model a ship hitting an asteroid, or two ships colliding, or semi-realistic docking? You need a physics engine too. This is something that I imagine bugged Adam a fair deal, seeing as he's an engine coder.
Enter the Bullet Physics Library: a modular, pre-built physics engine that you could plop down into the custom engine of your choice. It's built to be generalized and accessible, and, as is a common theme in this post,
generalization and accessibility do not play well with performance. Adam started implementing it back in... June? July? Somewhere around then, I think. About that time most other forward progress on the game seemed to grind to a halt. I don't know anything specific about what happened, so again - grain of salt - but I get the feeling that Josh found that Bullet Physics played havoc with LT's framerate - especially with the large number of ships and asteroids that Josh wanted to have.
And what does Josh do when he finds out the engine is running too slowly for what he wants? He doesn't change his requirements to suit the new restrictions.
He refactors.
Unfortunately, I've not gotten to hold a conversation with him in a long time, so I can't do much more than speculate about what went on between him and Adam, and why Adam left. I don't think speculating about that sort of thing will help anyone.