Share this project

Done

Share this project

Done
An RPG, RTS, and sandbox space exploration game all-in-one.  Explore, trade, build, and fight in a beautiful, procedural universe.
An RPG, RTS, and sandbox space exploration game all-in-one.  Explore, trade, build, and fight in a beautiful, procedural universe.
An RPG, RTS, and sandbox space exploration game all-in-one. Explore, trade, build, and fight in a beautiful, procedural universe.
5,449 backers pledged $187,865 to help bring this project to life.

Limit Theory Development Summary: March 2017

73 likes

Happy early Saturday to all!

Seemed like last month's format worked out well for you guys, so we've kept the same format this month.  Except that we have eye candy this time :)

---

'Twas a long month. So much happened that it's hard to remember everything, but that's definitely better than the alternative. This month was all about big pushes toward the completion of big systems: assets, entities, and the physics engine. Major progress was made on all fronts.

I said last month that I'd be a happy camper if I had my primary assets 100% back, and I'm pleased to announce that I am indeed a happy camper! All my old mesh tech is back and accessible from Lua. Some of it even got upgraded; BoxMeshes (previously PlateMeshes) can take on cylindrical and other anisotropic shapes that weren’t possible previously, lending more power to ship & station algorithms. With all of this functionality re-packed into the LT Core library, I’ve ported the PCG algorithms for asteroids, planets, ships and stations. Seeing the ship and station algorithms again reminds me that I still need to put more time into them, but it was still glorious to have my assets back!

Oh how I missed you, bizarre procedural ships!
Oh how I missed you, bizarre procedural ships!

 

I uploaded a full gallery of screenshots for that week, so have a look:

Limit Theory Devlog Gallery ~ March 8, 2017

Sadly, while trying to delve into some gameplay programming in Lua, I ran into the same old problem...you guessed it: performance. Turns out I underestimated how badly LuaJIT has been hurting me (that is, in comparison to native C or C++ code). It became more evident once I had my assets back and was trying to push gameplay logic into fully-populated systems. Achieving the classic LT silky-smooth 60FPS was quickly becoming an uphill battle.

After much thought, a cascade of obvious insights befell me.  Moving some of the entity logic into C wouldn’t be the end of the world; some things modders will never need to touch. That line of thinking led me to more critical realizations: bottlenecks are always in the computations that happen every frame (especially if the computations happen across a large number of objects). Motion calculations and physics in general are obvious culprits. In fact, I realized that the most expensive, frequent computations are in the low-level logic...much of which need not be accessible in Lua. Most gameplay logic is far higher-level and need not run every frame. I knew this previously -- that costly code should be moved into C -- but never realized how well it could be done without hampering the ability to write gameplay quickly and elegantly in script. To make the high-level logic as fast as possible, I’m now working on an ultra-fast, event-driven entity system that will ensure per-frame processing is cut to the bare minimum.

Running performance tests for the first time even with only some of the above implemented shocked me. Moving low-level entity logic into C yielded absurd gains over Lua, but, perhaps even more surprising, it yielded gains over the old C++ engine. This I can only attribute to the fact that I've done a better job of structuring my entity code for performance! Suffice it to say, as of this month, I am completely convinced that our performance problems can be overcome with the right mixture of C and LuaJIT. 50K moving asteroids will back me up on that:

Spool up the FTL...something has gone seriously wrong in this system....
Spool up the FTL...something has gone seriously wrong in this system....

 

Once more, I couldn't resist and uploaded another full gallery of eye-candy for the week's work.

Limit Theory Devlog Gallery ~ March 17, 2017

 

Physics (collision detection, in particular) was the secondary focus of the month’s work. LT’s collision detection used to break down quite badly in cases that are traditionally ‘difficult’...unfortunately, with the scale of entities in LT, such cases are not at all infrequent. A complex ship navigating in close proximity to a complex station that’s 1000x larger in scale is, for example, a difficult case that occurs all the time. With several new collision detection structures implemented in the core this month, I’m well on my way to obliterating this bottleneck. Initial tests are showing great performance, although I've yet to finish the whole system. No big gallery for this work, but a little gratuitous ocular edification:

My God, it's full of...boxes!
My God, it's full of...boxes!

 

Toward the end of the month, I began implementing a full-blown entity component system (ECS) in the C core. The ECS is the part of the engine that controls how the data that underpins objects like ships, stations, colonies, asteroids, etc. is defined, managed, and altered over time in response to gameplay. From the point-of-view of the would-be LT modder (as well as Gameplay Josh), it's the most important part of the engine. I'm excited to see where this work takes me, since I believe that the new ECS along with an event system is going to simplify gameplay constructs dramatically, while providing superior performance to anything we saw in previous incarnations of LT!

On a side note, I got an opportunity this month to exhibit LT in New Orleans at the 'New Orleans Entrepreneurship Week' event. Since it was less amenable to interaction than previous events, I wrote a quick 'cinematic camera' that flies around a system, smoothly moving and panning while hunting for interesting things to look at. My demo was, essentially, 'Limit Theory Screensaver' :P It was quite lovely and I got very positive feedback. One guy even mentioned that he used to love playing Freelancer, and was excited because LT looked like a modern version of it. Naturally this made my day :) I made yet another gallery for the event, although this one is smaller and has less variety since not much was different, content-wise:

LT @ New Orleans Entrepreneurship Weekend, 2017

---

Big thanks to Nathan for managing to summarize what apparently added up to 7K words worth of devlog this month! Remember to hop on over to the forums if you're up for digging into the details, and be sure to check out the three screenshot galleries linked above!

I don’t think I can stress how big of a month it’s been for cold, hard progress. I’ve got assets back, I’m well on the way to defeating the performance issues that ended up killing the old LT, and, most importantly, I've got my eye on the gameplay ball. April should prove to be very interesting indeed.

Thank you all for caring :)

~Josh & Nathan

Comments

Only backers can post comments. Log In
    1. Tomduril on April 13

      Thank you for the awesome update!

    2. Shatners Bassoon on April 10

      Awesome work! Please make that screensaver available! /gets down on knees and begs...

    3. intrepidis on April 9

      Hi. I like the new more-round ships. I'm just wondering how are you able to continue funding this enterprise? Surely the original backer money ran out years ago? I hope you're still alright!

    4. krayzkrok on April 8

      Nice work Josh! I love the look of the engine stress test screenshots, hopefully we'll occasionally run into "weird stuff" like this, it freaks me out when I stumble across things like this in a game (in a good way).

    5. Geraldine McDaid on April 8

      This is wonderful progress Josh! Well done! :) *I knew* you could do it. Plenty out there might have had their doubts about LT, but in the end, you will reach Gold release, of that I have no doubts at all. o7

    6. Peter Lillevold on April 8

      Mmmm... how I love the sight of bizarre, procedural spaceships....

    7. James Alexander Jack on April 8

      Just wanted to say that it's great to have these updates here.
      Keep up the great work.

    8. Steven Langevin on April 8

      Thank you Josh & Nathan! How nice it is to hear of all your progress Josh! Take your time and everything looks great !

    9. Andrew Pierce on April 8

      Coding collision for objects with vastly different scales is a nightmare, I had been working on my own space game at one point but at the time I lacked the experience to pull it off and decided to pursue hobby projects with a much smaller scope, I'm glad to hear you were more successful with it than I was :).

    10. ianquest
      Superbacker
      on April 8

      Hmmm.... Limit Theory screensaver... That sounds like a really awesome idea... ;D

      Glad to hear the month's gone well, I'm familiar with how great it feels to solve coding problems, so congratulations! Thanks for the update, and hope future months are as successful for you.

    11. 9littlebees
      Superbacker
      on April 8

      Thank you for a great update!

    12. JC Ford on April 8

      Thanks for checking in.

    13. Missing avatar

      Alter Ego on April 8

      My favourite kicktarter project? Check
      Main developer seems well again? Check
      Regular Kickstarter updates? Hell Yea, Check!

      Also thanks to Nathan & Community for working on these Summaries, this is very much appreciated.

      No ones life depends that a computer game eventually finishes, so take your time; 's ok! :-)

    14. J.L. on April 8

      Yay, update! Neat stuff. Do take care of yourself too, this here project is crazy insane in scope and ideas and so are your skill and dedication. Keep it up. (c:

    15. Aerouge
      Superbacker
      on April 8

      Wow ...this is why we missed the updates so much. It is so great to see the advancement, and to see development pick up steam.

    16. JHewett on April 8

      Yeah, thanks for the update Josh.

      Y'know I had kinda written this project off from a financial standpoint and to be honest, my money (whilst important) was not worth putting over another someone else's (IE Your!) health.

      That said I enjoy these new updates not only from a game perspective, but because it means you are in a good place.

      This week has been a struggle for me personally (first panic attack in over 10 years), so I know some of what you have been through, but it is encouraging to see you overcoming that.

    17. Missing avatar

      Edward Erickson on April 8

      So glad we're back to regular Kickstarter updates. Hope everything is going well.

    18. BruceP - Chameleon Prime
      Superbacker
      on April 8

      Thanks for the update, Josh and Nathan! Great to hear the progress, and love to see the eye candy. :)