Week of October 26, 2014

View Daily/Weekly Statistics about LT Development

Week of October 26, 2014

Postby JoshParnell » Mon Oct 27, 2014 7:14 pm

Sunday, October 26, 2014

Don't want to stop.

Don't want to break the flow.

Sorry dear Limit Theorists, today is a day that cannot -- that must not -- be interrupted.

Details tomorrow!!! :geek: :D

:squirrel: :wave:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
User avatar
JoshParnell
Developer
 
Posts: 4237
Joined: Sun Oct 07, 2012 3:06 pm
Location: Baton Rouge, LA

Re: Week of October 26, 2014

Postby JoshParnell » Tue Oct 28, 2014 6:13 pm

Monday, October 27, 2014

Got it :geek: :D

After too many hours of devoted coding, we finally have it. The last vestiges of ugliness -- of non-unification -- have been erased from the renderer. Beyold: the renderer widget! An unassuming little box. But a powerful one. Within, an infinity of 3D worlds to be explored.

What this means is that, through the interface and LTSL, we have full power to control the way in which the 3D world of Limit Theory (or any subset thereof) is rendered onto the screen. It's no longer a special-case mechanism laden with special structures (RenderBuffers and Viewers and Modules), but now a simple little Widget, just like everything else in the UI. This one little widgets is the portal to all of the fanciness that lies in the LT Engine's rendering engine.

Yeah, cool, simplicity, whatever. Who cares? What's it mean for us?

Two things: first, Limit Theory is finally unified with all the other LTSL 'apps.' Limit Theory is just a little LTSL script (which we couldn't pull off before because of all this specialness related to 3D rendering). Second, the 3D world is ours to explore and conquer in our little land of rapid content iterations. Ships, planets, stations, wormholes, ...warp tunnels...you name it! If it's a piece of 3D content and it's part of LT, we can rip it out and isolate it in its own little widget. Gone are the days of loading massive amounts of graphics data just so we can work on our ship generator. Gone are the days of waiting oh-so-many seconds just to find out if warp tunnels look any better.

In, I say! In with the days of boundless, immediate iteration on 3D content.

Tis a wondrous world in which we live :geek: Now...we haven't much time left this month. We mustn't delay...we must utilize! Squeeze out the content icing!!!

Quickly! :D :geek:

PS ~ My heart goes out to those who watched their massive effort go up in flames today as we tried once more to touch space :( Truly, real space is a cruel, cruel thing :cry:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
User avatar
JoshParnell
Developer
 
Posts: 4237
Joined: Sun Oct 07, 2012 3:06 pm
Location: Baton Rouge, LA

Re: Week of October 26, 2014

Postby JoshParnell » Wed Oct 29, 2014 6:02 pm

Tuesday, October 28, 2014

It was a very strange feeling today, finally removing 'ltheory' -- the last remaining executable other than 'launch'. The last vestige of a non-unified world. It was a very strange feeling changing my linux bashrc such that 'lt' is no longer aliased to './ltheory', but rather to './launch ltheory'. A script. A 65-line script. That's what ltheory is now. No longer a 3.5mb executable. No, just a 1.7kb script launched by a 23kb executable (now, make no mistake, liblt, the library in which all of the hard code resides, is still a solid 10mb...LT isn't quite a 64kb demo, sadly :roll:)

Other than that, I was truly all over the map today. I'm working on my 3D asset testbed -- the exciting new fruit of yesterday's labor. I'm still working on cargo, market, LTSL AI, and the overhead testbed. All at the same time. Everything that this month was all about :) The friction is gone, folks. It's simply not there anymore. I'm working on anything I want, anytime I want, with nothing else getting in the way. I love it. Brings a tear to my eye to think about how far we've come :)

Frankly, these days there's just too much excitement and potential to handle anymore. I find myself getting too-easily lost in exploration of the content power. Color grading was a good example of that. But today I sunk about two hours into a really neat UI widget that...well, I don't even know how to describe it. It started out as a stress-test for the grid widget, as I continue to push markets and cargo. It turned into a stress-test for LTSL (I was able to double the performance of this particular app in an hour by some careful LTSL optimizations). But by the end of the two hours, it looked like some very bizarre but cool research (or perhaps hacking) mini-game. Who knows. As I keep saying, there's never been a more exciting time for LT. To be totally transparent, though, there's also never been a more dangerous time. It's entirely too easy to get lost in particular corners of content creation!! Let's be honest, this isn't such a terrible problem to have :geek: But I do need to be careful to focus on the content that really matters to people. Don't worry, I will! :)

I just need to keep reminding myself that there's going to be plenty of time after 1.0 to keep exploring bizarre realms of other content. I can see it all exploding before me: Limit Theory: Universal Chemist (introduces chemistry, synthesizing new elements from raw materials, using them to build better components); Limit Theory: Glitch in the Stars (introduces hacking and computer systems); Limit Theory: Subverse (introduces special wormholes that descend into unstable, sub-universes with exotic starscapes, valuable new raw materials, and advanced alien technologies -- but that can collapse in the blink of an eye). Ahhh!!! I could drive myself mad :shock: :ghost:

Going to be bringing the month to a close over the next few days, and am hoping to grind out some more serious content hours. There's never been a better time to do it :)

PS ~ I'm honestly not sure why, but LT (in script form) now launches in about 3 seconds :shock: Where did those other 2 seconds go?? I didn't even finish my work with unified asset caching yet...but somehow...:ghost: Hey, I'm not complaining... :D :geek:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
User avatar
JoshParnell
Developer
 
Posts: 4237
Joined: Sun Oct 07, 2012 3:06 pm
Location: Baton Rouge, LA

Re: Week of October 26, 2014

Postby JoshParnell » Thu Oct 30, 2014 7:27 pm

Wednesday, October 29, 2014

All good but nothing exceptional. Seems to be a somewhat-common theme of content development days. It's strange, sometimes I hit what feel like 'content highs' -- everything is exciting and I can see the explosions of potential. Then some days, like today, I'm working on all the same things, but it's not the same level of thrilling as it was yesterday. I guess that's really how the whole development process is -- a periodic cycle of inspiration and non-inspiration. Seems the frequency of this cycle has really been ramping up with fast iteration...every day is a new high, low, or something in-between :ghost:

Weird. Maybe something neurochemical. Who knows :monkey:

Anyway. Back to the loggery when I'm more excited about logging :| Tomorrow is a new day...

PS ~ Dunno why, but I tried running 4 copies of LT in split-screen windows today for fun. It worked :P Not very practical, but it did kill a solid five minutes :roll:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
User avatar
JoshParnell
Developer
 
Posts: 4237
Joined: Sun Oct 07, 2012 3:06 pm
Location: Baton Rouge, LA

Re: Week of October 26, 2014

Postby JoshParnell » Fri Oct 31, 2014 7:39 pm

Thursday, October 30, 2014

It's back: the inspiration :)

and...

It's here: the 3D asset testbed :D !!! :squirrel: :squirrel: :squirrel:

Ships, stations, planets, wormholes, warp tunnels, asteroids, ice, giant mysterious space whales, you name it -- if it's a 3D asset that appears in the LT universe, we can get up-close and personal with it in a matter of seconds using the 3D asset testbed. We can also regenerate / reload it in the blink of an eye with our trusty F5 key.

Today was ALL ABOUT that F5 key. Not good enough? F5. Better, but not enough. F5. Nah, not that. F5. Yes! That worked...but...F5. There we go. Now a little of this...F5. F5. F5. F5!!!! How many ships, stations, and planets lived and died today? It's hard to say. Easily hundreds of each. Perhaps thousands (at least for ships)? And to think...this was just my first day with this little gem of a testbed :squirrel: Love it. We've needed this for so long. And it's finally, finally here.

Also! Today is the first day that I have really implemented fully-functional platemeshes. Previously the talk of applying arbitrary mathematical transformations to each level of the platemesh was...more of a theory, less of a reality :roll: But as of today it is a reality, and I am happily controlling these 'Warps,' as I call them (since they can be thought of as warpings of space) from LTSL and the ship / station generating algorithms. It took me so much time and thought to figure out how to handle the artificial geometries of LT, but honestly, I am finally very convinced that we have a good way to do it. The more I work with platemeshes, the more I feel that they're just a really solid balance of flexibility and simplicity. I still do need a good texturing solution, but I'm convinced that the relatively-simple topology of platemeshes is going to afford an elegant solution there as well :)

You know, after today, I'm a little bit sad in that I almost feel like all the work I did before the LTSL / testbed dev style was a waste of time. Days like today compress what would have been many days -- perhaps even several weeks -- worth of work into 12 hours. I just keep thinking...what would LT look like if I had started out this way? If I had had two frakking years to do this...my God :shock: Ah well. Shoulda woulda coulda. It took a long time to come to a technical understanding that allowed me to do it this way, and it took an even longer time to fully appreciate how necessary it is. I'm just happy that we're here now :) And my future games? Wow, I can't wait. Getting to work on them this way from the beginning is going to be way too much fun :D This just feels like what game development is supposed to be!

PS ~ Also fixed a large memory leak today in imposter generation that was causing my F5s to rack up system RAM pretty quickly. This highlights another huge benefit of the isolated testbed style -- memory leaks become very apparent when you're rapidly reloading a small subset of the game. If that subset is leaking any memory, it becomes very evident and can be killed with relative ease!

PPS ~ Remember that I'm no longer going to be talking about the monthly update process in the dev logs. It's just going to happen. Boom! :)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
User avatar
JoshParnell
Developer
 
Posts: 4237
Joined: Sun Oct 07, 2012 3:06 pm
Location: Baton Rouge, LA

Re: Week of October 26, 2014

Postby JoshParnell » Sat Nov 01, 2014 7:25 pm

Friday, October 31, 2014

Had to extend yesterday by another day. Simply couldn't stop. The content iteration is too fun, too productive, too rewarding. Everything is so different from how it was two days ago...just two days of this work style has been absurdly-fruitful :shock:

F5, F5, F5 again. But other than the F5s, we had a few technical developments as well:
  • Implemented in-engine shader recompilation. All shaders can be reloaded and recompiled in the blink of an eye, meaning I can iterate with extreme speed on the shaders for all the graphics assets. This alone led to another huge boost in the quality of LT's shading today -- most notably, the metal :squirrel:
  • Implemented custom (scripted) warps for platemeshes. Control the spatial distortions from within LTSL. Unlimited power to extend platemeshes :) And of course, it enables...rapid iteration, which we know now is the answer to life, the universe, and everything.
  • Changed the math behind spatial warps such that they're order-independent. This allows warps to preserve symmetry, for example, if you apply the same warp on both sides of a mesh. Since the math is computed in a way that preserves commutativity, you will get a symmetric output (this was not the case yesterday).
  • Improved platemesh geometry to have 'near-perfect' normals. This actually makes a massive difference in the apparent quality of the shaded model. I was amazed. Yet another lesson learned: the way that we usually compute normals is just not at all good enough for cuspy geometry (like bevelled boxes).

I've made a little blog post with a few preview shots of some ships. As I said in that post, this is just the tip folks. Just the tip :)

These days I feel like I'm flying in the clouds with this work :geek: Won't come back down until I have a beta in my hand ;)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
User avatar
JoshParnell
Developer
 
Posts: 4237
Joined: Sun Oct 07, 2012 3:06 pm
Location: Baton Rouge, LA

Re: Week of October 26, 2014

Postby JoshParnell » Sun Nov 02, 2014 7:53 pm

Saturday, November 1, 2014

Surely by now you know the drill, the central theme of the rest of the development process: F5 ;)

This time, the F5s were not constrained to content algorithms and graphics, although both did make appearances (of course!) The only thing preventing me from recording the update video is really the completion of the market / trade interface. I want to be able to show that thing! The answer? Of course it's very simple: need more F5s!!! :geek:

Other than the market, a few other interesting things popped up:

  • Significantly improved shading of planets to look less flat (turns out the shadowing function was not correct!)
  • Tried many new warps using the LTSL-based warp feature. Finding lots of ways to craft cool shapes with platemeshes :)
  • Tweaked bloom, tonemapping, contrast, and saturation to perfection using in-engine shader reloading (never before have I been able to compare results effectively enough to be able to find the perfect settings)
  • Tweaked fog functions to perfection using in-engine shader reloading

As you can see, I did engage in some 'tweaking' today, fine-tuning some of the existing settings. This is something that I've never been able to do with confidence or in a timely manner, because to tweak effectively, you need instant or side-by-side comparisons. Neither were possible in the previous world. With yesterday's instant shader reloading, the former is possible, which means I can instantly accept or reject tweaks since I can instantly see their results (or revert them). In 15 minutes or so I can explore close to 100 unique settings of various values, meaning exploration of the tweak landscape is more fast and effective than ever before. This is great, because I've got a lot of graphics technology in the game, and sometimes the fine-tuning can be the difference between a sparkling, fancy gem and a fancy pile of garbage that would have been better without any fanciness at all.

More market F5s tomorrow...that's really all we need ;)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
User avatar
JoshParnell
Developer
 
Posts: 4237
Joined: Sun Oct 07, 2012 3:06 pm
Location: Baton Rouge, LA


Return to [Archived] Daily Dev Logs, 2012 - 2015



Who is online

Users browsing this forum: N810 and 2 guests