Just an update on how things are progressing: https://wiki.arcengames.com/index.php?title=AI_War_2:Multiplayer_Alpha_And_Beta#Version_2.120_Improved_Lobby_Map_Experience
There's a lot still going on with the lobby that I have to sort out, plus then some immediate sync issues once we get past there. You can see a general list of the things that I'm aware of at the moment here: https://wiki.arcengames.com/index.php?title=AI_War_2:Multiplayer_Alpha_And_Beta#Multiplayer_Remaining_Todo_List
I'm keeping that broadly updated as I discover new things as I test things out. The UI issues for the lobby are dwindling in number, which is good, and all of the initial connection work is done for all platforms, which is also good.
Big picture, though, what's remaining before alpha?
1. Still need to be able to assign players to human factions in a nice fashion. This is a thing that is maybe one more day of work, knock on wood.
2. I think that for the galaxy map display itself, I have a slight bit more work to do on that given recent feedback. Hopefully half a day of work.
3. After starting the game from the lobby, there are some bits like starfield (but not planet) backgrounds that are out of sync, and I'm not sure why. In the lobby the starfield backgrounds are also out of sync. I need to fix that to make sure it's not a wider problem. Hopefully an hour or two of work.
4. Every ship that is created after the initial world setup is immediately desynced at the moment, as in their core IDs are different between the client and the host. Yes, I do plan on having robust desync repair, but goodness we need to also start by having fewer sync issues than THAT in the first place. This is something that I need to investigate what the ideal solution will be, and it's probably the single most complicated thing remaining for multiplayer. This could take weeks, but hopefully I can make it "good enough" in under a week of time and then refine it during the alpha.
5. There's some strange latency on the client end that I need to look into, which is probably some sort of complex timing-based issue with all of the threads. I am hoping that there won't be more than a few days of looking into that required before an alpha.
6. I do need to then actually code in the desync-repair loop, which again is a giant piece of work, but something I plan to handle in stages. My hope is to do a version that is less efficient but only takes me a couple of days to start out with.
After this checklist
At this point we'd have working multiplayer in an alpha state, minus some features and definitely minus some efficiency, but I can work on the features and efficiency during the alpha. Hopefully within a month or so of starting the alpha, things have stabilized out into a beta format where everything is working and we're just catching the odd item here and there.
Some technical things, like adjusting how GameCommands are structured from a code sense, will be absolutely massive and cause a lot of bugs for a little while, and I'm choosing to do those during the alpha rather than before it. My hope is that I can make it minimally invasive, but either way things will get solved faster by having more testers.
Timing?
I'm going to be mostly unavailable for the next week for some last family stuff prior to my kids starting the new school year, so the earliest versions of the alpha won't be in August, quite. Sorry about that, it's hard to take time off especially when folks are so excited, but I also need to be a dad and husband.
If I had to guess, we'll hopefully have something that people can comfortably play with in the week of September 7th.
THAT said, technically multiplayer alpha is there now, it's just immediately divergent in the reality that you and your friend see. In some ways that is actually quite amusing, although I don't think it would be a fun way to play. For the host, everything is normal, but the client is on an increasingly bad acid trip. ;)
I may shift around the order of operations in how I approach certain pieces of work some, to brute-force solve desyncs, for instance, and then see how bad that makes performance feel. Working backwards in that sort of fashion might let people test sooner than later, but I remain antsy that the experience in that sort of scenario would be un-fun enough to turn away some testers.
Either way, past some certain point there will be a question mark of "when is this officially alpha," since alpha is technically feature incomplete and buggy by nature. Right now I think I draw the line as this being not officially alpha because I don't want feedback from anyone on it, since I know where the core problems are and I need to focus on those before we start looking for further bugs.
More soon!
Anyhow, it's an exciting time and we're getting closer! I am really pleased and encouraged with how responsive I've been able to make the lobby after focusing down on it, and I think that we'll see the same thing with the rest of the game as I get enough time with the multiplayer components of each bit.
Cheers!
Chris
[ 2020-08-17 19:51:41 CET ] [ Original post ]