Progress Log [X4.01]

For a while now I've been getting ... no, receiving insight that would amount to me writing something about my progress with my project; As to be maybe a little more explicit, but primarily focussing on its role in my perceived future.

Like, I get this feeling that something about it is very annoying. Like, I would be ... eager to move on ... into "my next Chapter" ("wait for it") - as it were, while in a way entirely forgetting that I'm also working on this project. And for a while I'd justify the significance of my project depending on my mood, we might say. If I wasn't actively working on it I'd think that it's not that important that I get to a certain point - though I'd phrase it differently. Yet when I got to actively work on it, I'd be grateful to have the time to puzzle my way through the problems because I'm almost certain that I wouldn't have gotten through this ... in some haze of distractions or whatever.

So, part of me receiving those insights where moments where I suppose I had moments of reflective neutrality on the matter. That's however a bit oversimplified. Clarity ... often enough requires detail. So, while my idea of the future is "hazy" and might just be "whatever" - both sides of the argument might be fine. But under very specific circumstances ... things get more specific. The problem then would be to figure out what circumstances to actually give a damn about.


The ... trigger to these insight was a certain moment where I realized that I ... well ... might need help with this. I guess in a way that was always clear to me - but I think that it is due to the progress I've made that I got around to having more realistic ideas of ... well ... how to manage that.

Like, at this point there isn't really any point in asking for help. And for getting to this point - any help would probably only have made things worse. Now that I however can kind of see the end of the tunnel, I have a more accurate estimate of what I yet have to do.


Thinking about it more critically, there's an issue with ... how I might be mistaken with my estimates. Like, I can always find more things I yet have to do before I could consider it "done enough". Like, if I take what I revealed about my ambitions so far as a guideline ... the end of the tunnel would be a little further out than it would seem right now.


But anyhow, here a short history of the project thus far:
Last time I was high, I came around to - among other things - clear out my version history. So, now I have an actual logic to my "versioning"; Which basically entails me being stuck in pre-alpha for like 17 years now. By current conventions my versions start with an "X[number]" - the number vaguely referring to a stage or era out of these 17 years. And, as you might guess, I'm currently in X4.

It starts with X0, which are the beginnings of this Coding adventure. That entails 2007 and 2008; Started off with me learning C++, Assembler and Open-GL/DirectX - while working in Windows (98) - well, on a 250~something MHz computer with like 96 MB Ram. It basically concluded with me starting the MoA project (Myth of Agoraeyah) focusing on a Square-Grid based Globe. And that's still what I'm aiming for. Trust me, there's logic behind it.

X1 is what I call "the Tetrix Era". It's settled around 2010-2012, and was me primarily focusing on Operating System stuff. So, at the end of X0 I started having these ideas for an Operating System. In essence I tried to thereby write an SDL style library to make it easier for me to switch between OpenGL and DirectX, but I soon noticed that it was beyond me at the time. Eventually I got high at some point, had a firework of ideas, and that also kind of ... had me spiraling away from actual code. Then I also had a bit of a hiatus, I met someone who then introduced me to Linux, I got familiar and enamored with it; And at some point I had the money to buy myself a Netbook. An Asus Aspire One; Which certainly had better specs than the PC I was using before - and with it, I really got back into coding. Tetrix thereby refers to a system that would unify Windows, Linux and my own OS around some Interface. Well, in essence I meant to write a program that would allow me to further expand on my own bootcode - so, managing assets - from either within Windows or Linux.
I felt like it was an easy thing to accomplish, the logic of it certainly wasn't all that outlandish; And at the time I primarily blamed environmental factors for my staggered progress.
I did there also manage to iterate on my "Globe Code" - as to actually be able to edit it; And since then I've been basically waiting for when I could actually use and build upon it.

X2 is the Burnout era. It ranges from 2014 to ???, with the transition into X3 being somewhat blurry.
As the name suggests, I suffered a mental break of sorts that totally got me off of coding. I tried stuff on and off, but nothing quite right. But I gathered data, I guess; But my ambitions certainly got lost in the mud of even just getting started. I did however familiarize myself with multithreading - sort of - further refined my unorthodox methodology ... until

X3, the "Workout Era", truly began. I'd set it to sometime last year. I felt juiced up, pulled things together, focused on getting all the pieces to run, regardless of how I might re-invent the thing later. So I tried to not overthink things, first and foremost. Along with that, certain "headaches" (not really headaches per se) set in as I'd think of this or that thing that I'd yet want to do; Without really knowing how to integrate it into the thing. So I also worked on a few problems - and the previous screenshot I shared is from one of those things.
It is however not part of one cohesive whole where the various pieces work together. To be more specific: I started, after taking care of "the basics", with my "Matrix Stack". To understand what I needed, I also created a randomizer that would create some kind of fancy particle cloud (like ... 250~ish nodes) that in Real Universe terms might qualify as Great Attractors. Quasars or ... Super Quasars. "Ahkina Hearts".
Well, it all depends on how much I could scale things - them just being meant to be primary reference points to start working off from. So, doing the Matrix Magic I was capable of scaling it up to where the Universe I was working it would technically exceed the size of the Observable Universe. It was then, that ... "an invisible Entity" started to bug me, hinting at the top layer of this stack - suggesting it should be done differently. So, that minor change - considered - kind of messed up the logic I had pursued, even just marginally. So, this "headache" started to kick back in - having a few considerations render my progress effectively useless. While then trying to rework the structure, my fancy took me elsewhere and that's where I built the thing shown in the screenshot. Well, it is basically just the opposite side of the stack. The bottom. Give or take. By the numbers, each square seen in it would be like ... 2.6 kilometers in side length. Like, what isn't shown are the "levels below".
Now, if you think about it and ... think I'm crazy ... yes, maybe! I mean ... I'm aware of what I'm saying here. Which is why I'm not actually saying it. The ... real insanity is that I'm going through all that effort just to build a skybox. Of course it's supposed to be a little bit more than just that - and technically it goes a little bit into "No Man's Sky" Territory (I don't think the concept is a unique idea, but I had the idea long before that game was announced) - but ... I don't wanna talk the talk. So, whatever.
After I had the thing seen in the screenshots, I meant to work on actually populating it with stuff, starting with an Avatar. To do that I had to start with another void, given that I hadn't properly worked out "the grounding" yet. So I first wanted a virtual environment for the Actors and stuff so I had a better idea of how to bring the two together. And ... I also got my answer for why ... using the Character Model to compute motion data is a bad idea. Like ... that's actually a Robotics topic; And that's ... a little bit too much. As usual however I worked out some solution that should work ... err. I mean, here's the thing: I used a foot's position to calculate the offset after an animation frame has been computed - and convert that into momentum. So, the amount by which I had to move the model so that the foot would be where it's supposed to be, would be the force that the actor had applied. But because the animation frames don't produce evenly distributed offsets, the situation would come up that rather than the applied offset being into the direction of motion, it would be against it - and that led to weird ... stuff. And some nan's that pop up - I guess? - or something - causing really funky behavior.
Anyway - I do have a solution to solve this problem, but thinking of implementing it gave me another one of those headaches; But instead of coming to a point where I could work it out I went onto another hiatus, leading up to ...
X4 is basically set off by that last time I got high. I set out with a very siple goal: Create a Sandbox project within which I could do that VR stuff - starting with drawing a simple grid as to get camera controls and input "back up". Instead I like ... reworked the parts I had previously tried to not overthink; And the more I pushed towards that goal, the more I came to do other things that kind of made it more complicated to get there.
Eventually I started to feel like I now needed sobriety first; And so after another hiatus I looked back at the code I've altered while high ... And I had no clue what I had done. I mean, I had an idea, but the code didn't make sense to me. But this time, rather than just throwing it all out, I got back in by mapping out what I've done.
So I've spent the time after that on ... basically minor improvements here and there - trying to make sense of things that yet confused me by mapping them out on paper ... and last friday and yesterday (sunday) were like ... the kickoff moment for those concepts to be turned into code. And as suspected, the truth is a little bit more complicated than my sketches had room for, but that's OK - I suppose


Part 2

So, what do I have? Well ... it's complicated!
I would say that it's all just in my head, but that isn't really true anymore. It would have been true during X3. I mean, the thing with being high for me was that I would look at my code and understand that I needed this and that for the whole thing to be what I wanted. But either because I didn't have enough weed and peace and quiet along with it - or because I had too much without knowing how to take a break - the code I wrote for "those reasons" never ended up doing anything. Like, wanting to get shit done I considered it unnecessary; And whenever I got to a point where I would have needed this or that ... I was stumped and ... eventually tried to work around it. ~ish.
I mean, a part of it is that I'm technically not working on a singular project, but a project that encompasses multiple other projects. And there's a little bit of a nesting problem. Like I'd have useless code - nesting certain things within basically empty frames, deeper and deeper; So, it was all ... not really a thing.

Now I have a more ... concrete ... thing. Which includes a more concrete omittance of things I'm NOT working on. The nesting problem has been solved to the point where it does what it must without unnecessary clutter.

But it's all ... still a little "give or take"y. So, the big "next step" - to preemptively call it X5 - would be a big overhaul. Like, some of the code I'm using is really old. Like, yea - certain things like matrices, vertices, pixel operations and such I wouldn't have to rewrite over and over again. But ... there is like ... no logical consistency. Naming conventions are all over the place, some lost datatypes float around here and there - and I guess that also includes some placeholders for old things I wanted to re-integrate.

The focus right now is on 'the engine' - and so far I'm at least satisfied with the general form of it.
But that's for the 'concrete' side of what I have.


What I have 'in theory' - is ... well, it's complicated!


For once, there's 'understanding'. As previously mentioned; Sometimes I have a solution to a problem I'm working on; But that is then a catalyst for me practically not working on it anymore. And that's more of a common theme than not at this point. So, I have these lingering solutions - but I also still have lingering problems. And at times the two interfere. And sometimes a solution might just be another problem. Which is ... kind of where the complexity of what I'm trying to build comes to bear.

I mean, during X2, I never quite got far enough to realistically work on any of my ideas. But on and off I'd be having them. Concepts, solutions - so, a logic developing in my head; And as I saw a bunch of them becoming tangible during X3 ... I also realized that getting all of them in ... that would be kind of insane! And the best shot I got at getting there, is to lay the functional groundwork for them.
Which is ... I'd call it "coding esoterics".


I mean, it's "the meta" of coding - in a sense - where, for starters, everyone has their own mindset; Their own way of understanding things. Like, the basics of how one's logical comprehension operates. So, the cognitive components we use to have an understanding of things. The big "gap" being, I'd argue, that we innately have an intuitive understanding of some things, but not of others. And we're all individual in that regard. So, although "Logic is just Logic" - the Logical comprehension of someone who can construct a CPU is different than that of ... a frontend developer.
So, I might say that ... the flow of code is like light, and flow control is like mirrors and that one of the more fundamental aspects of writing proper code is to understand how to trap this light in consistent shapes. To explain what I mean I might take a for loop as an example. Take a variable, and repeatedly add one to it. That could be considered a consistent shape, but in my book it's broken - it has "Light leaking from it", or doesn't have a "solid shell", because there's no exit condition.
And like so, explaining anything like that ... won't do.

I mean, you would hope that I can give you a concrete understanding of where my mental process it at - but either I would then just go and produce it in code; Or I'd be working out an understanding of a problem that you might try to solve. And your solution might differ to mine in ways that doesn't agree with me and so this too a pointless exercise.

Ish. I guess ... sometimes it helps to dumb things down. I mean, I explained to myself a couple of times why I do certain things the way I do just to realize that ... actually it is stupid.


Part 3

Where that leaves ... "us" ... is, I guess there's different ways to spin this.
From an "officially me serious" side, I say that I practically don't have anything until I can show something that will give people an understanding of what they'd be working with or getting themselves into. So, that there is an engine to be working with. So, to have recognizable features produced by the working code, as opposed to grand ideas that yet need to be worked in.

And what that can be ... kind of comes down to what I can piece together with "what I got" right now.
And, as I'm writing this - I'm taking a short break from ... that.

So, as mentioned, friday/sunday was a kickoff moment. While I'm technically working on four fronts, completing this step is supposed to solve one central problem. From there it's three of those four fronts that should immediately be capable of expanding upon it, such that progress on neither end is removed from making the whole come together. I should have something by the end of the year, though I have to see what I got by the end of the week.

I mean, there are a variety of problems that needed to be solved and required me to rethink and retool the whole thing. And those are in essence basic problems. Like ... if you think of a solar system, I've had to learn early on that their magnitudes can differ drastically. I mean ... a Red Giant has a radius of the Orbit of the earth. What matters there isn't so much the effective size, but the relative size. If I have a ... "mathematical drawbox", a.k.a. a normal projection matrix intended for use with depth buffering, I have a thereby limited draw distance. That's simply a matter of how much depth information a float or a double can hold without the scene getting all ugly. So, say then that box would contain an asteroid belt - like around the sun - and it would just barely fit; And say that this were OK. Having a larger star and things thus drastically further out would however mean that this drawbox can no longer handle that.
Now, that isn't a 'real' problem - but it roughly communicates an issue. I mean, I started to think about this the first time I was working on just that, realizing that - so, from the perspective of writing an editor where the objects only have a schematic presence - I needed a better understanding of how these kinds of objects could be worked in. So, not only would I have to - at the very least - group up magnitude layers, but also have them handle changes in angular orientation. And that's just the start of it.
The start of ... how different concepts that do roughly occupy the same space should merge to enable maximum versatility.
Or in other words: What's possible within a given virtual space depends on what the system can handle.

And ... this might be one of those points where I'm making things unnecessarily complicated because I'm following some esoteric concept of beauty; Like, I might just write two separate systems and somehow have them run next to each other; And maybe find some way to bridge things between them. But thinking like that is also kind of lazy to me. I mean, I'm under the impression, that thinking like that is what'd make the difference. Between whether or not the whole thing is awesome or shoddy.

And so I kind of just explained to you what I internally refer to as "logic density". I mean, in some aspects that's an optimization thing. Some processes might be optimizable. There's a set amount of instructions to do a certain thing with a certain complexity. And with that being said, we might take a detour into what I call "construct ergonomics" or something. How certain structural designs are easier to make more of than others. But anyhow. At a certain level of complexity - or at certain levelS of complexity - there's what I would call "logical resonance" with ... "stuff". That's basically where you might have two separate systems that do in certain instances do roughly the same thing - so they could maybe be merged. But respectively is there also the opposite. Logical dissonance. That's where one thing, beyond a certain point, doesn't work properly anymore. So the previous example with magnitudes. Stacking layers of fixed magnitude on top of each other works fine on the ground level where only having a fraction of what's actually there is pretty much the whole point - and grid size actually matters; But that way of thinking is impractical "in space".

I think the best way to think about this 'logical density' is in terms of the amount of angles that have to be considered. Or are being. So, I might start with a Starsystem. All I need is a gravity well - let's call that the zero point of the system - and have things float around it. Then I take a point, that be our starship or avatar, and have it be a box. Everything inside the box is to be drawn in high fidelity and the rest ... "whatever". Say, lines for a start. Then we notice that some lines are beyond draw distance. A thing that wasn't considered. And that thing is different than simply thinking about what types of objects could be floating in space. That'd be "in the box" - where all that matters is how I get to the high fidelity data, at any rate. That's the box in the box thing. That was pretty much implied. Now we have a different box in a box thing, except there's now a box outside the box ... that had not been considered. And so everything kind of has to be reconsidered - for sake of argument implying that work has already begun ignorant of the box outside.


Generally I feel uncomfortable writing about what I'm working on because I've realized that it kind of messes with my focus. It's like I can hear people talking about it - some too skeptical, others too enthusiastic - and so there's just noise that I don't want to deal with. Then there's also belief and disbelief - like ... coming from outside messing with my own emotional composure. If I'm like the only one knowing what I'm working on, there's a certain peace and quiet. Except ... there's the issue of people who think I'm crazy; Or that I'm obsessing over something that's never going to be - stuff like that.
And yea, the question of 'what WILL be' ... has so far ... only kept me in like ... perpetual misery. And yea, what I'm working on "SHOULD be" ... something ... at some point - and whether that is the case or not is firstly a problem I have to work on; But sometimes it also feels as if it were a function of what people believe.
Which is to say ... what people believe may bother me, but I can't change it - until ... I defy or confirm it. And unfortunately ... it's easy to confirm the belief that "nothing will come of this", because while nothing comes of it - that's like ... the truth of it.

If there ever were something to come of it - implying it be good - I would eventually need to have something good enough to be that. Or become that. Am I making sense?


Well, and that is a little bit of a stress factor to me. I feel like it's a constant tension ... where people are stuck between hypotheticals and "just you wait"s and stuff. And in that regard, there's on the one side what I REALLY care about - and when it comes down to it, that's also the part that should be more important. Except when it's like ... so clear that there's nothing left for me to do; So I'm back to ... uh ... whatever.

Anyhow ... so, kickoff moment. What I meant to say is that while the ball may have been kicked off - it's not really clear just now what will come from it. And I guess I wanted to use this opportunity, while I still have nothing - give or take - to reflect.


Part 4

I guess I have to be really careful right now.
I don't know what to do with my life. My life is a hodgepodge of ideas. I kind of have a real life profession I pursue - and that's like a Plan Z, but also something that does basically ground me. Like, it keeps me focused on something tangible. But still most of my lifetime is basically consumed by building these sky castles. And at this point there is no reason to stop it.

I mean, with the growing chance that the world might just collapse in on us ... and how that intersects with some of my work - I feel like my time is dwindling nonetheless, but ... that's not a reason.

But so, this idea - or notion - that I might have to scrap my work, this project, has always been on my tongue, basically - mostly because experience has shown me ... that ... my own expectations were off and I couldn't promise anything - and thus I came to worry that I might get stuck on it forever.
But at the same time I also don't want to believe that I'll have to scrap it. Like ... I can't. And so it would seem ... I have to clarify to myself ... what it is, what I can expect from it - and what I want; stuff like that.


It all started out as a fancy. To bolster my skills as a Game Developer because Game Development has always been something I fancied. I suppose I never truly believed that it might ever become a reality - and yet, in times of fancy, it just was a reality. Something to fill "the meaningless void of my life" with. And ... that "meaningless void of my life" - that's ... actually a real thing. I exist for myself, I pursue my own interests, find meaning and purpose but all of it is fleeting. Temporary conditions that vaguely determine my existence.
And ... that's something profound to me. Not meant as a depressing admission. Maybe there's trauma or loneliness involved - but at the heart of it is peace.
And in that peace ... I figured ... as though I wanted to make a point ... I maybe should, or could/might, make this project ALL about inspiration. To be as a medium to the divine - and make a 100% inspired game. I mean, I figured I had a few inspirations here and there - but also that I didn't really know how to make any of it mean anything. And so, to let that come down to inspiration too ... was like a logical next step for me. And though I'm not sure if I ever really decided on it - I kind of committed to it. I worked on my ideas in hopes that God would show me the way.


And yea. If you've been paying attention, you may have seen something ... flash through ... between the lines here. Maybe amounting to a question ... that you may not dare answer. And yea ...

Though I'm not having a Lizard-Brain moment right now - I worry that I'm headed towards one. Or more. I can ... kind of feel it. I must not forget that what I'm tangibly working on right now is still only a part of the whole. And rather than ... harp on about how I may or may not have something/enough - I think I should cut to the chase and share my dream in as far as it might concern "you". "Right now".


Part 5

So, at some point during this stage of development I've come to a more keen understanding of the amount of stuff I'd have to produce to fill this thing with content. Now it however dawns upon me, that this understanding is just symptom of a far bigger problem, where the terminology I'm actually arriving at is about containing the explosion.

I mean - at the heart of my endeavors there's this really big problem. Which I might be about to solve. Which might just be worth like ... 17 years of reflection time.
Once solved, my best bet is to fill it with procedural generation - but at that point I haven't really worked on any of the gameplay elements yet. Or the more virtual aspects of the VR. I however can't work on that stuff properly, until that problem was solved. So - I'll get to that point at any rate - before I can work on "the more important things". And I have there this weird feeling that things might just ... slip out of hand.

Like, as for that "keen understanding of the amount of stuff" ... I suppose I can put it in terms of lines of defense. The first line would be a familiar/intimate environment filled with people that I can vibe with, that can also get on board with this thing. So, creating assets like models and textures, maybe dipping into the one or the other coding exercise down to making it a (found) family business.

I mean, there's certainly stuff that could be produced as people might learn how to code or try to make use of certain stubs that aren't really worked out yet. I am already confident that I could at least explain the very next steps for me - so, I don't have any reservations on that front (anymore). Without overpromising, just facts. The literal work I'm about to do.

The second line of defense would be ... cooperation on a more professional level. I mean, this sense that I'd need help started as I figured where to take things gameplay wise. Up until then I only had vague ideas of what I might be doing - and for the most part that's still the case; And here I still hold reservations. I mean, that's kind of the thing. Once I'm able to work on the gameplay aspects, and the thing becomes a playable experience - it's time to consider multiplayer.
The key here is that I intend the multiplayer part to basically be a separate experience/product. But before any of that can be fleshed out, I need things to be a lot more sophisticated than they are now.
But yea - if this whole sky castle thing of mine is about to take off, and you're a game developer, you might want to reach out for this.

The third line of defense is the Operating System side of this whole thing. And this would come in a variety of flavors. In an alternate Universe ... this might even be the first line of defense. For me however, all of this comes down to how comfortable I am with sharing certain things; Which comes down to how close it is to what I want it to be.
I mean - in that it is multiple projects ontop of each other, each project could be a separate branch, but that's also just how I feel about it.
Those feelings coincide with a general and vague idea of things that we need to tackle eventually, at large, ... on the one side; And just fancy fun stuff on the other.

But that's also ... like ... stuff I wanted to write about some other time.
My thoughts are that we might be well advised to think of future proofing our structures; And part of that is to get rid of some of the clutter. What we need more than anything to that, is a mutually agreed upon start of some kind; And I see myself as a part of that, merely based upon my own ambitions. How it plays out depends on ... how much of "my work" y'all can do "for me". Basically.
Which is probably me just being uncertain about how things can or will play out and come together.


So, point being: I want my project to succeed - to 'become a thing' - and I'll work on it for as long as I have the opportunity. Realistically I couldn't tell you, outside of what my own dreams make me want to achieve, whether 'the thing(s)' amount(s) to anything useful or not. So, whether people might want to use or build upon it. But all that ... is like ... "the last thing on my mind". Or the 'final' thing, more to the point. My idea of what might yet "hold me back", what we're waiting for or whatever. But also ... is this me possibly looking for a conclusion sooner rather than later. As always. I like ... have zero chills in that regard.


Now I need time to digest this.


PS: So yea, this is kind of an 'all or nothing' type situation for me. Although nothing is not an option. I mean, I'm sure that failure at this point would also just be more of 'skill issue'. And so ... that's that!