Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (731)
Games in Android Showcase (217)
games submitted by our members
Games in WIP (798)
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 ... 12
1  Game Development / Newbie & Debugging Questions / Re: Z-buffer algorithm implementation problem on: 2017-04-18 12:43:59
When you transform the 3d points into 2d screen coordinares the z value of the transformed point is the z value you use.
2  Game Development / Game Play & Game Design / Re: Working on "How to plan and design a game engine" and I'm looking for feedback on: 2017-04-18 08:44:58
> The biggest criticism I've read about Game Engine Architecture is that it doesn't include source code for a complete engine

This was definitely a bummer, I've used this book as a resource to ensure I'm covering features that other games have.

> This is an extraordinary claim

- The existing steering behavior libraries out there are a joke - very poorly designed and lack an alarming number of features. I don't have the current version of that library published but you can check out Steerio to see my previous work. The current version of the code is a mishmash, I was in the middle of redesign. You should still be able to see it though.
- The existing path finding libraries out there aren't terribly generic - don't really support partial & incremental path finding, a good way to rate limit, and good support for dynamic maps where nodes can change traversability and have all existing paths re-evaluate
- My animation library is extremely generic, you can have the most advanced animation control for anything (color changing, camera movement, to skeletal animations)
- My entity component system allows the dev to swap between implementations (there are ~4 different ways components & entities could be stored, and depending on your game one might outperform another)
- My debugging utilities make live on-screen performance/event charts extremely simple. Using Round robin databases they can capture an entire game's metrics while using a fixed amount of memory - and then dump the charting data for offline investigation.
- The networking component takes lessons learned from GafferOnGames and UDK and offers additional validation, RPC, and performance oriented features into an open source library
- You can define which entity management system (OOP vs DOP) you want to use for update & render (you can use a mixture since your entity update logic often doesn't represent the structure necessary for efficiently rendering a scene)
- All of my systems allows the dev to define their game based on tasks - these are used to control how much time is spent per frame, and can also be used to multithread
- Most importantly, my engine focuses on allowing any of its components to be included into an existing game and provide simple ways to integrate them. Only want to use the steering behavior API? Awesome, you can use your own object and your own Vector classes, just implement 2 simple classes and you're golden.

This is a lot to claim, and some of my claims may be on outdated knowledge - but if time permits I can explain anything in more detail.
3  Game Development / Game Play & Game Design / Re: Graphics Backend Abstraction on: 2017-04-17 23:29:38
I've abstracted the graphics backend in my engine by using a system where entities have a "view" id (generated at runtime) and the graphics backend relates a renderer to that "view".

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  
public interface Renderer<T> {
   public static final int NONE = -1;
   default public Renderer<T> create(T entity) {
      return this;
   }
   public void begin(T entity, GameState state, View view); // <- BEGIN RENDERING
   default public void end(T entity, GameState state, View view) {
      // nothing
   }
   default public void update(T entity) {
      // nothing
   }
   default public void destroy(T entity) {
      // nothing
   }
}


// code found in "entity" type object
   public void setRenderer(int id)
   {
      destroyRenderer();
     
      renderer = Axe.renderers.get( id );
     
      if (renderer != null)
      {
         renderer = renderer.create( this );
      }
   }
   
   protected void destroyRenderer()
   {
      if (renderer != null)
      {
         renderer.destroy( this );
         renderer = null;
      }
   }
   
   public void destroy()
   {
      destroyRenderer();
   }

   public void update(GameState state, View<V> firstView)
   {
      if (renderer != null)
      {
         renderer.update( this );  
      }
   }
   
   public void draw(GameState state, View<V> view)
   {
      if (renderer != null)
      {
         renderer.begin( this, state, view );
         
         // render children
         
         renderer.end( this, state, view );
      }
   }


Where Axe.renderers is an instance of:
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  
public class Registry<T>
{
   private int identifier;
   private T[] items;

   public Registry( T... items )
   {
      this.items = items;
   }

   public int create()
   {
      return identifier++;
   }

   public void register( int identifier, T item )
   {
      if (identifier >= items.length)
      {
         items = Arrays.copyOf( items, identifier + 1 );
      }
     
      items[identifier] = item;
   }

   public <X extends T> X get( int identifier )
   {
      return (identifier >= items.length || identifier < 0 ? null : (X)items[identifier]);
   }

}


When you have a displayable object you define an ID
1  
2  
3  
4  
public class Sprite
{
    public static int VIEW = Axe.renderers.create();
}


And when you load a graphics library they do this:
1  
Axe.renderers.register( Sprite.VIEW, new SpriteRenderer() );


This will vary if you aren't using OOP and are using DOP

The renderer class has a create method which can return a new renderer (per entity instance) or they can all shared a renderer (globally or based on the entity data). You can create different views for each type (ie Sprite) that can render it differently.

The restriction here is that all possible drawable things need to be an object and have a view.

This has been working fine for me!
4  Game Development / Game Play & Game Design / Re: Working on "How to plan and design a game engine" and I'm looking for feedback on: 2017-04-17 20:32:40
I just don't understand one thing.
why do you work on a game engine?
do you willing to create game with it in the end?
if so then you're better to stick to something that already works and not try to invent to wheel.
you're better create games and not engines.
general purpose code is worthless

Not everyone has the end goal of creating a game - some of us enjoy the art of crafting code, applying designs we've learned over time to provide solutions to problems that no one has before. I'm actually far better off creating engines - I lack the resources to finish a game (art, sound, etc), I always stop when the interesting problems are solved.

General purpose code is worthless? I get it, you must be new to programming. It's built on general purpose code. Also, a game engine isn't general purpose code... it has very specific purposes, specific time and memory constraints... produces very interesting problems to solve for game engines.

Who said I plan on reinventing the wheel? There are parts of my work that NO other game engines available have...

Thanks for taking time on reading the presentation and providing some constructive criticism!

5  Java Game APIs & Engines / Java 2D / Re: Java2D physics engine? on: 2017-04-15 23:27:36
I made a port of a simple C++ physics library:

https://github.com/ClickerMonkey/ImpulseEngine
6  Game Development / Newbie & Debugging Questions / Re: [Solved] Entity Component System - How to control components of the same Entity on: 2017-04-15 21:36:26
I went to Shippensburg University which is a public college in Pennsylvania with a great CS department. Most of what I know was acquired by lots of practice, books, and article reading.

When it comes to high performance in Java I just read C++ articles on game programming (from AAA companies is best). Those articles really concentrate on memory and execution speed - and even though Java has its own memory management a game in Java is an entirely different beast. If you avoid allocation during game play your games can perform amazing things very efficiently. You essentially want to give the JVM heap memory manager nothing to do and you can achieve speeds comparable to C++
7  Game Development / Newbie & Debugging Questions / Re: Entity Component System - How to control components of the same Entity on: 2017-04-15 21:22:51
If you only want to iterate over the entities which have component X & Y then there are a few ways to achieve this. Based on personal experience you can create these concepts called "entity types". An entity type in practice is like a "Ball" which has a Position, Velocity, and Image component. An entity type simply groups entities together based on the components they have. Not all entity types need to be named like "Ball", the whole concept of entity types can be hidden behind the scene.

Anyway, on an entity type you have an ID (integer starting at 0), you have a bitset which represents which components an entity of that type has. I use bitsets because comparing them is very simple. If you want to know if a type has component X & Y you can use bitwise operations lickity split. Since you are only going to have a handful of entity types (maybe 10?) its pretty efficient to store the components directly in the entity type - then you iterate over the 10 entity types and say "DO YOU HAVE THESE COMPONENTS?" - if yes, iterate over each entity in the type.

I've created APIs like int typeId = entityManager.createType( POSITION, VELOCITY, IMAGE ) on the EntityManager - you can store that generated ID (index) as a static variable public static final int TYPE_BALL = ... and later user it like so: entityManager.createEntityType( TYPE_BALL ). You can also have entityManager.createEntity( POSITION, VELOCITY, IMAGE ) which finds an entity type with those components and uses it, otherwise creates a new one. A little slower. You can dynamically add components to an entity by using the previous logic of finding the appropriate type and adding a new entity instance while removing the entity from it's old type.

I hope this helps.
8  Game Development / Newbie & Debugging Questions / Re: Entity Component System - How to control components of the same Entity on: 2017-04-15 20:53:00
There are a few ways ECS systems are implemented:

1. The components exist on the entity. This is the simplest but least efficient when it comes to processing (doesn't take advantage of cache coherency) and great when it comes to memory usage. You ALWAYS know you're operating on the correct components.

2. The components exist in a large array. The component at index K belongs to entity K. Ideally components are all initialized sequentially and placed in the array to take advantage of cache coherency. Entities only need to be an ID (K) and with that you look in each component array for their components. A challenge here is to keep track of which entity has which components. You could do this by using a Bitset sort of class, where component with ID X is 1 in the bitset in the Xth position if the entity has the component. This is a very fast solution but allocates more memory than needed. This is also very light on memory though - you grow your component arrays as you need more entities and you leave it be at that. You don't need to allocate more components on each entity create. You just find a new entity ID. If you're looking at component X at index K you know if you look at any other component at index K you will have the proper components

3. The components exist in a compressed array. Only entities with component K have an entry in the array. This is tracked by keeping an ID at K which is the entity ID. You end up having mappings between the entity and the indexes of their components in the component lists. This is like a decoupled #1 where the data is still stored in component lists for efficient iteration. This is a more complicated structure, if you want a code example I can provide. You know the indices of the components here by keeping a mapping. As long as you keep the mapping accurate you can be confident you are operating on the proper components.

So how are you implementing it exactly? That might shed some light on why you have worries about looking at the wrong component.
9  Game Development / Articles & tutorials / Re: Working on "How to plan and design a game engine" and I'm looking for feedback on: 2017-04-15 20:15:02
I put this in the wrong spot... can someone delete it please? Sorry...
10  Game Development / Game Play & Game Design / Working on "How to plan and design a game engine" and I'm looking for feedback on: 2017-04-15 20:14:07
Greetings friends of old, I request a fragment of your time to borrow your experiences using and creating game engines.

Here's the reddit post:

https://www.reddit.com/r/gamedev/comments/65itl3/working_on_how_to_plan_and_design_a_game_engine/

Why am I posting it here?:

The game engine I've been working on for the past 9 years is in Java, I plan on using the knowledge I gained from that to make a series of sorts showing designing and creating a game engine.

And the content:

Greetings!

I have a presentation I'm using to organize my thoughts:

https://docs.google.com/presentation/d/17XGUV4XnJ0amohoEh8vikZjAP_Enl2Q5IIiA0ybI7ec/edit?usp=drivesdk

I'm looking for criticism on the overall endeavor, if I'm missing a component, or if I'm missing any features that one might want in a game engine. Anyone should be able to comment on the presentation above.
I'm also trying to figure out what the best medium would be to communicate this. My ideas thus far:
  • A video going over the entire presentation offering explanations and examples of everything. This is the simplest but also lacks actual API design.
  • A series of videos or articles, one for each component, that goes over everything in the slide and also offers high level designs on the solutions one might choose per feature.
  • A combination of 1 and 2 so one offers a complete overview and the second allows more detail if the person is interested.
  • Doing #3 except with actual code being developed in a few different languages (Java, C++, C#, TypeScript) and something that shows off the code working.

Now as you can tell it really could escalate in how much work could be done. This is something I've been very passionate about for the past 11 years (have been refining my own GE for that long) so I'm up for the challenge. If I get enough support for #3 or #4 I'll need to figure out how to convince my wife its worth the time, not sure how to do that yet.

I'm already actively working on the end result game engine so #3 or #4 is doable, I just need to determine if it will be worth my time.
Thanks for reading and any input you may have!

11  Game Development / Articles & tutorials / Working on "How to plan and design a game engine" and I'm looking for feedback on: 2017-04-15 20:12:04
Greetings friends of old, I request a fragment of your time to borrow your experiences using and creating game engines.

Here's the reddit post:

https://www.reddit.com/r/gamedev/comments/65itl3/working_on_how_to_plan_and_design_a_game_engine/

Why am I posting it here?:

The game engine I've been working on for the past 9 years is in Java, I plan on using the knowledge I gained from that to make a series of sorts showing designing and creating a game engine.

And the content:

Greetings!

I have a presentation I'm using to organize my thoughts:

https://docs.google.com/presentation/d/17XGUV4XnJ0amohoEh8vikZjAP_Enl2Q5IIiA0ybI7ec/edit?usp=drivesdk

I'm looking for criticism on the overall endeavor, if I'm missing a component, or if I'm missing any features that one might want in a game engine. Anyone should be able to comment on the presentation above.
I'm also trying to figure out what the best medium would be to communicate this. My ideas thus far:
  • A video going over the entire presentation offering explanations and examples of everything. This is the simplest but also lacks actual API design.
  • A series of videos or articles, one for each component, that goes over everything in the slide and also offers high level designs on the solutions one might choose per feature.
  • A combination of 1 and 2 so one offers a complete overview and the second allows more detail if the person is interested.
  • Doing #3 except with actual code being developed in a few different languages (Java, C++, C#, TypeScript) and something that shows off the code working.

Now as you can tell it really could escalate in how much work could be done. This is something I've been very passionate about for the past 11 years (have been refining my own GE for that long) so I'm up for the challenge. If I get enough support for #3 or #4 I'll need to figure out how to convince my wife its worth the time, not sure how to do that yet.

I'm already actively working on the end result game engine so #3 or #4 is doable, I just need to determine if it will be worth my time.
Thanks for reading and any input you may have!

12  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-10-03 05:02:46
I created an extension to TWL for LWJGL3:

https://github.com/ThemableWidgetLibrary

I had to pull out the LWJGL2 code into its own library as well.
13  Discussions / General Discussions / Design advice for a library I'm working on. on: 2014-06-06 12:33:59
I've been working on this steering behavior library for a while, and recently I've made substantial progress however I'm starting to feel more and more uneasy about my design as I start making example games/simulations using the library.

I have these 3 different concepts: SpatialEntity, SteerSubject, & Target (my Vector class implements Target).

Issues arise when I want to use one in place of another, since they're so similar (all have a position, 2 have a radius, one has velocity, direction & acceleration). For example I have a TargetClosest which given a SteerSubject will return the closest SpatialEntity. I have steering behaviors which take targets like this and determine whether to stay away from, steer to, steer around, hide from, etc. It returns a SpatialEntity (which SteerSubject implements BTW) because I didn't want to say all spatial entities (which can be added to spatial databases) have a velocity, acceleration, etc...

My options as I currently see it:
* Add a super interface to everything, it has: position, spatialGroups, spatialCollisionGroups, isStatic, isInert, direction, velocity, maximum velocity, acceleration, maximum acceleration. The defaults are 0 (or vectors at the origin), except position is required. This would mean 13 methods would be implemented, but in some cases (like Vector) it would only return one useful value. I think this is useful however, since maybe I want the unit to guard a Vector opposed to another unit, or the future position of a unit.
* Add a lightweight component system, so that the super interface has get[Float|Vector](SpatialProperty) where SpatialProperty is an enum and each implementation would instead have a switch statement on the enum which would be fairly fast.
* Add an interface for each concept, like Spatial{isStatic,isInert,spatialGroups,spatialCollisionGroups}, HasPosition{position}, HasVelocity{velocity, maximum velocity}, and HasAcceleration{acceleration,maximum acceleration}. This will result in some very verbose code in the library, I will have generics like <T extends HasPosition & HasVelocity> and I don't know whether that explicitness is a nice thing or not.

Another dilemma I'm working on is whether instead of having a radius, I can have a shape (which I have shapes implemented already: Segment, Plane, Bounds, Sphere). I liked radius initially because that keeps things super simple and fast. But I don't know whether someone would maybe wan't something else. Decisions...

If anyone could shed any light on this... I've had this exact same problem many times and I've always just picked one but I've always had bits of regret and I was hoping maybe someone can talk me into using one method or another so I don't have to make these decisions.
14  Game Development / Shared Code / Re: OpenGL font without textures on: 2014-01-20 00:53:43
When I use ':' or ';' inside a string it prints a symbol like '\\'. What can be the problem ?

That's very odd, can you show me an example of a String you're trying to print?
15  Discussions / General Discussions / Re: Did you ever cut corners to solve a problem? on: 2013-12-09 14:18:49
Nope, never.
16  Game Development / Game Mechanics / Re: plane intersection on: 2013-12-09 14:14:42
FYI:

x^-1 = 1/x

More broadly:

x^-y = 1/(x^y)
17  Game Development / Newbie & Debugging Questions / Re: Printing whole exception. on: 2013-12-02 18:58:10
Your error occurs because you don't have the applet properly setup. It can't find the LWJGL JAR.

Checkout http://www.lwjgl.org/wiki/index.php?title=Deploying_with_the_LWJGL_Applet_Loader_-_Introduction



You're kinda wrong. What the problem is that first off all, file.getAbsolutePath() requires applet to be signed. I haven't signed the applet yet when this error was posted. Second, I can't load natives properly for some reason. Still working on it. The library is inside the game.jar file already.

The library being inside the game.jar doesn't mean anything.

Your exception:

1  
Caused by: java.lang.ClassNotFoundException: org.lwjgl.LWJGLException


Is very straightforward, it can't find that class.

You have more than one problem yes... but you also need to figure out how to bundle up a LWJGL application for an applet.
18  Games Center / Showcase / Re: Fetriz on: 2013-12-02 18:54:57
Am I missing something or is this just 4 tetris games at once basically? I watched the video and I did not get the Fez+Tetris impression at all.
19  Game Development / Game Play & Game Design / Re: Feeling aimless ... on: 2013-12-02 16:35:12
That's actually a pretty cool approach if your aim is to build a nice resume with things you have experience in. It enables you to get a broad knowledge of game programming and easily demo and show it off.
20  Game Development / Game Play & Game Design / Re: Feeling aimless ... on: 2013-12-02 13:49:09
I like to gather reasons why I want to make a game... and if those reasons aren't ones that are going to last... then you're going to not be successful.

You need motivation to keep your aim true... I use the idea of working for myself (hopefully making games) coupled with the fact that my wife is pregnant and I have a child I want to raise myself (which requires me to be self-employed working at home).

Find your aim fool!
21  Game Development / Newbie & Debugging Questions / Re: Java Applet problem | Security Exception on: 2013-12-02 13:41:52
Create a keystore using the keytool command:

http://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html

Using the keystore created, you need to sign the JAR with the jarsigner command:

http://docs.oracle.com/javase/tutorial/deployment/jar/signing.html
22  Game Development / Newbie & Debugging Questions / Re: Printing whole exception. on: 2013-12-02 13:37:40
Your error occurs because you don't have the applet properly setup. It can't find the LWJGL JAR.

Checkout http://www.lwjgl.org/wiki/index.php?title=Deploying_with_the_LWJGL_Applet_Loader_-_Introduction

23  Discussions / General Discussions / Re: Prepper and handler thread rendering. on: 2013-12-02 13:34:36
(If I understand this correctly) this is something I do for my current game I'm working on.

I have a thread that's responsible for building a ByteBuffer for a chunk. That thread is responsible for determining face visibility, how lighting affects the faces, etc. Once the ByteBuffer is ready to be loaded to the VBO it's put on a queue which the main rendering thread reads every iteration.

So essentially my code is organized like this.

Main Thread
1. Rebuild chunks? Place on queue for Build Thread
2. Any built chunks? Take ByteBuffer and update appropriate VBO

Build Thread
1. Wait for chunk to build
2. Build chunk to ByteBuffers
3. Place ByteBuffers on queue for Main Thread

This only works nicely because the building part is done in such a way that it doesn't modify any game state information... AND if a chunk is being built while it's modified the building process for that chunk is restarted. For every block I do a simple check to see whether the chunk has changed since I started (just a simple volatile boolean flag).
24  Discussions / General Discussions / Re: Bad Habits on: 2013-12-02 13:22:43
After you write some code that does something special/important, always think if it will be instantly understandable if you look at it in 6 months... if it's complicated then I say comment it.

I use good variable names so you don't need to comment, but often I find some variables aren't name-able and when your variable names are too long It's hard to read (I like some equations on a single line okay? The readability of the equation is sometimes more important than the variable names - since the variable names don't always represent real-world things. I hope that makes sense.)

When I use short variable names in complex algorithms and equations, I always comment my code.

Of course, this goes out the window if you REALLY think you'll code the entire project in a few months.
25  Game Development / Newbie & Debugging Questions / Re: How could you detect collision with a colour in Java? on: 2013-11-26 13:36:50
Since reading the pixels of the image would be pretty slow... I would write an algorithm that would determine all rectangles in that image and then do collision with those rectangles. It shouldn't be hard to write a greedy algorithm that iterates through all pixels... and when a black one is found it starts to grow that area in all directions until it hits a white pixel. Do this until all black pixels are taken.
26  Game Development / Newbie & Debugging Questions / Re: Back half of cube is being clipped (using geometry shader). on: 2013-11-25 15:39:06
That doesn't look like culling. How is it being rendered what type of polygon are you using.

That's why I said clipping =P

use vec3 for the position and just a mat3 for the roation matrix. I guess your problem is that the w component of the corners is 0

Holy moly! You're awesome =P I changed the w component of the corners to be 1.0 and not 0.0 and it worked! (derp they're points not normals)

Very odd, I wonder how having them be 0.0 would cause the backside to be clipped...

Anywho, thanks!
27  Game Development / Newbie & Debugging Questions / Re: Back half of cube is being clipped (using geometry shader). on: 2013-11-24 17:59:32
Here's a picture of what it looks like:

28  Game Development / Newbie & Debugging Questions / [solved] Back half of cube is being clipped (using geometry shader). on: 2013-11-24 16:49:16
I'm working on a geometry shader that takes points, color, rotation, scale and generates a 3d cube.

The code (including the GS, VS, and FS):

https://gist.github.com/ClickerMonkey/7605059

For some odd reason the back half of the rotating cubes are clipped... and they're not clipped on the back plane (which is at 100) because I can move them closer and further and the back is STILL clipped.

I'm fairly sure it has to do with my geometry shader, but after googling for hours I can't find anything =/

The only thing I suspect it could be would be gl_ClipDistance - something I could set to fix it? But there's no good information online...

Thanks!
29  Game Development / Game Mechanics / Re: Best rendering method using pure java? on: 2013-11-19 00:23:07
I started one, and uploaded it to Gist:

https://gist.github.com/ClickerMonkey/7534326

It's a software graphics library with blending, textures, and simple primitives.

Checkout https://gist.github.com/ClickerMonkey/7534326/raw/7a472d6541a9be059eba3735a7e6e19e7264e5e1/Test.java to see what the drawing code is like.
30  Java Game APIs & Engines / Engines, Libraries and Tools / Re: Concepts of a game engine/main loop on: 2013-11-18 20:00:22
I wrote a pretty extensive article on my blog, http://www.gameprogblog.com, check it out.
Pages: [1] 2 3 ... 12
 
Archive (336 views)
2017-04-27 17:45:51

buddyBro (534 views)
2017-04-05 03:38:00

CopyableCougar4 (977 views)
2017-03-24 15:39:42

theagentd (1012 views)
2017-03-24 15:32:08

Rule (992 views)
2017-03-19 12:43:22

Rule (972 views)
2017-03-19 12:42:17

Rule (971 views)
2017-03-19 12:36:21

theagentd (1069 views)
2017-03-16 05:07:07

theagentd (990 views)
2017-03-15 22:37:06

theagentd (759 views)
2017-03-15 22:32:18
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51
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!