-
@Giglfoosm Hey. Most of the code base is in java and the main repo is located here: https://github.com/triplea-game/triplea
You should be able to just clone the repo and then set up your IDE: https://github.com/triplea-game/triplea/tree/master/docs/dev
We are always looking for contributions and glad to answer any questions.
-
@redrum Awesome thanks!
-
In @Giglfoosm words, "I've been a long time lurker" too.
I'm interested in maps development.
I think about making a script to export an Inkscape file into TripleA format. -
@agbottan At a bare minimum, the only thing you should need to do is generate a black/white borders image from the file then you can run it through the map creator included with TripleA. Then the original image can be used for the relief layer.
-
@redrum, for what I remember, the map's lines lies in a text file with polygons coordinates. I suppose that these polygons are generated by the black/white contrast borders with some sort of bitmap processing. I'm thinking about extract the territories polygons from the SVG data in some way.
Your suggestion of using Inkscape to generate the black/white map for the current editor is nice too.
I'll start assembling the stuff here and, when having something to show, I'll open a thread in this forum about this specific matter. -
@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
-
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.
- I tried finding a better way:
- 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_serverdoesn't work. This is on the flavor of 1.9.x that the default installer gave me. - What's the state of 2.X?
-
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.
-
@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.
-
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
-
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. -
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?
-
@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.
-
@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.
-
@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
-
@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. -
@SilverBullet I think @RoiEX did a beginner post somewhere but can't remember where.
-
@beelee well this guy wants to help, but i dont know what to tell him.
-
@SilverBullet ahh I think maybe it was @ff03k64 who just got started too. He could try asking him also. Someone will respond
-
@beelee his nickname is "Nothingtoseehere". he says he is registered.
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