Hi! A few thoughts as I'm reading through:
I tried Alpha 1. Seems to be working pretty well! Tested it in both Vivaldi and Firefox and both are happy. Tree-chopping detection is working. The new auto-save pickup works instantly. Pretty nifty for a first alpha!
I'd agree with focusing on making something useful rather than the shotgun approach. Even Alpha 1 gives a glimpse of a useful tool in the direction of a CAII successor, and as one of my colleagues says, "Working code is king." I.e. he will suggest various improvements to the coding style, ways of improving the code quality/maintainability, ways to avoid tech debt, but in the end none of that matters if you can't accomplish what you want to do with the code. One of the biggest motivators for working on CIA3 is likely to be people using CIA3 on actual game and providing feedback, so getting it to the point where it's somewhat broadly applicable for that would make sense as a target.
I'm about to try Alpha 3 now! Will update once I've given it a whirl.
Edit: Alpha 2/3 don't seem to work on my system. Maybe because I don't have Chrome? Alpha 3 (which I tried first, and started from the Command Prompt) gave me a Windows Firewall popup, which I allowed on private networks, but then it exited. Alpha 2 did the same, minus the firewall pop-up. I tried browsing to localhost:8080/isocss.html in both, as well as plain-old localhost, but both failed, probably because cia3 had already exited.
I'd somewhat expected it to still work in a Chromium-derived browser (I have Vivaldi, which includes the Chrome Dev Tools; Chromium and Brave are two other examples that would fall in this category), but it looks like it's hard-coded to require Chrome itself?
I tried Alpha 1. Seems to be working pretty well! Tested it in both Vivaldi and Firefox and both are happy. Tree-chopping detection is working. The new auto-save pickup works instantly. Pretty nifty for a first alpha!
I'd agree with focusing on making something useful rather than the shotgun approach. Even Alpha 1 gives a glimpse of a useful tool in the direction of a CAII successor, and as one of my colleagues says, "Working code is king." I.e. he will suggest various improvements to the coding style, ways of improving the code quality/maintainability, ways to avoid tech debt, but in the end none of that matters if you can't accomplish what you want to do with the code. One of the biggest motivators for working on CIA3 is likely to be people using CIA3 on actual game and providing feedback, so getting it to the point where it's somewhat broadly applicable for that would make sense as a target.
Spoiler Thoughts on technical aspects and SAV details :
- You are correct that the BIQ is only embedded if it's not the default one; I load the default conquests.biq for SAVs that lack a BIQ. Separating the SAV into the BIQ section and the actual SAV section probably will simplify queries.
- There is a double-digit percent chance I may be using GraphQL at work next week. So it's interesting following your adventures with it.
- I suppose my thoughts on which browsers to support are, I wouldn't spend much time on IE11 (most Windows users will have at least one alternative browser); Edge is switching to the Blink (Chromium) engine soon, as in Q1, so you probably don't need to spend too much time supporting its old/current-as-of-January engine, although that's probably an easier task than supporting IE; and my main focus would be on not making it Chrome-specific. Supporting Chrome, Firefox, and Safari (and thus implicitly derivatives thereof) gives a pretty wide swatch of support, and should be enough to avoid browser lock-in.
- On that note, lorca looks like an interesting conundrum. It may make it easier to write the application in Go, but also provides browser lock-in. I'll be downloading the next alpha and trying it out, but as I don't have Chrome (for philosophical reasons), will be providing feedback on how it works in other Blink-based browsers and Firefox instead. I'm somewhat confused by the combination of the effort expended towards looking at IE/Edge support, as well as looking at integrating lorca, which would make that IE/Edge effort non-applicable.
- I've done WebSockets once before (in JavaScript on the front end, Java on the back end). It worked pretty reliably, but it's been a couple years and I don't remember the details. I do remember that the Chrome Dev Tools have a pretty decent WebSocket debugger (in the network tab; it lets you see each WebSocket communication), and Firefox added WebSocket support to their debugger a few months ago. Although, it may well not be the effort switching back now that long polling is working. I can look up and share the details if you're interested in trying it again.
- The "spin up the server and start the browser" seems acceptable to me from a UX standpoint, at least early on. If it had to be command-line, that would probably be too steep a threshold, but opening up in a tab in the user's default browser seems okay. Maybe errors could be piped up to the client if need be. The only caveat is if it requires Chrome, and the user's default browser is not Chrome, it wouldn't be a very smooth experience.
- Sounds like you've already made error handling smoother. Excellent!
- I'm using Mongo at work currently; it's pretty nice to work with. I haven't heard of or used LevelDB, so no thoughts on it.
I'm about to try Alpha 3 now! Will update once I've given it a whirl.
Edit: Alpha 2/3 don't seem to work on my system. Maybe because I don't have Chrome? Alpha 3 (which I tried first, and started from the Command Prompt) gave me a Windows Firewall popup, which I allowed on private networks, but then it exited. Alpha 2 did the same, minus the firewall pop-up. I tried browsing to localhost:8080/isocss.html in both, as well as plain-old localhost, but both failed, probably because cia3 had already exited.
I'd somewhat expected it to still work in a Chromium-derived browser (I have Vivaldi, which includes the Chrome Dev Tools; Chromium and Brave are two other examples that would fall in this category), but it looks like it's hard-coded to require Chrome itself?
Last edited: