Home » FULL CONTROL GAMES » #JAFDEV Tactical Layer » Let's start talking about game mechanics: Artificial Intelligence
Let's start talking about game mechanics: Artificial Intelligence[message #321007] Mon, 27 May 2013 20:52 Go to next message
Shanga

 
Messages:3516
Registered:January 2000
Location: Danubia
I'll start off from where whoami left the discussion in the big wishlist topic.

whoami

Keyword: coordinated team action.

Example: Drassen mine.

Step 1: map creator sets a key locations on the map to AI:
- Good cover
- Good places for shooting
- Positions for the order "ambush"
- ...
- Strategically important objects on the map

Step 2: AI tries to capture the sector:
- Created 2 groups by number strategic objects (head of the mine and the church), and one group for the distraction. All groups - from all sides the sector (assuming that they have taken this position crawling before the battle).
- A group of distractions is moving into the center of maps, other groups waiting at the edge of the map
- A group of distraction engages in battle, other groups are moving towards their objectives - strategic targets. These groups are located in the "assault" mode - when engaging the fire contact with the player, they continue to move towards the goal
Group distraction is in the "defense" mode - the soldiers take cover as well and do not protrude. Their goal - to survive as long as possible.
- Micro AI acts within each group. Some of the men suppresses the the firing points ("machine gunner"), part of the soldiers using grenades, rocket launchers and mortars ("heavy weapons"), part of the soldiers using sniper rifles ("sniper"), and part of the group is moving forward ("stormtroopers")

That is, group level = "Macro AI", the level of fighters = "Micro AI". Both AI operate simultaneously, the priority is "Macro AI" (order of the commander).

- For each group, there are algorithms for Action: "distraction", "storm the object", "flank attack", "ambush", etc.
"Ambush": If the AI decides to abort the attack and make an ambush, then two thirds of the fighters takes cover, and third soldiers lure the player, shooting and running away in the direction of the ambush.
"flank attack": third group of fighters firing from cover, the rest 2/3 part of the soldiers making a flank attack.
... etc.
AI behavior of algorithms should be a lot - that the player is constantly surprised by the unpredictability of AI.
The current algorithm may be selected by a random number.

- After reaching the strategically important points of the sector is a "diversion": the elimination of the chief of the mine or father Walker. The player did not see the main group, engaging in a battle with the distraction group.
__________________

We tried to do that in JA2. As a result, one elite soldier did move for 3-5 minutes, calculating the tiles around him and analyzing the cover, the location of his teammates, the location of visible enemies, the location of his teammates visible enemies, the type of weapon in the hands of a visible enemy, the presence in the inventory of the visible enemy heavy weapons, the ratio of the number of our soldiers to enemy fighters in the sector, etc.

In the end, we settled on a simple tactic: some soldiers detect targets, others shoot "on a tip" of machine guns, grenade launchers, sniper rifles. Throw in the "gray targets" grenades, etc. But it's stupid, it's quickly bored.

"Therapist" worked on AI in our team, and he said that we need to mark on the map the key things for AI. In this way made bots for CS, and modern shooters.
Maps format of JA2 need to completely remodel to add annotations to the AI, a lot of testing new AI ... This is a job for the "paid professionals", not for enthusiasts.


Re: Let's start talking about game mechanics: Artificial Intelligence[message #321008] Mon, 27 May 2013 20:57 Go to previous messageGo to next message
Shanga

 
Messages:3516
Registered:January 2000
Location: Danubia
One important factor that has rarely been mentioned is the "learning" ability of the AI. Let's take a simple scenario:

OLD AI
You set a mine trap.
Enemy squad rushes in, mines explode, out of 9 enemies only two are left alive.
At this point, in a normal game, the enemy would push on like zombies and get slaughtered.

WHAT I EXPECT
First, with an improved AI, the enemy should try retreat asap.
Second, if you fail to kill them all and at least one enemy makes it out of the combat, they should "smarten up". So next squad will "know" where the mines were and the location of your mercs (the visibile ones) and plan accordinglyl.


Re: Let's start talking about game mechanics: Artificial Intelligence[message #321011] Mon, 27 May 2013 21:27 Go to previous messageGo to next message
Taro_M

 
Messages:297
Registered:November 2008
If you want to see a decent micro AI then take a look at Arma 2. Particularly with mods the AI soldiers do a lot of smart things like suppression fire, flanking etc. There is a one mod called HETMAN Artificial Commander that added an overseer to the army that simply tells a group to go somewhere/ attack a unit/scout etc. The thing is HAC only issues generic commands and leaves carrying them out to the micro level AI.

So I think that in JAF the overall AI should be divided into hierarchy like this:




General Strategic Command - tells armies with sectors they need to move to

||
\/
General Tactical AI - gathers, analyzes and issues orders to the squads present in the sector. The squads cooperate on macro tactical scale: one squad lies in ambush while other lures enemy in, or flanks etc. If mercs will slaughter the enemies, the GTAI may issue a command to retreat while ordering a squad or 2 to begin delaying action to cover the retreat

||
\/
Squad Based AI - Each squad member has his own orders to carry out: snipers get the high ground, MG gunners suppress, medics bandage wounded soldiers, generally squad keeps close or at least operates in buddy system

||
\/
Individual AI - this AI governs each soldier: what stance should he use, when to reload, cover from fire, run in panic etc.

[Updated on: Mon, 27 May 2013 21:27] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #321013] Mon, 27 May 2013 21:39 Go to previous messageGo to next message
Taro_M

 
Messages:297
Registered:November 2008
Example:

General Strategic Command wants to recover Drassen so it sends several groups in there.
The groups arrive in Drassen, but they do not have any contact with mercs or militia.
General Tactical AI needs info on situation, before it can begin issuing orders. So GTAI decides to begin gathering information, it orders a squad to scout the area, while it has rest of the squads establish defensive perimeter. The recon squad sends sniper first onto some elevated ground to cover other squad members and so sniper can use scope to check for the enemy. If there is still no contact the whole squads begins careful and stealthy advance. Once contact has been made the recon squad retreats.
GTAI now has the info about the mercs location, discovered numbers so it can begin issuing commands to the rest of the squads based on information it has available.


The conversation between each AI levels looks like this:


Soldier A says: I have a scoped sniper rifle.
Soldier B says: I have ghillie suit and binoculars.
Soldier C says: I like pancakes!

Recon Squad Leader says: I have a sniper, a guy in ghille suit with binoculars and a rifleman.

GTAI says: I need an info how to carry out the attack on the sector. Recon squad check things out and rest of you stay put.

General Strategic Command says: I need that sector.

[Updated on: Mon, 27 May 2013 21:49] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #321016] Mon, 27 May 2013 21:54 Go to previous messageGo to next message
Shanga

 
Messages:3516
Registered:January 2000
Location: Danubia

What can i say but GIMME GIMME GIMME!


Re: Let's start talking about game mechanics: Artificial Intelligence[message #321029] Mon, 27 May 2013 22:57 Go to previous messageGo to next message
whoami

 
Messages:73
Registered:May 2009
Location: Russia, Uljanovsk
http://ja2.su/opensours/redactors/jz/NightOps/AI.png
Re: Let's start talking about game mechanics: Artificial Intelligence[message #321032] Mon, 27 May 2013 23:29 Go to previous messageGo to next message
Shanga

 
Messages:3516
Registered:January 2000
Location: Danubia
@whoami - that's the layout you guys tried for the improved JA2 AI?


Re: Let's start talking about game mechanics: Artificial Intelligence[message #321039] Tue, 28 May 2013 01:17 Go to previous messageGo to next message
whoami

 
Messages:73
Registered:May 2009
Location: Russia, Uljanovsk
Shanga
that's the layout you guys tried for the improved JA2 AI?
no, it's just a imagination after Taro's post Smile
http://ja2.su/opensours/redactors/jz/NightOps/AI_2.png

[Updated on: Tue, 28 May 2013 07:26] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #321057] Tue, 28 May 2013 07:52 Go to previous messageGo to next message
whoami

 
Messages:73
Registered:May 2009
Location: Russia, Uljanovsk
Individual AI
_____________

1) Human's properties of soldier:
- brave (0..4)
- cautious (0..4)
- persistency (0..4)
- initiative (0..4)
- agressive (0..4)


2) effect in situations:
"Under fire"
- "brave" - not worried about the danger
- "cautious" - cancel all orders and lie
- "persistency" - continue to obey orders
- "initiative" - find nearest cover and go there
- "aggressive" - cancel all orders and enters into a firefight


"Seek enemy"
- "brave" - shoots immediately
- "cautious" - firstly he sit/lies and then shoot
- "initiative" - if position is not good, he find good position and shoot


"Enemy is gone"
- "cautious" - will not pursue the enemy
- "initiative" - he throws some grenades/ shoot RPG in last position of enemy
- "aggressive" - will pursue (not far)

[Updated on: Tue, 28 May 2013 07:54] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #321068] Tue, 28 May 2013 12:20 Go to previous messageGo to next message
whoami

 
Messages:73
Registered:May 2009
Location: Russia, Uljanovsk
Scenarios...

For example, AI send forces to map "I8.dat". Okay, AI choose random scenario of assault from :
Data|Maps|I8|Assault1.[b]XML[/b]
Data|Maps|I8|Assault2.XML
Data|Maps|I8|Assault3.XML
...
Data|Maps|I8|AssaultN.XML

Data|Maps|I8|Ambush1.XML
Data|Maps|I8|Ambush2.XML
...
Data|Maps|I8|AmbushN.XML

Data|Maps|I8|Defense1.XML
Data|Maps|I8|Defense2.XML
...
Data|Maps|I8|DefenseN.XML

____________________

Yes! Modders can change/add this scenarios, using MapEditor or Notepad (XML-format is "plain-text")

It's like "Rainbow Six" waypoints - user creates a scenario, and AI just release algoritm. No brains needed - just be precious. Modders will create various reconstruction-battles: El-Falluja, Baghdad, etc. Each historical battle modder can reconstructs, using waypoints for AI-soldiers.

In scenarios must be customizable "Event-trigger", for example: if AI losts are 50% of peoples, then it changes current scenario to "Scenario_X", etc.
Modder can create various scenarios-events for al circumstances: "gamer uses many sniper rifles", "gamer uses many heavy weapons", "gamer hasn't heavy weapons", "mercs here are weak", "mercs here are strong", "gamer use ambushes (hiding often)", "gamer fights openly", etc.
If Tactical AI during another turn realize what situation="gamer uses many sniper rifles", then he change default scenario for map to specifically developed for this situation "I8_Anti-sniper.XML".
It's seems that AI has brains, but it's just various scenarios.
Human-modder has more brains, then Nano-Super-256-core-X-duo processor.
______________________________

assaultN.xml:
______________________________
GroupsNum = 3

[Equipment]
Group1.Soldier1 = M16;556x30;556x30;556x30;556x30;M67;M67;M67;M67;M9;919x15;canteen
Group1.Soldier2 = M249;556x100;556x100;M67;M67;M67;M67;canteen;smoke
Group1.Soldier3 = M16;556x30;556x30;556x30;556x30;M67;M67;LAW;M9;919x15;canteen
Group1.Soldier4 = M40A1;76251x5;76251x5;M67;M67;M67;M67;M9;919x15;canteen

Group2.Soldier1 = ...
...

[Waypoints]
Group1.Soldier1 = 31,45; 48,56; 68,34;...; aim 251,47;
Group1.Soldier2 = 31,45; 48,56; 68,34;...; smoke 127,36; 132,45;...
...

[Updated on: Tue, 28 May 2013 12:54] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #321084] Tue, 28 May 2013 19:13 Go to previous messageGo to next message
Taro_M

 
Messages:297
Registered:November 2008
My problem is that your solution requires handholding AI by map designers. In my opinion the good AI should be capable of dealing with situation where it has no set waypoints.

If your idea is implemented, then AI should have the ability to put those waypoints itself if none is present. It should be able to do a basic sweep and clear with good degree of competency.
Re: Let's start talking about game mechanics: Artificial Intelligence[message #321115] Wed, 29 May 2013 07:47 Go to previous messageGo to next message
whoami

 
Messages:73
Registered:May 2009
Location: Russia, Uljanovsk
2Taro:

http://www.gamespy.com/pc/fear/698080p1.html
______________________________________________________________

"F.E.A.R.'s AI Demystified
By William Harms | Mar 23, 2006
Monolith's Jeff Orkin pulls the veil back and shows how F.E.A.R.'s AI really worked.

One of the more promising conferences at this year's GDC had the title of "Three States and a Plan: The AI of F.E.A.R." Ostensibly, the panel had the goal of showing how Monolith crafted the outstanding AI for its horror-themed shooter. And while Monolith's Jeff Orkin spent a lot of time discussing the benefits and risks of Finite State Machine and A* and other techno babble, some rather enlightening facts came out.

First of all, the AI powering F.E.A.R. was based around the idea of giving the AI a need. As illustrated by Orkin, this need could take the form of Alma (the creepy little girl in F.E.A.R.) being hungry and wanting to eat, but in terms of the game, this means something like "see player, attack player, find cover." The actions that the AI could take to satisfy its need are strung together and happen based on the player's actions; each action the AI can take is assigned a "cost" and the AI goes for the least expensive action.

As demoed by Orkin, the AI sees the player and wants to kill the player. The AI then runs through its possible actions, like take cover, attack, or melee-attack. The player fires on the AI and the AI looks for cover; once behind cover, the AI will take note that the player is aiming his weapon at it, so the AI will try to suppress the player by firing blindly.

This is fairly cool, but the additional revelations made by Orkin were definite "gotcha" moments. Monolith fully integrated this system with the enemy's dialogue and game environments in an effort to create the illusion that the AI was smarter than it actually is. F.E.A.R. was widely lauded for the ability of its soldiers (both singly and in squads) to flank the player. In reality, the AI wasn't flanking at all -- it was moving from one cover area to another cover area. Because of the skill exhibited by the level designers, that next cover area was to the side of the player's location (or where the designers assumed the player would be), so when the AI moved to that location, it created a seamless illusion of the enemy flanking you.

Adding a final layer to the illusion was the notion that the AI called for reinforcements. As the player slugged it out with the game's bad guys, one of them would call out for reinforcements. Then, when the player moved forward, they would come across an enemy squad rushing toward them. The squad was always there, regardless of whether or not reinforcements were actually "summoned," but because of the dialogue, the player creates a connection that really isn't there.

It was truly fascinating to have the curtain pulled back and be given a peek at how F.E.A.R.'s AI really worked."
Re: Let's start talking about game mechanics: Artificial Intelligence[message #321143] Wed, 29 May 2013 21:08 Go to previous messageGo to next message
Taro_M

 
Messages:297
Registered:November 2008
My response;

Arma 2 + ASR_AI + TPWCAS + HETMAN

^this is where AI really analyzes its surroundings and comes up with a plan. Sometimes its not a smart plan, but with HETMAN it deals pretty well in situations where map mapmaker did not set any kind of advanced waypoints. All that is need to be done is to tell HETMAN what area he needs to capture and then just watch the magic happen. Just one point.

[Updated on: Wed, 29 May 2013 21:09] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #321154] Thu, 30 May 2013 00:08 Go to previous messageGo to next message
whoami

 
Messages:73
Registered:May 2009
Location: Russia, Uljanovsk
Taro
this is where AI really analyzes its surroundings and comes up with a plan.

Man, I'm agree with you. But... look at this company:
http://www.jaggedallianceflashback.com/wp-content/uploads/Magic_moment.png

It's like a "indy-games" developer. They do not money for developing Analizing AI. Let's be honest: $368000 = "story+mercenaries+guns+jokes". It's all. Maybe, if "JA:F" will be successful, DLCs will have more smarter AI.

I know that "waypoints" it's sucks, but it costs less than truly "thinking" AI.
Re: Let's start talking about game mechanics: Artificial Intelligence[message #321157] Thu, 30 May 2013 00:20 Go to previous messageGo to next message
Flugente

 
Messages:3416
Registered:April 2009
Location: Germany
The 'waypoint' idea isn't really feasible to a JA game imho. Due to the campaign's non-linearity, we don't even know from what direction the player will come, let alone the size of his forces etc.. Any AI based on 'waypoints' or simpl reaction scripts will fail in JA.


Re: Let's start talking about game mechanics: Artificial Intelligence[message #321170] Thu, 30 May 2013 03:46 Go to previous messageGo to next message
Cyborg

 
Messages:38
Registered:November 2006
Location: Europe
Realistically the JAF AI will be built on an existing framework, be it from Spacehulk or something else. Furthermore, the JAF maps will probably be quite a bit more complicated than anything they've done before in terms of terrain and size than anything they've handled before.

I think "wapoints" in some form are probably not the worst idea. Not all areas on a map are equally valuable. The AI needs some way to know which are the key points it must hold, or patrol between, or attack.

I think one also has to keep the different AI's apart.

First, there's a spawning AI, i.e. how are the troops placed. Here I hope there will be a system where the map designer can have a big influence if desired. Ideally the map designer should be able specify what weapon type is placed where (no SMG's on roofs f.e.) and also specify behaviour types, (f.e."guard" means the AI doesn't move more than xxx tiles from spawn) and groups (Patrol group 1 has a 60% chance of going waypoint route 1-2-3, 30% chance 4-5-2, 10% of holding position etc.)

So one should be able to:

- define spawn points, either specifying how many bots spawn, or what % of total
- define waypoints (ideally with a hierarchy, i.e. which waypoints have which value and if a high value point has nobody, people from a low value point will be diverted.)
- define groups (they share behaviour and waypoints and always stay within radius x of each other)
- assign a behaviour to a spawnpoint or a waypoint
- define weapon type of spawn point

If the map designer doesn't want the work or it's some wilderness, some default generator type of distribution and behaviour come to bear like in JA2. As long as the player is not spotted the bots follow their scripts.


Then there's the combat AI, this includes the tactical bias, offensive or defensive. If offensive, i.e. in attack on a sector, behaviour can be as simple as going the shortest route to the nearest waypoint with value above xyz. If there are multiple points it picks one at random. If defensive, the bots stick to their spawn scripts.

What do the troops do when in contact. Some form of cover sytem, suppression and movement as well as certain scripted behaviours based on what weapons they spawn with and their behaviour type is I think the best one can realistically hope, i.e. an upgraded JA2 that hopefully gets improved over time. I think one should also try to find counters to the more blatant player exploits, f.e. shoot and let them come, sniper from afar etc.


Then there's the combat behaviour after LOS loss. What happens when the AI no longer sees any player units but combat hasn't ended? This I think might be one of the most complex parts since it should ideally be reactive but not exploitable. Ideally, this is linked to the tactical AI. If on an attack, movement continues to it's goal, if in defence and an important waypoint has been lost it will send someone to investigate or send it's reaction group in a counterattack.


In general I really don't expect much above JA2 level, but maybe with some map designer help and the ability to assign some behaviour templates to spawn points and groups the AI can seem much more intelligent.

I'm aware that such a setup might be very work intensive, since each sector will have to be done individually, and there may well be 30-40 sectors needing a lot of attention, but here I think there's really a lot of scope for the community to improve the game at a later date. If the spawn file could be externalised, a lot of replay value could be gained simply by dropping in a new script file.

[Updated on: Thu, 30 May 2013 03:55] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #321180] Thu, 30 May 2013 06:34 Go to previous messageGo to next message
DaethWalker

 
Messages:101
Registered:September 2003
Location: Rocky Point, NC
Quote:
Since we are building the game based on our existing core technology for turn-based games, every penny donated in the Kickstarter will go to create the Jagged Alliance experience and not re-invent the wheels. Funds will be used to writing the story, making great environment art, adding mercenary characters and animations, building cool levels and programming Jagged Alliance game mechanics into our technology base.


My impression is they will basically go with what they have been using. It will of course be better than the turned-based games they've already done, including SpaceHulk. And they will use basic AI from both the JA games and the various mods.

Which I can live with. If they can tweak the AI to at least the level of the better mods, we'll have a pretty good game. They are limited to what they can do and still stay within budget.
Re: Let's start talking about game mechanics: Artificial Intelligence[message #321958] Tue, 25 June 2013 00:50 Go to previous messageGo to next message
Akodo Deathseeker

 
Messages:104
Registered:March 2001
Location: St Paul, MN
I think the waypoints could work.

Regarding the dynamic of entering the map from different directions...You simply have waypoint option N,S,E,W based on the direction of invasion by the mercs. I'd bet that in many cases only a few waypoints would need to be changed.

Another potential waypoint would be the 'fallback' spot. The map designer would hopefully choose some place where they would have good cover and a good chance of an interrupt. Based on parameters such as how many of his squad-mates were still alive, how wounded he was, and how he scored on brave, cautious, etc, the enemy moves to this waypoint.

This simulates a soldier running to a last-ditch area. Now you the merc have to go 'clear them out' of whatever hidey hole they are in, and probably right into some sort of interrupt ambush, with the hope that this enemy tactic causes some nail-biting stress as the mercs look for him. Much more than 'hey there are 10 guys shooting at us'...'now there are only 5'...'now there is only 1' (and he is just sitting behind cover shooting, or he is stupidly running in a straight line for the edge of the map)
Re: Let's start talking about game mechanics: Artificial Intelligence[message #322697] Sun, 14 July 2013 10:00 Go to previous messageGo to next message
Harper

 
Messages:149
Registered:June 2003
Location: Germany
1. I think that an AI shouldn't be too complicated. That is: it neither can nor should create optimal behavior, nor should it try to immitate the player's way of reasoning, analyzing the field and decision-making.
2. Rather, I think that the AI should consist of a set of simple heuristics that drive action of a single unit in any given situation.

Example for a simple loop:
1 - if in range for using a weapon, use the weapon at [closest or most dangerous] enemy, otherwise proceed
2 - proceed [to closest enemy]
3 - if in turn base mode and if proceeding, save AP for action

So what needs to be done at the beginning of each loop is a check:

0 - check the environment: events, enemies, status of [closest] friendly unit

Action is generated depending on observance of events, enemies, and the status of friendly units.

When it comes to an AI, I think what most people mean is that a single unit should act on more or better information than the unit itself can directly obtain. E.g. one unit has information about the player's whereabout the other units don't have. I think in this case, it's sufficient if in the information a unit has becomes shared information, thus determining where the closest enemy is.

Thus, I do not think that there needs to be a group action like "flanking". In terms of individual action, "flanking" means that if unit 1 spots a different unit 2 being engaged in combat, it stops moving towards unit 1 (it does no longer proceed directly towards a target), but rather moves around unit 1 (e.g. "turn 90 degrees left, proceed x tiles and so on, turn 90 degrees right, proceed x tiles and so on").

[Updated on: Sun, 14 July 2013 10:00] by Moderator

Re: Let's start talking about game mechanics: Artificial Intelligence[message #326736] Fri, 18 October 2013 03:28 Go to previous message
Mauser

 
Messages:781
Registered:August 2006
Location: Bavaria - Germany
One crucial point to improve AI on a basic level would be, to make the indivicual AI soldiers behave appropriately according to their equipment/combat role. A sniper should move and act differently than an assaulter or supporter, i.e. seek the high ground, stay back and use his range and scope to spot.
A machinegunner should go prone at the first enemy contact and make extensive use of suppressive fire.

Generally speaking, enemy AI should make way better use of movement types and stances.
For any trained soldier, the first priority upon enemy contact would be to seek the best cover available or, in lack thereof, drop prone to minimize target size for the enemy, and only pop up quickly for shooting, then drop back down again.

In a squad, leapfrogging would be the preferred way of tactical movement under fire. One part of the team provides covering fire, the other part moves from cover to cover. Another tactic would be, to stay prone and crawl towards an enemy position where there is little to no cover, except for some low foliage or grass. Also, once the Ai has made a tactical decision, it should try to stick with it for a couple of turns, for there is nothing worse than seeing an AI soldier constantly changing stances and movement without any discernible plan or continuity, making him appear like a headless chicken.

Those are all behaviours which could be rather easily scripted into the individual AI and would improve the tactical realism and illusion of enemy intelligence a lot.

Also, those tactical roles and behaviours could be modified by a general offensive/defensive stance, making the overall AI on a map more agressive/risk seeking or defensive/static.

And last but not least, the experience level of the AI soldier could also influence, how much and competent he makes use of all those factors and possibilities.

All of this can be done by a rather basic scripted AI i reckon.

☆★GL★☆
Previous Topic: Question about AP system.
Next Topic: Let's start talking about game mechanics, shall we? (Cover)
Goto Forum:
  


Current Time: Sun Oct 21 22:01:51 EEST 2018

Total time taken to generate the page: 0.01619 seconds