Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (798)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (865)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
   Home   Help   Search   Login   Register   
  Show Posts
Pages: [1] 2
1  Discussions / Miscellaneous Topics / Re: What I did today on: 2018-10-22 02:14:00
This one looks really promising. Is it done via opengl? Is it for your engine or just for fun?
2  Game Development / Newbie & Debugging Questions / Re: Multirelease with modules, java9 on: 2018-10-21 05:53:52
And it's really as simple as you mentioned. My java9 knowledge lacked this info. Thx!
3  Game Development / Newbie & Debugging Questions / Multirelease with modules, java9 on: 2018-10-20 19:04:39
Hi.

I require a lwjgl module (org.lwjgl.vulkan.natives) in one of my modules. The compilation (as Spasi explained) fails on windows/linux as natives are not needed there (so its not available during the compilation).
If I remove the requires than it does compile on windows/linux/osx, but it does not run on OSX as the needed lib is not on the classpath during runtime.

The thing is that without requiring natives, after compilation and BEFORE jlinking, there is a
1  
lwjgl-vulkan-3.2.1-SNAPSHOT-natives-macos.jar
in my mods directory, so I thought, I would just need to add that too when jlinking (on OSX) and it will be fine.

So I use jlink then:
1  
jlink --module-path $JAVA_HOME/jmods:build/mods --add-modules org.lwjgl.vulkan.natives --add-modules spck.game --launcher APP=mymodule/Main --compress 2 --no-header-files --no-man-pages --strip-debug --output build/release


But
1  
--add-modules org.lwjgl.vulkan.natives
did not help, it still fails to run on OSX as it does not find the moltenvk libs.

What did I miss?
4  Game Development / Newbie & Debugging Questions / Re: OpenJDK10, OpenJFX 11... wtf on: 2018-10-09 05:23:53
You can
5  Game Development / Newbie & Debugging Questions / Re: Pathfinding distance algorithm on: 2018-09-28 03:30:31
Tried to connect diagonal nodes, it looks totally OK now, zigzag effect went away.
6  Game Development / Newbie & Debugging Questions / Pathfinding distance algorithm on: 2018-09-27 11:43:35
Hi. I implemented a pathfinding solution with gdx-ai in my tile basede game, and I used Manhattan distance formula in estimation:

1  
Math.abs(startX - endX) + Math.abs(startY - endY)


If the shortest path from point A to point B is diagonal, it's OK for ground units, the movement a little bit like zigzag, but it's OK.

I was thinking if there is a better solution to avoid that zigzag behavior to get a smooth movement, like in starcraft2. I tried pythagorean:
1  
Math.pow(Math.abs(startX-endX),2)+Math.pow(Math.abs(startY-endY),2)

and Euclidean
1  
Math.sqrt(Math.pow(Math.abs(endX-startX),2) + Math.pow(Math.abs(endY-startY),2))
,

but both resulted me a similar result.

So if the map looks like this:
01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16
and the point A is at 13, point B is at 04, than those takes a path like: 13->14->10->11->07->08->04 instead of 13->10->07->04

Any idea how can I achieve this?

UPDATE: is that a good idea to add the diagonal nodes to the node's connections?
7  Game Development / Newbie & Debugging Questions / Re: A* pathfinding library for libgdx on: 2018-09-12 06:30:29
Yes, I already solved it and I use gdx-ai. It was not hard tough, I would say it was easy.

The question was only about that as it's not maintained anymore, is there any other libraries. But as the answer is possibly no, I chose gdx-ai then.
8  Game Development / Newbie & Debugging Questions / Re: A* pathfinding library for libgdx on: 2018-09-05 05:04:22
Yeah, it's a good point what you're saying. Probably I stick to gdx-ai then and I'll make it transparent so if I find something newer, I'll be able to replace it. thx!
9  Game Development / Newbie & Debugging Questions / Re: A* pathfinding library for libgdx on: 2018-09-04 17:55:08
Cmon, this code is also 10(!) years old Smiley I’m not saying that the A* implementation should be different, but I’m looking for a maintained lib, or if I have to implement it myself, I’ll use the latest code available (gdx-ai) as a resource Smiley

10  Game Development / Newbie & Debugging Questions / A* pathfinding library for libgdx on: 2018-09-04 06:52:00
Hi.

Is there a pathfinding library available somewhere? I know gdx-ai, but it's not maintained and PRs are not accepted for a year now. It's needed for a top-down tilebased game.

Of course, I might implement it by myself, but if anyone has a good library, I would use that for now instead Smiley
11  Discussions / General Discussions / Re: The Discord makes me sad on: 2018-08-24 18:56:52
As I wrote several times, this is an age related stuff.
Younger people don’t like (usually as I observed) to read a lot, slowly. They need instant messages, quick short chit-chats. I don’t like it, but lots of them does. This is how life works, nothing special.
12  Game Development / Newbie & Debugging Questions / Re: OpenJDK10, OpenJFX 11... wtf on: 2018-08-23 11:53:58
Unfortunately I have to work in javascript/nodejs/typescript in my dayjob now, and what I see that because javascript and "doing it strict" are almost the opposite meaning, everyone does everything. Therefor I have to face with bugs, when one my dependency's dependency's dependency fails, because of a wrongly architected visibility/permission.
Of course, hacking was always been a habit, but nowadays it's getting more popular, especially in the mentioned field.

I might be too young with my 32 years and 15 years work experience, but I do love how strict the new module system is. And as its not obligatory to use, everyone will be happy. And I think, trying to stay on the track with other languages in today's development rush is good, because I don't want to see more nodejs applications on the server side then I see now Smiley

But this is my opinion only.
13  Game Development / Newbie & Debugging Questions / Re: OpenJDK10, OpenJFX 11... wtf on: 2018-08-23 05:59:40
So many confusion here... Guys, the course I linked above, has a module system section, which takes you around 2hours to check. Like a good movie Smiley

But anyways, here are what I know:
  • You don't have to use modules. It's just an option
  • If you use modules, you can define strictly visibility for packages, even for reflections, which is really cool, I've programmed in Rust, C#, C++, PHP, Typescript, etc, but never seen a better solution
  • You can use it for services with ServiceLoader
  • As the whole JDK is now modularised, you can create your own JRE with jlink, ship your game with it without expecting the user having java. In my experience, I built a JRE that took 28MB only!
  • If you use modules, but one of your dependencies is not modularised, java handles it, and treats it as an "automatic module", which mean it will export all of its packages by default
  • You can't jlink automatic modules, but there is a solution for that, I wrote about it here: https://medium.com/@mudlee/java9-module-system-and-self-contained-apps-af26424fccae
  • Intellij IDEA supports modules, as maven

I see mixed feelings on the internet, but I see negative ones where the author has not checked it out in detail, how it really works. One who spent some hours to learn it just wrote positive thoughts on this (me too).
14  Game Development / Newbie & Debugging Questions / Re: OpenJDK10, OpenJFX 11... wtf on: 2018-08-22 22:15:45
When using modules, you have to compile with module path kinda parameters, just almost the same as you used javac before. I really recommend to take a look on that course as before I thought the same about jigsaw, after I’m happy that java introduced it Smiley Also, it clearly explains the diff between the old way and the new way. Grab a beer and go watch it Smiley

If you wont succeed, I’ll create a javafx demo for you tomorrow, but without ecliose Smiley
15  Game Development / Newbie & Debugging Questions / Re: OpenJDK10, OpenJFX 11... wtf on: 2018-08-22 22:00:45
Probably you have at least double years experience in java then I have, but for learning the new java modules for me the best was this course:
https://www.udemy.com/whats-new-in-java-9/

I tried to read lots of tutorials/docs, but all of them fail somewhere. This guy clearly explains everything, starting with jars on class path and sublime editor. This is my best recommendation for you.

I finished it yesterday and successfully migrated my tiny engine to java9, even solving automatic module jlinking stuff, so if you specify your problem, I might be able to help you too Smiley
16  Discussions / Java Gaming Wiki / Re: Deployment and Packaging on: 2018-08-22 08:34:46
Fyi: I also wrote a short article in this topic: https://medium.com/@mudlee/java9-module-system-and-self-contained-apps-af26424fccae
17  Game Development / Game Mechanics / Re: ECS confusion on: 2018-06-18 16:28:37
thx! Thats make sense. Tried it and looks kinda OK Smiley
18  Game Development / Game Mechanics / ECS confusion on: 2018-06-17 13:48:17
Hi guys. In the last few weeks, I read a lot about ECS. Also, I started to use artemis-odb in my engine which was previously used a Unity-like game loop, where every GameObject might have onUpdate, onFrameStart, etc.

The confusion is this. Let's say, if I have 3-4 entities, all have a MeshRenderer component, which contains the material and the mesh. In a MeshRendererSystem, I process those entities, add/update all of them into a batch and when all are processed, I do the render passes using the batches. That's pretty mutch clear, I have entities with one component, and one system process them, then a separated logic uses the systems outcome.

But in other cases, I'm not sure, what to do. Eg.:
I have
  • a CursorEntity
  • a CursorScreenPositionComponent
  • a CursorPositionSystem

The component is attached to the entity, the system updates the component's data, which is the cursor position on the screen. But where should I update the cursor (an image) position itself? So after a frame, I have an entity with an up2date component (thanks to the system), but what to do next?

Currently, I solve this that ECS systems run first in the gameloop, and after that, I run updater components that uses the updated entities.
I might miss something very basic stuff, so if you can recommend a great article or explain what did I miss, I would be so happy Smiley
19  Discussions / Miscellaneous Topics / Re: What I drew today on: 2018-05-29 06:00:11
Looks really good!
20  Game Development / Newbie & Debugging Questions / Re: SSAO buffer texture wrong on: 2018-05-16 14:57:43
SSAO texture is now OK, there were one more typo Smiley
21  Game Development / Newbie & Debugging Questions / Re: SSAO buffer texture wrong on: 2018-05-16 13:25:15
I think, I found some issues, so I collect all of them here for the future generation.

  • Don't forget to disable GL_BLEND during the geometry pass
  • The texture was completely red, because something went wrong in the SSAO shader and the I used white in the glClearColor which was a basic completly white base, so the whole turned into red
  • Some of the GPUs' drivers don't support GL_RGB16F, you have to use GL_RGBA16F or GL_RGBA32F in the GBuffer for normals and positions

The SSAO texture is still not OK, I'll write back when I find the problem.
22  Game Development / Newbie & Debugging Questions / Re: SSAO buffer texture wrong on: 2018-05-14 07:52:10
And forgot to mention that the code was taken (ported to java) from learnopengl.com where the guy clearly wrote down that he used John Chapman's as a source.
23  Game Development / Newbie & Debugging Questions / Re: HasMap NullPointerException on: 2018-05-13 17:20:13
First, please provide a detailed exception.
Second, the usual way how this should be done is to first check whether the map really contains the id or not. If it does contain, then iterate, else handle it.
24  Game Development / Newbie & Debugging Questions / Re: SSAO buffer texture wrong on: 2018-05-11 14:35:16
I do the exact same stuff that is on the page I linked. After the SSAO texture is generated, I pass it to the last shader where it affects the final color. As I saw it has no effect on the fragment's color, I started to debug if something is wrong with the SSAO texture.

First, I checked the GBuffer textures, all are good. Second, I checked the SSAO texture if its wrong and it is. No matter what I set to the OUT_Color, the texture will be completely red.

I tried what if I expect RGBA and output a vec4 from the shader with a fixed value. In that case, the texture turned to white and no matter what I set for the OUT_Color, it remains white. Now I think the problem is around the framebuffer code, but went 10 times through it and looks good. Maybe I have to sleep and retry tomorrow Smiley

BTW, when I write I checked the texture I mean I draw it onto the upper right using nanovg.

Here is the render logic:
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  
45  
46  
47  
48  
49  
50  
51  
52  
    public void onRender() {
        GL11.glClearColor(1f, 1f, 1f, 1f);
        GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT | GL11.GL_STENCIL_BUFFER_BIT);

        batches.values().forEach(RenderBatch::initGPUDataStores); // it sets up VAO, VBO, etc

        computeSSAOGeometryData(() -> {
            ssaoGeometryShader.bind();
            batches.values().forEach(renderBatch -> {
                // TODO: what if it does not have texture?
                ssaoGeometryShader.updateMaterialDiffuseTexture(renderBatch);
                renderBatch.render();
            });
            ssaoGeometryShader.unbind();
        });

        computeSSAOTexture(() -> {
            ssaoShader.bind();
            batches.values().forEach(renderBatch -> {
                renderBatch.render();
            });
            ssaoShader.unbind();
        });

        GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
        batches.values().forEach(renderBatch -> {
            renderBatch.getMaterial().getShader().bind();

            ((StandardShader)renderBatch.getMaterial().getShader()).ssao(ssaoBuffer);

            renderBatch.render();
            renderBatch.getMaterial().getShader().unbind();
        });
    }

    private void computeSSAOGeometryData(Runnable batchRendering) {
        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, gBuffer.getGFBO());
        GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT | GL11.GL_COLOR_BUFFER_BIT);

        batchRendering.run();

        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
    }

    private void computeSSAOTexture(Runnable batchRendering) {
        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, ssaoBuffer.getFBO());
        GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);

        batchRendering.run();

        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
    }
25  Game Development / Newbie & Debugging Questions / [SOLVED] SSAO buffer texture wrong on: 2018-05-11 08:03:28
Hi guys.

I need some help regarding to SSAO. I've followed this popular tutorial: https://learnopengl.com/Advanced-Lighting/SSAO.
Somehow, the occlusion factor is always 1, so no changes can be observed.

I debugged through the code and:
  • The GBuffer textures are correct
  • The problem is might be the SSAO texture itself.

So... when I generate the ssao texture onto the screen, it's totally red and if I change the ssao shader output value to any float, it remains red. That's why I think, the problem is somewhere over there.

The code is the same as in the tutorial, but here it is the ssao buffer:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
FBO = glGenFramebuffers();
blurFBO = glGenFramebuffers();

glBindFramebuffer(GL_FRAMEBUFFER, FBO);

LOGGER.debug("> Creating color texture...");
int ssaoColorTexture = glGenTextures();
glBindTexture(GL_TEXTURE_2D, ssaoColorTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, Engine.properties.getWindowWidth(), Engine.properties.getWindowHeight(), 0, GL_RGB, GL_FLOAT, (ByteBuffer) null);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ssaoColorTexture, 0);

if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
     throw new RuntimeException("SSAO buffer is not completed");
}


In the fragment shader I just use
1  
layout (location = 0) out float OUT_Color;


And assign it:
1  
OUT_Color =1.0f

And the value above does not affect the texture in the FBO.

What can be the problem, where should I continue debugging?
26  Discussions / General Discussions / Re: Gosh, it's quiet in here on: 2018-04-29 17:14:03
Well, I gave almost 1 year for unity. And actually, I really love it. I mean, the editor and the UX is just top. What I did not like is that:
  • Asset store calling me in my dreams. "Don't write your own, just buy that one, its better than yours"
  • C# -> It's OK, but I pretty much love Java

So it's easy. My mentality really has to fight against the "you don't have to reinvent the wheel, others did it, and did it better, than you can do ever". Somehow it's true. You click the Ambient Occlusion and its done. But... isn't better if you know how it really works? I think yes, you should learn.

I really want to ship my idea asap, but it has a price. I can ship it with a tool, that teaches me not to learn everything but use others' code.

Pro-con. I vote for write your own, and sometimes I use unity just to get some ideas and run away from the problems.
27  Discussions / General Discussions / Re: Gosh, it's quiet in here on: 2018-04-28 08:15:30
I think the lwjgl guys use(d?) the same forum and they installed a mobile friendly theme (not migrated to a new one I guess) and it helps a lot at least for start as I can read it on my mobile.

To the original topic: people, espedially young people wants everything to be done quick. The thing how its dirty or how it really works does not matter, at least not that much. Thats why nodejs exists. And its not just true for game writing, its true for every aspect of life. So sad.

I read an article about why ludum dare shoukd deny engines like unity and I used to  say not the tool the goal there, but nowadays I would say, the article was right.
28  Game Development / Newbie & Debugging Questions / Re: Changing individual triangle's color on a mesh on: 2018-03-01 19:51:51
Finally I did it!

https://youtu.be/7Z6-8c8RLq8

The problem was that I load the object from .obj file, and I collected the vertices into triangles in a wrong order. Before joml, I used this, I dont know if it faster or not:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
        // 1. the unit normal of triange (A, B, P)  - call it N1
        // 2. the unit normal of triangle (B, C, P) - call it N2
        // 3. the unit normal (C,A,P) called N3
        Vector3f n1 = b.sub(a).cross(new Vector3f(hitPoint).sub(a)).normalize();
        Vector3f n2 = c.sub(b).cross(new Vector3f(hitPoint).sub(b)).normalize();
        Vector3f n3 = a.sub(c).cross(new Vector3f(hitPoint).sub(c)).normalize();

        float res1 = new Vector3f(n1).dot(n2);
        float res2 = new Vector3f(n2).dot(n3);

        //LOGGER.debug("TRI: {}",triangle);

        if (res1 > 0.99 && res2 > 0.99) {
            return true;
        }
        return false;
29  Game Development / Newbie & Debugging Questions / Re: Changing individual triangle's color on a mesh on: 2018-02-26 19:47:51
UPDATE: as I continue debugging, it seems that the problem is might be around the correct triangle selection. I tested it with a cube. When my vector hit a point on the sphere, I put a cube there, and cubes appear correctly. I also debugged through what I send to the shader and how I use gl_VertexID, and it also looks good, I tested it with manual parameters and colored the right triangle.

So in conclusion, now I think the triangle index, where the hit has happened is the bad guy...
30  Game Development / Newbie & Debugging Questions / Re: Changing individual triangle's color on a mesh on: 2018-02-26 18:19:39
I still stuck.

I did this:
  • When I store the vertices, I also store those as a triangle (in the same order). Something like this [ [VERT_1,VERT_2,VERT_3], [VERT_4,VERT_5,VERT_6], ...]
  • When I calculate the surface hit point, I also calculate the hit triangle's index
  • I send the currentlz hit triangle's index to the vertex shader, and try to figure it out if the actual vertex (gl_ VertexID) is part of that triangle

But it does not work. As I read about gl_VertexIndex more and more, I got myself more confused as well. So what is gl_VertexID? If I have a cube (with unique vertices), it can be 0-23 (6*4) OR it can be 0-2 (as an index of the actual triangle)?

So, what I have is this:
  • A hit point
  • The object's triangles in order

How can I then check in the vertex shader, if the actual vertex is in the hit triangle?

Hit point calculation:
1  
2  
3  
4  
5  
6  
7  
Vector3f pos = gameObject.getTransform().getPosition();
Spheref spheref = new Spheref(pos.x, pos.y, pos.z, gameObject.getRadius());

if (Intersectionf.intersectRaySphere(cameraRay, spheref, nearFar) && nearFar.x < closestDistance) {
    surfaceHitPoint = new Vector3f(Camera.main.getCamPosition()).add(Camera.main.getCameraDirection().mul(nearFar.x));
    int triangleIndex = getTriangleIndex(surfaceHitPoint, gameObject.getMesh().getTriangles(), gameObject.getTransform());
}


Also, I draw this way:
1  
GL31.glDrawElementsInstanced(GL_TRIANGLES, batch.getMesh().getIndices().length, GL_UNSIGNED_INT, 0, gameObjectsCount);


And here is how I check if I hit the triangle (maybe there is the problem):
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  
    private int getTriangleIndex(Vector3f surfaceHitPoint, List<List<Vector3f>> triangles, Transform transform) {
        for (int i = 0; i < triangles.size(); i++) {
            if (isInThisTriangle(surfaceHitPoint, triangles.get(i), transform)) {
                return i;
            }
        }

        return -1;
    }

    private boolean isInThisTriangle(Vector3f hitPoint, List<Vector3f> triangle, Transform transform) {
        Vector3f a = new Vector3f(triangle.get(0));
        Vector3f b = new Vector3f(triangle.get(1));
        Vector3f c = new Vector3f(triangle.get(2));

        transform.notifyDataChanged();
        Vector4f p0 = new Vector4f(a.x, a.y, a.z, 1).mul(transform.getTransformationMatrix());
        Vector4f p1 = new Vector4f(b.x, b.y, b.z, 1).mul(transform.getTransformationMatrix());
        Vector4f p2 = new Vector4f(c.x, c.y, c.z, 1).mul(transform.getTransformationMatrix());

        a.set(p0.x, p0.y, p0.z);
        b.set(p1.x, p1.y, p1.z);
        c.set(p2.x, p2.y, p2.z);

        // 1. the unit normal of triange (A, B, P)  - call it N1
        // 2. the unit normal of triangle (B, C, P) - call it N2
        // 3. the unit normal (C,A,P) called N3
        Vector3f n1 = b.sub(a).cross(new Vector3f(hitPoint).sub(a)).normalize();
        Vector3f n2 = c.sub(b).cross(new Vector3f(hitPoint).sub(b)).normalize();
        Vector3f n3 = a.sub(c).cross(new Vector3f(hitPoint).sub(c)).normalize();

        float res1 = new Vector3f(n1).dot(n2);
        float res2 = new Vector3f(n2).dot(n3);

        if (res1 > 0.99 && res2 > 0.99) {
            return true;
        }
        return false;
    }
Pages: [1] 2
 
Riven (28 views)
2019-09-04 15:33:17

hadezbladez (3957 views)
2018-11-16 13:46:03

hadezbladez (1434 views)
2018-11-16 13:41:33

hadezbladez (3954 views)
2018-11-16 13:35:35

hadezbladez (765 views)
2018-11-16 13:32:03

EgonOlsen (4079 views)
2018-06-10 19:43:48

EgonOlsen (4649 views)
2018-06-10 19:43:44

EgonOlsen (2748 views)
2018-06-10 19:43:20

DesertCoockie (3643 views)
2018-05-13 18:23:11

nelsongames (3834 views)
2018-04-24 18:15:36
Java Gaming Resources
by philfrei
2019-05-14 16:15:13

Deployment and Packaging
by philfrei
2019-05-08 15:15:36

Deployment and Packaging
by philfrei
2019-05-08 15:13:34

Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45
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!