Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (522)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (590)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 ... 3 4 [5] 6
  ignore  |  Print  
  Java port of Bullet Physics Library  (Read 104030 times)
0 Members and 1 Guest are viewing this topic.
Offline jezek2
« Reply #120 - Posted 2009-03-19 09:33:39 »

You initial aim (€1000) will probably only be reached when devs absolutely need this work in they day job, and can convince their boss to invest in a risk: you might or might not be able to 'fix' it, in the timespan allocated for a specific phase in their project.

Good point, I've added offer to do porting as a service. Details here. Also note that the initial aim is bigger because there are many things to do at current state. If successful (at least to some degree) next goals will be fairly smaller.

Don't get me wrong, (and I very well might be wrong...), but it might take a few... years?

Yes, you may be right. The motivation behind this is to allow making JBullet even better than at current development rate which will continue even without donations. However at this rate we will be always several versions behind and many stuff not ported. The porting work is pretty tedious and typically this kind of work doesn't occur in open source and I have feeling that nearly none people are able to steadily maintain this work.
Offline jezek2
« Reply #121 - Posted 2009-04-04 21:44:59 »

New version available on JBullet homepage.

Changes in release 20090404:
- Added ConeShape
- Fixed thread safety issues when running distinct simulations in different threads simultaneously
- Changed back to building of just one library JAR
- Added run configuration for each demo in NetBeans project
- Fixed compilation with JDK 1.5
- Added fix for collision detection bug from Bullet 2.70
- Generalized mesh access interface
- Added ScaledBvhTriangleMeshShape
- Added calculatePrincipalAxisTransform method in CompoundShape

As of current plans, I'm occupied with main projects more than before and I think that there won't be any significant development in half a year (at minimum). If you need some functionality implemented earlier, consider donating, ordering porting service or contributing code.
Offline Rainer

Senior Newbie


Projects: 2



« Reply #122 - Posted 2009-04-27 14:57:43 »

Hi, i'm new to this Forum.
Was searching for a physics engine, to do some things in LWJGL.
First i thought about odejava, but it looks quite dead?
Now i'm happy i found this here, looks quite promising Smiley
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline NewbTon

Junior Devvie




Odejava games rock!


« Reply #123 - Posted 2009-05-12 22:19:07 »

I think it's awesome and impressive that you have done this. But I was thinking wouldn't it have been a lot easier to
just make a binding ? I mean for each version you must look at every method to see if they have changed something, even if method names are the same, the might have changed something deep inside a nested for/next..and to spot that you need eagle eyes.
That must be pure hell, and I can't  imagine anything else than that errors will arise. I know a binding is not as cool, for applets etc. Still it would be easier to maintain..

I also have a question : do your version support joint motors ? (so that I can animate ragdolls)
Offline jezek2
« Reply #124 - Posted 2009-05-13 08:10:42 »

I think it's awesome and impressive that you have done this. But I was thinking wouldn't it have been a lot easier to
just make a binding ? I mean for each version you must look at every method to see if they have changed something, even if method names are the same, the might have changed something deep inside a nested for/next..and to spot that you need eagle eyes.

Thanks, yes it would be easier. Actually I did binding first, but wasn't satisfied with it for following reasons:
- bad API interaction with native stuff
- you need to track objects to destroy instead of just relying on GC
- maintaining and testing native builds for all supported platforms is huge task
- you can't use it in secure (sandbox) environments such as unsigned applets
- there was lack of full-blown pure Java physics libraries (bindings to other physics engines are already present)
- wanted tighter integration with Java to use internal stuff and generally provide more Java-like library

As for porting process, I use tools that allows me to just track changes so it's pretty straightforward to port it.

Basically it was huge short-term investment which returns very much in long-term, I'm already very glad I took this route as it's great to use it in my apps.

That must be pure hell, and I can't  imagine anything else than that errors will arise. I know a binding is not as cool, for applets etc. Still it would be easier to maintain..

I'm very precise when doing the porting, basically I do it manually line by line and there were minimum bugs arised due to porting in early versions. Hunting the bugs was great experience for me as they forced me to think more about Bullet's internals (I discovered most evil bugs by just thinking without using computer after studying the internals), thanks to it I gained very valuable experience how to use Bullet and how the internal things interacts and it definitelly helped me in using the library in my applications. Also learned about many interesting algorithms that can be used in other contexts too.

I also have a question : do your version support joint motors ? (so that I can animate ragdolls)

Joint motors should be supported, check the constraints classes for more detail and demo (Dynamic Control Demo).
Offline NewbTon

Junior Devvie




Odejava games rock!


« Reply #125 - Posted 2009-05-13 12:38:54 »

Great. I understand your motivations for this completely. 
I'll try jbullet soon as possible, maybe switch to that.
I have a little hobby project that currently uses PhysX..but for various reasons I'd like to switch to another engine.
One of the reasons is that it's not pure Java, and that you have to "install" physx..very annoying.
Also another question : in the demo applet, what do you use to render ?
you use JME for the signed webstarts right ?

Also, I don't think you should never give up on this project. Java is in DESPERATE need of a good physics engine. If you're short of time, as we all are, then I suggest that you merge with the bullet team. Make them help you a bit. After all, it's in their own interest as well.

Offline jezek2
« Reply #126 - Posted 2009-05-13 13:59:30 »

Also another question : in the demo applet, what do you use to render ?
you use JME for the signed webstarts right ?

Demo applet uses my own simple OpenGL-like renderer, but I'm not much interested in developing it further, so I'll switch to 3DzzD when I'll have more time (or combine parts of my code with renderer part of 3DzzD).

Webstart demos uses OpenGL directly (by LWJGL), like the original demos from Bullet.

Also, I don't think you should never give up on this project. Java is in DESPERATE need of a good physics engine. If you're short of time, as we all are, then I suggest that you merge with the bullet team. Make them help you a bit. After all, it's in their own interest as well.

I highly doubt I would give up on this project as I depend on JBullet pretty much in my applications. The development can stagnate a little (as it's temporarily now because of lack of time), but I'm always available to answer questions and fix bugs (ie. by porting from newer Bullet versions). Also as the development progresses I use more and more features from JBullet so eventually I may cover big feature set by just using it in my applications so it warrants ongoing porting of new features, albeit at pretty slow rate.

I don't think that merging with Bullet team would be any helpful or even possible, but little interaction occurs both ways (including bug fixing of original Bullet by finding bug in JBullet, me caring about original Bullet and it's users, etc.). As of interests, Java is very low priority for Bullet folks as they're focused to commercial PC/console gaming and Java has not yet much place there (definitely not on consoles). While there is also C# port (very outdated and unmaintained) for XNA so it works on XBOX360, interactions with Bullet team was similar as with JBullet.
Offline LeoMaheo

Senior Newbie





« Reply #127 - Posted 2009-05-13 17:27:51 »

I also have a question : do your version support joint motors ? (so that I can animate ragdolls)

I also use JBullet for ragdoll animation. Works fine, they walk.
Although took long to program them to move their legs somewhat reasonably.
I apply a cheat torque to their pelvis, else they fall.
Initially my ragdolls had no elbow or knee joints. (I thought I should save some CPU by reducing the number of bodies and joints.) This did not work well.

Regards, Magnus
Offline NewbTon

Junior Devvie




Odejava games rock!


« Reply #128 - Posted 2009-05-13 18:40:29 »

how did you make them walk, balance etc ?
OK just read, the cheat force (thats what I do to)..but how do they walk ?
Personally I just make a walking animation..and then I change materials on the fly.
For example, walk forward1 pose, I make left foot super slippery, that way it's like he lifts his foot a bit.
Offline LeoMaheo

Senior Newbie





« Reply #129 - Posted 2009-05-14 17:45:54 »

Hi NewbTon,

If you google for "walk cycle", you might find 4 + 4 images (left leg walking + right leg walking) illustrating 4 + 4 poses a biped takes whilst walking (for example, http://www.idleworm.com/how/anm/02w/walk1.shtml). If you drive the limb-joint-motors towards these poses, and at the same time apply a torque so the biped doesn't fall, then friction feet-ground will entail it moves forwards.

(So, first I try to orient the biped's limb after the first pose. Then, when the biped is reasonably close to this pose, I switch target pose: I apply motor torques to reach the second pose instead. And so on. To determine whether the biped is reasonably close to one pose: One could sum angle errors. Or simply assume it's close enough after having tried to reach that pose in 100 ms. And then switch to the next target pose. For some poses, I switch to the next pose when the appropriate leg makes ground contact.)

I don't know, however, how to make the biped turn around. It's much more complicated movements I think. Perhaps it's better simply to apply a fairly huge cheat torque to the pelvis and head, so that the whole biped rotates (in an unrealistic manner). Then perhaps I should do what you have done, make the biped's feet super slippery, so the feet doesn't get stuck whilst the head and torso rotates 180'.  :-)
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline NewbTon

Junior Devvie




Odejava games rock!


« Reply #130 - Posted 2009-05-15 15:23:20 »

Hi NewbTon,

If you google for "walk cycle", you might find 4 + 4 images (left leg walking + right leg walking) illustrating 4 + 4 poses a biped takes whilst walking (for example, http://www.idleworm.com/how/anm/02w/walk1.shtml). If you drive the limb-joint-motors towards these poses, and at the same time apply a torque so the biped doesn't fall, then friction feet-ground will entail it moves forwards.

(So, first I try to orient the biped's limb after the first pose. Then, when the biped is reasonably close to this pose, I switch target pose: I apply motor torques to reach the second pose instead. And so on. To determine whether the biped is reasonably close to one pose: One could sum angle errors. Or simply assume it's close enough after having tried to reach that pose in 100 ms. And then switch to the next target pose. For some poses, I switch to the next pose when the appropriate leg makes ground contact.)

I don't know, however, how to make the biped turn around. It's much more complicated movements I think. Perhaps it's better simply to apply a fairly huge cheat torque to the pelvis and head, so that the whole biped rotates (in an unrealistic manner). Then perhaps I should do what you have done, make the biped's feet super slippery, so the feet doesn't get stuck whilst the head and torso rotates 180'.  :-)
OK that sounds logical..may I ask what kind of constraints (joints ) you use ? Is it hinge or ball ?
I have this game in PhysX and I'd like to know if it's possible to port it to jbullet:

http://www.youtube.com/watch?v=0wFdmVbFRw8

What's you're opinion on that ?

Offline NewbTon

Junior Devvie




Odejava games rock!


« Reply #131 - Posted 2009-05-15 18:35:17 »

Hey Jesek when I try to run the demos in Eclipse I get this error.
Exception in thread "main" java.lang.Error: not instrumented
   at cz.advel.stack.Stack.alloc(Stack.java:110)
   at com.bulletphysics.collision.broadphase.AxisSweep3Internal.<init>(AxisSweep3Internal.java:90)
   at com.bulletphysics.collision.broadphase.AxisSweep3.<init>(AxisSweep3.java:52)
   at com.bulletphysics.collision.broadphase.AxisSweep3.<init>(AxisSweep3.java:44)
   at com.bulletphysics.demos.forklift.ForkLiftDemo.initPhysics(ForkLiftDemo.java:544)
   at com.bulletphysics.demos.forklift.ForkLiftDemo.main(ForkLiftDemo.java:860)

You know what that might be ?

Edit: never mind, I found out that I have to build using ant. And create projects properly.

EDIT2: I type "ant" and I get this error :
BUILD FAILED
C:\Users\Mikkel\Desktop\jbullet-20090404\jbullet-20090404\nbproject\build-impl.x
ml:569: The following error occurred while executing this line:
C:\Users\Mikkel\Desktop\jbullet-20090404\jbullet-20090404\nbproject\build-impl.x
ml:220: The <classpath> for <junit> must include junit.jar if not in Ant's own c
lasspath

I'm trying to put junit in the lib directory now.

Another question : Is the jar generated from the build different from the jbullet.jar included ?

Edit  :  OK got it working by copying the demos to it's own project, then include the jars.
Offline jezek2
« Reply #132 - Posted 2009-05-15 19:17:37 »

Another question : Is the jar generated from the build different from the jbullet.jar included ?

I create the jar by running the ANT build script outside IDE. If you wish to fiddle with examples, best is to use provided jbullet.jar and just copy the com.bulletphysics.demos packages into your project (they don't use StackAlloc), then it should run fine. Or use provided ANT build script.

As this issue is pretty common I will create NetBeans and Eclipse projects for just demos (and using included jbullet.jar) to make it more easy to start for users.
Offline NewbTon

Junior Devvie




Odejava games rock!


« Reply #133 - Posted 2009-05-15 19:23:46 »

Alright thanks, it works now in Eclipse. But when I run the Ant script (outside IDE) I don't see it doing anything.
There's still just the old jar. And that one works fine to begin with. Just curious, anyway it all works fine, and I'll now try to use
jbullet in my app.
Offline LeoMaheo

Senior Newbie





« Reply #134 - Posted 2009-05-17 18:58:13 »

Hi NewbTon,

OK that sounds logical..may I ask what kind of constraints (joints ) you use ? Is it hinge or ball ?

Both hinge and ball.

Bullet Physics has recently made improvements to the ConeTwist joint. 
(http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=18&t=3177)
Had these improvements been available in JBullet, I'd preferred to use
the new ConeTwist constraint, instead of my current approach,
with 2 constraints per biped parent-child limb joint.

My current approach:
Each joint has 2 constraints: (1) A passive ConeTwist or HingeJoint
constraints that restricts movement,  and (2) a Generic6DoFConstraint,
that applies muscle actuation. To apply muscle actuation, I rotate the
frame of the 2nd body attached to the Generic6DofConstraint. I
don't use the setAngular{Lower/Upper}Limit functions.
(I had to add a function that allows modifying this second frame
after the creation of the Generic6DofConstraint.)

(I think the reason I used 2 constraints was:
1. Easier to define max-rotation-limits using ConeTwistConstraint
   (than with Generic6DofConstraint).
2. (JBullet's current version of) ConeTwistConstraint doesn't allow defining both
    max-rotation-limits and a different desired rotation. So
    I used a second constraint, the Generic6DofConstraint, for this.
    (I.e. for muscle actuation.))

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
   // Below, childPart might be an upper arm,
   // and parentPart would then be the torso.
   // Or the child part could be the left shin leg;
   // the parent part would then be the left thigh.)

   // The constraint that just limits movement.
   if (constraintType == HINGE_CONSTRAINT_TYPE) {
      childPart.joint = new HingeConstraint(
            parentPart.physics(), childPart.physics(),
            new Transform(parentFrame), new Transform(childFrame));
   }
   else if (constraintType == CONETWIST_CONSTRAINT_TYPE) {
      childPart.joint = new ConeTwistConstraint(
            parentPart.physics(), childPart.physics(),
            new Transform(parentFrame), new Transform(childFrame));
   }
   ...
 
   // The muscle actuation constraint.
   childPart.motor = new Generic6DofConstraint(
         parentPart.physics(), childPart.physics(),
         new Transform(parentFrame), new Transform(childFrame), true);
 
   // To apply muscle actuation, the motor child frame is rotated
   // (relative the parent frame); the motor limits remain 0, always.
   childPart.motor.setLimit(3 + 0, 0, 0);
   childPart.motor.setLimit(3 + 1, 0, 0);
   childPart.motor.setLimit(3 + 2, 0, 0);


// And in some function, to rotate the child body part
// relative the parent body part:

   childPart.motor.setFrameBaseB(newRotation);
   // Function is not present in JBullet, but see below:


public class Generic6DofConstraint extends TypedConstraint {
   ...
   public void setFrameBaseB(Quat4f basis) {
      frameInB.basis.set(basis);
   }
   ...
}


And then there are functions that set the childPart.joint limits.



I have this game in PhysX and I'd like to know if it's possible to port it to jbullet:

http://www.youtube.com/watch?v=0wFdmVbFRw8

I've seen that game before :-) (You're the author, I gather?) I like
that approach, mainly physics and gameplay, rather than graphics.


What's you're opinion on that ?

My bipeds only walk forwards, slowly. No quick movements, as of now. 
So I do not know if it's possible.  But I guess it is, and that it
would work as well as with PhysX.
Offline jezek2
« Reply #135 - Posted 2009-05-18 21:50:58 »

Hi, some of you wanted to know more about the projects I'm doing with JBullet. Recently I've implemented ragdoll into my engine and created video of it: ragdoll.avi (16MB, xvid). Enjoy Smiley and forgive small FPS (and pause at end) it was mostly due to recording overhead.
Offline LeoMaheo

Senior Newbie





« Reply #136 - Posted 2009-05-22 23:23:01 »

Hi, some of you wanted to know more about the projects I'm doing with JBullet. Recently I've implemented ragdoll into my engine and created video of it

Those were beautiful ragdolls.

That was 3DzzD? May I ask, any reason you've chosen 3DzzD not jPCT? I can think of one, that 3DzzD is open source?
Offline jezek2
« Reply #137 - Posted 2009-05-23 06:49:15 »

Those were beautiful ragdolls.

That was 3DzzD? May I ask, any reason you've chosen 3DzzD not jPCT? I can think of one, that 3DzzD is open source?

Thanks Smiley

No, that's custom specialized engine that is in development for about 2 years.

I'm currently not using 3DzzD nor jPCT, though in future I would like to use 3DzzD (or it's parts) for JBullet's demo applet which uses software renderer and yes, it's because it's opensource (and rendering quality seems better than jPCT's). jPCT would be fine for the demo too, but I need similar interface as OpenGL (or some raw access to just rasterizer) which jPCT doesn't provide.
Offline jezek2
« Reply #138 - Posted 2009-06-28 18:49:20 »

New version available on JBullet homepage.

Changes in release 20090628:
- Added conversion methods between Transform and Matrix4f
- Fixed bug in ShapeHull
- Added CollisionWorld.updateSingleAabb method from Bullet 2.74
- Added CollisionWorld.convexSweepTest
- Added ConcaveConvexcastDemo

Please add following code into initialization part of your application if you want to use convexSweepTest otherwise not all collisions are detected. This will be unnecessary when JBullet get ported to Bullet 2.73.
1  
dynamicsWorld.getDispatchInfo().allowedCcdPenetration = 0f;


Thank you for donations, I will be able to start working soon on initial porting of changes from newer versions, most notably to port to final 2.70 release (some bits are still on 2.66 and rest on 2.70-beta1) which will fix issue with tearing of joints.
Offline NewbTon

Junior Devvie




Odejava games rock!


« Reply #139 - Posted 2009-06-28 18:57:06 »

That is good news, I still haven't got around to porting my application from PhysX to JBullet though. I think it would be worth it though.
Offline elias4444

Junior Devvie





« Reply #140 - Posted 2009-06-28 23:01:47 »

lol... I literally JUST finished integrating JBullet into my game engine. Good timing on the release.  Grin

And THANK YOU for your hard work!

Offline tom
« Reply #141 - Posted 2009-06-29 06:42:57 »

I've started using JBullet at my project at work. Great stuff!! I'll be needing a way to navigate a character threw a static world though. So I'll attempt to port the KinematicCharacterController sometime soon. Hopefully withing a few weeks.

Offline tom
« Reply #142 - Posted 2009-06-29 17:21:29 »

I had a go at porting the KinematicCharacterController. It was more work than I expected as I also had to port GhostObect and related classes. I've got the CharacterDemo compiling and running without throwing exceptions. However the character falls threw the floor. So I've made some mistakes Sad I'll try to debug it tomorrow. I'll keep you posted. Will probably beg for help soon  Wink

Btw, nice timing on the latest release. The KinematicCharacterController uses the convexSweepTest. So that saved me some work.

Offline tom
« Reply #143 - Posted 2009-06-30 11:12:22 »

I've fixed some bugs and got the character walking around the bsp room. Seems to be working ok. Did not find a way to scale the bsp room, so it is a little bit different from the c++ version.

Offline jezek2
« Reply #144 - Posted 2009-06-30 13:45:49 »

I've fixed some bugs and got the character walking around the bsp room. Seems to be working ok. Did not find a way to scale the bsp room, so it is a little bit different from the c++ version.

That's great Smiley Can you send me your modifications to my e-mail?

For scaling I think it would be sufficient to just multiply the points (for ConvexHullShape) and Transform origins by scaling value. I didn't port whole BSP loader because it was too much work and useless for demo purposes.
Offline jezek2
« Reply #145 - Posted 2009-07-01 10:21:13 »

I've commited tom's port of KinematicCharacterController, GhostObject and CharacterDemo.
Offline swpalmer

JGO Coder


Exp: 12 years


Where's the Kaboom?


« Reply #146 - Posted 2009-07-09 03:55:20 »

Can the LWJGL libraries for the demos on the JBullet website be updated to include the Solaris 64-bit binaries?

Offline elias4444

Junior Devvie





« Reply #147 - Posted 2009-07-09 18:19:24 »

Would it be possible to get another build out now since the Kinematic stuff has been added? I've tried downloading the source and building it myself, but the monotone repository is missing some of the dependencies.

Thanks.  Grin

Offline BegemoT

Junior Newbie





« Reply #148 - Posted 2009-07-13 08:56:01 »

Well, jezek, it's excellent work, thank you for it! I was thinking about creation some kind of simulation library for my project by myself, but port of Bullet most likely is preferable.

I make small demo, with box, bordered by 4 static planes, and several (7-10 is enough) bolls moving in it (billiard, you know). No friction, no gravity, DiscreteDynamicWorld, AxisSweep3 broadphase, SequentialImpulseConstraintSolver, and so on -- mostly copied from your demos. And it shows quite strange behavior.

 1. Energy ( =sum(m*v^2/2) ) does not conserve. Even not close to it. Every collision change total energy of system. For my expirements it's constantly increase, so, after 5000 iterations or above energy increases about 30 times! Even if I decrease simulation step to 0.0001 and use rather small initial velocities (about 5-7m/s). I've noticed, what 1 ball, even with step 0.01 is rather stable in it, so errors seems to rooted in sphere-sphere collisions.

 2. Although sphere-sphere and sphere-plane collisions are totally symmetric (forces are applied to mass center), and they was not given initial rotation (angular velocity), after collisions angular velocity tends to grow up. It means, angular momentum is also not conserve. I do not know, may be it's known limitation of used algorithms, but it also may indicate some errors in it. Again, 1 ball is rather stable in it, so it seems to be a feature of sphere-sphere collisions.


Offline gelerox

Junior Newbie





« Reply #149 - Posted 2009-12-21 16:28:56 »

It's possible to load a custom model and use its mesh to run some simulations?

Thank you.
Pages: 1 ... 3 4 [5] 6
  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.

trollwarrior1 (29 views)
2014-11-22 12:13:56

xFryIx (71 views)
2014-11-13 12:34:49

digdugdiggy (50 views)
2014-11-12 21:11:50

digdugdiggy (44 views)
2014-11-12 21:10:15

digdugdiggy (38 views)
2014-11-12 21:09:33

kovacsa (62 views)
2014-11-07 19:57:14

TehJavaDev (67 views)
2014-11-03 22:04:50

BurntPizza (64 views)
2014-11-03 18:54:52

moogie (80 views)
2014-11-03 06:22:04

CopyableCougar4 (80 views)
2014-11-01 23:36:41
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
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!