Share this project


Share this project

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: February 2017

Posted by Josh Parnell (Creator)

Hey everyone!

Since the response to 'how should I handle KS updates?' from the last one was overwhelmingly in favor of monthly summaries of my weekly development logs, that's what we're going with. Here's the first one. I'd like to note that this summary was actually compiled from my logs by the new Limit Theory Community Manager, Nathan (known as 'Talvieno' around the forums). You can read more about that exciting development below!


In the first half of February, I explored the performance characteristics, and, ultimately, the feasibility of the current LuaJIT solution. LuaJIT has been a roller coaster of emotions for me. At first, I was cautiously hoping it would be the solution, and became very hopeful when I saw that it ran more efficiently than any other solution I've tried... only to become extremely worried whether it would actually be performant enough in the long run. This caused me to look into other related solutions (which didn't work out so well!). Fortunately, I didn't give up there. I continued to put some more work into it using LuaJIT's built-in profiler, which was helpful in weeding out the worst areas of performance. At the end of it all, my heavy-duty laptop was able to run a 1000-ship battle at 60fps. Remember, of course, that not all of the logic is implemented, so this isn't representative of what you'll be able to do in LT. The goal for me has always been to allow ~100-ship-battles at decent framerates, and at this rate, I believe we'll be able to do that.

What I've seen has allowed 'Practical Josh' to conclude that we will be able to (tentatively) proceed with LuaJIT. This is also taking into consideration that, if things start to get too heavy, I'll likely be able to make enough little scale cuts here and there to push out a still-high-quality LT 1.0. I'm keeping practicality in mind and am open to, for example, having to slightly lower the scale of system economies or out-of-system simulations, etc, if it means the difference between 60 and 10 fps. I'm also devoting some relatively-small amount of time to researching other potential solutions guaranteed to be more robust than LuaJIT, just in case LuaJIT doesn't work out.  All-in-all, this is great news since it means that FPLT will not be holding up development any longer!

I spent the latter half of the month getting more content brought over to the new system and sanitized. PlateMeshes (stations, ships, turrets and the like) are 90% back now, and I've spent some time making them more robust and performant than in the past, since they turned out to be the cornerstone of many of my procedural algorithms. Planets are back and at 100%, including atmospheric scattering. Asteroids will be back as soon as I figure out scalar field extraction in the C core.

In summary, a LOT of stuff is coming back very quickly, as I promised it would, since the real work of thinking through problems is already done in many cases. It feels so nice to get to focus on putting content back in! This time around, I'm not going to make the mistake of going for long periods without a playable version of LT. I intend to keep the PAX demo in working shape and updated with relatively-recent content, both so that I can continue to feel the inspiration of being able to actually play LT, and because I'll be pushing myself to go to more local tech events where I can continue to demo the game (I'll give you all a better heads-up from now on as well).

As long as we're talking about the community, it's also worth mentioning that I have appointed LT's forum admin, Talvieno, as my official community manager. His new role as CM will ensure that the amount of non-coding LT-time I spend in the future is kept to a minimum! I'm really happy to have Talvieno on board. You can see the full post about it here. I’ve also kept my promise of delivering weekly textual devlog updates. They're viewable here, and go into much more technical detail on my recent developments. If you're not pleased with this summary, do have a look!

And in a rather unexpected note: part of my time over the past week was dedicated to developing a networking and remote 'control panel' system for LT. It's a technology investment that I'm sure will pay dividends. Specifically, in an attempt to gain better control over LT's procedural generation algorithms, I implemented a multi-platform TCP & UDP socket API, then used it from LuaJIT to spin up a very simple HTTP server run in the background by the engine that serves up a simple control panel webpage when connected to via a browser. It can change internal engine variables automatically in response to controls like sliders or buttons being changed in the panel. This makes it fantastically easy for me to work with large amounts of parameters and see results in real-time (which is exactly what's needed for building good procgen code). As a bonus, since it's based on sockets & HTTP, I can connect remotely and use another machine like my tablet to control parameters while I develop on my main box. There are a whole lot of other ways I can envision using this to boost my productivity! Also, the tools are now there for anyone who wants to give an LT multiplayer mod a shot at release. (May the force be with you...)

Finally, I experienced one of the happiest development moments in memory when I got to see my universes in VR for the first time! VR support had always been planned, but I had never gotten around to adding it until a couple of weeks ago. Playing the PAX demo on my HTC Vive blew me away! It reminded me of why I became a graphics programmer: I wanted to build worlds. I always dreamed of getting to explore the worlds I'd built. Eight years ago, when I started learning 3D programming, I also looked into VR, but the hardware just wasn't around back then. I saw how I might be able to build worlds with enough learning, but I didn't see how on earth I could learn enough to build the technology that would let me experience those worlds. Fast-forward less than a decade, and a bunch of really smart people have done exactly that. I never dreamed it would happen so soon...if you had told me back then that in eight years I'd be able to code nebulae, planets, stars, and ships, AND that I'd have access to hardware that would let me SEE them (almost) as I see objects in reality...there's no way I would have believed it. But there I was this very month, floating above a planet, staring at nebulae and stars, and watching the occasional pulse-laser fly by my face. Even the most trivial experiences in LT were made absolutely thrilling :) I'm planning to do a lot more visualization and testing in VR, simply for the inspiration factor. After two years of relatively-uninspiring work, I'll take all the motivational boosts I can get.


Again, if you're really interested in details (all of the developments of February can't possibly be packed into a neat summary), dive into the logs!  In March I hope to see completion of the porting process for most content (actually, that's the goal for the end of this week, not the whole of March...!)  With all my toys back, it'll be time to resume the process of assembling them into a universe.  Full steam ahead.  I look forward to being able to post new visuals again :)

~ Josh & Nathan (Talvieno)

PS ~ This format is a work-in-progress.  Please let us know if you have thoughts about the format of the KS monthly summary (too much text? need bullet points? rather just have tiny per-week summaries with links to the full log?)

Flatfingers, Dan Kershaw, and 73 more people like this update.


Only backers can post comments. Log In
    1. Josh Rainwater on

      I like the format and inclusion of links. Would love to see a checklist, even if it's long as hell, that has some stuff crossed off each month. Or even what DID get crossed off y'alls' checklist for the month.

      As long as this is better than NMS, which it will be, no one will mind the wait :)

    2. Top Frogger on

      I've always had faith in you Josh, keep up the great work man

    3. Missing avatar

      Stephen T. Robbins on

      Format looks perfect.

    4. Matt Kay

      Great update, glad to have you back here. Just a quick one about demos...

      I'm not sure if you have released anything since that first playable demo, but if you are creating newer playable demos for various events, please please share it with those of us who backed your vision and paid extra for early access. I haven't played LT since that first demo and would love to see how things have changed.

      Plus it is annoying to think that other people who haven't paid you a cent are able to play just because they happen to be able to attend an event, whereas someone like myself who paid for your vision and for being able to try out your prototypes, can't play it because I live in another country and can't afford to attend.

    5. intrepidis on

      I'm just wondering what happened to LTSL? Did it become too complicated or something? Although I guess it's good to use industry standard tools, like Lua, rather than rolling your own all the time...

    6. JC Ford on

      +1 like the format, and good to see you back!

    7. Ocean Druen on

      Good to see you back!

    8. Missing avatar

      Víctor on

      Thanks for the update, I really think you are now in the good path regarding communication with your backers.

    9. Andrew Pierce on

      Any plans on a Vive interface? I know it's probably a pretty low priority and probably shouldn't be worked on too much till after 1.0 since not many others are likely to have a Vive, but I'm curious as to how you might control ships with Vive controllers. Would you create a virtual cockpit with controls you can "grab" like a virtual throttle and joystick and lots of little buttons? Or will it be a virtual screen that you point at with the controllers? Perhaps a combination of both, or something I haven't even considered?
      At any rate keep up the good work on the way to a 1.0 release, and I'm looking forward to the possibilities of what may come after :).

    10. NobleBrutus on

      I like this format! Keep up the good work! ;)

    11. Adrian Apps on

      Is there a way for us backers to run the PAX demo on the HTC Vive? I'd love to see this!

    12. GreenDragon on

      Josh so happy to see and hear you. I believe in you. Keep going for it. I don't care how long it takes I'm just happy to be a part of it. :)

    13. John Bernhard Horn on

      Vive is da shit! :D

    14. Charles N on

      Very interesting content there and it sounds like you might have found a good path forward! The HTTP server component is very intriguing Thank you, Josh!

    15. Richard K on

      Thank you Josh! Was great to touch base at PAX South.

      Seems as if performance issues are fixed, but if still have issues possibly look at not having everything real time, introducing some sort of delay, such as in stock market and contracts, maybe refresh every second instead of real time. Know this is against the holy grail, but some things aren't truly necessary real time, IMHO.

      Am truly excited that you're back updating us! YOU ROCK!

    16. bar10dr on

      Love the details of the update, keep up the good work!

    17. Michael Rozdoba on

      Great to hear from you Josh. All round, good news & some really promising developments. Loved to hear your enthusiasm coming across, especially about the desire to build & explore your own worlds!

    18. Josh Parnell Creator on

      @BruceP & Gomisan: Yes, I will try to include screenshots in the future. As I sort of hinted at in the closing paragraph, visual content will be more and more demonstrable as I get things like the ship/station/asteroid algorithms back, which should be toward the end of this week :)

    19. Missing avatar

      coder1000 on

      This is great! I would encourage keeping the link to the log forum page in future updates as well, just for good form. I wouldn't worry about putting a lot of extra complex stuff in here if it could slow down development or mess up the frequency of the updates. Thanks Josh (and Nathan!) for this great update.

    20. Steven Langevin on

      Great hearing from you Josh ! Exciting developments indeed !!

    21. trespassers on

      Thanks, Josh! It's really great hearing about your progress :) Thank you!

    22. Gomisan on

      Thanks for the update Josh, I really think KS monthly updates are a great way of letting the original community here in the loop and confident things are still rolling. Sounds like you've done some great work and having a CM is a fantastic idea. I'll add a +1 to the rerquest for pretty pictures :)

    23. BruceP - Chameleon Prime

      Thanks, Josh! Great to hear the progress. Any chance of getting screenshots with the updates? Doesn't have to be anything even relevant to the update. It's just nice to see the pretty pictures and be reminded of how awesome LT looks. :)