Unless you're from the future, we haven't met; nice to meet you! I'm X.A.N.O.Z.O.I.D. (or xanozoid, xano, or xanoid, etc . . .) a programmer . For now, I'll skip the whole "about me" and leave that for another day.
This is my attempt to bring you a weekly(or more frequent) digest of updates on projects I'm working on. As of this post, it will be primarily focused on the development of HaxePunk and then maybe a few posts here and there on a data-centric game editor, or the technologies involved (Haxe, Kha, Gui, rendering, cross-platform stuff).
It's probably no secret that HaxePunk has been lacking when it comes to updates. The time of the original maintainers have passed, but HaxePunk lives on; maybe they'll come back in the future. Don't worry, HaxePunk's not dead; it has been getting a lot of care recently, as you'll see.
If you have been thinking about trying HaxePunk recently, you'll probably have a few questions. I'll be frank, HaxePunk is in a legacy state right now. The last published version was released on Haxelib and relies on old versions of Lime and OpenFl. That version was posted just before previous project maintainers retired from HaxePunk, so it has been a while since any fixes were published. On the other hand, I simply recommend using HaxePunk's dev-branch, the dev branch was brought back to life in May. While the dev branch for HaxePunk has been updated and now works with the latest Lime and OpenFl, there is a bug in Lime that prevents us from rendering with WebGL. Just keep that in mind; if you need HTML5 use the Haxelib version with the compatible Lime/OpenFL.
So, should you pick up HaxePunk? Well . . . a few things need to be clarified on the website, but HaxePunk has always had solid documentation, a simple to use workflow, and is still a well-tested engine. You can develop and publish games using the dev branch or the past version, so that's all fine. Right now, we're in a critical transition period, trying to pump life back into the project, which leads me to the next part. . .
If you haven't heard, there's been a recent initiative to make HaxePunk relevant again. We've taken the task to utilize Kha, instead of Lime, while keeping the same API you know and love. We are doing this to simplify HXP's workflow and obtain the several benefits Kha has to offer: support for desktop, web, mobile, consoles, and native graphics abstractions . . . a compiled cross-platform shader-language, platform-consistent input, and more.
We started this ambitious transition back in June and, while there have been some bumps along the way, we're still making progress. We presently have standard input working and a project that compiles. This may not seem like much, but it's the perfect starting point for us to proceed with our next steps.
The features that aren't fully-operational yet are: rendering, audio, the asset and config pipeline, and a few things we've yet to see. It is technically possible to use about half or more of the features available in HaxePunk, but a videogame isn't much without video. Put simply, the core of HaxePunk has been left untouched and we're rewiring the lower-level stuff that's hidden from the core API.
There's a surprisingly small number of tasks to finish before we can start beta-testing this upcoming version. This isn't to say it won't be a couple of weeks or months until it's in a beta-state, but there's a straight-enough path for us to pursue(a huge thanks to Matrefeytontias). This may not be a completely accurate picture, because the majority of work left to be done is with rendering. Matrefeytontias is our rendering-guy, so it's up to him to dig into that. It's just that there's a lot of details to consider moving from the Lime version that causes quite a headache. No need to worry though! Matrefeytontias is confident about this and has already shown promising results, so a few weeks or months is still in the picture. Maybe we'll have a gift for everyone before the New year.
I would have loved to introduce this blog in an experience-focused way, instead of a summary of our work, but that's what happens when you get busy. My next post will have more trial-error/experience content; this was just my best attempt to brief you all of what happened and what is being pursued immediately.
We have a lot of ambitions going forward! Yeah, we could have just kept working on the Lime version. Yeah, we also could have supported both Lime and Kha. But we didn't, so why? We chose Kha for the future, we dropped Lime because it won't be necessary after Kha. It's blunt like that, and for a good reason, but above all else, Kha is portable. Thanks to Kha being an "Ultra portable multimedia framework", HaxePunk will have all of the power it did before with much, much, more reach. Picture it like HaxePunk was a train conductor, but later decided to become an airplane pilot - just as capable but with unlimited destinations. Thus our primary goal with HaxePunk is making it future-proof, giving it a new foundation for it to expand on our terms to be powerful and native across several existing platforms - and those yet to be known.
We're focusing on making the #KhaHaxePunk version usable right now, so you may be wondering if any other things are coming out for HaxePunk. I should bring attention to the fact that there is a slight difference between Matrefeytontias and me as far as goals are. We are both focused on making sure HaxePunk is usable, stable, and powerful. We both agree that any changes done in the transition should be minimal. Where I start to verge is on features and the future after the KHA-port. Many ideas sprung during at the start of our journey, as all big initiatives create some sort of hype, but those have been taken out of the main picture and we'll come back to consider their appropriateness.
I'm still going to give you a taste of my ideas though, so here's a list of things I want to bring to HaxePunk (none of these are expected to be officially supported, or even done - they're just "cool" ideas that are fun to share)
There's a lot more to talk about in the future, especially over the process; so, stay tuned because I'll be covering the weekly experiences we have going forward!
Thanks for reading! This took more time to get up and running than I'm willing to admit. From the writing, formatting, revisions, and figuring out how I want to distribute/publish this article it's taken nearly a week to finally choose something and that something was dev.to. As you probably guessed, that does mean this post is a week old; so I might publish yet another article this weekend depending on how busy I am.
This was my first ever blog post or anything of this nature, so I'm hopeful it serves its purpose! If you have any questions, comments, or criticisms or anything at all feel free to do so! I'm really looking forward to your responses 😄.
Since I'm hoping to reach out to you guys in the Haxe community, this may be a good place for us all to discuss and write about our developer experiences (if you're into that sort of thing). I decided to come to dev.to instead of my-own-site/medium/WordPress because it seemed to be the most fitting/friendly for this kind of material. I'd love to see some more writing from the Haxe community so let me know if you do!