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

Week of September 7, 2014

Sunday, September 7, 2014

AHHHH!!! Still haven't finished coding folks. Can't stop, won't stop...not until we're there. But my hope for pushing this thing out today is waning. I sincerely apologize for the massive disappointment that is the release date of August's video...but I'll try my absolute hardest to make it up to you all in the content of that video :)

So, yes: tomorrow.

Thousands of apologies :( I love you all! :3

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

Re: Week of September 7, 2014

Monday, September 8, 2014

Well, I hate myself for this one. Truly. But that's really the insidious nature of sleep deprivation: it edges you forward and forward, promising that this last bug will be solved in the next hour and that the whole thing will be over before you know it. But, as we all know, judgement becomes increasingly-impaired after the 24-hour mark, and productivity reaches that nasty, exponential decline in which the sum of an infinite hours ultimately fails to cross the finish line of a dev update.

What can I say. I'm more disappointed than you all, and, quite frankly, ashamed. But I've got to go to bed, and in the morning I know this final round of issues will find resolve so much more quickly than will ever happen with deprivation. It's funny, I'm getting this odd flashback of this happening before. It's almost like I forget how this time of the month (heh) works. Oh Josh, will you ever learn? :cry:

Yeah, I'll admit, I've run into some bad bugs in these last few days. I'll also happily admit that it's all part of the grand network of concepts that include LTE, LTSL, and those things they call seg faults. Such is the price I pay for my choices, but I'll pay that price a thousand times and then maybe even one more if it means LT can flower into the unlimited little limit that it deserves to be.

Tomorrow? Yes. Tomorrow :)

PS ~ I feel like you all are much more used to this pattern than I. It seems to shock and disappoint me every time. If I go back and look at previous 'final week(heh)s,' by what factor would my shock be multiplied? Should I get my long-term memory checked?? :roll:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 7, 2014

Tuesday, September 9, 2014

Well, hopefully everyone has already seen it, but: ... sts/981489

LT has been as much an emotional journey as it has been a coding one (perhaps more?)

But tomorrow is a new day, and September is a new month. The theme of August has been stress release. In a way, it's kind of fitting that it would be the month in which we skip a dev video.

September? That's a whole different story :)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 7, 2014

Wednesday, September 10, 2014

Phew. That was a nice day. You might have expected the 'Josh Response' to yesterday's emotional cancellation to be "yeah, now let's skip that day off and make miracles happen!!" Here's the good news and the bad news: miracles are going to happen. But from here on out, I will have the sanity to build up to them rather than trying to extract them from mere fractions of fractions of time :roll: To be fair, I guess that was only good news :lol:

Here's how I see it all unfolding: the theme of the First Era of LT development: Wild-West-style insanity. A remarkably-productive but wildly-uncontrollable explosion of code. The Second Era, AKA the Lost Month of August: a cold-turkey release of all built-up stress. And the Third and Final Era? Calm, calculated, and steady completion of that which remains. Finally, my friends, it is time for sanity :)

As a hat tip to sanity, I spent my day laying on the couch watching stand-up comedy, sitting on the porch watching some lovely mountains, and...

...well, I'll admit, in the last hour of the day...I fixed that blasted wall that ruined August :lol: How ironic. Sometimes you just need to chill.

Era of Calmness and Sanity, with open arms I welcome thee.

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

Re: Week of September 7, 2014

Thursday, September 11, 2014

Good deal: off to a nice start. No pre-month organizational day today. Every day will be organizational :)

Last week I tried to push beyond what I was ready for; I tried to floor the accelerator of a car that wasn't yet finished. We will try again, but this time, we will not break the engine before it's ready to be broken.

Today, after having solved that major bug that killed my motivation in the last three days of the sprint that never came to be, I decided to turn my attention to a pseudo-postmortem (ha?) of the situation. Clearly, some organizational flaws had caused complexity to come out of something that should have been simple (the way the interface passes data around). I turned that complexity back into simplicity today with a few surprisingly-simple changes :)

The greater part of the day, though, was spent organizing and separating some of the concepts of the previous UIs so that we can finally get that beauty-practicality-balanced UI of which we all keep dreaming. With concepts of widgets, layers, and compositors, this new beauty that I've been working on since late last month is capturing all of the best facets of the ideas I've shown in other UIs.

You know, sometimes I really get down about discussing UI in the logs these days. I've got to stop that. Yes, we've been through a lot of UI work. Yes, I've made mistakes and paid for them. But in all honestly, a UI is so much more fundamental than I realized in the beginning. It's not just the input/output mechanism of a game. It's more than that, because within those mechanisms lies deep and fundamental questions about how to structure the information of the game. My UI work has been tremendously-influential in all other areas, and, more than any other facet of the game, has led me to ask the right questions about the structure of Limit Theory. I'm happy to be obsessed with UI. It's given me an awful lot of what I know now, and I imagine it'll continue to do so long after LT 1.0.

One of my paradigm shifts going forward is that I'm going to stop stressing so darn much about these logs. I'm going to write what I do and what I think each day -- nothing more or less. No massive logs to make up for short ones, no short logs as a self-reward for massive ones. Just returning to the relaxed, daily stream-of-consciousness that we used to have :) Yes, that vacation really changed me...really showed me the value of relaxing, taking a moment to consider what's going on here (I'm building a game...the whole point is fun), and treating it all accordingly. We're also going to beat back that devlog deficit, which is clearly once again out of hand :roll: :lol:

Stoked for this month, but not in the usual get-pumped-before-a-race stoked. Stoked in that calm-and-collected "I'm about to hike the Appalachian trail" way. Hope you brought some good socks, ladies and gentlemen.

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

Re: Week of September 7, 2014

Friday, September 12, 2014

Excellent :)

Today I've got my first up-and-running in-game UI application that represents the unification of a zillion different ideas that I've had about UI over the past two years. And it's running without bugs :) We've got concepts like the dynamic hierarchy of the node UI (e.g., nodes are always in sync with whatever data they represent, collections of widgets are updated dynamically to reflect any change in the underlying data). We've got a tight control over screen space and the population thereof (hat tip to UIs of days passed). We've got arbitrary drawing abilities. We've got tight control over how layers are composited (nice try, layer-based nodal UI!) We've got widgets that can project to arbitrary 3D geometry (something the first UI never had and at which the node UI made a valiant attempt with the one-size-fits-all cylindrical screen). In general, we've got all we need. No, really. This time, it was not built from religious adherence to a single paradigm, but rather, the marriage of many elegant ideas.

Interestingly, I believe that I'm going to be able to identify enough symmetries between the renderer and UI code to actually cut out a significant portion of the rendering pipeline (especially the complexities surrounding managing the deferred renderer buffers, post-processing effects, etc.) That's always a nice bonus :)

Something that was on my mind today: the more I work with LTSL, the more I come to a deep appreciation for that decision. But not just because of fast iteration, modding, yadda yadda. I often speak about how my design of one component of LT -- engine or gameplay -- tends to affect how I look at all the rest. Yesterday I even mentioned that the UI work has been one of those continual globally-impactful activities. But as I push deeper into writing real code with LTSL and supplanting real LT Engine functionality, I am starting to feel that the way the development of this language has shaped my understanding of code may just be the most impactful of any module thus far. Thinking about and answering the 'big questions' that language design poses has further multiplied my already-huge valuation of simplicity. When I look at a piece of complex, in-engine LT code and consider offloading it to script, I immediately ask where the complexity is coming from, and how this can be expressed simply in a language that is quite simple (LTSL). Inevitably, this question leads me to untangle further complexities and, ultimately, to dredge up the simplicity within. It's a process that I've known well for this whole journey, and likely one over which I'll spend a great deal of my life obsessing. To witness a frightening algorithm, a complex formula, or a sprawling piece of data collapse into a singularity of simplicity and clarity is one of the most genuine joys that I have ever known :geek:

Loving the vibe of this month. I've been putting in some pretty tremendous hours, probably because letting go of my stress and anxiety has sharpened my focus by a significant factor -- distraction is no longer a problem (sadly, even my piano has felt a bit lonely as of late :cry: ).

It's odd. The ironic little paradox that I'm finding is that 'slowing' the pace of my approach (e.g. calm-and-collected vs. all-out-sprint) is once again unfolding that feeling that days, weeks, and months are infinite -- a feeling which I used to know well. Truly, my friends, there is time. A week is so long. A month is so, so long. Somewhere in the learning process, somewhere in the demoralizing cycle of iteratively approaching the right solution via a thousand wrongs, I think I lost sight of that truth. But there is time, and with it we will weave the threads of a magnificent space sim tapestry :)

See you tomorrow :wave: At dawn, look to the East!
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of September 7, 2014

Saturday, September 13, 2014

More than excellent :)

Heaps and heaps of progress today, but this is my time to reflect, and I've got some bigger things on my mind ;) I've been mulling over the development process a lot this week, trying to look at the bigger picture and come to a better understanding of how I can improve my own development. Much to my satisfaction, I've come to what I believe to be a much better understanding of optimal development. It's based on two very simple concepts: problems and solutions. Concretely, I'd like to draw comparisons to content and tools, respectively.

For so long, I've separated the two. I've separated, at least mentally, the idea of building a game from the idea of building a toolset. We all know that they're related in some way. But how? There's the old gamedev myth "you can build a game or you can build an engine," which I think perfectly encapsulates the flawed understanding of that relationship that many, including myself, hold. We believe that we can either build a platform for creating content, or we can use a platform to create content. More abstractly, we believe that we can either solve a problem or build a solver for problems. Obviously, given that I embarked on the voyage to build LT, I believed that both could be done. But I've been looking at it in a flawed way. I've failed to grasp the true symbiotic nature of the two processes. Here's what I've come to realize: the two should exist in a continual feedback loop -- neither should stand alone, nor should time be artificially allotted to separate them in a particular manner. If I want to create a piece of content X, I may feel that my current toolset won't allow me to do so quickly enough. So I build a tool Y that helps me produce X at a higher rate. The process can be viewed as part of an infinite web of problem / solution answers: in building the tool Y, I'll inevitably have to solve certain problems like Z and W. Hopefully I'll have other tools (problem-solvers) that let me do so easily, and, if not, perhaps I will need to develop tools that allow me to solve Z and W quickly so that I can get back to building Y.

What I'm getting at here is that the process is a feedbacking symbiosis. Without posing problems (like "how do I create Limit Theory"), we never recognize the need for the tools that would allow us to solve those problems effectively. If we develop tools without a problem, we're doing so blindly -- developing technology that may or may not ever come to utility. On the other hand, if we never develop tools that solve problems effectively, we will never recognize the feasibility of hard problems (like building Limit Theory) -- or worse, we may never even conceive of those problems (who would have thought to build a procedural space game in the 1800s?) At every moment, it's important to recognize which is the rate-limiting component that prevents solutions from unfolding at optimal speed. Do we have powerful tools, but no problems to solve with them? Or do we have difficult problems, but inadequate tools for solving them tractably?

I'm finally beginning to understand that the perfect development process -- at least in my current state of understanding -- is a process in which problems are posed, solutions are recursively developed until the problem can be solved tractably, and then the process restarts (with larger or more difficult problems). By constantly eliminating the rate-limiter, we (ideally) end up in a sort of beautiful, positive feedback loop that yields exponentially more solutions as time goes by. At no point in time do we develop content using tools that make it painful to do so, nor do we, at any point in time, build tools that solve unknown, already-solved, or anticipated problems. I have, of course, made all of these mistakes.

No longer will I separate the two. Content and tech will, from this point on, live in a dance of symbiotic harmony. In the end, we will find ourselves with tremendous volumes of both solved problems as well as problem solvers.

Wish I had more time to talk about my concrete work today, as there's a lot of excitement going on in both departments (finally!?) But time is moving more and more slowly now as I step into this exponential feedback mechanism. We will no doubt have volumes more to talk about in the coming days :geek:

We have time. And now, at long last, I believe that we can use it effectively.

“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 3 guests