Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (581)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2 3
  ignore  |  Print  
  Random thoughts: Extreme speed 2D physics  (Read 8941 times)
0 Members and 1 Guest are viewing this topic.
Offline theagentd
« Posted 2012-04-27 11:36:45 »

TL;DR: How do I detect collisions between meter-sized objects moving tens of kilometers per second in arbitrary directions? =S


Let´s say we theoretically have a 20x5 meter sized (2D) space ship in orbit around the Earth. It´s currently flying at around 7 km/sec relative to the Earth in a clockwise orbit. However, Earth is a mean bastard and launches a 4x1 meter sized missile to take out our poor little space ship. The missile enters an unstable orbit COUNTER clockwise around the Earth and attempts to intercept the ship. Its very fast and reaches a speed of around 13 km/sec while accelerating. With the relative speed between the ship and the missile is between 15 and 20 km/sec depending on the angle the missile is coming from, and I want it to be possible to for this collision to happen.

However, it get´s worse. The simulation is sped up so that one day in real life is one year in simulation time. The simulation is however run at 30 updates per second, which gives us a time step of 365/30 = around 12 in-game seconds per update. This is low enough to simulate accurate stable orbits, but obviously not for doing traditional collision detection by detecting intersections between geometry since the ship and the missile will move over 20km relative to each other in one update. Doing many smaller updates, even for just a subset of all bodies, is not practical due to the several thousands of steps needed to detect.

Detecting collisions would be done in multiple stages. The first stage could be a quad tree to filter out most bodies. We could then do a bounding box collision test between AABBs of the movement lines. Then we could do a line intersection test between the two movement lines, and finally more sensitive tests to determine exactly exactly where the missile hit the ship, so we can calculate a collision response. However, this is can pose BIG problems. What if the collision causes the ship to completely change course and should have hit another nearby body? Since we still complete a full time step before applying new forces the body will end up several kilometers away from it´s correct position.

To solve this I´m going to rely on assumptions. For example, when the speed difference is big enough we can safely assume things based on the properties of the bodies. In the above case we can easily predict that any detectable collision between the missile and the ship will detonate the missile, disintegrating both the ship and the missile due to collision forces, the missiles´s payload and the ship´s weapons/reactor exploding. As long as the collision is detected, collision response is very easy.

Another case would be if a a rail gun or gauss cannon launched a small projectile at an insanely high speed (30+ km/sec) towards the ship. Again, assumptions can easily be made. The bullet will most likely pass straight through the ship with a very low loss of velocity (though with potentially fatal damage to the ship), or be absorbed by the shields of the ship the ship is equipped with shields, in which case the kinetic energy of the bullet is pretty low compared to the mass of the ship, so it will be very hard to find a case where this leads to a missed collision. In short, we rely on the fact that a collision either generates a low enough force that it doesn´t matter much or that the generated force destroys the body. It´s in space, and spaceships aren´t really known for being strong or being able to handle X km/sec collisions well. xD

One problem with this idea though is that "destroyed" does not implied "disappeared". The ship might break up into parts of debris which could tunnel through other bodies if the collision occurs just in front of them. For example: We have 1 ship going in clockwise orbit and a small probe followed by a 5 km long battle cruiser going counter clockwise. The simulation accurately detects a collision between the probe and the ship, and both heavily break appart and continue in their current directions. The debris from the ship would possible spawn behind the battle cruiser since the battle cruiser very likely has passed the point where the probe and the ship collided by the next time step. Creating the debris in-between the time steps (= create an extra time step) would force us to rewind the whole simulation to the time of the collision which will perform terribly, be very difficult to implement and possible cause pathological scenarios when a collision requires undoing collisions that were detected earlier, e.t.c.


Uh, this kind of ended up with me just brain storming my ideas here. The TL;DR question still stands though, how would you do this?

And here´s a question to the physics pro´s out there: Kinetic energy depends on velocity square, but velocity has always been relative to a fixed point in the system. For example, a rocket taking off from Earth. In this case the rocket starts at 0 m/s and accelerates upwards. The faster it goes the more energy is needed to accelerate it more. However what happens if we use a velocity relative to the sun? The Earth is blasting through space at an insane speed compared to the speed of the rocket. That would mean that the rocket isn´t accelerating from 0 to 11 km/sec to get into orbit, but maybe 100 to 111 km/sec, or even "accelerating" from 100 to 89 km/sec depending on where on Earth the rocket is launched. Guys, did I break physics?

Myomyomyo.
Offline Roquen
« Reply #1 - Posted 2012-04-27 11:47:56 »

QuadTree vs. Uniform Grid:  depends on your average case distribution of object.  Also reasonable to have a forest of these if the world is big rather than "one" structure.  In either case if the number of thing is high you would want to walk in a sweeping order.  Other fine tuning factors include (like say for a uniform grid) storing cells in flat primitive arrays store in Z-curve or hilbert-curve order.  Data for bounding volumes is stored in these as well (linear walks of memory)..enitiy pointer or index is stored in aux data and only noted for the later fine grain collision.

Fast moving:  swept circles.
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #2 - Posted 2012-04-27 11:50:28 »

The faster it goes the more energy is needed to accelerate it more.
It takes the same amount of energy to accelerate from 0 to 1 m/s, as it would take to accelerate from 10000 to 10001 m/s.

This only falls apart once we reach speeds where Newtonian physics are no longer accurate.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline theagentd
« Reply #3 - Posted 2012-04-27 12:22:38 »

The faster it goes the more energy is needed to accelerate it more.
It takes the same amount of energy to accelerate from 0 to 1 m/s, as it would take to accelerate from 10000 to 10001 m/s.

This only falls apart once we reach speeds where Newtonian physics are no longer accurate.

o_O? E = mv^2 ---> E/m = v^2 ---> v = sqrt(E/m)Huh
I will obviously stay with Newtonian physics, but...

Myomyomyo.
Offline Stranger

Senior Member


Medals: 6



« Reply #4 - Posted 2012-04-27 12:54:50 »

E = mv^2 ---> E/m = v^2 ---> v = sqrt(E/m)Huh

IIRC, E = 1/2mv^2  ...  Smiley

Anton
Offline Danny02
« Reply #5 - Posted 2012-04-27 13:00:31 »

the thing is that while accelerating from 0 to 1m/s the mass has to fly a much shorter ways as if it gets accelerated from 100 to 101m/s.

And always remember everything is relative, accelerating from 100m/s to 101m/s while standing on train which goes 100m/s needs the same energy as accelerating from 0 to 1m/s, or something like that
Offline theagentd
« Reply #6 - Posted 2012-04-27 13:50:12 »

True, my bad.

the thing is that while accelerating from 0 to 1m/s the mass has to fly a much shorter ways as if it gets accelerated from 100 to 101m/s.

And always remember everything is relative, accelerating from 100m/s to 101m/s while standing on train which goes 100m/s needs the same energy as accelerating from 0 to 1m/s, or something like that
That makes no sense.

Myomyomyo.
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #7 - Posted 2012-04-27 15:11:08 »

o_O?

I presumed the reference frame was the rocket itself (it has it's own propulsion!). When standing on the (surface of the) sun, it would indeed take incredible amounts of energy to accelerate that rocket, if that is your reference frame, which it isn't.

The fact that the rocket iself is the frame of reference, explains why satellites can have a constant acceleration with an ion-propulsion engine, dispite their incredibly high (and ever increasing) velocity.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline theagentd
« Reply #8 - Posted 2012-04-27 15:24:09 »

o_O?

I presumed the reference frame was the rocket itself (it has it's own propulsion!). When standing on the (surface of the) sun, it would indeed take incredible amounts of energy to accelerate that rocket, if that is your reference frame, which it isn't.

The fact that the rocket iself is the frame of reference, explains why satellites can have a constant acceleration with an ion-propulsion engine, dispite their incredibly high (and ever increasing) velocity.
Heh, I took a look at Wikipedia, and my head does not approve. How can something energy depend on what reference frame you pick?! I am confused... I blame it on not having gone to uni yet! xD

Myomyomyo.
Offline Roquen
« Reply #9 - Posted 2012-04-27 15:30:52 »

1) Particles are waves and waves are particles.
2) Energy is mass and mass is energy.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #10 - Posted 2012-04-27 15:37:44 »

1) Particles are waves and waves are particles.
2) Energy is mass and mass is energy.
Energy can manifest itself as mass, and (hence) mass is energy.


As:
   E=mc2
but that doesn't mean that
   m = E/c2
is always true.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #11 - Posted 2012-04-27 15:55:38 »

How can something energy depend on what reference frame you pick?! I am confused... I blame it on not having gone to uni yet! xD
The is no such thing as absolute velocity. We cannot measure at which speed we're traveling through the universe.

So, velocity is relative (to a moving point is space).

What follows is that the 'v' in E=1/2mv2 is relative to some reference frame, and thus the kinetic energy of an object can be wildly varying for n observers.



This analogy is probably flawed (!), but I imagine it like this:
Let's say you move (accelerate!) 1kg of mass 1 meter in 1 second (you applied 1 Newton). That 1kg mass will continue to move at 1m/s.

To accelerate that 1kg again, you have to expend energy to move yourself near the object (near its frame of reference), to give it another push. The faster it goes, the faster you have to move to exert that force for one second. The alternative is that you apply the force in a shorter timespan, but the energy required grows exponentially (as the acceleration is measured in m/s2, and 's' gets smaller).

1  
2  
3  
4  
5  
6  
7  
8  
force = mass * acceleration
acceleration = meter / sec / sec

mass * meter / sec / sec = force


1kg * 1m / 1.0s / 1.0s = 1N required for acceleration in 1.0s
1kg * 1m / 0.1s / 0.1s = 100N required for same acceleration in 0.1s


Now somebody please correct me.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline Roquen
« Reply #12 - Posted 2012-04-27 16:09:34 »

Energy can manifest itself as mass, and (hence) mass is energy
Is this stuff too many year behind me?  I was thinking rest vs. relativistic mass.
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #13 - Posted 2012-04-27 16:12:49 »

Energy can manifest itself as mass, and (hence) mass is energy
Is this stuff too many year behind me?  I was thinking rest vs. relativistic mass.
Oh. Probably me being silly then.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline sproingie
« Reply #14 - Posted 2012-04-27 18:12:24 »

Today's lesson is special relativity.  I love this forum Smiley
Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #15 - Posted 2012-04-30 13:18:10 »

For the simulation question, non of these speeds are insane, most serious orbital mechanics stuff should handle that and collisions. However there are some very nice tricks.

First of all the time integration method really matters. For mostly ballistic trajectory (99.9% of real space stuff) it is better to use a reversible time step method rather than a high order one. So leap frog for example rather than 4th order RK methods.

Next is dealing with round off and other errors. In your case you probably don't need to care. But long term stability simulations track errors.

However this means that most simulations use very large "bounding spheres" where the sphere is much larger than the bounds. This deals with numerical errors better and this is why earth has a chance of getting hit by a asteroid. Of course i am simplifying a bit here. But for a game, a bounding tube from the last time step based on the bounding sphere is going to good enough. Even for not a game, as a first cut or for first order accuracy you won't do better.

Physics!
As for the Physics..... well I love confusing my students with these types of questions. It gets even the smart students.

The point to remember is the the *result* is the same in all frames of reference (energy is conserved etc). Also what a frame of reference *is* does in fact change some rules. For example a rotation frame of reference, the best example is a reference frame fix to somewhere on the surface of the earth. You get an extra acceleration term, the Coriolis force.  But i digress.

Another good one is that a rocket can go quite a bit faster than its exhaust velocity.  With a mass ratio of 20, its about 3x faster!

If you run the numbers properly you do get things that work consistently. For example, work done in each frame is not the same since work is F x d.  With a rocket, in the initial inertial frame of reference, once the rocket is moving, the remaining fuel has both non zero kinetic energy and momentum.

I could go into in detail if you want.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline theagentd
« Reply #16 - Posted 2012-04-30 14:48:21 »

I´m planning on using Verlet integration, though I have tried both Verlet and RK4. Verlet is much faster and the accuracy is good enough with the above time step. RK4 also behaves very differently when the time step is too large. With a non-circular orbit the whole orbit starts to rotate around the body, while RK4 simply loses energy and crashes after a while. Luckily, the ship will enter the atmosphere of the planet, and air resistance hides both these problems.

Long term stability isn´t too important as long as the moon does not crash into the Earth after a few hundred years. I need some more experimentation with this, but otherwise I don´t think that´s a problem. xD

Like I said I´ve already experimented some with integration, so that problem is pretty much solved. I´d like to focus on actually detecting and handling collisions instead, but all tips are welcome! For example, what´s leap frog? =S


Myomyomyo.
Offline Roquen
« Reply #17 - Posted 2012-04-30 14:49:44 »

Speaking of reversible methods.  I do in fact have some reversible 32 & 64 bit LCG RNGs if anyone want to toy with crazy stuff.
Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #18 - Posted 2012-04-30 16:24:05 »

leap frog is a special type of verlet integration. As in reversible. That is, it is easy to simulate backwards and get to the original starting state. Even with a 100 years (3000 orbits) small errors really add up if you simulate the full system rather than a approximation. But if it an't broke don't fix it.

I would still just go for intersecting cylinders for collision detection. The math is fairly straightforward even in 3d at least with Cartesian coordinates. Which is what i would use.

So no extra physics?  Undecided

I have no special talents. I am only passionately curious.--Albert Einstein
Offline theagentd
« Reply #19 - Posted 2012-04-30 17:49:52 »

Speaking of reversible methods.  I do in fact have some reversible 32 & 64 bit LCG RNGs if anyone want to toy with crazy stuff.
Huh

leap frog is a special type of verlet integration. As in reversible. That is, it is easy to simulate backwards and get to the original starting state. Even with a 100 years (3000 orbits) small errors really add up if you simulate the full system rather than a approximation. But if it an't broke don't fix it.

I would still just go for intersecting cylinders for collision detection. The math is fairly straightforward even in 3d at least with Cartesian coordinates. Which is what i would use.

So no extra physics?  Undecided
Extra physics?

Myomyomyo.
Offline Roquen
« Reply #20 - Posted 2012-04-30 18:49:23 »

Speaking of reversible methods.  I do in fact have some reversible 32 & 64 bit LCG RNGs if anyone want to toy with crazy stuff.
Huh
Normal RNGs only allow you to run forward in the sequence (cause that normally all you'd want to do).  These let you run in either direction.
Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #21 - Posted 2012-04-30 21:25:49 »

Quote
Extra physics?
Yea, like if you are on a train and throw a ball with 50J of KE (10m/s) why does the guy at the station think you added 10m/s to 100m/s for a grand total of 110m/s there by adding over 2kJ of KE?

I have no special talents. I am only passionately curious.--Albert Einstein
Offline theagentd
« Reply #22 - Posted 2012-05-01 04:18:15 »

Speaking of reversible methods.  I do in fact have some reversible 32 & 64 bit LCG RNGs if anyone want to toy with crazy stuff.
Huh
Normal RNGs only allow you to run forward in the sequence (cause that normally all you'd want to do).  These let you run in either direction.
Okay, but I don´t think I need to be able to reverse it... xd

Quote
Extra physics?
Yea, like if you are on a train and throw a ball with 50J of KE (10ms) why does the guy at the station think you added 10ms to 100ms for a grand total of 110ms there by adding over 2kJ of KE?
Still kind of unsure what you mean... =P Yes, a ship can shoot a projectile which from the point of view of the ship has a low amount of kinetic energy but which might have high kinetic energy from another view (just like your train and station example). Everything will use the same frame of reference, namely the sun (which "stands still").

Myomyomyo.
Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #23 - Posted 2012-05-01 10:21:59 »

It does not matter what the frame of reference is. The rules are the same... Really i was asking to more or less derail the thread into a physics discussion.

Spot the really cool guy who loves physics!  Smiley

Lets start with a train traveling at 100m/s. In one carriage a dude (or dudette) throws a 1kg ball at 10m/s. He/She calculates that the ball has 50J of Kinetic energy. Thus they spent 50J of energy throwing the ball. However at the station dude B who sees that the ball is accelerated from 100 to almost* 110m/s which gives .5*m(110^2-100^)=1050J, wow that one heck of an arm you got there. In fact since you know the max energy from an arm is 50J it looks like you have got some free energy!

However dude B has forgot something. Conservation of momentum. If we are in the train frame, momentum is not conserved since it is transferred to the train, ie we are pushing on a infinite sized mass. Note this is *not* a inertial frame of reference.

So now we need to add an assumption. The train is in zero acceleration mode on a perfectly flat surface. ie thrust perfectly balances drag. When someone throws a ball forward they push back on the train. Momentum is conserved and the train will slow down just a little. Lets assume that the ball is throw at 110m/s in the stationary frame (it is really slightly slower). That is an extra 10kg m/s of momentum. The train weights 100T so to gain the opposite amount of momentum it needs to slow down by .0001 m/s with a reduction in KE of 1000J (within 6sf). And we just found the missing KE!

Note that the real speed of the ball is 110-.0001, but that is close enough since its only 1kg.

Being able to change the frame of reference is really important for many calculations as it will make them much easier and more accurate. Almost certainly using the suns frame of reference is a bad idea. NASA simulations switch between the local planets frame to the sun once the spacecraft is far enough away. Typically defined as the distance where both bodies give the same gravitational pull.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline theagentd
« Reply #24 - Posted 2012-05-01 11:57:35 »

Okay, I get the energy part, but what frame of reference(s) am I supposed to use for something simulating the solar system, or even a very small part of the galaxy? Let´s assume that all stars are static and unmovable and that all large natural satellites (therefore excluding small asteroids, debris, e.t.c) is not affected by smaller bodies. In what case would switching the frame of references improve any calculations? This is the first time I´ve heard about using multiple frames of references, so you have my permission to derail the thread to your liking. I also find mechanical physics really interesting. =D

Myomyomyo.
Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #25 - Posted 2012-05-01 12:47:40 »

Well the problem with space is that it is really really big. You may think its a long way down the road to store, but that is peanuts compared to space.  For example from earth surface to the moon is about 400000km, while from earth to the sun is about 150000000 km! So even though there are many things affecting everything, most of the time only one thing is the important one.

Generally in physics we choose whatever frame of reference that makes the math easy. Or more accurate. In orbital mechanics there are a number of simplifications that can add a lot of accuracy.

The basic simplification is to assume the mass of the primary body is much larger than anything else. This means it does not move and is not affected by the other bodies. This is true for say a spaceship and earth, but not for the earth moon system. But you could still use this approximation. It would be accurate enough for a game. But not for real astronavigation. Using this approximation the obvious coordinate frame is earth centered and you can even get analytical formula for the orbits. Then adding perturbations say from the moon, and then the sun. You don't need to change the frame of reference since the strongest forces are still earth centered. 

However if our space ship now starts traveling to mars, once its a fair distance from earth we are better off using a sun centered coordinate system. Again now the largest force in centered and this helps reduce round off errors. Finally once we get close to mars, we can switch to a mars centered coordinate system.

You get the idea. Basically it is about "framing" the problem in a way that makes it easier to solve. For some value of easier.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #26 - Posted 2012-05-01 12:52:21 »

Forgot to add that if you are doing a galactic simulation i would galaxy centered coordinates, almost all the mass is in the center. But you can't then also simulate solar systems on each star without some difficulty. For a solar system sun centered works well enough for many things, but don't forget that say Jupiter moons will have issues if you don't deal with numerical errors.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline Abuse

JGO Coder


Medals: 10


falling into the abyss of reality


« Reply #27 - Posted 2012-05-01 13:01:46 »

Forgot to add that if you are doing a galactic simulation i would galaxy centered coordinates, almost all the mass is in the center. But you can't then also simulate solar systems on each star without some difficulty. For a solar system sun centered works well enough for many things, but don't forget that say Jupiter moons will have issues if you don't deal with numerical errors.

....and when you're traveling through a nebula cloud, you fudge it.  Grin

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 605
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #28 - Posted 2012-05-01 15:36:54 »

Spot the really cool guy who loves physics!  Smiley

Lets start with a train traveling at 100ms.
For somebody who loves physics, you ought to write your units right... 'ms' is milliseconds, 'm/s' is meters per second. Pointing

Call me simple, but until I realized that 'the respected physics guy' used incorrect units, I had no clue what you were trying to say and how to calculate anything with the provided numbers.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #29 - Posted 2012-05-01 15:42:37 »

Well typos and bad spelling go hand in hand with physics....

I have no special talents. I am only passionately curious.--Albert Einstein
Pages: [1] 2 3
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (58 views)
2014-04-15 18:08:23

BurntPizza (56 views)
2014-04-15 03:46:01

UprightPath (69 views)
2014-04-14 17:39:50

UprightPath (52 views)
2014-04-14 17:35:47

Porlus (69 views)
2014-04-14 15:48:38

tom_mai78101 (95 views)
2014-04-10 04:04:31

BurntPizza (155 views)
2014-04-08 23:06:04

tom_mai78101 (250 views)
2014-04-05 13:34:39

trollwarrior1 (206 views)
2014-04-04 12:06:45

CJLetsGame (213 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!