TripleA 3.0 - Design Proposal & Discussion
-
The focus is right now to get 2.6 released. Once done I think the focus should shift to TripleA 3.0, the next major version.
To recap, the top project priorities are:
- (1) converting network code to be websocket (remove java.nio sockets).
- (2) implementing a network relay server to replace headless bots
- (3) Text-based save games. Rather than serializing java objects we would instead store text based game state changes.
In short, to accomplish these goals and further, I propose TripleA 3.0 to be a majority re-write of the internal design of the engine with a completely new XML spec. I've been thinking that our attempts to refactor our way to a better TripleA is arguably only a partial success and we now need more rewrites.
FWIW, it could be possible to write a converter that will upgrade 2.x save games and maps to 3.x, though that will be a secondary priority that perhaps would happen after 3.0 launches.
Rather than a grand rewrite, I would propose to proceed in a more strategic manner, a two phased approach that uses a lot of the existing code:
(1) First, we would focus on the design of key modules and interfaces. These key junctions will then lend to more natural flow control code that will remove some of the more nasty parts of the existing code base.
(2) Next, we graft as much of the existing code onto the new interfaces as possible.Finally we'd get it cleaned up and 3.0 launched.
-
@lafayette all of that sounds good to me
-
@lafayette
I would like the current xml file to split into three files.(1) A pure map xml, this could then be shared with other mods & variants making it so much easier to have mods and variants, once written this code would hardly change.
- Territory Definitions
- Territory Connections
- Territory Attachments (Capitals would go into the mod/variant file)
- Canal Attachments
(2) Game Variables File
- This allows the different WW2 rulesets to be defined and thus called as a well established known.
- Also allows custom game variables
(3) The remainder of the code. This file would have the mods & variants code.
- Calls the map file to be used
- Calls the game variables file to be used.
- Units
- Politics
- Territory Effects (although it has map specific definitions it also has unit definitions)
- Victory Conditions (includes Capitals)
- ie. the rest of the code
.
-
To give some outside feedback: I first tried triplea 4 years ago. I thought it had potential, but also many limitations. I recently tried it again.
The v2.5 release plays fine and there are some improvements to map xml (so thanks to the devs and map-makers for their continued efforts).
From a UI (user-interface) standpoint however, it isn't a huge improvement over v1.9: many of the issues remain.
I just tried v2.6 pre-release, the main thing I noticed was that it unzipped my existing maps in downloadedMaps...Even though it may not be the dev focus, I do hope v3.0 will offer some noticeable UI improvements.
Looking at the code, some of it at least seems quite easy to do, so I guess it comes down to individual contributions ? -
I'd like to see incorporating fractional numbers.
-
@schulz
I think you mean decimal numbers specifically for the variable createsResourcesList so you can have upkeep costs of say -0.2, instead of integer numbers ? -
@thedog Exactly, plus players wouldn't be forced to buy more than one of those units that have fractional costs (like in NML,NWO and WaW).
-
@butterw You were lucky with 2.6. An earlier version erased the majority of my mods without warning. (I had backups)
There were a lot of changes made in 2.6 with little community discussion. For example the mapName and Notes properties were deprecated.
Mods are now being stored in Github repositories as multiple files, rather than a single zip file. Github is an excellent tool for program development but is not very suitable for storing mods. We need to think about how mods should be stored & downloaded.
-
@butterw said in TripleA 3.0 - Design Proposal & Discussion:
To give some outside feedback: I first tried triplea 4 years ago. I thought it had potential, but also many limitations. I recently tried it again.
The v2.5 release plays fine and there are some improvements to map xml (so thanks to the devs and map-makers for their continued efforts).
From a UI (user-interface) standpoint however, it isn't a huge improvement over v1.9: many of the issues remain.
I just tried v2.6 pre-release, the main thing I noticed was that it unzipped my existing maps in downloadedMaps...Even though it may not be the dev focus, I do hope v3.0 will offer some noticeable UI improvements.
Looking at the code, some of it at least seems quite easy to do, so I guess it comes down to individual contributions ?There are a few UI suggestions from me in the Feature Requests subsection. For example,
https://forums.triplea-game.org/topic/1676/new-method-for-board-scrolling -
@cernel It's temptoing to remove the scrolling edges of the map at this juncture for 2.6, it would be an easy removal.
3.0 as described is already a 1-3 year project, I don't expect to see any UI improvements as part of it. OTOH, the UI will finally be far more modularized, it'll put us in a better position to do so.
-
-
In my opinion the UI is mostly ok and just needs some tweaks to improve the user experience. The fact that there is no massive UI overhaul planned for v3.0 should encourage potential contributors to make the required changes knowing their efforts will not be wasted.
-
Maximizing on screen map real estate should be a target, and fullscreen mode should be available. In windowed mode, the menu should be hidden by default and displayed with a hotkey (ex: Alt). The status bar could be used a lot more.
-
Mouse scrolling at edges can already be deactivated with:
Engine settings > Map Scrolling > Mouse Scroll: 0
I tried out different values with the sidebar minimized and found that the scrolling confort was greatly improved by changing the default values on my system (tested on ww2_v5, with 90% map zoom, @1080p):
- Mouse Scroll changed from 30 to 5
- Mouse wheel scroll changed from 60 to 100
- Arrow scroll changed from 70 to 500. (I had forgotten about CTRL)
An enhanced version of the territory finder (CTRL+F) with a short-list of map specific favorites could be a great way to jump around large maps.
-
-
Some games use Ctrl+F1 to F4 to mark the screen and then use F1 to F4 to return to that marked screen.
-
Would be great to have the internal dice roller reinstated for forum games.
https://forums.triplea-game.org/topic/2151/feature-request-reinstate-internal-dice-roller
Often promised "for the next release", never implemented, unfortunately.
-
@panther i'm not sure i understand the utility of using the internal roller for anything but local/live games.
-
Please look here:
https://forums.triplea-game.org/topic/187/internal-dice-sender-cleanup
to learn about the background. -
@panther yeah i get what it is i just don't understand why. in a PBF/EM game what's to stop someone from rolling until they get the results they want.
-
@ubernaut Sure, I think we all know why an external dice server is offered and why one usually would prefer to use it.
But that is not the point here. The other thread shows why an offline alternative is useful in special situations..
-
@panther ok sure i guess there is some non-zero value to this feature but personally, i think we got our priorities mixed up if we are putting into this in front of the now long-standing bug where mac players cant play these kinds of games at all.
-
Instead of battling a feature that has been erroneously removed and its return has already been discussed consensually - just not been done - you could simply add your Mac-related issue to this thread.
I am sure that every user of this forum has his own ideas about priorities of this project. My requests are ususally based on my experience dealing with "the other" forum - but I have stopped expecting anything when asking for something already some time - if not years - ago,
-
@panther wasn't trying to change the subject (i actually considered this prior to sending the reply), but couldn't think of a better way to make my point.
i feel the value of this particular feature is extremely limited seems only useful for troubleshooting, not an actual PBF/EM game (at least not for any competitive game).
but now i'm repeating myself so I'll get off the soapbox.