Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (715)
Games in Android Showcase (214)
games submitted by our members
Games in WIP (788)
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 ... 13
1  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL3 and Android Redux on: 2017-02-21 01:53:44
Once again a solid effort Spasi! I just sent off the business card mini-flyer for GDC and beyond pimping this major LWJGL announcement. Here it is (looks like the forum cut it off / it's also a link to the image):

I'm going to beat the street and even bit the bullet further and upgraded to a full GDC pass so to not miss any bloggers and other press that might pick up a story. Fingers crossed!  As mentioned in PM I'll try and get around to over the weekend creating an in-depth tutorial wiki entry with step by step picts.

Alright... dev on Android and beyond is going to be exciting from here on out!  Grin

2  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL3 and Android Redux on: 2017-02-13 21:24:16
We currently require Android N and platform 24+. Which corresponds to too low a percentage of Android users. Making it work on earlier versions should be possible, but I have neither the energy nor the incentive to do it myself.

From my perspective this is fine as Google constantly introduces new SDK APIs that aren't available at lower platform levels. In the coming months I will try and see if things can be back-ported at least for GLES to platform 19 (4.4 / KitKat / GLES 3.0); I'm generally aware of the problems / efficiency though of pre-OpenJDK though. Vulkan itself has more or less a limitation of Android N regardless if going native or through LWJGL, so again not so much of an issue with platform 24.

The amazing part of LWJGL being on Android is that now there is an option for low level graphics that is separate of the SDK / firmware conundrum of how previous SDK graphics APIs are managed. IE As the Vulkan spec continues to be modified we don't have to wait for platform 25, 26 ... X to get these new features enabled like previous Java SDK efforts being locked to the firmware. Granted there are still firmware locked drivers, but if it's an advancement of the Vulkan API itself that isn't dependent on driver updates then these new features will always be available at platform 24.

Not sure if it's even worth doing, given the performance characteristics (I'll write another post with the details).

When you get a chance this will be much appreciated and will provide initial metrics to compare for any back-porting.

There's also the issue of better handling buffer/device lost events, which are fairly common with Vulkan on Android. You may notice it in the above video, when the orientation changes, there's a full destroy and recreation of the whole thing. Moving out of the app and back in again also requires a "soft-reset", but I think I've handled that one sufficiently.

That you got this mostly worked out initially is great work. However this is not an issue as since day 1 with GLES on Android 1.0 onward one simply locks the orientation for game / graphics apps. Very few intense graphics apps don't lock the orientation and and leave the orientation restart process enabled.

I can perhaps see the difficulty of enabling various debug layers of Vulkan and getting all the necessary output perhaps if it's not being logged per se, but that is a separate issue.

The issue is complicated by the fact that I've written VKSurfaceView similarly to GLSurfaceView; everything runs on a separate thread and the UI events arrive asynchronously. If you're familiar with GLSurfaceView's implementation... it's not trivial and I don't have the necessary experience (or time) to make it robust. If I fail, I'll probably make another version that runs on the UI thread and maybe Android engineers can help with properly fixing the concurrent version.

I wouldn't hold my breath per se for any Android engineers being involved; I don't think there are any more Java / graphics champions involved to a meaningful degree on the Android team. If there is collaboration though it will be embraced warmly!

I do have experience in creating an updated GLSurfaceView2, so I'll take a look in time on any improvements there as well for VKSurfaceView, etc. If I recall correctly it was necessary at the time to expose GLES 3.1 since the Android SDK GLSurfaceView is based on the old EGL API (
javax.microedition.khronos.egl.EGL10) instead of 1.4 (android.opengl.EGL14).

Once that's done, I'll update the lwjgl3 android branch and will create another repo with an Android Studio sample project and some instructions.

If the repo can be created sooner than later along with a wiki entry where instructions will go then I can proceed with the mini-flyers.
I'll also gladly contribute the screen shot walk through of setting things up similar to what I did for my GL demos /  source code setup.

Other than that, I won't have time for much else. I'm fairly busy at work and I'm also becoming a father for the 2nd time (today or tomorrow).

Congrats with your new child! I'm always amazed that you consistently move LWJGL and the larger community forward so deftly in your spare time!

It shows that any backpedaling on Google's side is simply that; a lack of will to get things done. It's kind of been that way for a while now as things go. Your effort with LWJGL on Android means that Java will remain a first class citizen for modern app development and this is huge.

People that need to go low-level can easily find it, there aren't many options out there. I certainly don't want to give the illusion that it's a library for the average developer. Especially wrt Vulkan.

I agree the average game developer for a long time now has moved away from engine development.

In this case though the Khronos tutorial day is filled with folks making up the right audience to send a message to and that is Java remaining a first class citizen for advanced graphics development on Android and LWJGL filling the need for a unified cross-platform SDK for low level access which fulfills the promise of Vulkan and is something Google would never do re: one Java API that runs on the desktop and Android.

3  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL3 and Android Redux on: 2017-02-11 23:38:14
Once again; this is huge! Amazing! Great work! I'll get in contact with Khronos to see if they'll let me do a quick ~3 minute announcement at GDC / Khronos tutorial day. I assume you can do the blog announcement. Also I'll print up ~2k color business card (mini-flyers) with info on LWJGL going cross-platform to Android to pass out. Let me know if you have any logo / branding ideas or other input on graphics involved; I'll keep it classy. Any chance a permanent tutorial guide can be put up I can link to in addition to the main LWJGL web site; a Github wiki with screenshot walkthrough would be great! I'm still tied up for most of next week w/ the TJSDoc launch, but I'm going to get the word out at GDC. I'm sure I'll run into a bunch of Android bloggers too, so if some articles aren't up by GDC I'll see if I can drum up some interest.
4  Game Development / Performance Tuning / Re: Object Pooling and arrays on: 2017-02-09 02:10:05
Unfortunately it's not something I can confirm right away as it's been a while since I've been doing Android dev and my larger TyphonRT projects (video engine) are stuck back at a gradle version well below the current setup I'm running. IE I don't want to spend the ~3+ hours now to get things running to verify this point; updating gradle from an old version and a multi-module IDE project is no fun... 

It was a bit more nuanced and problems only occurred when running a large project based on TyphonRT when using HashMap as the component storage versus IdentityHashMap. The problem occurred when mixing 'Class / .class' and enum types as keys in the same HashMap and not just various enums as keys. When i get back to Android dev after my Javascript adventures / server side stuff is complete later this year I'll do the test and report back if I remember though this thread might be locked by then.  If I recall though it was because Class and Enum have different hashCode implementations; I could be wrong. Pending verification....
5  Game Development / Performance Tuning / Re: Object Pooling and arrays on: 2017-02-08 23:45:01
You guys are nitpicking. It's an extremely poor implementation of hashCode valid or not... Which causes instant clashes with HashMap. You have to use IdentityHashMap when using enums as keys on Android.


Harmony / same code as in Android for 8 years until switch to OpenJDK:
6  Game Development / Performance Tuning / Re: Object Pooling and arrays on: 2017-02-08 23:30:05
How is it valid? It differs from the JDK implementation which is the identity hashcode. It's clearly a mistake in the Harmony implementation never corrected in Android. Even Romain Guy in the discussion went, "oh shit..." or thereabout.. Go look at the JDK source and compare against Android. HashMaps will fail on Android if you have two separate enums with the same name at the same ordinal. QED.
7  Game Development / Game Play & Game Design / Re: Too much abstraction? on: 2017-02-08 23:11:51
Yes, look beyond the listener / observer pattern; it's not the '90s anymore.  Roll Eyes Start here...

In my efforts I have an eventbus implementation which is driven by extensible enums defining categories that also is a system component which can be added to any component manager. The events are also component managers where any data can be attached and recycled after the event propagates.

The benefit of an main / app wide eventbus is that there is a single place where all event bindings are stored and can be removed in one call. Depending on the design only the receiving end of events is registered explicitly with the eventbus as well. Having this intermediary between the triggering and receiving locations is a marked improvement over the classical listener / observer pattern.

>For ECS, you cannot easily prevent someone from removing a component because you cannot remove mutators w/o breaking your ECS.

As mentioned if you are a little clever you can prevent this scenario by adding into the mutation methods of the component architecture invocation of an internally supported component which can have pre & post actions around the mutation itself. The pre action can cancel the mutation action among other use cases. The post action could be whatever you want based on the added component; IE fire an event based on a component being added or whatever.
8  Game Development / Game Play & Game Design / Re: Too much abstraction? on: 2017-02-08 21:43:50
When you say events what are you really saying? The listener pattern or something else? I highly recommend that you do not adopt the old listener pattern and look at the eventbus. From Guava or elsewhere. Though don't use Guava!

Indeed it can be tricky coding to make a type safe component architecture really flexible with Java as it takes an advanced knowledge of generics / particularly generic methods. I'll give a basic example though.

import java.util.HashMap;

public class ComponentManager
    HashMap<Class, ?> componentMap;

    public ComponentManager()
        componentMap = new HashMap<Class, ?>();

    public <T> T getAs(Class<T> componentType)
        return (T)componentMap.get(componentType);

    public <T> void set(Class<T> componentType, T component)
        componentMap.put(componentType, component);

// Simple usage...

ComponentManager entity = new ComponentManager();

entity.set(PlayerState.class, new PlayerState()); // Let's say it has a public health field.

if (entity.getAs(PlayerState.class).health >= 100) { /* yeah!!!! */ };

The above is the simplest type safe example of implicit composition. From there the rabbit hole goes much deeper. The nice thing though with the component architecture approach is that you can have all data fields publicly scoped in the component as there is still type safety and a query from the component manager before things are accessible. IE no "getHealth" method necessary with PlayerState.
9  Game Development / Performance Tuning / Re: Object Pooling and arrays on: 2017-02-08 21:18:02
Indeed it's a problem on Android. I was very lucky to have tackled this area long before starting Android development in '08 on the desktop previously and refined things even further with my TyphonRT efforts especially after switching to a component architecture which is based on HashMaps. I created a custom collections implementation which recycles iterators automatically at the end of iteration in loops in addition to internal objects used in all the collections. Even better is that the component architecture allows easy recycling of components (objects!). So yeah you'll get hit hard on Android using iterators and the standard collection API for anything near real time usage. Even worse was the piss poor annotation support as it lacked all caching and did a bunch of string comparisons (left over poor implementation from Harmony), so I have my own annotation cache for TyphonRT. I had a demo showing milliseconds for my cache and up to 10 seconds for the same amount of queries by the Android API in a tight loop. In addition I found early in ~'12 though never reported a serious flaw in Enums on Android. At that point I just gave up on reporting things as Google simply didn't care about quality or performance to the degree that I thought it was important and worked around it as the workarounds work on any version of Android. Some details on the Enum bug here.

As you noted though that recycling variable length primitive arrays is troublesome in general. That is worked around for say in a component architecture you have a ParticleData component with primitive arrays for tracking X particles. You recycle this object / component and when you pull it off the pool you know the primitive arrays are the right length, etc. So recycling objects with explicit primitive array lengths is fine.
10  Game Development / Game Play & Game Design / Re: Too much abstraction? on: 2017-02-07 22:51:31
It sounds like you are new to ECS / component architectures (CA)... You should probably use one that someone else created first; Artemis-odb being a good candidate. Learn how it works then move on from there as there are some tell-tale problems in what you've described in your own effort. First, it's absolutely possible to create an ECS with Java that is dynamic and type safe. Regarding being able to lock down an Entity or component manager consider a specialized system which has callbacks referenced in the Entity / component manager implementation itself for mutating methods like add / remove / set of components. The internal implementation before completing each operation can callback pre & post actions for the this particular component type offering the ability for pre actions to veto add / remove / set operations. Create a FinalizedSystem component which vetos all mutation operations and once added to an Entity then no longer can components be added or removed. Also consider enum sets and depending on your game create one data component with one or more enum sets tracking relevant data for the game at hand. This is useful for state tracking. Extra credit to create an extensible enum set that can accept more than one extensible enum running at similar performance to EnumSet (limited to one enum as things go). Eventbus / message passing goes hand in hand with ECS / CA and is rather handy with communication between data / system components across module / logical boundaries. A bit of a dump of things that can be done, but it's completely possible to do great things with ECS / CA and Java while keeping things manageable for the developer using this architecture.

So yeah.. examine others work in this area before striking out on your own for sure. The lack of type safety in your efforts do indicate that things are going down the wrong path.
11  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL3 and Android Redux on: 2017-02-05 18:51:09
Absolutely fantastic progress folks! I've still been tied up releasing TJSDoc (Javascript documentation tooling) and hope to get that finished this week then I'll pick up and start testing and using the Android LWJGL port full time+ for the remaining time leading into GDC. Here's hoping Vulkan comes online too! Grin Keep the info flowing and perhaps point out any pertinent details on where / how to get started with the current state of things. Got a wiki entry yet?
12  Java Game APIs & Engines / Engines, Libraries and Tools / Re: Advantages of Ant? on: 2017-01-29 22:24:45
NPM is indeed great and I'm releasing a bunch of modules currently. I use open semver with whatever is the major version for all dependencies in package.json and then use npm shrinkwrap when doing releases. Problem solved. Before doing a release I'll test with the open semver versioning and update anything that needs updating then use shrinkwrap again as necessary.

I have a standardized build / test NPM module including building documentation, typhonjs-npm-build-test that automates everything in a coherent way across all TyphonJS modules. In the next update I'll be adding automation for the shrinkwrap process in the publish script. Publishing will fail if the shrinkwrap changes as npm-shrinkwrap.json should be committed in the repo.

Of all things I've completely overhauled ESDoc adding tons of features and a much more flexible architecture which supports Babylon for ES6+ doc generation and soon Typescript along with other things like Flow and internationalization of docs generated. I'll soon be releasing a CI support module for building docs on commit and uploading them to a document specific repo for all organizations / repos across a larger multi-repo effort (like TyphonJS) with a container based doc server and web app which pulls down changes automatically and deploys them online as commits happen in addition to hosting older versions.

The next version of typhonjs-npm-build-test will include automation of the shrinkwrap process and switch to TJSDoc (a placeholder presently for the next few days!) from ESDoc.

Apparently I can't shake the tools creation bug...  Roll Eyes
13  Game Development / Newbie & Debugging Questions / Re: Attack action on: 2017-01-22 21:22:53
Check out feedback loops... A good article here page 18.
14  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL3 and Android Redux on: 2017-01-19 21:13:59
OK.. I'll start taking a look ~mid-next week. I joined the slack channel as "typhonrt". I think starting with the core / bare minimum to get GLES up first is a good idea for sanity then add Vulkan and worry about audio later. I'm generally familiar with the process you outlined and will embrace the black screen of death until I make it blue..  Shocked  Hopefully Travis is up for it as with a cursory review it seems to indicate it may be a bit raw.
15  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL3 and Android Redux on: 2017-01-19 13:52:14
Hi @Spasi.. I hope you are feeling better!

Just dropping a note that I'll be attending GDC for the GL / Vulkan sessions and tutorial day. There will be a talk on native usage of Vulkan / Android, but I'd be glad to submit a lightning talk (5 min) and perhaps have the chance to drop the details on LWJGL support on Android & icing on the cake if Vulkan is supported. Regardless if the lightning talk comes through I'll be able to chat with many high level folks about said support if it was possible to get things working before then. Alas it's 5 weeks away, so a bit tight on the timeline. I just bit the bullet and got a tutorial GDC pass.

If you could perhaps provide some guidance on where to start or what needs to be done I'll try to help out however I can. I can probably put in ~20 hours a week starting next week to help for the following 2 weeks then perhaps jam full time on things the remaining time as necessary to get things stable.

I'm finally getting a new dev laptop tomorrow and will be setting up the latest Android Studio setup in the next couple of days. What else will I potentially need? I assume getting comfortable with building LWJGL on the new lappy will be a good start (MacBook Pro in regard to environment). If there is any info regarding this process do point me to it as I didn't readily find anything on the LWJGL web site.

It'd be absolutely fantastic to get LWJGL 3 on Android and I'll pimp it hard at GDC and inform folks who is behind it all too (err not me!).  Grin I'll also foot the cost to make a nice color business card / flyer about LWJGL 3 w/ Android support info and pass it out to everyone I meet; will also include JGO link too!
16  Game Development / Newbie & Debugging Questions / Re: FPS Sensitive Jumping on: 2016-12-22 23:17:06
So yeah... A few things which will lead in a more solid direction. Things get tricky with dynamics / gravity and other related calculations as you have seen.

The quick hack is this.

The next thing to do is this.

Also there are performance problems with your move method. Never create new objects if at all possible in any game loop. A further optimization is to not poll the input device in the move method of your game / entity class! I'll see if I can get a mostly correct example with the quick hack and these optimizations above mostly worked out in some pseudo-code modifications to your posted class in a follow up post.
17  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL3 and Android Redux on: 2016-12-20 21:23:26
Get well!

I do look forward in how this can proceed and to start can probably squeeze out ~10 hours a week to help test, but certainly would be glad to get up to speed on the LWJGL architecture / build process in time. If there was a time to get this going though it sure does seem like now!  Grin
18  Java Game APIs & Engines / Engines, Libraries and Tools / LWJGL3 and Android Redux on: 2016-12-20 19:08:25
Hi @spasi. I'd like to continue the discussion from the previous LWJGL3 & Android thread which is locked now.

As more or less expected Google is declining to make a Vulkan Java binding for Android. Even giving what I think is a weak answer:
There are no plans to do a "pure" wrapping of Vulkan in Java. Vulkan would make a poor Java-language graphics API, and the overhead of JNI would mean losing many of the benefits that it's supposed to provide.

I doth protested, but it's not likely Google's position will move. There are no more Java champions on the graphics side willing to take a stand within the Android team. This matches the sentiment I got from a light probing earlier this year. Hopefully they absolutely don't create some new API on top of Vulkan as mentioned in a follow up to the above quote.

Anyway... I am 100% down to collaborate and help create and maintain a LWJGL3+ port for Android. Don't worry about the API level needing to be high. It might even have to be API level 24/25; Android N and that's fine. I do have some complex direct GL/ES code with the video engine and that's even kind of neat because it would really be pushing things to get LWJGL3 setup to drive it (if possible). We can't let this go unused!  Roll Eyes  I'd be fine switching to LWJGL and doing an Android N release of the video engine if it could actually work; would have lot's of data then on new device compatibility! Too bad I'll have to stick to GL/ES, but it'd be interesting. I'd be glad to get some GL/ES and Vulkan demo code out there. I already have an Android GL/ES starter available which I'd rewrite for LWJGL3 via GL/ES in addition to a potential Vulkan version. In this effort I actually provide improved facilitating framework code where the Android API is long in the tooth.

I've got tons of devices with each generation of GPU and would be glad to test, refine, and work on any necessary optimizations.

It seems like Android N / API 25 w/ the switch to OpenJDK would be the first to get stable w/ GL/ES and Vulkan paths. I know there is a bit of sun.misc.Unsafe usage and / or some JNI fallback code for JVM optimization. Even if things started with Android N that's great as there is a huge hole opening up on Android for performance graphics and LWJGL and can fill it.

So since I only have a cursory overview of LWJGL3 from poking through the source code I'd be curious to hear what you think will be the pain points? How are you handling JDK9 removal of sun.misc.Unsafe?

I think the first thing is to evaluate what's potentially necessary / missing for an easier port. Maybe the Android team would be slightly helpful if there is something missing that could potentially be exposed in the future if no workarounds exist. Just kind of thinking out loud at this point... I'm down to make it happen though.
19  Discussions / Business and Project Management Discussions / Re: Crowdfunding in 27 Easy Steps video on: 2016-12-14 00:17:13
That's definitely a good thread re: indie gamer Kickstarter postmortems. So far I've read the Scraps and Tetrapulse ones and will check out those that barely cleared the funding goal first.

Interestingly both that I read mentioned having a playable demo available early as an area of importance and this seems like necessary thing to do these days. The Tetrapulse folks had great fortune to work with a professional video group who made their video for free.

I liked that posting the referrer links that led to pledges seems to be something that is included in most postmortems. Here is mine from the second attempt as the first attempt was mostly barren:

So, yes direct JGO pledges were low. It would be interesting to compare against the other 3 JGO affiliated Kickstarters I mentioned. I'd gather that I was being generous with saying up to 3% of funding could have come from JGO in any crowd funding effort posted here.

It should also be pointed out that the direct traffic referrer is really ~5% if the family donation of $5k is removed.

Interesting points to see though was why did the Android Central blog post which had a custom in person demo video versus the Phandroid post which linked to the Kickstarter video do so well. There certainly was a call to action in the Phandroid post title and positive reaffirming comments from folks I met at the Big Android BBQ. Otherwise quite the disparity at 28 : 3 pledges. That was the only uptick or large influx of pledges. It certainly was a shock when I woke up that morning!

What is kind of surprising is that the Facebook referrer had only 1 pledge given that I also had a solid in person demo w/ Robert Scoble that was posted to ~650k FB followers. I can only assume that upwards of 75% of Scobles followers may be iPhone users versus Android. Both the Scoble post and Android Central had the general message of: "oh look shiny" versus any explicit call to action though one would assume many more saw the Scoble post.

For the referrers from I gave out at least 2k business cards that featured a color front image w/ text description on the back with the that link at several conferences and meetups.

From attending Big Android BBQ I got roughly $400 worth of pledges around the dates of the conference in October for the first cancelled effort. I guess it's notable that attending cost me ~$1k / tax write off though especially since I was a speaker. I didn't look to see if the handful of backers in the first effort actually contributed in the second. A similar uptick for AnDevCon and haunting the halls and press room of GMIC gave similar small upticks. For the latter I got lucky to run into an old acquaintance that got me the most expensive VIP pass and access to the press room where I met Scoble.

From what I've read from other postmortems getting a solid feature in a highly trafficked blog post / media placing is worth anywhere between $800 - $1500 on average. I suppose there always will be outliers where it can be much higher.


Double sigh Riven...

Let me explicitly call you out now so there is no misunderstanding. What you are doing is concern trolling with a dash of gaslighting. I guess it's kind of ironic calling out the moderator of a forum for such, but there is no doubt in my mind that this is your intent / tactics on display. When I say: "I simply don't believe you intended to be helpful" I am referring directly to the pattern of your behavior in that respect. Your last post in particular kicking up the fumes once again establishing a very clear pattern.

I laughed quite a bit in how you tried to conflate my responses on your critical statements to an attack on your character. I think you're intelligent and knowledgable with graphics matters in general and competent enough to keep JGO running. I'd like to believe that you are not self-aware about your concern trolling and gaslighting. Furthermore I provided plenty of evidence as to why the critical statements you mentioned were moot, moronic, and ridiculous. You're even smart enough to avoid the bait and not overtly attack points of unbridled optimism and a perhaps not so humble brag from my last post even though you admittedly wanted to, but instead kept up with a more subtle approach; albeit with fumes.

I can tell you this much though... If you gaslight people in your personal and professional real world life especially significant others and family then you are terrible person and should check yourself. Hopefully you are just doing it on JGO for the lulz and you are bored and it stops here.

I await for your "elaboration on misconceptions"; please take your time to prove that you ever intended to be helpful at all.
20  Discussions / Business and Project Management Discussions / Re: Crowdfunding in 27 Easy Steps video on: 2016-12-11 07:03:25
Survivorship bias is where we draw conclusions from the evidence that we see, ignoring the cases that we don't see because they failed and we never heard about them. This leads us to base our conclusions on the exceptions.

It's very kind of Catharsis to share his experiences so we're not mis-guided by the kickstarter success stories where the entrepreneur was probably just lucky. As they say, shit happens, so don't blame yourself for failures, and 'fortune favours the bold', so keep on trying.

Thanks @CommanderKeith as I was just trying to give insight into my experience.

Boo, I've been delayed from responding..  Emo I lost a friend in the devastating structure fire in Oakland at an underground electronic music event last weekend along with several others I met in passing over the years, so quite the gloomy week. I have my reminisces of a very talented sound / audio engineer + artist, Barrett Clark here.

I guess I'll leave a few more stats. Beating the street did end up with seemingly more folks contributing more than the minimum amount. Here is the breakdown:

86 total
22 at $5
5 at $15
35 at $20 (limited offer $25 tier)
10 at $25
6 at $50
4 at $100
1 at $250
1 at $3k (actually $5k)

So overwhelmingly the 3/4th majority pledged more than the minimum amount and this likely had to do with all of the in person outreach / demos that I did at conferences and other meetups. One would assume if the word actually got out in mass that the $5 tier would  dwarf the more expensive ones. The golden outlier was my parents which entered in the first week and only on the condition that they were aware that if the goal wasn't reached they owed nothing; they knew nothing about crowd funding. So yeah... Only $2,132 actually raised from outside sources.

You can see the Kicktraq graph as well. No big start or finish. Just the barren middle the whole way through.

At a certain point once there is a significant threshold to reach likely around $10k+ it's absolutely necessary to reach a large amount of folks through the media / press.

Since I was doing something in an unknown / unproven area (creative effects composition video engine) right at the first moment it was first possible the only thing that I think would have changed the outcome is if I had a closed free alpha with 500+ people already using the app with as many press / bloggers involved in that group as possible. Conceivably giving the finished app away for free for everyone who could point to contributing or saying a good word in any forum (Reddit, etc.). Even sending out ~10 devices to press / bloggers with the app preloaded probably wouldn't have been enough to get significant press coverage to tip the goal; though a lot closer.

The takeaway is that if you are coming from the self-funded / bootstrapping side then crowd funding isn't necessarily about starting your community unless you are asking for less than $10k and the sweet spot is probably around $3k-$5k from a completely cold start.

I have a general musing on the success of Minecraft. IMHO Markus benefited from charging ~$10 for an early alpha and right around the time there were significantly new social networking services; Twitter, etc. you know back when people took it seriously. Get a few positive "check this out tweets" by gaming oriented influencers around then with 50k+ followers with reshares and a potential network effect and that significantly helps sans full blown articles in the press / blogs.

Oh yeah.. Guess who plunked down $10 though I just fired up Minecraft once when originally posted on JGO when it was free... ;P


Sigh... Now I'll address Riven.... It only takes one person in any forum to caste shade preventing further positive discourse.

To me it's no surprise... That you continue to be critical without actually being constructive for the most part. I guess that is just you.

To me it's no surprise that merely sub-1% of JGO's active members, and sub-1% facebook friends were interested in TyphonJS.
So true, classic me!

Yes.. classic you. I'll just point to a previous post you made that was negative and short sighted; typical JGO peanut gallery fare.

Furthermore I think it's moronic to suggest sub-1% of JGO potentially interested in the actual product especially considering a limited mode without saving and such is going to be free. It's a supped up post processing engine that allows anyone to freely explore infinite combinations of post processing and indirectly learn numerous things about GLSL with an interactive environment; IE play around with some effects composition / figure out what you used then go implement it in your own code. Besides there are plenty of non-gaming creative efforts folks work on with Java via JGO. Now perhaps sub-1% of JGO backs any crowd funding effort here. The amount certainly isn't above 3% quite likely for any of them.

Besides while I never mentioned it a longer term goal is to create a desktop app for programmers to directly create their own shaders / filters and upload to the running app on device for testing / usage and eventually I'd like to support a 3rd party marketplace for programmers.

As mentioned on general principal I back all crowd funding efforts from active JGO members.
I applaud the gesture, but I think it's a bit out there, and one cannot expect people to return that favor. I wouldn't even fund my friends projects blindly, I think that goes for most people, but it might be classic me again.

Never said I expected more or anything from JGO. I just expressed what I do. Your assumption still is on the ridiculous side considering I've spent $40 over the last 2+ years. $5 on Retro-Pixel Castles and Tomb of Tyrants; $30 on Spine. There simply aren't many folks trying to do crowd funding posted to JGO. I can go without a beer to support anyone here without question. Now if there were one a week I'd perhaps take a bit more of a critical look. Again this is still down to who you are as a person and what kind of community you'd like to see JGO be. I still think there is going to be another breakout hit and even at least one or more "FU money" successes from JGO in the future.

My moot musings are the best, I'm glad you finally take the time to set the record straight on this one.

Yes.. There is context involved. I simply don't believe you intended to be helpful given past negativity expressed and the moot nitpicking that you did provide. That alone could have dissuaded anyone else from joining the conversation. Moot also meaning "non-actionable". You provided nothing actionable that could have been put into use at the time. Want me to explicitly spell out the exact reasoning and why that is the case for all of your criticism?

Your criticism even of not taking time between relaunching things at a lower goal amount also was moot. In the following days after I did that I spoke at AnDevCon; and gave a 5 minute inspired lightning talk addressing all attendees. There was no time to adjust assets as I was constantly beating the street and reaching out to people, so an immediate reboot was pertinent.

Your consistent panning of splicing two videos together (IE 8 second gap) as a horrible thing to do is moot in the context that I highly doubt that had anything to do with why things didn't turn out better.

As mentioned next time though via a direct public launch I'll be doing more of an interspersed video with narration highlighting specific features as that seems the popular thing to do.

I respect that you sank $10K into that video, but it simply - to me - didn't look like it. I actually think you could have done a better job yourself (this is somewhat of a compliment, you see). The firm that delivered on a budget made some rookie-mistakes IMHO (like that 8 second (!) fade out, in the middle of the video), that I seriously think that *you*, given a day to work on it, could have done it better than what that firm delivered.

At some point in time it makes sense to delegate work. I actually asked a pro video editing acquaintance of mine what the minimum non-offensive value should be for the SF Bay Area when engaging such a service; his answer $10k. The next month when I had that available he kind of led me on for a couple of months then declined to assist. The next best option perhaps wasn't the best per se. Another point of consideration is that everyone except the group I used would charge per diem fees. Want to get a clear / sunny content of SF / Golden Gate bridge, etc. Well if it's not a clear day then too bad a significant per diem for showing up regardless is charged. The folks I worked with were lenient in this regard. The first time I tried to shoot the narrative / dialog part of the video (2nd half) I was so stressed I couldn't do it. They came back a few days latter; no extra charge. Heh, you can still see I was a bit stressed in the video..

Not to brag per se, but at the time with the seed stage startup ($1MM funding) I was working for 60+ hours a week it took me ~69 hours to fund the video. Much easier for me to work ~6 days programming while others got actors (which I couldn't do) to be in the video and run around the city. With my last contract at higher corporate rates it would take ~45 hours and an upcoming contract would take ~36 hours to fund it; we'll see though as until it's in the bank it doesn't count. I don't have taxes withheld when paid and this expenditure is a tax write off to boot. I gather that I'm likely the highest hourly paid professional involved with JGO or in the top 0.0001%. So yes at some point delegation is more than reasonable.

I also think you grossly underestimate the work required to setup a Kickstarter. At the time the requirements for a company were strict and I had to run around finding a bank I wanted to work with that wasn't a consumer bank instead of making a video and many hours of coordinating documents between Amazon (payments) and such. That and all of the speaking / networking I did in person on top of a 50-60 hour work week had my schedule full and then some. Being an introvert none of that was energizing and was pretty challenging given the amount of in person indifference encountered; Big Android BBQ was a good example of that. Being "in friendly territory" wasn't so friendly on the surface in general.

And as mentioned I don't think changing the video would have significantly changed the outcome. The early alpha user community IMHO would have been the far larger difference.

Given that quite a few kickstarters succeed with minimal investment, I think it's more of a hype/goodwill centered issue than a financial one.

Again I think this is a naive point of view unless you list specific data. Perhaps when Kickstarter launched and the early years ('09 to '11 maybe '12) saw more minimal investment successes until there was massive discontent about crowd funding. Also the goal amount is pertinent. Sure that $500 or $3k goal for some small efforts were raised. As mentioned I certainly think anything over $10k gets a lot more dicey these days and at $20k+ you definitely need a preexisting community, pay money for articles and / or potentially receive outside help for the video. Perhaps if one has unlimited time and or significant funds on hand more can be done in house over a longer period ramping up before launch; that wasn't my situation re: time / funds.

I'm not sure what actually changed with Google Play though - couldn't you always release a 0.x version of your app and publish it in Google Play? Surely even your alpha/beta version beat a lot of existing 'proper' apps, capability wise, that were in the store, back then?

alpha / beta testing and staged rollouts.

I hadn't used these features before and was how I was going to manage the delivery of the Kickstarter goals to early supporters. Had I known the outcome or knew I'd have a AAA corporate contract months later that brought in a windfall for 4 months of work I would have postponed things and got a solid closed alpha release up with 500+ folks + bloggers / press before doing any crowd funding effort.

21  Discussions / Business and Project Management Discussions / Re: Crowdfunding in 27 Easy Steps video on: 2016-12-02 19:40:24
To me it's no surprise... That you continue to be critical without actually being constructive for the most part. I guess that is just you.

To me it's no surprise that merely sub-1% of JGO's active members, and sub-1% facebook friends were interested in TyphonJS.

As mentioned on general principal I back all crowd funding efforts from active JGO members.

TyphonJS is something entirely different and is open source tooling focused on modern Javascript with a bent for cloud deployment tooling. Not bad currently with cumulative ~55k+ unique monthly downloads for all modules without any PR or even public mention outside of this post. Still got lots to do there and get things fully rolling.

I read your kickstart, and commented on it previously, on how its content would even have alienated your actual target-audience, but we agreed to disagree on that one.

Actually if you read that post you'll see I listened and did not disagree on relevant points; though you had far more critical and moot musings on it all, but I didn't point that out until now.

Having no actual budget I could not change the video. Could I have hired a more professional firm for $30-50k sure... Could I have paid PR firms to blast out a perhaps slightly more polished message sure. I did what I could within my means at the time and with the knowledge I have now things will be different on my next go at it perhaps with results to match.

Would I make the video differently now; yes... I also know that beating the street and showing demos to ~1000+ people primarily at tech conferences is nebulous in return. It takes multiple impressions to get folks to follow through. The best fruit of all the in person demos came from the Phandroid coverage where several people in the comments brought up meeting me / seeing the demo at the Big Android BBQ which adds confidence from the passer by reading that post.

I was on the leading edge of what was possible at the time (and still now). A bit too early and a buck short. With some small tweaks and a budget of $50-100k things might have been different.

There are plenty of other things left unsaid in regard to the difficulty of bootstrapping and working in waves on any creative effort; 13 years and counting. There also was my parents ongoing failing health and a desire to get a moonshot realized before they passed which happened this year. Given the latter alone I took a shot at it...

Either you have the money to blast things out PR wise, get lucky and meet a need; do both... OR you need about ~500 strong advocates who will be active in getting the word out. The latter achieved through hitting the street and doing some sort of alpha / beta early release. That is now possible with Android which wasn't back then; re staged alpha / beta releases via Google Play. For games I'm not sure the whole green light / GOG work in progress release is the way to go per se as it is a bit to uncontrolled.

22  Discussions / Business and Project Management Discussions / Re: Crowdfunding in 27 Easy Steps video on: 2016-11-27 00:30:22
I can speak about my experience and provide a bit of a postmortem.

Well as the speaker mentions around 14:32 with that slide about building and engaging an audience, press, etc. before launching a Kickstarter is super important and absolutely necessary. I feel that is where things fell down with my failed effort at it. Don't think that launching the Kickstarter is where you start building a community or followers especially if you don't have previous product development successes! I think I got only one backer from JGO BTW; thanks @princec.. If any others did thanks! FWIW I always back any Kickstarter I see posted on JGO regardless of quality level.

On trying to raise $20k I spent $10k to make the video and other various assets. None of my larger group of FB social network "friends" (really just past folks I knew or met a few times from the underground music / club scene when I was an active DJ in the past) would participate in making a video, so I had to work with an outside production group which could source people to be in the video. I guess I should also mention maybe ~0.15% of these "friends" backed it. Even people I knew personally and hung out with socially and showed all the progress and demos at the time did not back it; needless to say I went my separate way after that (for other reasons too) from the majority of these folks. From the Google+ angle I have "over 4k (who knows how many zombies!)" followers of my Android / graphics tech chatter community; I really didn't see many recognizable names from past commenters back the effort.

If $10k sounds high for a video that is actually super low at least in the San Francisco area from the majority of outside groups I contacted regarding video production ($30-50k was the average quoted price). I happened to find some competent folks a couple of years out of college that did a good job. Again I more or less had to do this to source people to be in the video besides I already was over extended on all other outreach efforts with a lot of stress involved. Sure I could have done it myself, but the resulting video would have been different and perhaps perceived as "less professional" or whatever.

I was trying to fund the final release engineering aspects with a fully working demo ready (~$80k already spent on development), but not hardened for release (protection of assets, etc.). The catch here is that what I really needed to do was send in advance a hobbled locked down demo to all relevant Android bloggers and any other press. I just didn't feel comfortable sending an APK out. What I should have done since I was targeting the Nexus 5 at the time was buy 3-5 used devices and pre-installed / custom locked down the app and sent devices out. Probably should have done that for another ~3 potential influencers, but I was strapped for cash at the time and bad luck hit which made things even worse as the contract I was doing at the time was abruptly cancelled 3 months early as the startup I was consulting for was running out of cash and dropped Android as a target. I literally had to attend conferences and directly approach known bloggers to do a demo like Phil Nickinson of Android Central. I spoke at the Big Android BBQ (on GLES 3.1 / compute shaders) and made contact with Phandroid, but they posted a week before it ended which did get the largest influx towards the end. I also ran into Robert Scoble and did a impromptu demo which he posted to 650k FB followers; it's hard to say how many backed it from this despite the glowing statements. Other than that I got no other "press" associated coverage; no one returned emails.

I had all cold contacts before launching the Kickstarter. In engaging after launching the Kickstarter that made it hard to reach any professional video forums; those folks thought it was a joke at best and panned me royally. Reddit was a cesspool of frustration even though others did post about the effort the follow up comments there were really asinine. Many claiming it was fake and one particularly silly one claiming it shouldn't cost more than $5k to build and launch the product with it easily being outsourced which got upvoted. I don't have a pulse on where things are now with Kickstarter backing, but end of '14 was a much harder time than say '11-13; before many failures to deliver occurred.

So absolutely to have a chance at success these days build an audience well before launching. Be in contact with the press / bloggers and send them a limited demo before launching any Kickstarter. It's not enough to be technically competent even producing reasonable demo video / assets. Engage engage engage any relevant communities well before launching any crowd funding effort. Even better if you can build contacts with the press / bloggers sending them an early demo 1-2 months prior and have articles posted on launch. Also don't rely on JGO alone at all as your only forum!

Meh... So where am I now? I had a brilliant contract Jan-June '15 that has provided the last ~18 months of development. I've mostly focused on server / back-end and web app concerns in general open sourcing everything under TyphonJS which will greatly support any product development video engine or not. These were "stretch goals" prior. You could say that I fell back into tools development which is a passion of mine, but I'm playing the long game. No one to my knowledge has released anything like what I created regarding a video engine on Android or iOS yet. Mobile phones are getting faster so things are only improving on what is possible, so a lot more will be available when I do launch. I'm going to make sure I can launch directly and likely skip Kickstarter / crowd funding again as it was a huge time sink and in the end made me feel horrible. Like anything creative it's a hit / luck based endeavor whether you are making a game or something else. I did learn the hard way through all of this though and most of what I highlight above is relevant to crowd funding or a direct launch of a new product. Next time around I'll be doing things differently as you can't count on good luck.
23  Discussions / Suggestions / Re: Featured Open-Source on: 2016-11-15 15:41:02
Perhaps create an awesome list and curate it and take pull requests from others and open a thread on JGO.
24  Games Center / WIP games, tools & toy projects / Re: Neamless Aura on: 2016-11-04 18:19:38
  • Topdown 2D RPG

Looks good. I noticed that you reduced the scope from isometric to top down (orthographic). This is something that is going to make life much much easier to realize with Java2D.

Consider if you do meet objectives early after getting the rest of bullet points done to switch to libgdx for:

  • Animations
  • Shaders/Shadows

...and perhaps going isometric. If you do a good design job on the other bullet points you should be able to carry over most of that code and it will be a good learning / comparative experience.

So yeah get Tiled up and running and collision detection stored in a meta layer! Cheesy
25  Java Game APIs & Engines / Engines, Libraries and Tools / Re: any Visual Scene Graph Editor on: 2016-11-04 07:19:44
Welcome to JGO @rastinrastini!

For 2D Overlap2D seems neat and has a runtime for libgdx. I haven't looked at the runtime implementation, but quite likely it is using a scene graph behind the scenes.

For 3D there are no options as far as I'm aware.
26  Java Game APIs & Engines / Java 2D / Re: RPG animating 4 directions on: 2016-11-02 22:22:02
...but I want to be able to dynamically equip the characters with weapons and armor and also sync that information over the network. The player will ideally be able to face 4 directions, sit, swing a sword, shoot a bow. These are all fine to do on a base sprite but the gear needs to attach properly during these animations.

Wrong forum section for JGO re: libgdx and all, but I'll give my two cents despite this being an older post.

Since you are using libgdx check out Spine.

Potentially consider purchasing an asset set such as

What is really nice about this tower defense asset set is that there are 27 characters that already have Spine animations in all iso directions; for $40!

Just like there is an API and support for loading tile maps in libgdx there also is a library addition that handles runtime concerns of using Spine animated models for libgdx. For $40 you can get all those assets and the animation support which can more or less be dropped into libgdx. Spine would be a worthy purchase as well for continuing to tweak or create anything animated such as switching weapons. Conceivably if the base characters follow the same animation templates you could potentially separate the base characters from the weapon animation.

Here is a post on the Spine forum about this
27  Discussions / Miscellaneous Topics / Re: Dynamically produce a shatter pattern on: 2016-10-25 17:46:28
I like the only answer on this forum post. It brings up BSP trees and links to a discussion from the developer of Smash Hit. You can start playing around with things in 2D as far as choosing arbitrary planes near an impact point.

A seemingly nice tutorial on BSP trees for Java; page 1, 2, & 3 (with 2D BSP Java source).

So from the point of impact you can choose some semi-random planes and continue subdividing and creating polygons and perhaps continue to draw outward and perhaps apply some unique shader effects to the edges.. I'm sure a bit of experimentation would be necessary. Then from there it's kind of going the route of the Smash Hit info above for 3D.

Not a glass shatter video, but something someone made with Java2D.
28  Discussions / Business and Project Management Discussions / Re: Mentor Needed! on: 2016-10-24 23:11:43
Well, good on you for getting things regularly updated on Github. Consider adding a graphic image / snapshot to the README and a clear link to the executable JAR file. As mentioned consider opening a WIP post as that is the best place to provide ongoing advice / critique.

I'm certainly not against Java2D as likely what is actually required for a passing grade by this effort (smaller tech demo) can be fulfilled with it. It'll be easy when keeping things orthographic and more involved to go isometric, but still possible. Libgdx and going the GL route you'll likely have up to a 3 month learning curve though using libgdx takes a lot of the rough edges off over a bespoke GL effort shortening the switch considerably.

It seems like you are hand rolling maps currently? Switching to Tiled / TMX is a next step and don't overlook libtiled-java for loading TMX files and some other basic structure. After that figuring out how to store collision data as a meta layer in Tiled is pertinent. An article about the approach while Cocos2D oriented for code snippets explains the gist of how to approach things with Tiled.

There are various optimizations and other useful comments on the code you have currently posted, but make a WIP thread.

Regarding OO design I'm sure there is a bit to pick up there. Traps galore so to speak, but it's worth fighting through or learning how things get difficult. This applies to any OO entity hierarchy and quest or inventory system; re: for now Entity and EntityPlayer is simple. A fun video that describes the situation you will encounter is this one; the code solution is for Javascript, but the description of the problem is good. Just remember the scenario described and keep that in mind as you go down the traditional OO route.
29  Discussions / Business and Project Management Discussions / Re: Mentor Needed! on: 2016-10-20 19:59:24
Failure is not acceptable to pass but the fact that it can be worked with afterwads, or worked on, its due date can be replaced to august.

I highly suggest you set a firm cut off date to stop going down "the wrong" path. If you can't make suitable progress by the end of the year with Java2D seriously switch to libgdx ASAP in January. A mentor should direct you to the right tools and path, but you got to listen and take heed as well.

I already have the TileMap loading working,

Then start posting code in your Github account.

now it's a matter of getting some small things done.
Such as graphics, but my friend is helping me with sprites etc.

Nothing is trivial or small per se especially at your assumed experience level. Once again as a mentor in absentia I highly suggest that you purchase assets. With a non-exhaustive search
here are likely free assets, but check the licenses. I found 2 $40 sets here:

What is really nice about the latter tower defense assets is that there are 27 characters that already have Spine animations in all iso directions; for $40!

Tools are important and you shouldn't eschew using them. If you are going to be doing any animations I highly recommend Spine. Just like there is an API and support for loading tile maps in libgdx there also is a library addition that handles runtime concerns of using Spine animated models for libgdx. For $40 you can get all those assets and the animation support which can more or less be dropped into libgdx. Spine would be a worthy purchase as well for continuing to tweak or create anything animated.

Don't waste time waiting for custom assets.

For the game itself I'll try using libgdx, but only if I can't progress anymore and if it's really nescessairy.

Consider that libgdx also has controller support. It has everything you need and you can look at the source code to learn how things work under the hood.

The full game is just a working tile map loader a movable sprite, external controls and interactions.
That's really the full scope and that's what I'm doing right now.

Sounds more like a tech demo than a "game"; depending on how much you can fudge things in respect to the definition of "game" you might be able to get away with Java2D.

What do you mean by interactions? Collision detection, animation, sound / music, story / plot? There is also UI, loading / saving, and a bunch more things to consider in an actual game. Let alone the issues you are going to run into with Tiled / tile maps and rendering order and sprite occlusion.

For the mentor part, I'll think I'll try to go with your plan, of asking help for each problem. But it's not really help I need, since most problems
are solved with some research. It's progress evaluation and "re-track" me if I wander off too far.

Once you have the basis of the game / timemap loading and rendering consider opening a "work in progress" thread.

You are already wandering off to start. If I had to describe my understanding of how things are presently it would be: "you don't know what you don't know". Which is fine, but that is why it is crucial to set right now a firm stopping date on your current path, the sooner the better, so that you do have enough time to correct it. I worked in depth professionally with Java2D for 6 years in the aughts before Android dropped, so I do know what is possible there; getting on the OpenGL path via libgdx is pertinent.
30  Discussions / Business and Project Management Discussions / Re: Mentor Needed! on: 2016-10-18 18:07:59
As your mentor in absentia....

Re: >I was just progressing with Java 2D and don't mind spending too much time and do it less efficiƫnt... It is also a personal achievement doing this mainly with the standard Java libs.

Is failure an acceptable outcome for this project for a passing mark / grade?

To meet "The full goal" as outlined in your first post you need to choose the right tools. You'll be using the standard Java library along with an additional graphics library; whether that is JavaFX (not recommended!) or libgdx or ... The Java 2D API is not well suited to this task at all. Ignore Slick2D as it is outdated.

Consider that you'll need a vector math library regardless of what you are going to do and that is an additional library over the standard libs. This comes as part of libgdx.

You'll either need to drastically reduce the scope of "the full goal" or use additional libraries suited for the task at hand.

Creating just a Tiled / TMX map loader from scratch that ham-fists everything together with Java2D and a vector math library just to load and sort of display a level will take you to June if you're lucky.

Or you could use an outside library if you want to stick to standard libs: libtiled-java.

If the requirement remains to actually produce anything close to a working game you need to use the right tools. Even with using libgdx and the tile map support it provides you are going to have a hell of a time to create something that resembles an actual game by June and this is if you are working full time on it all which I assume is not the case.

Re: >But I'll keep trying to find a mentor since it's kind of 'necessairy'.

I also wanted a mentor at your age, but one never materialized, so be prepared to keep your head down, buck up, and get coding. You'll find that folks will help you with concrete / individual problems on various forums, but a dedicated mentor worth their salt is hard to come by even if you could offer compensation for time involved. Regardless if the mentor requirement is partially attached to your school / class at hand it's going to be dodgy at best to find anyone who will sign on for that role. Also be prepared for dead ends / failure if you find the wrong one.

Pages: [1] 2 3 ... 13
CopyableCougar4 (192 views)
2017-03-24 15:39:42

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

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

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

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

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

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

theagentd (174 views)
2017-03-15 22:32:18

theagentd (168 views)
2017-03-15 22:31:11

ral0r2 (165 views)
2017-03-03 11:52:41
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 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!