Return to “Dev Logs”


Wednesday, March 8, 2017

Wednesday, March 8, 2017

My oh my, what a week. It started out unimpressively, but after a few days I got my act together and turned out some very serious work. Today it culminated in the completion of my final goals from last week, and a fun little photo shoot :geek: Since I finally am able to come bearing shinies, I will do a bit less talking this time and a bit more showing!


I said last week that I'd be a happy camper if I had my primary assets 100% back, and I'm pleased to say that I am indeed a happy camper!

BoxMeshes: 110%. (PlateMeshes were renamed to the slightly-less-flashy but more-appropriate 'BoxMesh,' since that's really what they are). Rotation was implemented. An extra 10% is credited to the additional functionality of per-axis bevel control, rather than a single bevel value for each box, which makes the LT Core's BoxMeshes even more expressive than those of LTC++. The elements of a BoxMesh can now take on cylindrical and other anisotropic shapes that weren't possible previously, lending more options to the ship & station algorithms.

Scalar Fields / Distance Fields / Surface Extraction: 125%. In addition to a higher-quality implementation than existed previously, the underlying algorithm has changed from marching cubes to surface nets, which is both more elegant and yields nicer mesh quality. Not only were fields implemented in their own right, but 3D textures were implemented at the LT core level with more features than previously, including facilities to easily generate 3D textures from shader output as well as to convert said textures into scalar fields in a single handy function. I had quite some fun playing with fields this week thanks to this functionality. Generating asteroid geometry on the GPU requires perhaps 20 lines of Lua and about 15 lines of GLSL (most of which is just #include and uniform declarations).

Mesh Occlusion & Warps: 100%. All kinks in the occlusion computation are fixed. Mesh warps (spatial distortions) are now implemented and can be used to (efficiently) apply a wide variety of distortions to meshes with a single line of Lua. I also implemented parallel warps (i.e., applied at the same time rather than taking into account previous warps; not to mean parallel in the thread or SIMD sense) in a compact and efficient way, much nicer than the old. Warps are the first construct in the LT core to make use of the epiphany I had last week concerning how to make reference counting work easily in a C library, even across the API boundary (i.e., behaving correctly with the LuaJIT GC). It's stupidly-simple and I should have thought of it ages ago.

Porting of PCG Algorithms for Asteroids, Ships, and Stations: 100%. Seeing the ship and station algorithms again reminds me that I do need to put some more time into them, but it's refreshing nonetheless to have them back!

Now for some show-not-tell! Note that there's a tiny bit of cheating going on in these screenshots: I rendered them at 4x supersampling since I didn't port SMAA yet and wanted high-quality, non-jaggy shots. The FPS is rather low even on my new laptop, but that's only due to supersampling (I'm drawing 16x more pixels than needed). At normal resolution (1080p) the framerate is, of course, excessively smooth :) Second note: object surfaces (metal, rock) do not look quite the same / quite as good as in the old shots due to the fact that the deferred lighting pipeline is not back (not a huge deal, just requires me to spend some time with shaders). Graphics details weren't the priority here; getting assets back in play was!

I took a lot of screenshots. It was fun and I know you guys have been hungry for some, so you can view the full album here. I hope I'm not giving away too much candy, you still have to enjoy future shots (and visual fidelity will not improve a whole lot from here, other than there being more going on in the shots)! :squirrel:

Favorite ship shots:
Image Image Image Favorite station shots:
Image Image Image Some planets:
Image Image Image Some asteroids:
Image ---

That's it for this week. No LTasm work; the asset work was too rewarding. This week I'll be attempting to sprint on gameplay features in the LT Demo (can't really call it PAX demo anymore), since I'll be showing it again on Saturday at LSU's TEDxLSU event. I'm not a speaker, but the tech park was offered some presentation space there, so I'll be on-campus with a few other devs from LTP, doing something similar to what I was doing at PAX. I'd love to bump up the fun factor of the demo and take the opportunity to crunch some good gameplay work at the same time!

And honestly, I think it's worth stressing: REJOICE! This may look like the LT you knew and loved (hopefully), but it's so much more tractable under the hood. It's free of technical debt and anxiety...erm...yes, a codebase can have anxiety. If I gave you guys the LT core and the Lua code I've got right now, you'd be able to make a great space game with it (without having to hire an artist). I've never been able to say that with confidence before. Of course, I'm going to take a shot at making that great space game first before I let you guys in on it, sorry :ghost:

Time to get sprinting :geek:

PS ~ Apparently 8-day weeks are more natural for me. Keep expecting unaligned devlogs :roll:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Wednesday, March 8, 2017

Teh shineez... 8-)

Very nice to see -- literally, see -- the next steps toward the full Limit Theory being taken right in front of us. Thanks for the trust, Josh.

Now, however, I'm going to give away a deep, dark secret. I know I can trust all of you not to spread this information beyond this forum, right? There is a trick that they teach at Manager School that seems appropriate here, and it's this: no matter how awesome the work someone does, always ask them if they could have done more. That way they learn never to ask for a raise. Also, if you ever stop pushing, they'll slack off. Really, you're doing them a favor by motivating them. They should pay you.

Here's how this works. Let's say Pat comes to you and says, "I just cured cancer!" The untrained manager would lavish effusive praise on Pat, who would then immediately demand a raise. We do not want this.

Instead, the well-trained manager will reply, "That's fine, Pat, but your assignment for this week was to speed up the sort routine in the mainframe file conversion software by 6 percent -- did you accomplish that commitment?"

Alternately, if Pat is normally one of your high contributors instead of the usual lot of slackers and dullards, you might want to offer some carefully limited praise before asking for more effort: "Good work, Pat... but does it also cure male pattern baldness? Have you really given 110%, Pat?"

So, Josh: how's that stress testing coming along on LuaJIT? Have you simulated NPC AI and LOD processing yet, so that if LuaJIT won't be powerful enough, you can find out now rather than after several months of rebuilding prior functionality? What about using fields to define factional control spheres? At what point do you think you will have multiple star systems implemented? Have you really given 110%, Josh?

Note: Another valuable lesson taught at Manager School is "Learn to run -- it may save your life."


(I actually am pretty curious whether LuaJIT will hold up, but of course I'm delighted to read about this week's progress! Thank you for sharing this!)

(Oh, and that space station in the full list of screenshots? Sure looks to me like its cloaking field needs more power. :lol: )

(Oh, and one more "110%" question -- would it be worth referencing these great new images in a Kickstarter update? I suspect many Kickstarter backers will appreciate sweet new screenshots as evidence that development is continuing.)

Re: Wednesday, March 8, 2017

Flatfingers wrote:Teh shineez... 8-)

Very nice to see -- literally, see -- the next steps toward the full Limit Theory being taken right in front of us. Thanks for the trust, Josh.

Now, however, I'm going to give away a deep, dark secret (...)
Even if we know the answer of your questions as of this moment per what is written in the devlog (the answers are clearly "no"), that was one of the funniest things I've read online in quite a bit :lol:

Re: Wednesday, March 8, 2017

Flatfingers wrote: (Oh, and one more "110%" question -- would it be worth referencing these great new images in a Kickstarter update? I suspect many Kickstarter backers will appreciate sweet new screenshots as evidence that development is continuing.)
I'm sure Tal will put them in the monthly recap, but there was one just last week :ghost:


is it me or are some things from old LT still missing?
Mostly bloom, lens rays, planetary atmospheres, dust and land that isn't white :think:
but still YAY PIKSHURS :ghost:
Warning: do not ask about physics unless you really want to know about physics.
The LT IRC / Alternate link || The REKT Wiki || PUDDING

Online Now

Users browsing this forum: No registered users and 1 guest