A new Javascript build from the ground up
-
@aardvarkpepper Unless you plan to maintain compatibility with the existing mods, why do TripleA at all? Create a new project for an area movement wargame engine that is capable of playing Axis & Allies style games and avoid the technical debt of TripleA.
-
@rogercooper Well yes, new project is what I had in mind. TripleA is Java, and I'll be doing JavaScript. It sounds like the two are related, but not so much.
But I do want to get input from the community. Others are going to have different takes on solutions than what I'd considered, and the earlier I can build with those in mind, the better.
E.g. time between turns. I know chess has implemented pre-moves on various platforms. But I hadn't considered implementing it in Axis and Allies, though it does make sense. What are you going to do to occupy your time while other players take their turn? I'd thought, build in other features. But pre-moves would often shorten a player's turn length, which would mean everyone plays faster, which cuts down on game time. That's a really big improvement that I can't ignore.
Then there's lots of things that veteran developers would be able to advise on, like things to watch out for programming for multiplayer (even for turn-based), maybe someone's got some proposition for how casualty removal should be allocated. Having a few "defensive profiles" as they did with 1942 Online just isn't nearly enough at all, but automated controls will be cumbersome. I have a few ideas on that score, but it could be someone has something elegant and simple that I just haven't considered (like pre-moves on other players' turns.)
As to compatibility with TripleA, I'd like that, but that would require a discussion on . . . what would I call it, the data structure of each of the programs? Which is a thread subject of itself, and there's the documentation things going on.
-
@aardvarkpepper said in A new Javascript build from the ground up:
and I'll be doing JavaScrip
That would allow for playing in a browser or as standalone app using browser technology (Electron), isn't it?
-
Yes.
I'll be building a lot of server connectivity into the application as part of my portfolio project, and I expect I'll be porting to a different language after a year. So parts of it won't be browser standalone. But singleplayer won't require online connectivity.
-
@aardvarkpepper Sounds good. Would that require the current game-xml-files to be "rewritten" in JSON ?
-
I'd never require anything of TripleA developers.
The way I figure it, I build out my portfolio project, get implementation suggestions from developers and feature suggestions from the community. If the project works and becomes popular, then I'll definitely be looking at .xml and JSON.
If my project depended on TripleA data files, then I think the GNU General Public License might apply. Wouldn't want that. But I believe compatibility with TripleA data files would effectively bring loads of existing assets to my project without my needing to surrender license rights.
-
@aardvarkpepper If I understand things correctly, XML files can be automatically converted to JSON.
-
@aardvarkpepper content would be covered by copyrights of original creators if i'm not mistaken
-
@ubernaut If you're referencing copyrights of original creators for mod files for TripleA (like BigWorld and such), good point. (Was that what you were referencing?)
Doing things properly would require contacting all authors involved with a mod and obtaining their permission before trying to port anything over. Even if it weren't a matter of legality, it would be proper.
Thanks for making the point. If that's not what you were referencing, oops. (But a good point to consider regardless.)
-
@aardvarkpepper yup
interested to see what u r cooking up! -
Recommend this reading: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
I'm a bit concerned you'll find the "90% done, 90% left to do" could become a problem. Notably the scope of what you are undertaking is quite a lot. Generally I think we will be best off by continuing to modularize the larger components in TripleA which would then allow us to divide-and-conquer and rework those components in more isolation.
There is no issue if you write something that is able to read map XML files. Though, the XML format is highly coupled to the internal representation of the game, so you will likely find that it's unnecessarily convoluted (for a ground-up project) and not necessarily flexible in ways you might want. I suspect the game (java) representation was done prior to the XML representation and hence it not being a good generic fit.
Right now there is no way to represent the save game state as JSON. The idea to move the game state to be a series of 'deltas' would be to change the way saves are stored on disk. Notably instead of having an absolute record of truth (the one game save representing the latest state), it would be more of a ledger system. Bank account balances work that way, the bank does not store "you have $10", they store "you started at 0, then added 2, then subtracted 1, then added 9"
-
@lafayette lol that guy is a funny read :grinning_squinting_face:
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login