It's been almost four years (less 2 months, to be precise) since I first announced work on ASBoxer in the Newgrounds BBS. Well, for those of you who were paying attention anyways. Ever since then, it's been a damn near neverending quest for the red dragon. Countless time was lost in adding new features and making things look snazzy, all the while ignoring the base concept of time to market. Not that I'd have sold it anyways...not if it were so rudimentary. I have "standards", you know. (Yeah, right.)
In the meantime, a lot of stuff has changed. A lot. The entire tech landscape changed, swiveling towards the internet. AIR all but lost significance, as if it didn't already. Somehow, fucking JavaFX of all things became slightly more relevant. JavaFX. Not that I'm complaining - it's a swanky runtime - but it was pretty much an abortion from the get go thanks to Oracle and somehow that managed to become more popular than AIR. And I'm happy for it. I might use it in the future (just not for ASBoxer, because it's a nightmare to port anything from one engine to another, and a useless value proposition at that)
Other things apart from tech happened too. Too many to count, and the past four years have honestly just seemed like kind of a...haze to me. It's hard to believe it, but yes, I am "that" age where life seems to just pass by fast (the days go by slow, but the years go by fast, you know the rest).
Kept adding more features to ASBoxer in the meantime. Skinning, custom components, localization support, you name it...all with nothing to show for it in reality. As far as y'all were concerned, I just had screenshots from a bygone era, and nothing more. And that's true. It's vaporware, by this definition. Something that should have taken a year...then two...then three...now galloping on to four and with no signs of stopping.
In the meantime, I also made the - I believe - one of a kind (for AIR, that is) AIRDock because I'd not found anything like it. Making that helped me a lot in designing and learning the value of good design practices, something that I'd shirked when making ASBoxer because I just wanted to code, dammit. Who needs planning? I know the code anyways.
Hah. As if. Once I came back to ASBoxer, with a new insight, I realized having a 10,000+ LOC in one file was probably not a good thing to be proud of. Thankfully, it was not spaghetti, so I was able to get back to it relatively easily, but let's just say that it won't be seeing the underside of 8,000 anytime soon. I added concurrency (background worker, technically) support because the main thread was too damn slow for running processes. That was a crapshoot of lost messages and faulty coding and testing. Ultimately, I forgot the meanings of the messages I'd used in the code and everything related to that had turned to spaghetti (thankfully, just restricted to that area alone). It still exists in incomplete form, haha.
Now? I'm still working on it. No way in hell I'm giving it up, even if it's the comatose dog lying on the road after its untimely rendezvous with a high-speed car tyre. I've had a lot of fun making ASBoxer, and it's taught me a lot, and gave me a lot of joy - albeit rather double-edged at that - while doing so. I'm still running around breaking things fast - but early; better now than later where it really counts. I've planned to migrate away from the custom zip file format and instead use a fixed database to support easier asynchronous operations; in so doing, hopefully import/export operations will be able to return to the main thread again, back from the land of concurrency (to be fair, it is hard, and even more props to those who get it done right). After that? Maybe. We'll see.
And for reading this far, here's a rather old Imagine Dragons song. Never really a fan of them - really the only two songs I heard from them were this one and Thunder (IIRC) but it's a nice song, I guess.
S/O to @PsychoZombii, if you're still here dude hit me up let's chat sometime