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


Week of September 28, 2013

Sunday, September 28, 2014

Yes yes yes yes yes but also where the heck did the time go!? :shock:

Today I probably reached the pinnacle of my new workflow. At times I was in the colony testbed, jamming out ways of visualizing colony data and watching the colony-based tasks modify the colony markets over time. At times I was in the UI testbed, perfecting the logic of UI windows. At times I was in the new HUD testbed (wherein the game world is loaded and a HUD is displayed for a randomly-chosen AI ship, but no loading of graphics assets is necessary), nudging my new HUD into place. I didn't visit the AI testbed today, but I'll need to soon, just to do a spot-check of the status of high-level project management.

It's overwhelming, empowering, and, frankly, makes me a bit manic to have all of this at the fingertips. Gone are the days of getting caught up with one piece of the game for weeks on end. In with rapid development and cycling of a bunch of tiny, focused tests of specific pieces of LT.

I'm not gonna lie, this update is heading for the 1st of October rather than 30th of September. That's just how it is, but I'm really convinced that I'm going to be able to make up for the lack of an August update :)

Again: see you soon :wave:

*Rushes back to the Joshcave!*
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 28, 2013

Monday, September 29, 2014

Loving it :)

Time for this list!
  • More work on colony interface
  • Worked on (re)integrating the scanner interface
  • Lovely new work on the object quick-action menu (when you right-click the UI nodes that are projected on top of interesting objects in the world). Love this bit! (remember tech demo 3 from way back when? That's back but at modern-LT level of quality...)
  • More work on HUD target widget
  • More work on HUD subsystems widget
  • More work on HUD reticle
  • Clean implementation of many new generalized widget behaviors in LTSL (myWidget.AddFocusGlow, myWidget.AddDraggable, myWidget.AddTooltip, etc!)
  • Made multi-layer compositing work in the UI (so that we can now have a cylindrically-projected HUD composited on top of a world-projected object node layer with no problem (something that the Node UI struggled dearly to do)) (But we can also have any number of layers projected in any number of ways! Whatever you want! It can be done!)
  • Made a 5-minute modification to bloom saturation algorithm that really enhanced the color blooming (multiplicative saturation instead of additive)
  • Figured out a new compositing order to allow the UI to use the same blooming technique as the rendered game world at no addition cost - absolutely lovely effect that makes the UI seem to blend much more naturally into the world
  • Cleaned up and separated a lot of the UI compositor tech such that compositors are more flexible (scripts can choose to use 'ground truth' compositing, or can still use the fancy compositing from the node UI, but can also choose how much grain to add, how to tonemap the colors, etc.)
  • Fantastic new modification to the way the skybox shines through dusty regions -- lovely to see the brighter bits of nebulae glowing through the dust!
Yes, there's hardly a part of the game that wasn't touched by today's work. Such is the nature of the final stretch of development :D

About to saddle down for the night. Not gonna lie to you guys, I'm estimating about a 50/50 chance of this night bringing the update to completion, meaning roughly 50% chance of an Oct. 2 update. I love you all, and I'm not going to worry too much about it (calm Josh! :D :monkey:), because, as you can see, this is an awesomely-productive time that is giving me the opportunity to push the past 2 months' work to the surface. It's oh-so-very gratifying to see it all coming together :)

I'll keep you all posted on the update's status in the LT update anticipation thread as usual!

See you soon!! :wave:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 28, 2013

Tuesday, September 30, 2014

Ok, so Oct. 1 didn't pan out -- but fear not, last night was wonderfully productive and we're in great shape for Oct. 2 :geek: Gonna be another long night, but I slept well last night and should be in good shape to pull the usual pre-update all-nighter.

Not going to do the list today, cause I think you guys get it. Same general idea as yesterday: a lot of stuff :D Want to hop right back to the code :) Today was more focused, though, on visible things. Really bringing it all up to the surface.

Wish me luck and...wait for me! This is going to be a fun one ;)

“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 28, 2013

Wednesday, October 1, 2014

Ok folks, don't hate me :shock: ----- October 3rd :roll: :( :ghost: :ghost:

I've just finished the coding all-nighter. But I can't wrap it up yet -- not when things are going like this. I will wrap it up today! Seriously! I haven't run into any challenging issues like last time. This time, I'm not really sure why, but the update process is just squeezing a lot of productivity out of me, and I'm going to take advantage of that. Probably something to do with this update being long overdue and me wanting to make you guys happy (which you will be!! Promise!) :)

Today I won't skimp on the devlog, because I've got quite a few thoughts in my head after that lovely night of flying code :)

You know, it was only after starting to work with LTSL that I began to understand the relationship between latency-of-development-iteration and productivity. In my naivity, I initially assumed, as I think many people would, that the relationship is linear. You increase your iteration speed by 10%, you increase your net productivity by 10%. Seems right, huh? No. Only now am I coming to understand it. Development is a feedback loop. Like most feedback loops, it exhibits exponential behavior. Increasing iteration speed by 50% means, on the surface, yes, you get to see your ideas come into play 50% faster. But the very act of seeing those ideas spawns a web of new ideas, each of which can be brought into existence 50% faster. Those ideas often feedback into the old ideas, since the web of ideas is not an acyclic web -- it's a richly-connected structure. Bringing a new idea into existence can and often does unlock insights that increase the power old ideas. There is nothing linear about this process. That's not even the end of the story, though, as there's also a very real psychological component at work. With a fast iteration loop, you are more inclined to explore new ideas because it costs less to do so. That exploration can, in turn, unfold new webs of ideas, which again feedback into the old ones. The whole thing is just so much more connected than I realized. Development is not a linear system. Right now I am riding the exponential. I am experiencing what it means to be able to unfold chains of ideas that would have never even had a chance to surface with the old methodology, and to have those chains kick back through the web.

No, I'm not saying it's all perfect yet. But today LT lives in an entirely different realm of development than it did half a year ago. Of this I am simply...grateful. It was no great insight that led me to it. Frankly, it was an accident. I was blind. But what an incredible parcel of good fortune it's been :)

Sorry for all this teasing and grandeur. But I think that, after seeing this update, you'll appreciate the truth of what I've been saying these past two months :geek:

One more thing -- today was all about content, minus one tiny piece of tech that's actually really, really simple, but unlocks yet another level of power for LTSL and, in particular, the UI. I spoke a while back about how game objects can use 'messages' to communicate with each other. Today I took some time (only about 30 minutes! Seriously, this feature is dead-simple :geek:) to implement messaging in the UI. But I'm quite proud of how I did it. The UI messaging system is significantly more powerful than the object messaging system, because I had a nice insight: instead of defining a certain number of message types and then checking the type, why not let the type of the message be the type of the data contained therein? Woah, what? Yes, this means in code I can define something like:

Code: Select all

type MessageOpenApplication
  Widget application
  Bool fullscreen
And then...wait for it...

Code: Select all

  MessageOpenApplication myApp true
You see, the message is simply a variadic piece of data (it can be of any type, including new, script-defined types). This particular message is sent up through the widget hierarchy via parents, but can also be broadcasted down to children, or across to other components of 'widget'. If you want to respond to a certain type of message, you simply:

Code: Select all

function Bool ReceiveMessage (Widget self Data message)
    case (message.IsType MessageOpenApplication)
      var realMessage (MessageOpenApplication message)
      var appWidget (Widgets:Window application application.GetName)
      if realMessage.fullscreen
        appWidget = (Components:Expand appWidget)
      self.AddChild appWidget

    default false
This simply checks to see if the message is a MessageOpenApplication, and, if so, casts the message to its real type, then creates a window to house the application. It applies an 'expand' component if the app wants to be fullscreen (this component will cause the window to expand to use the maximal size allowed by the parent -- aka, fullscreen). Any number of message types can be checked and handled in any widget.

I am already using this technique to allow the HUD widgets to communicate with the HUD itself. Very, very handy. Any widget can now send arbitrary data through the UI to other widgets. Opens up a lot of possibilities for modders, but also opens up a lot of ways for me to save time and write less code to do things :) I absolutely love this mechanism!

OK! Time to get back to the exponential :)

PS ~ Woohoo finally cutting that devlog deficit!! :clap:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 28, 2013

Thursday, October 2, 2014

Yippee! No more sadness and no more pushing back ;) We're on track for Oct. 3 :clap:

Now I'm not going to lie, I'm still coding...just putting the final touches on. Expect an evening-ish (EST) release :)

I'm really glad I rode out these last few days...the game is better for it. Gamer Josh is pleased with developer Josh (for once!) :monkey:

Back to it! :) :wave:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 28, 2013

Friday, October 3, 2014

Done with the code!!! :D And killing the devlog debt at the same time :cool: :ghost:

The bad news? I've absolutely got to catch a few hours ( :shifty: ...) of sleep before I can narrate anything. Red bull carried me pretty darn far through the all-night push, but there's a limit to how long the bull can keep you above-ground :crazy: :ghost: This one needs to be super-enthusiastic Josh, because I really am excited about what I have to show. Done so much work these past few days it makes me so happy! Definitely the most euphoria I've gotten out of LT development in many months :) Almost brings a tear to my eye.

See you guys as soon as I can wake up and pull my voice into shape :) We're so close!

Much love <3

PS ~ Yes, in the future I should clearly start preparing the update a week before. I blame it on the wedding!! :oops:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 28, 2013

Saturday, October 4, 2014

Not dead ;)

Now recording the fifth and final chapter of the video. It has been a tremendous and thrilling ride unlike any other. The fourth chapter actually just went much better than I could have dreamed idea for it turned out to :shock: I think you'll like it :)

My absence was due to the fact that the forums become a bit of an anxiety-inducing place to be around this time of month. I woke up and knew that, despite me having 'finished coding,' gamer Josh wanted more. And I am, after all, trying to build my dream game to appease him ;) So I kept going. But without wanting to induce the usual 'controversy' over such decisions. I will speak to the temporal leniency of future dev updates at the end of this one.

But for now, here we are. Recording the final chapter of #20 -- a rather special update. And she's got that much more goodness than she had yesterday.

Those of you who are near me in American time: go to bed, tomorrow is Christmas morning :) Those of you on the other side of the world: perhaps you'd like to stay up? :geek:

Here it is ladies and gentlemen: she comes in 6-10 hours. (If the overdub and upload process goes smoothly, as it has for the past several updates, it will be much closer to the former, perhaps even earlier).

“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Online Now

Users browsing this forum: No registered users and 1 guest