Hi !
Featured games (85)
games approved by the League of Dukes
Games in Showcase (623)
Games in Android Showcase (176)
games submitted by our members
Games in WIP (676)
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 ... 9
1  Game Development / Game Mechanics / Re: LibGDX Screen to World coordinates on: 2015-08-28 02:27:35
Unfortunately I don't know enough about LibGDX to point you directly to the answer (maybe someone else can do so), but I can think of some additional information that might be helpful.

How is your camera projection set up? Is it a centered orthogonal projection with the same aspect ratio as the viewport? If so, what's the size?

Also, what do you get if you un-project points with easily predictable results? For example, in the 'centered orthogonal' case, (0, 0) should probably un-project to ~(-x_extent, -y_extent), (width/2, height/2) should probably un-project to ~(0, 0), and so on. Knowing what results you get for these simple cases might be informative.
2  Games Center / Showcase / Re: Monster Run on: 2015-08-24 02:02:34
Ran well here (OS X 10.10). Kudos for being able to put the whole thing together so quickly.

Since this was developed in a short amount of time I'm guessing you may not be looking for feedback, but I'll mention that it felt like it could be faster overall (that is, a higher 'monster speed' would make it more challenging and engaging). Also, I'm wondering if the (presumably) random level generation can create situations that can't successfully be navigated? Or maybe they can and I just failed to do so Smiley
3  Game Development / Newbie & Debugging Questions / Re: Slick 2d Tilemap and Image problems on: 2015-08-22 21:31:12
I'm not really familiar with Slick, but many 2-d frameworks use the "painter's algorithm" for rendering, so the first thing I'd recommend is to make sure you're rendering the map before you render the characters.
4  Game Development / Newbie & Debugging Questions / Re: I Get a java.lang.NullPointerException I cant fix on: 2015-08-22 20:46:12
@The OP: If you're not sure how to property format your code, the easiest solution is probably to use the 'code' option in the post editor. (Pastebin may be better in general for larger amounts of code, but just including the code directly in a post would probably be fine here.) To format your code in your post, highlight the code and then click the formatting button with the number sign on it. Or, you can just manually add 'code' at the beginning of your code and '/code' at the end (both in square brackets).

Also, I gather from previous posts that you're using multithreading. Is this something that's required by whatever framework(s) you're using? If not, can you clarify what the purpose of the multithreading is?
5  Game Development / Newbie & Debugging Questions / Re: I Get a java.lang.NullPointerException I cant fix on: 2015-08-22 18:07:04
I'm getting
Exception in thread "Thread-2" java.lang.IndexOutOfBoundsException: Index: 777, Size: 2
   at java.util.ArrayList.rangeCheck(Unknown Source)
   at java.util.ArrayList.get(Unknown Source)
   at com.GamerC4.main.Handler.render(
   at com.GamerC4.main.Game.render(
   at Source)

If you've made changes since your original post, could you post your current code? (Using code blocks or pastebin will preserve formatting and provide syntax highlighting, which will make the code easier to read.)
6  Game Development / Newbie & Debugging Questions / Re: LWJGL GL_INVALID_ENUM reason on: 2015-08-22 17:59:20
Just to be thorough, have you checked that glType is valid? The documentation doesn't mention this as a possible source of 'invalid enum' errors (and I'd be surprised if the documentation was incomplete or inaccurate), but in the interest of narrowing things down, it might be worth double-checking.
7  Game Development / Game Mechanics / Re: [Box2D][LibGDX] Raycasting bug? on: 2015-08-13 23:02:32
Maybe this is more trouble than you want to go to, but it might make this easier to debug. I'm wondering if you can narrow this down to a single segment-vs.-box test that fails consistently. In your second image, for example, it'd be a segment from the start point in the lower left to the upper-left corner of box 2, tested against box 1 (that appears to be what's failing, if I'm not mistaken). A self-contained example with a test case that always fails might make this a little easier to dig into.
8  Game Development / Newbie & Debugging Questions / Re: [LibGDX] Softbody or Jelly effect? on: 2015-08-11 14:33:49
Ok, I see. It seems like that should be pretty straightforward; if there's anything difficult about it, it'll probably just be figuring out the appropriate LibGDX features or implementing some low-level OpenGL stuff.

First, I should say that I don't know how other similar games have done it, although I'm guessing it's similar to what I'm describing here.

What you posted actually has the form of a triangle mesh already, so it seems all that's needed is to figure out how to implement dynamic meshes in LibGDX and translate what you have there to mesh form. The texture coordinates would be static, so all you'd have to change per-update would be the mesh vertex positions (which would simply be the positions of the corresponding bodies). The only pitfall I can think of is the shape getting deformed enough that triangle windings are reversed, but if your springs are stiff enough I doubt that'll happen.

Is that enough info to go on?
9  Game Development / Newbie & Debugging Questions / Re: [LibGDX] Softbody or Jelly effect? on: 2015-08-11 13:47:32
Are the bodies arranged as one body in the center with a ring of NUM_SEGMENTS bodies around it? Something like this?

 / \ / \
 \ / \ /
10  Game Development / Newbie & Debugging Questions / Re: [LibGDX] Softbody or Jelly effect? on: 2015-08-11 11:33:43
Maybe someone can answer the question without this information, but could you describe what data you have available from Box2D? Is it something like points roughly in a circle with springs between them? (You mentioned bodies and joints, so I'm assuming that's the case, but some information about how many bodies and how they're joined together might be useful.)
11  Java Game APIs & Engines / Java Sound & OpenAL / Re: Paul's SoundSystem, set folder for files on: 2015-08-11 08:32:27
Don't know if this is bad practise or not, but it works!

If I'm not mistaken (and I may be), that solution relies on the current working directory being your game folder, which may or may not be the case depending on how and from where your app was run. Whether this matters depends, I suppose, on how you intend to distribute the app, but in my experience the working directory may end up elsewhere in some deployment scenarios. Anyway, just something to keep in mind.
12  Game Development / Newbie & Debugging Questions / Re: Path to JAR - any problems with this approach? on: 2015-08-10 20:18:35
Why are you needing to identify the JAR file of your application in the first place?
Do you want to load a resource from it, in which case you can do that via the ClassLoader?
Do you need to identify the JAR file in order to distribute it to some other place?
Maybe we can find a solution to by pass the problem of identifying the JAR file altogether?

Well, maybe we're just running into some communication problems Smiley I said in my original post that I still had some doubts 'after doing some research', and what kind of research doesn't include a 2-second Google search? Wink So I'm not sure where that came from.

Anyway, I also gave the reason for wanting to do this in my original post, but I'm happy to repeat it (and elaborate a bit).

I have some documents (licenses and other legal stuff) that I'll be distributing in a folder with my game. My concern is that this folder may be difficult for the user to access if the game ends up being installed in a non-obvious location (such as a hidden folder).

Getting the absolute path to this folder would make some options available. At the very least I could display the path so the user knows where the game is installed. Also, although this can't really be relied on, I could use the Desktop class to open the folder for the user automatically.
13  Game Development / Newbie & Debugging Questions / Re: Path to JAR - any problems with this approach? on: 2015-08-10 19:44:42
I'd simply delegate you to do a 2 sec. Google Search which will show you this:

KaiHH, I searched extensively before posting here, and have read the exact thread you linked to in its entirety several times.

Your next question might by why that thread wasn't sufficient, so I'll go into a little more detail here.

The answers in that thread fall into a few basic categories:

- Use getProtectionDomain(). My concerns about this are that there are some caveats mentioned in the thread, and that it can throw a SecurityException. That may or may not be a problem in practice (I'm not sure), but one of my goals is to minimize the number of possible failure points, and in that sense getResource() seems a little more promising.

- Use getResource(). There were some caveats mentioned with this approach as well, although I'm pretty confident they don't apply in my particular case. The issue remains of decoding the URL and converting it to the needed form. Some of the answers skipped this part; one highly-rated answer seemed to address it, but I wasn't able to get that method to work (which may have been user error, or I may have simply misunderstood what was being suggested).

- Use 'user.dir'. This of course will not give the desired results in all cases.

I'll also mention that some of the answers seemed to have errors or be problematic in various ways. Some of the answers came with the caveat of only having been tested on certain platforms, and some seem to make more assumptions regarding the format of the returned URL than others. In short, it's not just a matter of popping into that thread and finding the answer. There are probably 10 to 20 different specific solutions offered there, and much discussion about potential problems and pitfalls. Extracting a robust, reliable solution from that thread might seem trivial to you, but for me it's taken some work (and I'm still somewhat uncertain about it).

The code I posted here is the solution I came up with after reading that thread and many others. I wanted to get some other eyes on it because I'm not confident I've covered every angle or necessarily understood everything I've read correctly. If it's a trivial problem with a trivial solution, it should be easy to look over the three lines of code I posted and point out any problems with it.

Anyway, if anyone can pick the code apart, please do! I'd very much like to know if there's anything wrong with it.
14  Game Development / Newbie & Debugging Questions / Path to JAR - any problems with this approach? on: 2015-08-10 11:29:44
I know this is a commonly asked question, but after doing some research on it I still have some doubts.

Say I have a directory structure like this:


In order to make some documents distributed with the game more easily accessible to the user, I'd like to get the absolute path of parent_folder. It seems like the most reliable method for this is to use getResource(), as in the following code (error checking omitted for brevity):

String path = Main.class.getResource("Main.class").getPath();
path = path.substring(0, path.indexOf("/MyApp.jar!"));
path = new URL(path).toURI().getPath();

Am I on the right track here? Can anyone spot any problems with this approach, or any cases where it might fail?
15  Java Game APIs & Engines / Java Sound & OpenAL / Re: Paul's SoundSystem, set folder for files on: 2015-08-07 11:47:21
I'm not familiar with the library, but according to the documentation there's a loadSound() function that takes a URL. Have you tried this with a URL representing a path to one of your files? Assuming the library is open-source, perhaps you could also find the location in the code where the loading occurs and see if accessing files outside the JAR is supported. (Or, perhaps you could just ask the developer directly.)

Also, may I ask why you want to keep your resources outside the JAR? I'm not saying you shouldn't, but knowing what your goals are might help. (My understanding is that loading resources from JARs is generally preferable though - for one thing, it sidesteps some potential issues with the location of the current working directory and/or acquiring the absolute path to your external resources folder.)
16  Game Development / Newbie & Debugging Questions / Re: Ran into an odd bug when I tried to generate random numbers for items in my game on: 2015-08-06 04:57:46
That was done to see if the same item could have different stats so that each item is unique in its own way. but it only seems to add one single item instead of two similar items maybe?

Make sure you're clear on the difference between reference and value semantics and which applies here. You might check out this recent thread - it contains links to some articles that cover this.

In short, it looks like all your 'instances' are actually just references to the same object, which is probably why they all appear to have the same characteristics.
17  Game Development / Newbie & Debugging Questions / Re: [LibGdx/LWJGL] What does this do? on: 2015-08-04 12:01:22
I'd honestly like clarification on exactly what that method does, since reading the lwjgl documentation doesn't make it very clear.

The LWJGL documentation probably won't be of much help with respect to OpenGL functions, since LWJGL just provides a binding. For details, you'll probably want to refer to an OpenGL-specific reference, such as this.

In short, glBufferData() allocates storage for an OpenGL buffer (releasing any previous storage), and optionally initializes the buffer with user-supplied data. Since the source of the call is presumably in LibGDX code, I'm not sure how much can be gleaned from the screenshot you posted. I will say though that the number of invocations (> 2000) is a bit suspicious. Because memory allocation/deallocation can be costly, it's typical to create buffers and reuse them rather than create them repeatedly as seems to be happening here.

Here are some things you could check:

- Do all those invocations happen early on? Or does the number of invocations increase steadily, more or less, the longer the program runs?
- Can you isolate the part(s) of your rendering code that are responsible for the invocations?

Keep in mind that if your application is performing adequately, it's not necessarily a problem for there to be hot spots. However, I do think it might be worth tracking down where those invocations are coming from.
18  Game Development / Newbie & Debugging Questions / Re: Best way to handle multiple references to a resource on: 2015-08-03 02:13:50
If I have a "Content" class which stores a static sprite image, and then I create 100 sprites which all take this image as a parameter, will I have 100 instances of this image in RAM or just 100 pointers to the static image?

You'll have 100 'pointers' (references, generally speaking) to a single instance. That's assuming this is Java you're talking about, and that there's no cloning or deep copying going on that you haven't mentioned.
19  Game Development / Newbie & Debugging Questions / Re: World architecture and internal construction? on: 2015-08-03 02:09:26
I don't really have an answer, but since you haven't gotten any replies yet I'll go ahead and mention a couple things.

People may be slow to respond because it would probably take more of an 'inside' view of the problem (which only you have at the moment) to know what solution would be optimal. But, I'll go ahead and put in my usual plug for data-driven design.

I guess the question I'd ask is if there's anything about the 'region' concept that really needs to be represented at the code level. Would it be sufficient for that distinction only to exist at the data level? For example, the idea of per-region styles sounds like something that could be handled at the data level with proper support. Rooms could just have string tags ('castle', 'dungeon'), and these could be used along with abstract material tags ('wall', 'floor') to choose specific materials ('castle wall', 'dungeon floor'). And so on for other aspects of the design. Adding a scripting system (if you don't already have one) might further reduce the need for hard-coding aspects of the world design.

Anyway, that may or may not be helpful, but that's what comes to mind.
20  Game Development / Performance Tuning / Re: 2D Collision Engine - Performance Test on: 2015-08-02 09:16:04
( Wikipedia link with illustrations:

Sure, I understand that. I was just asking because you mentioned projecting the polygon onto a point, but maybe you meant line.

Currently the 'Polygon' class is for convex polygons only.

Ok, I'll just mention one thing I noticed. Although I haven't examined it carefully, it looks like your contains() function for polygons uses some form of the generalized 'edge crossing' algorithm for point-polygon containment. Is that correct? If so, it seems like for convex polygons you'd want to instead use a simple hyperplane test (that is, check to see if the point is 'inside' all the bounding hyperplanes for the polygon), as that's likely to be simpler and more robust.

Also, are you sure this loop:

        for (int index = vertexes.size() - 1; index-- > 0;)
            final Point cur = getVertex(index);
            final Point next = getVertex(index + 1);

Is correct? It seems like this would always miss one of the polygon edges.
21  Games Center / WIP games, tools & toy projects / Re: [Android] Blu’s Travel (Testers wanted!) on: 2015-08-02 03:30:33
I don't have a device to test on, but just wanted to say that I like the art and the concept Smiley
22  Game Development / Performance Tuning / Re: 2D Collision Engine - Performance Test on: 2015-08-01 23:37:56
Writing general collision libraries is certainly tempting, but it's kind of a deep rabbit hole. For one thing, collision detection problems are often highly context-dependent, and bespoke implementations can sometimes exploit context in a way that generic solutions can't. Also, numerical issues can make implementing robust collision code difficult, and it's really easy to miss corner cases even if you know what you're doing. I'm sure you already know all that, but I guess I'm just saying it's all pretty non-trivial.

Anyway, I looked through the code a bit and was wondering, is the 'Polygon' class supposed to be convex-only? Or is it intended to represent non-convex polygons as well?

Also, can you clarify what you mean by projecting a polygon onto a specified point?
23  Game Development / Newbie & Debugging Questions / Re: Slick Utils and the Modern OpenGL 3+ on: 2015-08-01 23:17:48
Slick was the Go-To library for pre-OpenGL 3.0.  If it isn't being updated anymore, is there a better/newer library that uses the newer OpenGL 3+ features?

I remember reading that Slick is no longer maintained, but I could be wrong (I'm not sure where I read it). It does sound though like it doesn't use modern techniques consistently under the hood. As for alternatives, the only thing I can think of is the oft-mentioned LibGDX, but maybe you've already considered that and decided not to use it for one reason or another.

(and Yes, I am sure the line mentioned is the problematic code and it is pre-compiled so I can't see the code - Slick uses Immediate Mode to render text, that's why I had to rewrite this class to begin with)

Isn't Slick open source? It seems like you should be able to find out what's going on in that line of code. Also, are you sure the 'invalid enum' error isn't being generated by your own code somewhere and just happens to be being caught by the Slick code? (Apologies if I'm misunderstanding anything.)

Lastly, it might be worth considering whether whatever functionality Slick is providing is something you could just replicate yourself, which would free you from the dependency and might make debugging easier. Maybe you have a reason for not wanting to do that though.
24  Game Development / Newbie & Debugging Questions / Re: Slick Utils and the Modern OpenGL 3+ on: 2015-08-01 05:43:31
I don't know much about Slick, but I seem to remember reading that it's not being updated anymore. Assuming that's actually the case, have you considered just writing the needed functionality yourself? It'd be additional work of course, but it might be easier than trying to combine your own code with whatever Slick is doing.

In any case, I assume Slick is open-source and that you can take a look at the problematic function. Can you see what's going on in the glEnable() call that seems to be causing the error? (You also might double-check to make sure the error is actually occurring there, rather than occurring in your own code somewhere and just being reported there.)
25  Game Development / Newbie & Debugging Questions / Re: Check to see if Triangle intersects Rectangle on: 2015-07-31 03:54:28
The part were I'm extending the point to a circle is Minkowski addition.

I'm familiar with these methods and with Minkowski sums. I've used them in a variety of contexts myself and in fact just recently provided a solution based on Minkowski sums to someone here on the forums. The material you're presenting is familiar to me.

I think I'll just hold to my previous objections. What you seem to be saying is that if an algorithm can be simplified for a special case, it's no longer the same algorithm. You also seem to be saying that if a newly developed theorem covers cases for which the solutions were already trivially obvious, then it doesn't 'really' apply to those cases. Both of these claims seem illogical to me, but perhaps I'm misunderstanding you.

In any case, as I said before I'm happy to leave it as a semantic disagreement. I think at this point trying to determine whether the separating axis test 'really' applies to trivial cases would require more discourse than would be appropriate for this thread. To me it's obvious that it does, based on both principle and voluminous practical evidence, but obviously your view differs.
26  Game Development / Newbie & Debugging Questions / Re: Check to see if Triangle intersects Rectangle on: 2015-07-31 01:56:41
@Roquen: It sounds like the disagreement here is basically over what 'separating axis test' means.

I'm sure you'd agree that the SAT for arbitrary convex polytopes is really the SAT. The SAT for oriented boxes is of course just a special case of the convex polytope case, with the regularity of the shapes exploited to simplify the test. Adding the further constraint that the boxes be axis-aligned causes most of the remaining complexity to drop out, and you're left with the canonical axis-aligned box test.

What you seem to be saying is that somewhere in this process of simplification, the SAT stops being the SAT. I can't really follow the logic on this, as it would seem to suggest that simplifying an algorithm for a special case causes that algorithm not to be that algorithm anymore.

In any case, it does indeed seem that you're using the term 'SAT' to mean 'non-trivial SAT', so I guess we should probably just leave it at that.

As for Minkowski-based approaches, thank you for suggesting an alternative Smiley It'd be interesting to compare a Minkowski-based approach with the SAT for relatively simple shapes (such as boxes and triangles) in 2-d in terms of efficiency, robustness, and ease of implementation. Based on my past experience working with Minkowski-based algorithms I'm a little skeptical that they'd be preferable over the SAT for simple 2-d cases, but I think some formal investigation would be needed to really weigh the two against each other.

Anyway, this has obviously wandered a bit far afield as far as the OP's case is concerned. Not having done any software-rendering work as of late, I don't really feel confident in making any suggestions there, so I'll leave that to others.
27  Game Development / Newbie & Debugging Questions / Re: Check to see if Triangle intersects Rectangle on: 2015-07-31 00:34:40
If you guys don't know why I need this, basically that rectangle in the image in the main post is the application screen and the triangle is a triangle that was 3D originally but is now 2D because it was projected. I'm just too lazy to implement triangle-only clipping and I'm trying to think of different ways to get the effect.

What's the context exactly? (I'm just curious because this suggests you're doing something fairly low-level.)

Also, do you just need a boolean result? Or do you need to clip the triangle to the screen? If boolean only, is a conservative test ok, or do you need an exact test?
28  Game Development / Newbie & Debugging Questions / Re: Check to see if Triangle intersects Rectangle on: 2015-07-31 00:13:33
I've covered "why not SAT" before.

I did a quick search, but couldn't find anything. Could you provide a link?

It's silly to say that AABB is SAT.

The standard intersection test for axis-aligned boxes is absolutely an application of the SAT. I can provide support for this if needed.

Now, maybe by 'SAT' what you really mean is non-trivial SAT, but if so I think that probably needs to be specified.

I really don't mean to be contrary or difficult, but I can't help but question your claims here. What I'm seeing is that you're saying the axis-aligned box test is not an application of the SAT, but haven't explained why, and that the SAT should seldom or never be used, but haven't given any reasons for this or suggested any alternatives.

I realize you say you've discussed this before and evidently are reluctant to repeat yourself, but I think even something like the following would really help clarify things:

1. The SAT should not be used because it's <inefficient/unstable/etc.>.
2. Instead, you should use <recommend a better algorithm here>.

I'm sure this would only take a couple minutes, and I think would be helpful to a lot of people (me included!).
29  Game Development / Newbie & Debugging Questions / Re: Check to see if Triangle intersects Rectangle on: 2015-07-30 21:24:12
SAT is almost never a good idea.

Roquen, could you explain why SAT would be a poor choice in this case, and what method or methods you think should be preferred? I think that information would be very useful to the OP (and to anyone else, like me, who's interested in these topics and always looking to expand their knowledge).

@The OP: Just in case Roquen doesn't get around to elaborating, let me offer some counterpoint here. Although I'm always happy to be shown to be wrong, I'm not entirely sure Roquen is correct here, and in absence of supporting explanation I'd recommend not jumping to the conclusion that the SAT is a poor choice.

First of all, the bog-standard canonical axis-aligned box test that we all know and have seen implemented countless times is in fact the separating axis test, so obviously the SAT has valid applications.

Now, maybe this is why Roquen said 'almost'. However, the question then becomes, if the SAT is good for axis-aligned boxes, why is it not applicable elsewhere, and at what point do other options start to look better?

In 3-d the SAT can be problematic in some cases due to numerical issues or excessive number of axes. However, these concerns don't apply in the given context. If your triangles are axis-aligned like in your image, the SAT here is only a bit more involved than the axis-aligned box case, so it's a little difficult for me to imagine why the SAT would suddenly become unsuitable in this case. Even if your triangles are arbitrary, you're still only talking about 5 axes to test total.

Additionally, the discrete SAT for simple 2-d tests has the advantages of being entirely stable and robust (given good input), of handling all cases correctly (no concerns about containment or other special cases), and of being easily extended to return a minimum translational vector that can be used to resolve the intersection.

I do think this:

It's only upsides is that it works and it's simple to implement.

Is kind of interesting Smiley What strikes me as amusing about this is that 'it works and is simple to implement' is really quite an endorsement! I mean really, as long as it's also reasonably efficient (which it is in this case), what more could you ask for? Wink Anyway Roquen, I'm sure you have reasons for discouraging its use, but I think some elaboration would be helpful here.
30  Game Development / Newbie & Debugging Questions / Re: Simple Stupid Funnel Algorithm on: 2015-07-30 13:11:13
If you have any good links for the non-simplified algorithm you could recommend, it'd be much appreciated.

I just looked around a bit, but couldn't find the reference I used, unfortunately. It was a really good paper though. The general topic was pathfinding in a Delaunay triangulation environment for agents with arbitrary radii. The specific version of the funnel algorithm used ensured that the agent stayed radius units away from all obstacles, and included curved sections in the path to go around corners.

This isn't the paper in question:


But it does have pseudocode for the funnel algorithm at the end, which might be helpful.
Pages: [1] 2 3 ... 9
BurntPizza (28 views)
2015-10-08 03:11:46

BurntPizza (16 views)
2015-10-08 00:30:40

BurntPizza (19 views)
2015-10-07 17:15:53

BurntPizza (32 views)
2015-10-07 02:11:23

KaiHH (38 views)
2015-10-06 20:22:20

KaiHH (16 views)
2015-10-06 19:41:59

BurntPizza (32 views)
2015-10-06 19:04:48

basil_ (46 views)
2015-09-30 17:04:40

shadowstryker (25 views)
2015-09-29 15:55:06

TheSpaceHedgehog (31 views)
2015-09-29 01:58:48
Math: Inequality properties
by Roquen
2015-10-01 13:30:46

Math: Inequality properties
by Roquen
2015-09-30 16:06:05

HotSpot Options
by Roquen
2015-08-29 11:33:11

Rendering resources
by Roquen
2015-08-17 12:42:29

Rendering resources
by Roquen
2015-08-17 09:36:56

Rendering resources
by Roquen
2015-08-13 07:40:51

Networking Resources
by Roquen
2015-08-13 07:40:43

List of Learning Resources
by gouessej
2015-07-09 11:29:36 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‑
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!