Last week I started tweeting
about my progress with Duality
Yep, I noticed
Nice gifs btw.
But now, let's get to the core question, and let me preface this with one thing that I have found myself reasoning a lot lately.
Duality development isn't as fast as I'd like it to be. Why is that? Because when I developed the core and main editor parts, I was a student with plenty of time. With occasional limited downtimes on my side (master thesis, etc.), this has eventually changed by the end of last year: I'm now working full time, and compared to before, the time budget that I have available for Duality is tiny. Subtract supporting people using it and reacting to bug reports and issue discussions and I'm left with not a lot to work with.
So what do I do? There's basically two options. Option A:
Somehow securing a sort of funding for Duality development, so I can work less than full time and spend more time with Duality. This one I can unfortunately rule out for the moment, because funding requires more public interest and a bigger community than Duality has managed to gather so far. As much as I'd be up for it, I don't see this happening right now. Option B:
Being more efficient. I can't do a lot, so I'll have to make the limited stuff I do really matter. What would the highest impact contribution be that I could possibly do? As unexciting as it sounds: Maintenance, management and large-scale changes to code structure, APIs, and architecture.
This is not a chore, for me at least. This is what matters. It may be a personal thing, but I do value the experience as a developer a lot more than big new features I can advertise towards newbies. Yes, there is value to those big new features! But I'd much rather revisit some API decisions and improve the quality of the system as a whole than, for example, start to implement a new multiplayer system.* I don't want to (and honestly can't) deliver a finished, off-the-shelf product that solves all your problems. What I do
want is work towards creating an open framework that everyone can contribute to and benefit from. * Attentive observers may notice that I in fact just spent the past months developing a new tilemaps plugin. Yes, that's totally something new and it doesn't fit the image I'm portraying above. Totally right. Let's put it like this: I have that dream, where I (one day) actually use Duality to make a game This may be a step in that direction for me. Also, I've just always wanted to do those tilemaps.
But I digress! Sorry about that Multiplayer
, right? There will be no multiplayer system. This can be done perfectly with plugins only, I have no idea about multiplayer tech and this by and large is a perfect match for the definition of a big new feature that would keep me busy and blocked for months. It just makes more sense if I'll leave that one to the community.
Then we have that required cross-platform overhaul
you mentioned. That's actually done! It was what Duality v2.0 did. Theoretically, Duality should now run on Windows, Linux and MacOS and should have the potential to be ported to Android as well, though anything mobile will still be a lot of work. As far as Linux and MacOS go, there have been promising experiments of just running Duality samples on them, without any user porting effort. Not everything worked out of the box in all cases, but it's more a matter of fixing a few issues than actually having to port much. That said, I did play some sessions of SirePi's game Broken Galaxy
on a Macbook by now.
So why don't I advertise Duality as cross-platform? Because I don't have the time to pull off official support for that right now. I'm pretty sure someone who is reasonably experienced could deploy something to Linux or MacOS. There definitely will
be issues, but I think we're almost there. I do hope for some Pull Requests when people actually start to deploy to MacOS and Linux.
But what about porting the editor
to a different platform? That one is not going to happen anytime soon, although I do like the idea. It's the kind of work that I would consider requiring my personal attention, but it's simply too much work to be viable for me to start it, given the limited time budget I currently have.
You also mentioned the v3.0 milestone
: Yes, these are mostly a lot of under the hood changes. Major version steps in Duality don't necessarily mean big new features, but they are the only version steps where semantic versioning and backwards compatibility allow me to introduce breaking changes. Thus, major version steps are ideal for refactoring and restructuring the framework. Cleaning up, making Duality a better place! The way you put it, v3.0 sounds a bit dull, but personally, I can't wait to start working on that. I'm going to investigate an improved preview system in the editor, and revisit how your renderers will communicate with the render pipeline. Also, discarding OpenGL fixed function and moving vertex transform to the GPU. Exciting stuff!
So.. uhm.. I hope this was remotely what you imagined as an answer. Did I even answer the question?
"Why don't you just use Unity?"
I don't know. Because people are different and not everyone values the same things?