Download Maps Links, Hosting Games, General Information

classic Classic list List threaded Threaded
64 messages Options
1234
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
reserved
Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
reserved
Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

theting
I'm not coming in the area very often lately, but I wanted to say that this was a great topic you wrote here veqryn

(any moderator, feel free to remove this post later if needed)
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Larry
In reply to this post by Veqryn
I cannot find a world war II v3 1941 map for mac could you direct me to one and perhaps let me know if there are special loading issues

thank you

lmoricca@msn.com
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
the maps are not system specific,
each map will work in Windows, Mac, Linux, and Unix

the ww2v3 in the downloads list (see first post in this thread) is the one you want.  
please read the first post carefully, and try downloading using triplea (and if that doesn't work, download manually using the directions in the first post)

Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
psi
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

psi
why was middle earth removed?
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
it wasn't,
instead it was renamed "Lord of the Rings: Middle Earth", and then included with the TripleA download.  (you already have the map)
Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Zim Xero
In reply to this post by Veqryn
How do we upload a map once it is ready? to what site using what method?
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
upload it to somewhere like media fire (or multiple places, since some are blocked by various isp's / countries)

then take a picture of it in game

make a thread posting in the map section, with your picture, links to download, and some good notes about the game


eventually i'll get around to adding it to the download list, assuming the map is playable
Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Bung
In reply to this post by Veqryn
I just recently went through the source code steps with the latest eclipse and jdk7.1 ... I didnt find an option to make a new java project using existing folder/sources. When I tried to do new java project and set the working directory as the SVN directory I already made, it gave me an error and wouldnt let me continue. So, I just did new java project and then moved the SVN files into it.

Also, once I went through the build path configurations (are you sure the output folder should be /testclasses?) I had 10 final errors of the type:

"Access restriction: The type URLClassPath is not accessible due to restriction on required library C:\Program Files\Java\jre7\lib\rt.jar ClassLoaderUtil.java"

Finding a similiar problem on stackoverflow, the solution that worked for me was:

1. Go to the Build Path settings in the project properties.
2. Remove the JRE System Library
3. Add it back; Select "Add Library" and select the JRE System Library. The default worked for me.
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

JobiWan144
Question: I currently have version 1.3.2.2.  Will saved games (.tsvg files) from that version work with version 1.5.2.1, or do I have to keep the old version around to play those saved games?
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
You can have multiple versions of TripleA installed and running at the same time.

Install both 1.3.2.2 and the new 1.5.2.1, and then keep using 1.3.2.2 for your older savegames until they finish, while using 1.5.2.1 for any new games.


Any change of the first 3 digits will stop savegames from working.  For example, 1.3.2.2 will run savegames from 1.3.2.1 and 1.3.2.0 and 1.3.2.3, but will not run savegames from 1.3.1.x or 1.3.3.x or 1.4.x.x or 1.2.x.x

Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

JobiWan144
That's exactly what I needed to know.  Thanks!
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

predgeha159487mmer
In reply to this post by Veqryn
Hello everyone.

If you want to download ALL maps, and keep all of them up-to-date all the time, please use SVN.  The SVN link you need is to:
https://tripleamaps.svn.sourceforge.net/svnroot/tripleamaps/trunk/maps/

I have having much difficulty doing this right here as i am not experience with SVN links so any assistance would be awesome.

Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Zim Xero
In reply to this post by Veqryn
@Veqryn:  You have requested that maps be uploaded to SendSpace and not Mediafire or FreeDrive since they are blocked in some countries.  The free version of SendSpace, however, will delete files if they are not downloaded within a certain period of time, making it a poor choice for a longterm download site.

@All: Does anyone know of a free upload/download site that is non-hostile to users? (Does not try to trick downloaders into downloading Adware and Spyware by not making it clear what they are downloading)  I'd actually be willing to pay a small one-time fee for a good site, but I'm not willing to make recurring payments or use credit cards.

'thats the way it is' makes it neither desireable nor inevitable
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
tripleamaps is the long term site
Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
This post was updated on .
So people sometimes want to know how the AI works in triplea, specifically the code side of things.  
Here is a post to explain what I know.

There are 3 classes involved with AI's, 2 of them are interfaces.

Interfaces:
IGamePlayer  =  some methods used by the server related classes to tell a player that their turn is up
ITripleaPlayer  =  an interface just for TripleA players, with methods for each of the questions that a player is asked.  For example, it has methods for "selectCasualties", "selectBombardingTerritory", and "retreatQuery".

Last, we have the abstract class for all AIs: "AbstractAI"
All AI's (for triplea) must extend this class.

Inside of this class, we have one very important method, "start"
        public final void start(final String name)
which basically gets called every time you have a phase or a turn to do
AbstractAI takes the "name" variable and determines which phase we are in.  Example: if the name is "JapaneseBidPlace" then it knows because of the ending that we are in the "Place" phase, and that is a "Bid".
So, the start method then grabs the current remote delegate (whichever delegate [from xml] is for this phase), and calls a method specifically for that delegate/phase.

example:

the start method:

        public final void start(final String name)
        {
...
                else if (name.endsWith("Place"))
                        place(name.indexOf("Bid") != -1, (IAbstractPlaceDelegate) getPlayerBridge().getRemote(), getGameData(), id);
...
        }


the method we call because it is a "place" phase:

        protected abstract void place(boolean placeForBid, IAbstractPlaceDelegate placeDelegate, GameData data, PlayerID player);


Now those methods are abstract because we expect the specific AI (moore ai, dynamix, etc) to override them.

So, heading on over to easy ai, we see this method in easy ai:
       
        @Override
        protected void place(final boolean bid, final IAbstractPlaceDelegate placeDelegate, final GameData data, final PlayerID player)

        {
                if (player.getUnits().size() == 0)
                        return;
                final Territory capitol = TerritoryAttachment.getCapital(player, data);
                // place in capitol first
                placeAllWeCanOn(data, capitol, placeDelegate, player);
                final List<Territory> randomTerritories = new ArrayList<Territory>(data.getMap().getTerritories());
                Collections.shuffle(randomTerritories);
                for (final Territory t : randomTerritories)
                {
                        if (t != capitol && t.getOwner().equals(player) && t.getUnits().someMatch(Matches.UnitCanProduceUnits))
                        {
                                placeAllWeCanOn(data, t, placeDelegate, player);
                        }
                }
        }

This is a pretty short method, thankfully.
It starts by determining if we have any units to place, and if we don't, returns.
Then it finds our capital, and tries to place as much as we can there.
After that, it gets all the territories on the map, shuffles them so they are in random order, then goes one by one and IF we own the territory, and IF there is a factory there, THEN we try to place as much as we can there.
pretty simple

So how does the AI actually interact with the game?
The answer is through the delegates.

In this method, we passed the IAbstractPlaceDelegate.  This this an interface that contains all the methods through which a remote player (a human client, an ai, etc) can interact with the game.

Taking a quick look at IAbstractPlaceDelegate:

        public String placeUnits(Collection<Unit> units, Territory at);
       
        public PlaceableUnits getPlaceableUnits(Collection<Unit> units, Territory at);
       
        public int getPlacementsMade();
       
        public Collection<Territory> getTerritoriesWhereAirCantLand();

We have only 4 methods here.

getPlacementsMade returns the number of times we have successfully placed units (not the total number of units placed, just the number of successful times we have placed any number of units).  You probably don't need to use this method.

getPlaceableUnits returns what units can be placed in this territory.  Probably useful.

getTerritoriesWhereAirCantLand returns all territories which contain an owned air unit that can not land.  Probably do not need to use this method.

placeUnits is the main method here.  By calling this method, we will directly interact with the game.  Assuming there is no error message (it is a valid placement), then the game will be changed after we call this method.  The engine will place those units at that territory.

Every time we call one of these methods, the local machine validates it, then the info goes to the host, the host validates it, then takes any actions it needs to, then returns whatever it is required to return (an error message, or null for 'ok', etc).


So, going back to easy ai, lets take a look at this line:
                // place in capitol first
                placeAllWeCanOn(data, capitol, placeDelegate, player);

and we follow that to two new methods:
        private void placeAllWeCanOn(final GameData data, final Territory placeAt, final IAbstractPlaceDelegate placeDelegate, final PlayerID player)
        {
                final PlaceableUnits pu = placeDelegate.getPlaceableUnits(player.getUnits().getUnits(), placeAt);
                if (pu.getErrorMessage() != null)
                        return;
                int placementLeft = pu.getMaxUnits();
                if (placementLeft == -1)
                        placementLeft = Integer.MAX_VALUE;
...
                final List<Unit> landUnits = new ArrayList<Unit>(player.getUnits().getMatches(Matches.UnitIsLand));
                if (!landUnits.isEmpty())
                {
                        final int landPlaceCount = Math.min(placementLeft, landUnits.size());
                        placementLeft -= landPlaceCount;
                        final Collection<Unit> toPlace = landUnits.subList(0, landPlaceCount);
                        doPlace(placeAt, toPlace, placeDelegate);
                }
        }
       
        private void doPlace(final Territory where, final Collection<Unit> toPlace, final IAbstractPlaceDelegate del)
        {
                final String message = del.placeUnits(new ArrayList<Unit>(toPlace), where);
                if (message != null)
                {
                        s_logger.fine(message);
                        s_logger.fine("Attempt was at:" + where + " with:" + toPlace);
                }
                pause();
        }


First, we ask the host what units we can place here.  If there is no error message, we continue.
Ignore the sea units related stuff for now.

We use a "Match" to get a list of all our land units that need placing.
We count out x number of land units, equal to the minimum of our total units, and how many we can place here.
Then we call del.placeUnits(new ArrayList<Unit>(toPlace), where);
which places the units.



Very similar things happen for all the other phases of the turn.
The AI does logic and calls methods in the Delegate Interface.
When it is done, the AI returns, thereby ending the phase.  The engine later goes to the next phase.


Nothing complex.  All the java is really easy, all stuff you learn in a single intro-to-programming semester.
Heck, you don't even need to know java to be able to read that stuff and figure out the "gist" of it.

So, if you want to help make the AI better, just download the SVN, poke around, go into debug mode in eclipse and set up some breakpoints in the AI in different spots, and then make some changes, and submit the changes to me.

The AI classes are as follow:
games.strategy.triplea.ai.
Dynamix_AI = dynamix ai
strongAI = moore n. able ai
weakAI = ez fodder ai
advancedAI = ignore this one, it will get deleted.


Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

bluelionman
In reply to this post by Veqryn
I don't know why but when i get the download maps box and right click on my mouse nothing comes up it's like I cant cut and paste into this field - I am able to right click in my ie search box and paste the link fine so don't know why right clicking in the field you say to do so in does not come up with anything?

Any ideas?
Where would you rather be than right here, right now?
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

beelee
you can do it manually by clicking on sourceforge  page on the first post

then hit files then hit maps and it will list all the games
Reply | Threaded
Open this post in threaded view
|

Re: Download Maps Links, Hosting Games, General Information

Veqryn
Administrator
In reply to this post by bluelionman
normally speaking if one thing doesn't work, you try another

did you try using ctrl-c to copy and ctrl-v to paste?

did you try just typing it out manually?


seriously dude, did you really not try typing it in manually?  you know that is all that "paste" does right?  

come on man

Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
1234