• Lock Map Icon on Map

    9
    2
    0 Votes
    9 Posts
    2k Views
    ubernautU
    @lafayette well i think having some kind of directional arrows behind the lock or maybe a map grid under the lock 3d style would have the same effect.
  • Downloaded Maps

    Moved
    7
    0 Votes
    7 Posts
    1k Views
    LaFayetteL
    FWIW, the places that would need a fix are largely in code that will be deleted pretty imminently. That is why the fixes are in queue.
  • Warning for those upgrading to v2.6+

    1
    1 Votes
    1 Posts
    543 Views
    No one has replied
  • RFC: merging skins with maps

    17
    2 Votes
    17 Posts
    2k Views
    C
    @LaFayette The alternative skin for 270BC is an example of changing also the units. There may be others. Here you can find a map-skin for RSoC that is actually about making the map bigger: https://github.com/Cernelius/red_sun_over_china-big_skin The current map-skin feature allows changing everything in the skin, and that is good. What is not very good is that it obliges you changing everything, so forcing duplication if you don't actually want to change everything. It is true that most map-skins are only about changing the map details, but I think this is beside the point (Of course, some things are more used or useful than others.).
  • TripleA Rules Sets

    15
    1 Votes
    15 Posts
    3k Views
    LaFayetteL
    @LaFayette said in TripleA Rules Sets: What would be ideal is to have a table describing different behaviors by rule set. We are actually on our way there. We have example maps that follow each rule set, all we need to do is to start teasing apart the behaviors that are different and then answer for each map, "does this follow that behavior, yes or no?" If we find that some rule sets are only very slightly different, simpler is better. The 'v3' moniker will be difficult to drop, if we can keep it simple and say "old edition", "revised edition" and "new edition", it could be easier to adopt. At this point though, without knowing what the rule sets actually are, it seems to be a first priority to know which rules are in each rule set before we do much of anything else.
  • Storing Maps as Folders only rather than as either Zip or Folder

    10
    4 Votes
    10 Posts
    2k Views
    djabwanaD
    @Cernel As we unzip a file, we will be doing a lot of checks (are all the required folders there? is there a centers.txt, etc.?) and as part of that process, we could enforce a casing convention. I have a tool that fixes capitalization. When I got image assets from @GenerationKILL sometimes the casing was a bit off, so I would just run this tool and it would conform every unit to a convention like this: Unit-Name.png regardless of the OS and regardless of the original naming. We could implement a similar normalization process at the map parsing level (though it might be hard to get map makers on the same page about which casing convention should be used). https://github.com/jdimeo/triplea-map-tools/blob/master/src/main/java/jdimeo/triplea/util/FixFileNames.java
  • GameData.acquireReadLock usage?

    3
    0 Votes
    3 Posts
    867 Views
    T
    So, would you be ok with removing some locks if it can be shown that the data is actually read only? I'm currently looking at ResourceList which is what GameData#getResourceList returns. The class has only one setter and it is only called during the game parse process and a test method. The data that ResourceList stores is a map of Strings and Resources. And Resource is a value object. ResourceList doesn't appear to need any sort of read lock since I don't see any way for it to change. If I see locks around GameData#getResourceList, can I just remove them? Would you like me to tag Resource and ResourceList somehow (such as @Value) to indicate that they are read-only objects?
  • Replace Console Logging with a File

    25
    2 Votes
    25 Posts
    4k Views
    TheDogT
    @LaFayette Dont forget to add triplea.log to the list of files to uninstall.
  • Questions from a know-nothing beginning programmer/developer

    8
    0 Votes
    8 Posts
    2k Views
    LaFayetteL
    That said, is there a particular reason (other than a chunk of code not really necessary to functionality) that save game files don't work that way? Java serialization was once popular, it was an initial design decision to use it, it was somewhat easy. We would actually like for save games to work more like you have described. It's a very large project, that is all, and we have a large backlog of small and large projects that we are working on and collectively there is not that much development labor available. Re: performance requirements These are the wrong things to focus on. First focus on functionality, what are you going to built? What value will it provide, how will it be used? You need a good product for anything else to matter. Then I'd encourage to stop worrying about specs. Simple and well done architectures are fast and perform well. Simple code is usually fast code. Once you have a reasonable design in place and functioning, then you can start analyzing where the performance bottlenecks are and where to go to optimize. It's a ways to get to that point, and once you are there the process is to measure, change, repeat. Humans have generally very bad intuitions for where performance problems will arise. It's also easy to try and fix all performance problems as optimization problems when they are really design problems. One can look at a block of code and wonder "how can I make this faster", and sometimes the right answer is, "how can I avoid needing to execute this in the first place?" That is why keeping things simple and working is very important, it lets you reason about what your code is doing. For example TripleA does a lot of calculations twice, why? Because there are 15 layers of call indirection separating the two which creates several thousands of lines of code in between the duplication. Bottom line OUr time is short in just about every way imaginable. I'm pretty sure and somewhat regrettfully going to say, if you want something that interoperates with TripleA, it's potentially one of and likely all of: untractable and/or a truly huge project We have wanted to for example to allow TripleA to run on web browsers, or phones. That project is probably 3-8 years away from being completed if it were started today.
  • Combine casualty selection dialogs?

    2
    2
    1 Votes
    2 Posts
    902 Views
    TheDogT
    Its a good idea, I like it.
  • AA Auto Casualty documentation?

    1
    1 Votes
    1 Posts
    752 Views
    No one has replied
  • AA and targets with multiple hit points, how many dice?

    8
    0 Votes
    8 Posts
    2k Views
    LaFayetteL
    I think you may have to look at which maps have the combination of properties set to see how it is used. I can imagine a few different variations of how such behavior would be used. Generally, if the intent were to be able to shoot down a multi-hit-point air unit, it would make more sense to me for the AA to do more than 1 damage.
  • When should support be allocated?

    10
    0 Votes
    10 Posts
    1k Views
    LaFayetteL
    Sounds right, though I think this is a simpler way to think about it: before a unit rolls, it looks to see if there is an available support, if so, it consumes that support.
  • Why does all aa attack values must divide into attackAAmaxDieSides?

    5
    0 Votes
    5 Posts
    884 Views
    T
    @alkexr , thanks for those forum posts. It does look like this warning is no longer valid.
  • 2 Votes
    6 Posts
    2k Views
    N
    @LaFayette said in I would like to start helping out with tripleadevelopment but don't know where to start: Are you familiar with doing feature branches in git? Were you able to compile and run the game from scratch? No to both of those. I guess I need help.
  • Implementing UI Visual

    Moved
    32
    1 Votes
    32 Posts
    10k Views
    MirkoBrunerM
    @RoiEX I have read your specs, Issue seems to be closed at least for now. How do we proceed from that? Any Idea? I have already my questions about your navigations and other annotations. Regards @RoiEX .
  • PR help

    14
    1 Votes
    14 Posts
    2k Views
    LaFayetteL
    There are three ways to merge branches: merge fast forward merge rebase git merge <remote> <branch> and git pull <remote>/<branch> AFAIK are the same thing and are both merges. git pull --rebase <remote> <branch> is a proper rebase. This is the one you should prefer to avoid having 'merge commits'. A fast forward merge is really similar to a rebase, and you do that with a -ff flag to merge, ie: git merge -ff <remote> <branch> There is also a proper 'rebase' that can be done. AFAIK these two are the same: git pull --rebase <remote> <branch> and git rebase <remote> <branch> Unfortunately it is fundamentally a bit confusing as it depends on exactly how the rebase is done and with which flags. This is a place where a GUI can get in the way.
  • Development setup

    27
    0 Votes
    27 Posts
    7k Views
    F
    @Trevan I am glad you know your way around! I never would have found that.
  • Is there a flowchart or similar for the AIs?

    7
    0 Votes
    7 Posts
    1k Views
    aardvarkpepperA
    @TheDog Thanks. Quite handy.
  • Factory/Town building in version TripleA v2.3+

    7
    1 Votes
    7 Posts
    1k Views
    TheDogT
    Awh shucks (looks down & shuffles feet)

Recent Posts

  • @beelee Dracula makes everything slightly more spaced apart compared to Dark. I prefer it over Dark because there everything is smaller and more cramped together 🙂

    I don't like the colors from the politics panel either. They are too bright. Also, the text inside is also barely readable because it is gray. It's probably better if the text is black or white with a black outline or something.

    read more

  • In some of the themes, when you click on one of the tabs on the first row on the right side when having a game loaded, they suddenly move down to the 2nd row, and the tabs on the second row move to the 1st row. This doesn't happen in "Metal", but it does happen in "Nimbus" and "FlatLaf Dark" (I didn't test all the themes). This is confusing me and I'd prefer if the tabs stay where they are like in "Metal" (and also how it was originally).

    It would also be nice if there were more dark themes. Right now, there are only two and I don't really like either of them. There are much more light themes but those are a no go for me because they are too bright.

    read more

  • Is there a way to manually adjust the colors for the Politics Panel ? I assume this is from the new LookandFeel. I tried switching to Dracula and restarting everything but didn't notice any difference.

    Kinda bright for my old eyes 🙂 In the Global game it pops up for every Players turn, so quite frequently.

    Screenshot from 2026-06-16 05-26-12.png

    Edit
    Otherwise it seems fine.

    read more

  • I suppose it is worth pointing out that a 'revert' in git is just an undo update. The code history in Git is write-once. Git never deletes anything. So, in a revert update, based on the reverted change: any lines that were added are removed, and any removed lines are re-added. So, a revert is a new update, it just an inverted update to cancel out a previous one.

    Revert PRs are not at all special to Git, it's just another update. Once a revert is merged, a person can revert the revert update, add more changes to it, and then merge all of that as one bundle.

    So, a flow might be like this (the letters on the left hand side represent the commit ID, AKA the commit SHA):

    a43ae Some update that introduced a bug 3ads2 Revert: Some update that introduced a bug fae54 Revert: Revert: Some update that introduced a bug + Bug Fix

    Changes to the code base are "squashed" together. When a person clicks the revert for the revert, that creates a new proposed change. Bug fixes can be added to that proposed change, then it'll all be squashed together as a single commit that is then released.

    For example, when reverting the revert, this change would be proposed:

    abc12 Revert: Revert: Some update that introduced a bug

    In that proposed change, we can add the bug fix, eg:

    abc12 Revert: Revert: Some update that introduced a bug fea23 Bug fix

    Then, when merged, that would land on the main branch and in the history as one commit, eg:

    fae54 Revert: Revert: Some update that introduced a bug + Bug Fix
    read more