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

Week of November 23, 2014

Sunday, November 23, 2014

The zone :)

What you need, sir, is a list! :geek:
  • Fixed a few issues with AI behaviors, especially involving warp rail usage.
  • Finally removed SFML font dependency. All font rendering is now performed using LTE's SDF-based font engine. And it all works wonderfully :clap:
  • Implemented kerning caching in SDF font engine. Text rendering doesn't even show up in the profiler anymore...;)
  • Loads of minor tweaks to the market widget
  • Performance optimization...unfortunately we seem to be dipping a bit too low for my liking (~40 FPS in a populated system) at the moment, and I'm trying to handle it. With all the content that's been added this 'month' (new ships, new planet shader, loads of graphics tweaks, all those warp nodes, etc.) there's quite a bit going on now, and I'm going to have to start getting more serious about optimization as we move toward beta.
  • Added resolution control to UI layers, such that layers can be over-sampled or under-sampled. I wanted to see if oversampling the HUD layer could fix the minor bluriness of the corners (caused by stretching the texture over a cylinder). Indeed, oversampling at about 1.5x resolution fixes this. But I'm still not sold on text with just feels odd, even if it's clear. I think I will ultimately go with a flat HUD as the default, as it's simply the king in terms of readability. Still, it's excellent to have control over UI layer sampling rate.
  • Tweaked procedural color grading to having lower amplitude and higher lacunarity. Basically, what this means is that the overal amount of grading is lower, but fine details are more prominent than they were before, compared to coarse details. I find that this is, overall, a lot more pleasing. The previous settings felt a little too close to a simple 'colorize'-type thing. But the power of color grading is really in the subtleties, and amping those up in relation to the whole has created some significantly-more-appealing results :)
Inches man, always just inches. So happy that this three-week update sprint is coming to an end. Not sure how much more of this I can take :shock: :ghost: I really feel like a solid, ultra-focused-all-nighter could spell the end of Nevtober. Something about all-nighters just feels right for these situations. Let's go for it :)

PS ~ If you're wondering, yes, this month has taught me a lesson about 'flexible' dev update dates. That obviously doesn't work :oops: I am going to regroup and rethink my strategy after this is over :ghost:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of November 23, 2014

Monday, November 24, 2014

Couldn't hit the all-night run! :( That's OK, as the list is getting shorter all the time. Tonight's the night baby. I can feel it.

The list.
  • Added shadowing to UI text, courtesy of the new font renderer. Vastly superior to my previous solution of drawing a one-pixel-offset black version of the text behind text that needs to be readable against all background colors. Shadows are just so much better :geek: Finally, the text matches the quality of the rest of the UI. All hail the distance fields!
  • Improved the text shader to make small (12pt and lower) text more readable. Readability is now as good as, if not better than, the standard freetype AA at native size. This actually isn't trivial to pull off, because fonts do some pretty fancy stuff at small sizes to make text more readable. SDF font textures are rendered at larger sizes, and doing naive downsampling / mipmapping to draw smaller text does not work well. So don't be naive :)
  • Improved the way that background stars blend with the dark regions of nebulae
  • Improved AI pathfinding (again)
  • Improved market exposure to LTSL (to increase the elegance of the market widget implementation)
  • Switched asteroids to use the same physically-based shading as ships (but with a high roughness factor, of course!) Excellent unification of rendering pipeline, and it definitely makes a difference (especially on the edges of roids).
  • Made HUD world object overlay togglable. Sometimes, you don't want all that information to obfuscate the beauty of the world :)
Anddd probably several hundred other things :P

Final day of coding tomorrow!? Yikes, why am I still here working on my log!!

:wave: :ghost:

PS ~ Woah :shock: Lotta people on the forums. Hi guys. The answer you're looking for is: soon :D
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of November 23, 2014

Tuesday, November 25, 2014

Love it. Filming commences tonight. I know it was painful for you all, but I'm glad I waited. Good lord, this is going to be a heck of an update. I'm so excited :D

Today? Mind-numbing amounts of code. Too much to talk about :geek: So I'll just mention a triviality -- the last thing that I did. Lens flares are computed using clamped depth now, such that we can finally put stars at realistic distances from systems (i.e., wayyy far away). This fixes planetary atmospheric scattering, which was shaped slightly strangely due to stars being too close (it was correct, but looked odd because stars in real life are so much farther away). Also, finally having stars at this distance allows me to do a lovely little trick that I've been wanting to do with the background nebulae for a long time. It's pretty ;)

To say that I am bringing goodies with me this time is a bit of an understatement, folks. But it's thanksgiving, so...somehow, despite being absurdly-late, the timing seems rather appropriate :)

Look to my coming, at first light, on Thanksgiving Day. At dawn, look to the East.


PS ~ Finally installed my new Corsair Veangence 16GB today, which has been sitting on the table since the week after I spilled Diet Coke on my baby. I was very pleased to see a few new FPSs show their lovely heads!! :squirrel:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of November 23, 2014

Wednesday, November 26, 2014

A wizard is never late, nor is he early. He arrives precisely when he means to!

:roll: :ghost: :ghost:

No, but seriously. Been up all night, absurdly-productive, so close to recording, just one problem: family Thanksgiving lunch. Can't avoid this, I'm afraid :| But I'll be quick. And then filming. Seriously.

For those of you in American time, go kill some time, then enjoy a nice Thanksgiving Dinner, and follow it up with a sumptuous Limit Theory dinner :geek:

Won't give an ETA, but it's coming out today :squirrel:

PS ~ Added yet another treat to the payload this morning. Couldn't help myself :oops: Two hours lost, sure, but I needed a break. And am very happy with the result (whose nature will remain a mystery). Make sure you have your sound turned up for this one... :geek:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of November 23, 2014

Thursday, November 27, 2014

Sigh. I suppose this wizard is a bit late after all :ghost:

Truth be told, I've nothing to blame but my own standards of polish. I got back from Thanksgiving lunch fairly early, I worked nearly all through the night (in fact, how I managed to keep my power-nap to a mere 3 hours still eludes me -- traditionally my 'naps' tend to clock in at about 8 hours and are accompanied with a feeling of looming guilt when my eyes open and realize what happened :ghost:). And yet? I can't bring myself to call it quits. The culprit? The market UI. But not really just that. Really, the culprit is the omniview widget -- the beast that powers the market interface :)

I guess it was a bit naive of me to think 'this is good enough to show' would survive the scrutiny of the pre-update final pass. The more I thought about it and the more I looked at it, the more I thought, you know, this is really my chance to show that all of this tech that I've spent so darn long on -- this fancy half-node-half-linear, LTSL-driven UI, new font rendering, etc. -- actually translates into concrete results with respect to a functional and exciting way to interact with the game. So I shamelessly poured so many more hours into it. I've grown to fondly call this Swiss-Army widget the omniview, and the nice thing about putting all these hours into it is that it doesn't just represent the market, but rather is symbolic of the UI as a whole (or many pieces thereof). With minor adaptation (and, in theory, comparatively minimal extra work), it will come to power the cargo, asset management, project management, information management, mission board, and perhaps even hardpoint UI.

Not that you wanted a list...but...I feel compelled to prove that I'm not late without good reason :) So here it is...
  • Better mouse / key / scroll / button focus behavior of UI via unified 'capture focus' mechanism
  • Better ('real') implementation of UI scroll frames via clip regions (scrolling in widgets like the market is now smooth thanks to being able to perform proper clipping of occluded widgets)
  • Size-dependent mousewheel scroll resolution (the amount of 'scroll' varies with the size of the scroll frame, which is what you probably expect)
  • More keyboard handling in scroll frames (pageup / pagedown / begin / end / up / down all work as expected!)
  • Real-time search filtering in omniview :)
  • Proper 'padding' UI component. Previously I was emulating padding by just using an inner widget with a margin. Now I can apply a padding clean and simple, (interestingly, padding requires a bit more technical legwork to implement effectively than does a margin)
  • Proper handling of UI focus capture in the presence of clipping regions (prevents subtle issues with, for example, mouse focus in the presence of a scroll frame)
  • Implemented widget 'greediness' to allow elegant implementation of variable-sized layouts (previously the components of the omniview were fixed-size). Huge boon to functionality!!
  • Overall, polished the layout and aesthetic of the market omniview in about a thousand different ways :) Everything looks and feels better. Honestly, this is a widget that I wouldn't mind using all day everyday. No, you're not going to spend all of your LT time buried in UIs, but when you do have to do some dirty work, well, it's going to be good fun. The omniview is your friend :)
Sometimes these days I take it for granted, but I really can't overstate how pivotal the development methodology that I showed last time has been in this month's work. The finessing of the omniview is but one example. I honestly can't imagine how long today's work would have taken me in a world where I don't just switch to my game window, hit F5, and instantly see the latest changes. I've grown so accustomed to it that it's hard to even imagine life without it. But I don't want to beat a dead horse. You've all probably heard quite enough by now of this 'omg such tech many efficiency WOW' talk. Soon enough, though, the fruit will be shown :geek:

Filming. Soon. So soon :ghost: :ghost:

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

Re: Week of November 23, 2014

Friday, November 28, 2014

Ok. So here's what happened. Yesterday, despite my best efforts, my body ended up taking back what it felt it deserved: the sleep debt :cry: A few hours after writing my log, something happened -- I'm still not quite sure what, as I don't even remember getting in bed. Surprise, surprise...eons later, I opened my eyes to the familiar feeling of "oh god, what time is it." Much to my dread, a solid fourteen hours had passed :cry:

Rather ironic that I wrote about this very situation yesterday, isn't it?

So here's what we're going to do. Today? Just pretend it didn't exist. Another casualty of too many late nights in the coding cave.

I'm back. But this time, I've paid my debts (for better of worse, I'm somewhat of a Lannister when it comes to sleep :ghost:) So. Let's try that again, but without an angry, sleep-deprived body.

Here we go :geek: :wave:

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

Re: Week of November 23, 2014

Saturday, November 29, 2014

Not sure what to say, really. Why do I always forget that I should never mention filming? Wasn't that the whole point of the flexible date in the beginning? :roll: Sigh. Sometimes I think I'll never learn :ghost:

I want to apologize for temporal disappointments. Really, I do. I feel like, as a developer, I am remarkably temporally disappointing. But what I hope -- indeed, what I believe -- is that I won't be disappointing in terms of quality. It's paradoxical, really, because gamer Josh is quite ready for the world to see Novtober's work. But then, gamer Josh sees the trade interface and says "ooooh, but if..." Indeed, previously we have come to know that coder Josh is responsible for many temporal problems, but, as it turns out, gamer Josh is not so innocent either :ghost:

The trade interface is, again, 100% responsible for this last little bit of delay. It's really become my baby, and my favorite piece of UI work that I've done so far (in terms of functionality, not just aesthetics). It's inspired gamer Josh quite a lot, actually. I just keep imagining how the rest of the game's UI content will look when it's implemented using the same reusable components that I've developed this month. To say that I'm excited is, as usual, an understatement :squirrel: I also really look forward to doing this same thing with AI. I haven't even really broken the surface of LTSL AI when you compare it to what I've done for the UI. So much more fun to come :)

Stepping back a little bit, I think it's interesting to note that this pattern of "just one more feature" is going to become increasingly important to manage up until release. We're at a point in development where a single extra day can literally mean a substantial new piece of game / UI / AI / anything content, which makes it remarkably hard to put a cap on something like an update video. Planning will be of the utmost importance up until release, of that there can be no doubt. I believe manager Josh is going to need to start making more appearances.

The good news is that, in all honesty, this is not such a bad problem to have :) I would much rather have the problem of trying to restrain myself when so many features are in plain reach than have the problem of being separated from any feature by miles and miles of technical debt :geek:

Finally, in closing: the video is out when it's out. I will not mention filming again, I will simply be dropping #21 on you all without warning, like a stealth bomber of spaceyness :)

Beware the bomber :monkey:
“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 0 guests