Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (701)
Games in Android Showcase (203)
games submitted by our members
Games in WIP (774)
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 3 ... 6
1  Game Development / Newbie & Debugging Questions / [LibGDX] When are FrameBuffers useful? on: 2016-11-01 15:43:47
I see a lot of people using frame buffers(class FrameBuffer) to achieve things. I read the API doc which didn't told me that much. The LWJGL tutorial was more informative though. I can understand that it can be useful if you want to render a shader effect on a frame buffer and then move it to the "main" display. But other than that, I am kinda confused.

Some use cases? Examples of situations where you used it?
2  Java Game APIs & Engines / Engines, Libraries and Tools / [LibGDX] Ported shader from ShaderToy.com not working on: 2016-10-28 19:01:50
Hi!

I read lots of tutorials about shaders so I could port some sort of drug effect from shadertoy to my game.
This is the shader I am trying to port:
https://www.shadertoy.com/view/4l3GDN

This is the vertex shader I created myself, since ShaderToy don't provide any:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
#version 330 core

attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord;

uniform mat4 u_projTrans;
uniform vec3 iResolution;
uniform float iGlobalTime;
uniform vec4 iDate;

varying vec4 v_color;
varying vec2 v_texCoords;

void main()
{
    v_color = a_color;
    v_color.a = v_color.a * (256.0/255.0);
    v_texCoords = a_texCoord + 0;
    gl_Position =  u_projTrans * a_position;
}


The ported fragment shader:

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  
#version 330 core

const float speed = .05;
const float icount = 300.;
const float size = .2;

in vec4 v_color;
in vec2 v_texCoords;
uniform vec4 iDate;
uniform vec3 iResolution;
uniform float iGlobalTime;

out vec4 fragColor;

void main() {
    vec2 res = vec2(min(iResolution.x, iResolution.y), max(iResolution.x, iResolution.y));

   vec2 uv = v_texCoords.xy /res.x;
    uv-=.5;

    if (res.x == iResolution.x) {
        uv.y -= .5*res.y / res.x-.5;
    } else {
        uv.x -= .5*res.y / res.x-.5;
    }

    float t = iGlobalTime * speed;

    for(float i =0.; i<2.*icount; i++) {
        if (i >= floor(icount * length(mod(uv, size) - size/2.))) {
            break;
        }
        uv *= mat2(cos(t), sin(t), -sin(t), cos(t));
    }

    float c=0.;
    if (uv.x * uv.y > 0.) {
        c=1.0;
    }

   fragColor = vec4(mod(iDate.w+1.-(2.*abs(uv)),1.5),c,1.);
}


This is in my game loop:

1  
2  
3  
4  
5  
6  
7  
8  
Date date = new Date();
drugShader.setUniformf("iResolution", screen.width, screen.height, 0);
drugShader.setUniformf("iGlobalTime", (float) getEngine().getTimeInSeconds());
drugShader.setUniformf("iDate", date.getYear(), date.getMonth(), date.getDay(), (int)getEngine().getTimeInSeconds());

batch.setShader(drugShader);
batch.draw(transparentImage, screen.width, screen.height);
batch.setShader(null);


I see no effect of the shader. transparentImage is image with dimension screen.width x screen.height with color 0,0,0,1 (BLACK).
3  Game Development / Newbie & Debugging Questions / Re: where to place collision detection, and why? on: 2016-08-09 10:32:47
In my game, I have class GameObject which have a bunch of specialised subclasses, for example Missile. The constructor of this class takes a list of GameObjects which is the entities the missile can interact with. During the game loop, the missile will check for collision between the given game objects and it self.
4  Game Development / Newbie & Debugging Questions / Re: Adding delta value in character movements? on: 2016-05-22 12:54:15
So basically it's like if the computer is unable to run the game at 60fps, we "jump" the characters to trick the human eye into smoothness. Wouldn't that mess up collision detection?
5  Game Development / Newbie & Debugging Questions / Adding delta value in character movements? on: 2016-05-21 21:53:06
I see a lot of tutorial use the delta value when moving entities in their game. Personally, I feel like it's a gimmick, so I am not using it in my game, and have not notices any negative impact on different types of PCs.

So my question is, what is the soul purpose of using delta values when moving entities?
6  Game Development / Newbie & Debugging Questions / Re: Making an entity follow pathfinding path array on: 2016-05-04 11:47:33
Here is an generic entity which follows a set of waypoints:

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  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
96  
97  
98  
99  
100  
101  
102  
103  
104  
105  
106  
107  
108  
109  
110  
111  
112  
113  
114  
115  
116  
117  
118  
119  
120  
121  
122  
123  
124  
125  
126  
127  
128  
129  
130  
131  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import pojahn.game.core.Collisions;
import pojahn.game.core.MobileEntity;
import pojahn.game.events.Event;

import com.badlogic.gdx.math.Vector2;

public class PathDrone extends MobileEntity {

    public static class Waypoint {

        public final float targetX, targetY;
        public final int frames;
        public final boolean jump;
        public final Event event;

        public Waypoint(float targetX, float targetY, int frames, boolean jump, Event event) {
            this.targetX = targetX;
            this.targetY = targetY;
            this.frames = frames;
            this.jump = jump;
            this.event = event;
        }

        public Waypoint(float targetX, float targetY) {
            this(targetX, targetY, 0, false, null);
        }
    }

    private List < Waypoint > waypoints;
    private int dataCounter, stillCounter;
    private boolean playEvent;

    public PathDrone(float x, float y) {
        move(x, y);
        waypoints = new ArrayList < > ();
        dataCounter = stillCounter = 0;
    }

    public void appendPath(float x, float y, int frames, boolean jump, Event event) {
        waypoints.add(new Waypoint(x, y, frames, jump, event));
    }

    public void appendPath(Vector2 loc, int frames, boolean jump, Event event) {
        waypoints.add(new Waypoint(loc.x, loc.y, frames, jump, event));
    }

    public void appendPath(Waypoint pd) {
        waypoints.add(pd);
    }

    public void appendPath(Waypoint[] list) {
        waypoints.addAll(Arrays.asList(list));
    }

    public void appendPath(float x, float y) {
        appendPath(x, y, 0, false, null);
    }

    public void appendPath() {
        waypoints.add(new Waypoint(x(), y(), 0, false, null));
    }

    public void appendReversed() {
        List < Waypoint > reversed = new ArrayList < > (waypoints);
        reversed.remove(reversed.size() - 1);
        Collections.reverse(reversed);

        waypoints.addAll(reversed);
    }

    public void clearData() {
        waypoints.clear();
        rollback();
    }

    public void rollback() {
        dataCounter = stillCounter = 0;
    }

    @Override
    public void logistics() {
        if (!waypoints.isEmpty() && getMoveSpeed() > 0) {
            if (dataCounter >= waypoints.size())
                dataCounter = 0;

            Waypoint wp = waypoints.get(dataCounter);

            if (reached(wp)) {
                if (++stillCounter > wp.frames)
                    dataCounter++;

                x = wp.targetX;
                y = wp.targetY;

                if (playEvent && wp.event != null) {
                    wp.event.eventHandling();
                    playEvent = false;
                }
            } else {
                playEvent = true;
                stillCounter = 0;

                if (wp.jump) {          
                    x = wp.targetX;          
                    y = wp.targetY;        
                } else
                    moveTowards(wp.targetX, wp.targetY);
            }
        }
    }

    protected boolean reached(Waypoint pd) {
        return getMoveSpeed() > Collisions.distance(pd.targetX, pd.targetY, x(), y());
    }

    protected void moveTowards(float targetX, float targetY) {  
        float fX = targetX - x();  
        float fY = targetY - y();  
        float dist = (float) Math.sqrt(fX * fX + fY * fY);  
        float step = movespeed / dist;

         
        x += fX * step;
        y += fY * step);
}
}


You can use it like this:

PathDrone pd = new PathDrone();
pd.appendPath(10, 4);
pd.appendPath(10, 0);
pd.appendPath(9, 0);
pd.appendPath(0, 0);

logictics should you call every frame in your game loop.
7  Java Game APIs & Engines / Engines, Libraries and Tools / Re: Manual Libgdx Project Creation on: 2015-10-21 16:28:00
Create a new project in Eclipse for example, and import the LibGDX jars(omit those that are not desktop) and you are done.
8  Java Game APIs & Engines / OpenGL Development / Re: What can and can't be done with shaders. on: 2015-09-30 14:47:22
Can we get some example of things that can be achieved with shaders? What is it used for in a 2d game environment?
9  Game Development / Shared Code / Re: TreeML parser on: 2015-09-30 11:18:42
I may use this. Can you make it eval basic math operation(+, -, *, / and %)?
10  Game Development / Newbie & Debugging Questions / Are people overreacting in the negative performance of GC? on: 2015-09-25 14:45:37
Note we are talking about game dev now.

I frequently read here people recommending to:
- stay away from for each loops because they are not cached
- pool objects rather than delete them because of the negative impact of garbage collection.

I am creating a 60 fps game(desktop) and uses lots of for each loops every frame as well as creating new/nullifying objects frequently.
Never noticed any slowdowns even if I flood my map with entities.

So my question is, are people overreacting in regards to this? Maybe the JIT-compiler is caching for each iteratables and GC may not have the performance penalty we think?
11  Java Game APIs & Engines / Engines, Libraries and Tools / Re: [LibGDX]Get pixels of a Texture on: 2015-08-28 13:13:52
For future reference, I read that Pixmap caches the pixel data in CPU.
12  Game Development / Newbie & Debugging Questions / Re: Eclipse, multiple classpaths? on: 2015-08-21 18:16:39
Note that this is a problem that only exist in development environment. Will work fine during production. So I will move the resource folder to project B.
13  Game Development / Newbie & Debugging Questions / Re: Eclipse, multiple classpaths? on: 2015-08-21 12:31:55
I have Eclipse project A which loads resources found in its project root.

I have Eclipse project B which uses project A. Whenever I execute project B, the resources A tries to load is not found, obviously because it's looking for the resources in project B root rather than A.

How do I address this issue?

For Project A:
"Java Build Path" -> "Order and Export" tab -> check the classpath elements that you wish dependent projects to have access to.


Thanks, that helped me clean up some code. But it did not solve this problem because the only folder showed up in "Order and Export" tab was A's src folder. The resource folder was not even there.

Do not load files via file system paths, use classpath resources instead and load those via ClassLoader.getResourceAsStream (for example).
So, first thing: Put all resources you want to load under some classpath root, such as /res or somewhere.
Second: Use the ClassLoader to load those resources as URL or as InputStream.
To complete this I have to refactor a lot of code, but thanks for the tip! ^^
14  Game Development / Newbie & Debugging Questions / Eclipse, multiple classpaths? on: 2015-08-21 10:39:07
I have Eclipse project A which loads resources found in its project root.

I have Eclipse project B which uses project A. Whenever I execute project B, the resources A tries to load is not found, obviously because it's looking for the resources in project B root rather than A.

How do I address this issue?
15  Game Development / Newbie & Debugging Questions / Re: Matrix/Transfom; rotate around z axis? on: 2015-08-20 07:56:10
KaiHH: I am sure your library is awesome. Personally dont to want to use an extra lib for one single method. I will try with LibGDX's Matrix4 a little bit more. Maybe you can help me?
Trying to convert this code:

1  
2  
3  
4  
5  
Matrix blockTransform =
                    Matrix.CreateTranslation(new Vector3(-blockOrigin, 0.0f)) *
                    // Matrix.CreateScale(block.Scale) *  would go here
                    Matrix.CreateRotationZ(blocks[i].Rotation) *
                    Matrix.CreateTranslation(new Vector3(blocks[i].Position, 0.0f));

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  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
        /// <summary>
        /// Determines if there is overlap of the non-transparent pixels between two
        /// sprites.
        /// </summary>
        /// <param name="transformA">World transform of the first sprite.</param>
        /// <param name="widthA">Width of the first sprite's texture.</param>
        /// <param name="heightA">Height of the first sprite's texture.</param>
        /// <param name="dataA">Pixel color data of the first sprite.</param>
        /// <param name="transformB">World transform of the second sprite.</param>
        /// <param name="widthB">Width of the second sprite's texture.</param>
        /// <param name="heightB">Height of the second sprite's texture.</param>
        /// <param name="dataB">Pixel color data of the second sprite.</param>
        /// <returns>True if non-transparent pixels overlap; false otherwise</returns>
        public static bool IntersectPixels(
                            Matrix transformA, int widthA, int heightA, Color[] dataA,
                            Matrix transformB, int widthB, int heightB, Color[] dataB)
        {
            // Calculate a matrix which transforms from A's local space into
            // world space and then into B's local space
            Matrix transformAToB = transformA * Matrix.Invert(transformB);

           // When a point moves in A's local space, it moves in B's local space with a
            // fixed direction and distance proportional to the movement in A.
            // This algorithm steps through A one pixel at a time along A's X and Y axes
            // Calculate the analogous steps in B:
            Vector2 stepX = Vector2.TransformNormal(Vector2.UnitX, transformAToB);
            Vector2 stepY = Vector2.TransformNormal(Vector2.UnitY, transformAToB);

            // Calculate the top left corner of A in B's local space
            // This variable will be reused to keep track of the start of each row
            Vector2 yPosInB = Vector2.Transform(Vector2.Zero, transformAToB);

            // For each row of pixels in A
            for (int yA = 0; yA < heightA; yA++)
            {
                // Start at the beginning of the row
                Vector2 posInB = yPosInB;

                // For each pixel in this row
                for (int xA = 0; xA < widthA; xA++)
                {
                    // Round to the nearest pixel
                    int xB = (int)Math.Round(posInB.X);
                    int yB = (int)Math.Round(posInB.Y);

                    // If the pixel lies within the bounds of B
                    if (0 <= xB && xB < widthB &&
                        0 <= yB && yB < heightB)
                    {
                        // Get the colors of the overlapping pixels
                        Color colorA = dataA[xA + yA * widthA];
                        Color colorB = dataB[xB + yB * widthB];

                        // If both pixels are not completely transparent,
                        if (colorA.A != 0 && colorB.A != 0)
                        {
                            // then an intersection has been found
                            return true;
                        }
                    }

                    // Move to the next pixel in the row
                    posInB += stepX;
                }

                // Move to the next row
                yPosInB += stepY;
            }

            // No intersection found
            return false;
        }


Full code

Here is my code:

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  
   public static boolean pixelPerfectRotation(Matrix4 m1, Image2D img1, Matrix4 m2, Image2D img2){
      Matrix4 AtoB = m1.mul(m2.inv());
      Vector3 trans = AtoB.getTranslation(new Vector3());
      Matrix4 AtoBnorm = new Matrix4(AtoB).translate(-trans.x, -trans.y, 0);
     
      Vector3 stepX = Vector3.X.cpy().mul(AtoBnorm);
      Vector3 stepY = Vector3.Y.cpy().mul(AtoBnorm);
      Vector3 yPosInB = Vector3.Zero.cpy().mul(AtoB);
     
      int widthA = img1.getWidth();
      int widthB = img2.getWidth();
      int heightA = img1.getHeight();
      int heightB = img2.getHeight();
     
      for (int yA = 0; yA < heightA; yA++){
         Vector3 posInB = yPosInB.cpy();

            for (int xA = 0; xA < widthA; xA++){
                int xB = Math.round(posInB.x);
                int yB = Math.round(posInB.y);

                if (0 <= xB && xB < widthB && 0 <= yB && yB < heightB){
                   int alpha1 = img1.getPixel(xA, yA) & 0x000000FF;
                   int alpha2 = img2.getPixel(xB, yB) & 0x000000FF;

                   if (alpha1 != 0 && alpha2 != 0)
                      return true;
                }
                posInB.x += stepX.x;
                posInB.y += stepX.y;
            }
            yPosInB.x += stepY.x;
            yPosInB.y += stepY.y;
        }
        return false;
   }
   
   public static Matrix4 createMatrix(Entity entity){
      Matrix4 m = new Matrix4();
      m.setToTranslation(-(entity.width() / 2), -(entity.height() / 2), 0);
      m.rotate(0, 0, 1, -entity.getRotation());
      m.translate(entity.x(), entity.y(), 0);
       
      return m;
   }
16  Game Development / Newbie & Debugging Questions / Re: Matrix/Transfom; rotate around z axis? on: 2015-08-19 09:36:54
Thanks Smiley
17  Game Development / Newbie & Debugging Questions / Re: Matrix/Transfom; rotate around z axis? on: 2015-08-19 09:07:04
Thanks. Thats a good explanation. But I cant figure out how to achive that function in one of the following classes: Affine2 or Matrix4
18  Game Development / Newbie & Debugging Questions / Matrix/Transfom; rotate around z axis? on: 2015-08-19 08:13:21
Me again, trying to translate some C# code to Java with LibGDX. There is a method in C#'s Matrix class called CreateRotationZ(float radians) which rotates the matrix around "its z axis".
What do this mean?
19  Java Game APIs & Engines / Engines, Libraries and Tools / [LibGDX]Get pixels of a Texture on: 2015-08-05 14:01:52
In LibGDX, you can get the pixels of a Texture by calling texture.getTextureData().prepare() and then textureData.consumePixmap().getPixel(x,y).

My question is, what is the performance of these calls? I am okey with prepare() being slow as its only done once(during loading for example). But what about the other part?
20  Java Game APIs & Engines / Engines, Libraries and Tools / Re: A library for 2d shapes and collisions on: 2015-07-15 16:57:54
Hi!

I am working with 2d. However, Box2D is a physics engine and way to much for what I need.
21  Java Game APIs & Engines / Engines, Libraries and Tools / A library for 2d shapes and collisions on: 2015-07-15 14:31:58
In java, we have Shape interface which defines a bunch of shapes and handles collisions. But I dont think these are strong enough.  The collision methods dont take the rotation of the shape into consideration, for exmaple.

So I am looking for something more powerful. Something that at least support the following shapes:
- Rectangles
- Circles
- Polygons
22  Game Development / Newbie & Debugging Questions / Re: [LibGDX,Desktop]Remeber the window position on: 2014-12-09 21:29:57
There is not much code to show. While in the menu, I replaced the action performed by the Exit button with System.out.println(Display.getX() + " " + Display.getY());. No LibGDX wrapper(those dont exist as far as I know).

Why are we talking about resizing now?
23  Game Development / Newbie & Debugging Questions / Re: [LibGDX,Desktop]Remeber the window position on: 2014-12-09 13:19:46
I did, they are the same.

I did some more tests, and the problem is definitely the values returned by getX() and getY().

For example, when the window is leftmost, getX() return a value between 60 and 90. When I move the window rightmost, the value is still around 60 and 90.
When it is in the middle, it return a value around 280.

The width of my screen is 1920.

Is it a bug in LWJGL or a misunderstanding from my part?
24  Game Development / Newbie & Debugging Questions / Re: [LibGDX,Desktop]Remeber the window position on: 2014-12-09 13:02:54
The saving is not wrong. I added a shutdown hook which stores Display.getX() and Display.getY() in a Vector2, which is serialized and exported to a file with ObjectOutputStream.

When starting the game, the saved Vector2 is read with ObjectInputStream. I then call Display.setLocation(int x, int y). The setLocation works as it moves the actual window. But the position is wrong. getX() and getY() is either giving me wrong values, or, setLocation does not work as expected. Both are poorly documented.
25  Game Development / Newbie & Debugging Questions / Re: [LibGDX Desktop]Remeber the window position on: 2014-12-09 11:41:07
Yes, its a LWJGL window.

Save the position of the window when you close it to a save file you have and when next time you open the window set it's position to that from file.
Thats what I am doing. The problem is when I am moving the window to the saved position. The position if completely wrong.
26  Game Development / Newbie & Debugging Questions / [LibGDX,Desktop]Remeber the window position on: 2014-12-09 10:53:42
I want to remember the position the of the game window when closed. Thus, when starting the game again, the window is moved to its previews position.

Doing some tests, I get odd results. Consider the following line:

Display.setLocation(Display.getX(), Display.getY());

This shouldnt move the window, but it does.
27  Java Game APIs & Engines / Engines, Libraries and Tools / Re: Slick2d - How can I rotate a polygon or any other shape ? on: 2014-11-07 16:36:17
Rotating 500 points is not a big task. At least not in LibGDX' polygon class. Shouldn't affect performance much.
But having a polygon with 500 points sounds like a design flaw. Are you sure using a polygon is the best approach?

Here is an excellent tutorial about Transform(or Matrix as it sometimes called):
http://www.senocular.com/flash/tutorials/transformmatrix/

If you are going to render the polygon, and not perform any collision detection, using a transform is probably the best way.
Obtain the transform used -> rotate it with its function -> render the polygon -> rotate it back to its original state.

Edit: Try this:

1  
2  
Transform t = Transform.createRotateTransform(* your angle *);
polygon.setTransform(t):


This should rotate the polygon and is fast.
28  Game Development / Newbie & Debugging Questions / Re: [LibGDX]Render portion of a Texture/Sprite on: 2014-11-02 23:13:11
Instead of using the sprite batch method, I have to use the functions found in TextureRegion to set the region.

The results are odd. Everything is zoomed and its looks just way off.

Edit: Managed to solve it! For those wondering how:

1  
2  
3  
4  
img.setRegion(u, v, u2, v2);
img.setSize(width, height);
img.setPosition(startX, startY);
img.draw(batch);
29  Game Development / Newbie & Debugging Questions / Re: How to code this? on: 2014-11-02 22:58:33
Okey, I did some googeling but couldn't find an good answer.

Basically, I dont want a customized scroll factor.

Example:
When translateX(world) is 0, the the background's position is also 0. As translateX increases, the background's x coordinate also increases, at a speed so that when translateX == world.width, the background is at the right most.

How to achieve this?
30  Game Development / Newbie & Debugging Questions / How to code this? on: 2014-11-02 17:23:33
In my game, the background and foreground image's dimension are equal to the size of the world.
So I just render them at coordinate 0:0 and achieve desired effect.
Example:
https://www.youtube.com/watch?v=82TL-Acm4ts

On some games, the background image is smaller than the world. In those cases, the background image is slowly moving when the camera is moving.
Example:
https://www.youtube.com/watch?v=Vd3eugNjfKI

Anyone know how to code it?
Pages: [1] 2 3 ... 6
 
ral0r2 (178 views)
2016-11-23 16:08:26

ClaasJG (318 views)
2016-11-10 17:36:32

CoffeeChemist (412 views)
2016-11-05 00:46:53

jay4842 (465 views)
2016-11-01 19:04:52

theagentd (476 views)
2016-10-24 17:51:53

theagentd (464 views)
2016-10-24 17:50:08

theagentd (422 views)
2016-10-24 17:43:15

CommanderKeith (419 views)
2016-10-22 15:22:05

Roquen (390 views)
2016-10-22 01:57:43

Roquen (298 views)
2016-10-17 12:09:13
List of Learning Resources
by elect
2016-09-09 09:47:55

List of Learning Resources
by elect
2016-09-08 09:47:20

List of Learning Resources
by elect
2016-09-08 09:46:51

List of Learning Resources
by elect
2016-09-08 09:46:27

List of Learning Resources
by elect
2016-09-08 09:45:41

List of Learning Resources
by elect
2016-09-08 08:39:20

List of Learning Resources
by elect
2016-09-08 08:38:19

Rendering resources
by Roquen
2016-08-08 05:55:21
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!