TripleA Logo TripleA Forum
    • TripleA Website
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Tags
    • Register
    • Login

    Join the TripleA TEAM!

    Scheduled Pinned Locked Moved News
    85 Posts 20 Posters 53.4k Views 19 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • redrumR Offline
      redrum Admin @agbottan
      last edited by

      @agbottan Yeah, the map creator generates several files from the black/white border image. The main one is the polygons.txt which specifies the boundary points for each territory. It also generates a centers.txt and place.txt. I think you are probably better off generating the black/white border image then using the existing TripleA map creator to generate the necessary files. Otherwise you probably will end up having to recreate much of that tool. Here is the map documentation: https://github.com/triplea-game/triplea/blob/master/docs/map_making/map_and_map_skin_making_overview.md#sec_2

      TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

      1 Reply Last reply Reply Quote 3
      • 0az0 Offline
        0az
        last edited by

        I'm interested in improving ease of use: specifically, making installing/hosting easier.

        Ideas:

        • Prebuilt Docker container + sane docker-compose for the bot functionality... with automatic builds on CI. I started work on this, and I may as well send this upstream.
        • Better bot hosting documentation – I just ported @prastle's batch script to shell, and sharing would be good. This ties into point 1.
        • Homebrew Cask for MacOS.
          • I tried finding a better way: javapackager (Java 8 and JavaFX, removed at some point) / jpackage (afaik only included in JDK 14, but works with earlier Java versions) / appbundler (community fork of Oracle tool)? Bundling Java applications for Mac is hard, it appears.
          • Is it possible to configure Install4J to generate an App instead of an App Installer? The former is idiomatic on Mac. I contacted Install4J support, since I was curious, and I believe you can just uninstall TripleA on Mac by deleting the .app bundle, as it's self-contained. This also means the .app bundle is fully self-contained, and thus no installer is necessary. I experimentally verified this by grepping for a JRE installed by the installer app.
        • STUN/TURN/ICE? ZeroTier integration? Some other form of working around NAT? Implementing these on the client is probably beyond what I can accomplish in any reasonable amount of time. I'll call these "stretch goals".

        And an off-topic question:

        • What exactly breaks client-side hosting? Opening a TCP tunnel with ssh -R 3300:3300 -NT $proxy_server doesn't work. This is on the flavor of 1.9.x that the default installer gave me.
        • What's the state of 2.X?

        GitHub: @0az / Email: See GitHub.

        RoiEXR 1 Reply Last reply Reply Quote 1
        • RoiEXR Offline
          RoiEX Admin @0az
          last edited by

          @0az

          Prebuilt Docker container + sane docker-compose for the bot functionality... with automatic builds on CI. I started work on this, and I may as well send this upstream.

          Good Point. We're using docker for some development ease-of-use but not in production AFAIK. Currently we're using ansible to configure remote machines in an automated fashion which works quite well for production but is not that easy to reproduce for local development.

          Better bot hosting documentation

          Hosting is not something we want the regular user to have to do on their own, it's a "power-user-only" feature. That's why there hasn't really been throughout documentation.

          What we really should document is all the potential command-line options. I'll come back to this later.

          STUN/TURN/ICE? ZeroTier integration? Some other form of working around NAT?

          Good thing you consider that 😏
          I have actually read a little bit into this but haven't really found a satisfying solution for us.
          I ended up with an approach that requires some manual configuration, but works for everyone that bothers to try. See https://forums.triplea-game.org/topic/1970/how-to-host-using-a-relay-service for more information.
          Basically you can provide a "public IP" that clients will use to connect to instead of the originating IP.

          What exactly breaks client-side hosting?

          I'm not entirely sure what you mean. There are basically "2 ways" to host. If you're trying to register your server at the lobby, the lobby will check if it actually can establish a connection and the client will shut down if it can't open a TCP connection. However if you don't try to connect with a lobby in the first place and try to host "locally" you should be able to ssh-forward as much as you want.

          What's the state of 2.X?

          Hard to describe. Basically we're in a state where we'd like to create a new real release, but there are a few "common bugs" on some machines (like StackOverflowErrors) that we need to get fixed before commiting to it.

          0az0 1 Reply Last reply Reply Quote 2
          • 0az0 Offline
            0az @RoiEX
            last edited by

            @RoiEX said in Join the TripleA TEAM!:

            Hosting is not something we want the regular user to have to do on their own, it's a "power-user-only" feature. That's why there hasn't really been throughout documentation.
            What we really should document is all the potential command-line options. I'll come back to this later.

            Ah, yes. That would help a lot. Still doesn't reduce the benefit of having a nice script / Docker Hub image, though.

            I ended up with an approach that requires some manual configuration, but works for everyone that bothers to try. See https://forums.triplea-game.org/topic/1970/how-to-host-using-a-relay-service for more information.

            Yeah, I saw that. It's not particularly satisfying, but it works. SSH port forward, but for people without SSH boxes.

            I'm not entirely sure what you mean. There are basically "2 ways" to host. If you're trying to register your server at the lobby, the lobby will check if it actually can establish a connection and the client will shut down if it can't open a TCP connection. However if you don't try to connect with a lobby in the first place and try to host "locally" you should be able to ssh-forward as much as you want.

            Ah, I see. I guess there's a feature request here for "tunnel mode" to allow port-forwarding with the lobby.

            GitHub: @0az / Email: See GitHub.

            RoiEXR 1 Reply Last reply Reply Quote 1
            • RoiEXR Offline
              RoiEX Admin @0az
              last edited by RoiEX

              @0az

              Still doesn't reduce the benefit of having a nice script / Docker Hub image, though.

              True. Previously this would've tied to some hassle, but thanks to the more "recent" github features we could host docker images on GitHub AFAIK. See https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages

              It's not particularly satisfying,

              True, but at least it - in theory - enables people to host even if their ISP doesn't offer dedicated public IPs

              1 Reply Last reply Reply Quote 2
              • RoiEXR Offline
                RoiEX Admin
                last edited by

                @0az

                Homebrew Cask for MacOS

                Almost forgot that one. We are currently struggling with some debian packages that are not maintained by us, but are out of sync with current master. This might sound scary for some devs right now.

                However Homebrew Casks are managed on GitHub, so if we "adjust" the installer properly it would be almost no overhead to keep it up-to-date. Good idea IMO.

                Is it possible to configure Install4J to generate an App instead of an App Installer?

                Yes, with limitations, even though I'm not sure the limitations still apply to us.
                It's difficult experimenting with the installer though, none of the devs has a mac to test changes to their disposal.
                I can tell you how to configure the installer on your own though, install4j provides a nice UI for all settings. PM me if you're interested. Once you have something that works to you we can discuss the differences on GitHub.

                1 Reply Last reply Reply Quote 1
                • LaFayetteL Offline
                  LaFayette Admin
                  last edited by

                  For 3.x or 4.x I would hope that bot hosting becomes a thing of the past. Instead bots would do application level network forwarding. We're some time out from getting to that point.

                  Generally the problem with bot hosts has not necessarily been ease of getting up and running but having them run for long enough. It's common to see someone host a bot for a week, or a month, but then the server is disconnected and they drop off. At a cost of 10$ per 7 bots, simply paying $20 / month is not that bad for more bots than we actually need.

                  I just ported @prastle's batch script to shell, and sharing would be good

                  There is already a shell script, I'm curious how that would be different and if the one we distribute and maintain is difficult to find?

                  0az0 1 Reply Last reply Reply Quote 1
                  • LaFayetteL Offline
                    LaFayette Admin
                    last edited by

                    @Giglfoosm @0az , very exciting you want to contribute. Let us know if you have any questions, could use a starter project, any help getting started or what not. Feel free to post in the development section or in github issues for any topic specific follow-up.

                    1 Reply Last reply Reply Quote 3
                    • 0az0 Offline
                      0az @LaFayette
                      last edited by

                      @LaFayette said in Join the TripleA TEAM!:

                      There is already a shell script, I'm curious how that would be different and if the one we distribute and maintain is difficult to find?

                      Just to clarify, do you mean shell as in #! /bin/sh? I was not aware of it – can you post a link? The only one I found was the aforementioned Windows batch script, which doesn't exactly work for my server.

                      @LaFayette said in Join the TripleA TEAM!:

                      @Giglfoosm @0az , very exciting you want to contribute. Let us know if you have any questions, could use a starter project, any help getting started or what not. Feel free to post in the development section or in github issues for any topic specific follow-up.

                      Will do.

                      GitHub: @0az / Email: See GitHub.

                      1 Reply Last reply Reply Quote 3
                      • LaFayetteL Offline
                        LaFayette Admin
                        last edited by

                        @0az https://github.com/triplea-game/triplea/tree/master/game-headless/scripts, the two scripts are bundled with the headless bot zip: https://github.com/triplea-game/triplea/releases/download/2.0.20234/triplea-game-headless-2.0.20234.zip

                        S 1 Reply Last reply Reply Quote 1
                        • S Offline
                          SilverBullet @LaFayette
                          last edited by

                          @LaFayette Nothingtoseehere 25 minutes ago
                          Hi. I'm a long time user of the game and can do Java at a beginner level and so I would like to help improve the game. But it's so big a project that I don't really know where I could start doing that. I know there are some getting started documents on github. I already am registered there and have IntelliJ set up on my computer. Maybe someone like @LaFayette can point me to some problems or issues that a beginner like me can be expected to understand and help with.

                          B 1 Reply Last reply Reply Quote 1
                          • B Offline
                            beelee @SilverBullet
                            last edited by

                            @SilverBullet I think @RoiEX did a beginner post somewhere but can't remember where.

                            S 1 Reply Last reply Reply Quote 1
                            • S Offline
                              SilverBullet @beelee
                              last edited by

                              @beelee well this guy wants to help, but i dont know what to tell him.

                              B 1 Reply Last reply Reply Quote 1
                              • B Offline
                                beelee @SilverBullet
                                last edited by

                                @SilverBullet ahh I think maybe it was @ff03k64 who just got started too. He could try asking him also. Someone will respond

                                S 1 Reply Last reply Reply Quote 1
                                • S Offline
                                  SilverBullet @beelee
                                  last edited by

                                  @beelee his nickname is "Nothingtoseehere". he says he is registered.

                                  B 1 Reply Last reply Reply Quote 0
                                  • B Offline
                                    beelee @SilverBullet
                                    last edited by

                                    @SilverBullet I've seen him around. Lol I just made the same post you did on the other thread. hadn't go to it yet πŸ™‚

                                    S 1 Reply Last reply Reply Quote 1
                                    • S Offline
                                      SilverBullet @beelee
                                      last edited by

                                      @beelee πŸ˜‰

                                      1 Reply Last reply Reply Quote 1
                                      • SchulzS Offline
                                        Schulz @prastle
                                        last edited by

                                        I would like to learn that for example If I developes a new code/property that allows game to end in a certain round, would it be enough to integrate it in the engine or there is some kind of vote system which requires approvals?

                                        1 Reply Last reply Reply Quote 1
                                        • LaFayetteL Offline
                                          LaFayette Admin
                                          last edited by

                                          @Schulz if you're willing and able to build a feature directly into the engine, it's welcome. It does take a lot of persistence and is not necessarily easy. Feedback from the forum is encouraged to help develop the requirements of the feature and to fine-tune what you will be building.

                                          TripleA is in a tough place in terms of code. An analogy to think of is that all features are akin to a purchase done on a credit card. The feature is the cookie you have purchased, the code is the credit card balance. All code incurs recurring interest that must consistently be payed, some purchases are more expensive than others. In this sense, just slapping something in is not necessarily welcome, it can be really difficult between the level of manual testing and the underlying complexity of TripleA. You should be prepared for it to take quite some time for simple changes. If you're still on board this page can give you more info a jumping off point: https://github.com/triplea-game/triplea/blob/master/.github/CONTRIBUTING.md

                                          SchulzS 1 Reply Last reply Reply Quote 1
                                          • SchulzS Offline
                                            Schulz @LaFayette
                                            last edited by

                                            @LaFayette These are just ideas that I would want to work to implement them. I particularly selected them believing would not be too complicated to implement and would be worth to spend time.

                                            1) A option that simply ends games in a certain round representing draw if no side achieve its objective up to this point. I strongly believe that only a draw option can prevent loser side simply surrendering in the early-mid rounds. Another good side of this feature would be simply preventing loser side wasting their opponent's time by simply not surrendering. Due to usually higher victory city requirements, loser side can simply refuse to surrender and prolong the game meaninglessly so long.

                                            2) Auto-Intercept: New property that allows player if they want always defending air units to intercept or not.

                                            3) Sound Overlapping: Especially national sound are great feature but overlapping is big issue.

                                            4) Optionally showing date in the top-right corner That would be especially great for maps that use seasons


                                            And building a feature questions:

                                            1. If developers agree to devlop a certain feature, they do it together or just made by only one developer?

                                            2. How do developers know what is possible to make and what is impossible. For example, If I decide to work to make optional ending games in certain rounds property, how do I know where to start with?. There seems like no similar feature for me to foresigh or mimic it.

                                            1 Reply Last reply Reply Quote 1

                                            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
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 2 / 5
                                            • First post
                                              Last post
                                            Copyright Β© 2016-2018 TripleA-Devs | Powered by NodeBB Forums