Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (732)
Games in Android Showcase (222)
games submitted by our members
Games in WIP (806)
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  Discussions / General Discussions / Re: Hoping to make a return to JGO... on: 2017-07-25 05:54:59
I remember ye, glad to have you back... I too have gone to the dark side... JS over the last two years; hell hath frozen over after 20 years of Java dev. I'll soon be releasing a major documentation tool for ES6+ and Typescript (TJSDoc); hah, can't shake that dev tools bug. I'll be back with the one true language soon enough though..  Grin
2  Discussions / Miscellaneous Topics / Re: Passion Projects and Life: Spreading Yourself Too Thin? on: 2017-06-30 17:29:53
What does a medium pizza and a marginally successful Java game developer have in common?

Neither can feed a family of four!
3  Discussions / Business and Project Management Discussions / Re: Licensing overwhelm, asking for advice on: 2017-06-28 17:26:32
@philfrei it's hard to say how strong of a rein to keep on your work. Developer tooling in general is a lost market as there is next to nil chance to "break the market" at this point with a liberal license as the race to the bottom has already progressed thoroughly in this category IMHO. To my understanding if you license with a copy-left variant, but don't accept any outside contributions you are free to relicense as you chose fit without having to get a unanimous consensus from all contributors. I like MPLv2 as it's weak copy-left insofar as not imposing the same license requirement on derivative code that incorporates it separately, but keeping the upstream mechanism intact for any modifications to the target given source. For any work that is clear in purpose that does what it is supposed to do MPLv2 essentially fits like a glove. As far as generative audio is concerned there are options available out there already as you might recall my affinity towards SuperCollider and such even though it's GPL it can be integrated as a separate process / OSC  etc. without assuming any viral license exchange, so there are comprehensive free options. Interestingly enough SuperCollider 1&2 was commercial software w/ 3 going GPL, so perhaps an interesting history to examine in regard to audio software as James McCartney / author of SC made a go in the 90s / early aughts from a commercial angle ultimately settling on the commons / OSS; IMHO breaking the market so to speak for state of the art generative / audio engine software.

So far I've had two completely different experiences when it comes to hard forking others works. I mentioned ESDoc (MIT) previously and here is the thread which ultimately caused me to fork. For nearly a year I was the only one answering questions on in the ESDoc repo issues which now is mostly silent w/ questions piling up and I also provided fully working minor and major proof of concept improvements that were declined with no reason given.

The other major effort I've forked was escomplex with a completely different thread of illlogic leading to a hard fork. escomplex was dying already abandoned by the original author who did all the work and the maintainer at the time was maintainer in name only not doing any work on the project yet ultimately wanted to micro-manage a non-existent dev community. You can read that thread, but the silly thing is that 4 months later that fellow posted he was looking for a new maintainer and his fork was going to be orphaned. Almost immediately there was uptake of my fork though I haven't publicized it's existence outside of some yammering on JGO, however I submitted a patch to a large downstream user (Plato); a few other projects took note that Plato somehow supported ES6+ language features and found my module. The original escomplex still has a lot of downloads as older modules / versions depend on it, but uptake was quick with my effort (graph).

I guess I bring up the escomplex project as you'll find a fair amount of license "zealots" out there that demand a permissive license. When it comes to developers tools though I gather developers just want something that works with a clear integration pathway as well as any legal requirements from businesses / corps. The choice is how much and are you going to control leakage of your work.

About your situation though. The chance of leakage is low. It's also tough to say there is much of a / any market for Java based audio / engine software that is interfaced via an OOP / Java API. Very few on JGO make a standard living from their Java games with Android being the most likely case / Pascal (orange pixel) comes to mind and I think there is a thread or two on JGO where he talks about his efforts. There is the black swan we all know of course. Sans marketing budget dev tools need a killer app / game to sell the tools and chances are you'll have to create that killer game and not just be the audio dev tool provider. Do consider some plugin system though as you could release the core system OSS and then potentially charge for specific value added plugins while allowing 3rd parties to create their own.

Another consideration with releasing your software is that if I recall you haven't worked as a professional developer yet. By releasing your software under any OSS license it will provide a useful data point / proof of competence for any future employer and provide an opportunity for you to discuss it while interviewing. You can't lose there; I've gotten the majority of my jobs from showing code (mainly TyphonRT) I've worked on in the past. To that regard though consider getting things up on Github after you've decided on an OSS license or really just do it now under a private repo and make it public when ready. Having it online and accessible could get your foot in the door for an interview if so desired sans dev employment history. You'd make this the star of your cover letter, etc.

Anyway I'm glad that you are getting to the point of having something that you want to get out there in a more official capacity! Congrats and get 'er done!
4  Discussions / Business and Project Management Discussions / Re: Licensing overwhelm, asking for advice on: 2017-06-27 17:40:35
I'll throw in my 2 cents. I'm a fan of the MPLv2 license when aiming to release production quality code open source that I've funded with my own money / bootstrapping. I've certainly been influenced by the late Pieter Hintjens and enjoyed his book Social Architecture. From his blog and an early draft of the book he has a nice section on licenses and a great story about BSD (MIT and Apache) that certainly informed me on choosing the MPLv2 for TyphonJS and any other open source I release (TyphonRT eventually!). I'm also adopting a modified (info that is technical specifics) C4 contract for governance of all open source repos I release.

From a practical perspective a lot of the work I put out is highly modular where each module follows the single responsibility principle. The MPLv2 works great in this situation. The larger software systems that I'm releasing are all plugin / component based where the runtime is composed of many single modules any of which can be swapped out, but most folks won't swap out the core modules I make as the 1st party dev, but choose to provide further plugin / module extension for customization.

Interestingly the major Javascript documentation tool that I'm still finishing up (TJSDoc) was forked from ESDoc (MIT) after the author refused to accept outside contributions or discuss / engage anyone in the community trying to participate (fellow is also from Japan and doesn't understand English, so there is that difficulty too!). The fellow made it clear that it was his hobby project and wouldn't take outside suggestions small or large or code. I don't take forking lightly, but this was a case where I forked an MIT project and put in considerable time / money to make a production quality system which is even easier for 3rd party developers to extend amongst many other feature / architecture improvements. To protect this effort (~1500 hours / all programming time this year so far!) MPLv2 fits.

I'd say check out the Social Architecture book for an interesting treatise on community building and licensing / other matters that come into play including a good overview of what a software license actually provides as far as it relates to contract / copyright, etc. If anyone has any other pointers to other treatises in this matter I'd be glad to check them out as I find the topic interesting.


If you don't have time to check out the above links these two paragraphs cut to the chase:

"BSD is like food. It literally (and I mean that metaphorically) whispers "eat me" in the little voice one imagines a cube of cheese might use when it's sitting next to an empty bottle of the best beer in the world, which is of course Orval, brewed by an ancient and almost extinct order of silent Belgian monks called Les Gars Labas Qui Fabrique l'Orval. The BSD license, like its near clone MIT/X11, was designed specifically by a university (Berkeley) with no profit motive to leak work and effort. It is a way to push subsidized technology at below its cost price, a dumping of under-priced code in the hope that it will break the market for others. BSD is an excellent strategic tool, but only if you're a large well-funded institution that can afford to use Option One. The Apache license is BSD in a suit.

For us small businesses who aim our investments like precious bullets, leaking work and effort is unacceptable. Breaking the market is great, but we cannot afford to subsidize our competitors. The BSD networking stack ended up putting Windows on the Internet. We cannot afford battles with those we should naturally be allies with. We cannot afford to make fundamental business errors because in the end, that means we have to fire people."
5  Game Development / Game Mechanics / Re: Skeletal Animation structure on: 2017-05-09 20:00:11
I'd say look into Spine for a nice workflow and examine the various runtimes that are provided out of the box (LibGDX for instance) as all the code is already there for usage.
6  Games Center / WIP games, tools & toy projects / Re: Recruiting Java coders for XPilot port on: 2017-04-27 18:35:17
Cool.. I never came across XPilot before. When I get around to releasing TyphonRT it seems like a great vehicle for a demo example client and containerized server effort with a focus on entities / component architecture in implementation. I'll try and keep this in mind!  Grin
7  Game Development / Game Play & Game Design / Re: Working on "How to plan and design a game engine" and I'm looking for feedback on: 2017-04-18 07:19:35
>Now as you can tell it really could escalate in how much work could be done.

Perhaps consider linking to or including a supplemental reading list to others work. The two I'd look at first Game Programming Patterns (free web version) and Game Engine Architecture

I think the biggest benefit to anything you'll create is the comparative implementation of the different components of a game engine particularly if you can pull off doing it in several languages. The biggest criticism I've read about Game Engine Architecture is that it doesn't include source code for a complete engine; it is rather thorough in broadly going over the major components though. I'd find it hard to believe that you'll be able to come up with a 1000 page treatise and that's just one book out there. You could link to supplemental material that is topical and more in depth as well for AI, audio, networking, etc. 

>There are parts of my work that NO other game engines available have.

This is an extraordinary claim, but if so then certainly include thorough descriptions of your work and working code examples if you intend to enlighten.
8  Game Development / Networking & Multiplayer / Re: Saving characters online. on: 2017-04-08 10:23:03
**Disclaimer... I've never worked on a MMORPG.**

MySQL / SQL in general is waning in usage in the game industry from what I gather.

I have been spending a fair amount of time getting up to speed on modern server programming / containers. I'm just going to throw out thoughts as things are likely very dependent on the type of data that needs to be saved and amount of read vs write concerns when it comes to choice of particular solutions and accompanying trade-offs.

First off these days everything should be done with containers (Docker / rkt, etc.) and some sort of orchestration platform (I've chosen Kubernetes as there is a lot of momentum). I'd like to use rkt, but it's a bit light on tooling still as it's more framework than platform like Docker. Self hosted in the cloud or one could use Google Container Engine and other services of this nature.

If you're going Java on the server side two architectures worth looking at are Scala / Akka / actors (probably light on tooling for MMO applications) and the other I'd look at is Aeron. If using Aeron I'd also combine that with the Disruptor. Between Akka or Aeron / Disruptor the goal is to setup pipelines that are event driven. You might for instance use an in memory DB for some things, but to make sure things can be brought back from some failure you'd also journal / save all of the events flowing through the system, so that state can be rebuilt from periodic snapshots (also useful for debugging). Periodically (say twice a minute) for character players the current state of the in memory DB would be punted out likely over the wire to another container / DB for longer term storage or perhaps Amazon S3 or other cloud storage. Perhaps there is no in memory DB at all though I'd gather all of the really big MMOs have some sort of in memory DB as part of the pipeline. For DBs in general I'd look at Riak or Couchbase, but there are many options here. For high throughput everything stays as a binary blob; IE JSON / strings or XML is not desirable in high throughput pipelines, but in others it's fine. I gather in general there is some NoSQL going on for quite a bit of the data modeling / storage though I wouldn't be surprised if Blizzard or any other large game company rolls there own DB versus using off the shelf options. Here is a blog article on Pokemon Go that indicates Couchbase was used for certain parts of the architecture. From there I suppose it really depends on what your game back-end has to do. Perhaps Apache Spark is involved at some point for data analytics. No matter what though analytics at some level needs to be involved to detect problems, scaling issues, and any failures.

I'm sure you've heard about microservices. I guess the nice thing or the bane for documentation / maintenance is theoretically any particular one could be the best stack for the problem at hand including choice of language / DB which would only store the data specific to the microservice (say lobbies / chatting for a game / or user profiles). Instead of a more monolithic server things are broken down as separate stacks for very particular and limited purposes.

I'd suggest looking up articles on Pokemon Go architecture for a game that had to scale rather quickly. There should be plenty out there.
9  Discussions / General Discussions / Re: Need some programming advice on: 2017-04-08 06:28:43
It seems like you are enjoying your first major plateau experience. Plateauing happens to every programmer, but can be more intense and longer in duration especially if you are working alone / self taught. There are articles out there about plateauing and I'm sure you can find more in a search, but here is one. A cycle forms in this process where when you make the jump to that next plateau the first half of the experience is often refactoring your existing code then potentially problems once again pop up and the search for the next cliff to scale starts once again.

From a game dev perspective going down the traditional OOP route leads to not the best modular code / entity system. The anti-pattern that develops is the "god / blob" object; IE your base game object that everything extends from... As more and more systems are developed the tendency is to push the majority of them up to the god object. What you have built so far is not complex enough for this to have reared its ugly head; note OOP dependency injection should be avoided as it's not a good solution; just a band-aid. This is the main impetus to move to an entity / component system.

Some good book resources (I've not read the first two):
Game Programming Patterns (free web version!)
Game Engine Architecture
OpenGL Superbible

On entity systems / components:
Data Oriented Design
Adam Martin's ES series

I'd start with Game Programming Patterns since it's free; jump right to ECS discussion as it gives a good overview on the why. The others will be much more dense in content and take a lot of time to absorb. Adam Martin has quite a few ES / Java articles though don't take the design advice 100% as the way to do things; it's just one way.

Since you are still getting a grasp on OOP two oldie, but goodies for that is Head First Java and Head First Design Patterns which will provide reasonable coverage of "traditional OOP". This will probably help provide the vantage point to embark further down the data oriented design / entity / component system direction.

About data oriented design... At a glimpse this is the discipline in game dev (or any performance oriented programming area) of understanding how the underlying hardware works best to efficiently process data. Your GPU processes data in parallel; you can also process data on the CPU in parallel. Entity / component systems are the high level realization of DOD that organizes ones code / data for better processing. A central premise is that a good data component collects all the data that is associated with a given domain (physics, etc.) such that one can do the processing necessary without retrieving or collating multiple areas of code to get all of the data necessary to perform the processing. There may also be cases where a data component for all entities is pre-processed creating one giant block of data that needs processing in bulk.

Hand in hand IMHO at least with DOD / ECS also comes event driven programming. This is how components communicate with each other and the rest of the system aiding modularity and control flow. You will be familiar with the listener pattern from the various Java SDK implementations for say input, etc. It's 2017 now and the 90's can keep the listener pattern. You'll want to look up "Java eventbus". You may find a bunch of links about Google's Guava; stay away from Guava or at least that is my opinion.

To make the jump to fully understanding how ECS work in Java one needs to thoroughly understand generics and in particular generic methods. As things go this is a rather advanced subject and can be a bit mind bending. The best reference is this resource. It took me 5 years ('05-'10) to fully appreciate Java generics and realize the applications beyond just the syntactic sugar applications (where 95%+ of folks stop).

Eventually you'll need to master concurrency, but this is an advanced topic; a good starter book though. For now just keep all your code single threaded on the CPU.

Though you'll want to learn how GPUs work (older article, but good start). Go directly to shaders and don't bother to implement in your code the much older fixed pipeline approach except at least read about it for educational purposes. What shader programs do is define an algorithm for vertex & fragment (the final pixel rendered) processing that is applied across multiple data at the same time. The OpenGL Superbible is your first stop for this direction.

Since you have a go getter attitude and are using libgdx. Certainly put something together as a demo then examine the libgdx code for how and why it works especially sprite batching (advanced topic). You can also check out the available Java entity / component systems; I'd suggest Junkdog's Artemis ODB as the best candidate. On the latter there though none of the public ones are what I consider to encompass the complete picture of what is possible.

As far as some of the previous discussion. When I mentioned find a team to participate with that is more about the temporary hackathon experience versus finding a distributed ongoing team.

>Another example are bits, I don't seem to understand how to use bits.

Bit masking can be useful as the first implementation of state tracking, but it is fragile. The fragility comes as more and more states are added and that this type of approach is not suited for modularization where one combines state across multiple domains. The better approach is using Enums and EnumSet, however even that is not complete as you can not mix two different types of enums together. You can though create extensible enums and use a HashSet at first. Sadly there is no publicly available ExtensibleEnumSet implementation that I'm aware of out there which is the next step in efficiency allowing EnumSet performance across multiple extensible enums. Some starter references; the grand master is from Effective Java (a good book itself); here are some notes. It should be noted though that Joshua Bloch in his exposition on extensible enums stops just short of some of the really powerful applications.

It should be noted that the info above is coming from my perspective. You'll find a fair amount of folks on JGO that are more pragmatic or eschew some or all that I've mentioned above, so you may come across varying attitudes.

And just be ready to spend _years_ getting a hold of most of the above. Be ready to spend several months to really grasp some of these topics as they can be deep and are complicated. Learning OpenGL / shader programming will be one of those areas that simply put just takes time even if you are already an accomplished programmer. I wouldn't recommend for instance even looking at Vulkan until you have a thorough understanding of OpenGL.
10  Discussions / General Discussions / Re: Need some programming advice on: 2017-04-04 01:08:53
>I'm to the point that I'm getting frustrated and ready to find a new hobby.

I've long held the belief that a programmers greatest asset is patience. It's going to take time to get better especially if you don't work professionally in the field and are taking stabs here and there at it.

> I should be much further along than I am in terms of skill.

As silly as it may sound learning to enjoy the journey is just the nature of tech in general.

Given that you have dabbled with libgdx there are plenty of open source examples of projects out there of the pong / breakout style. Perhaps consider putting what you have worked on up on Github as open source and then post the links for comments and specific questions on JGO. Going through the process of perfecting a simple clone game can be useful and even publishing it via libgdx / Android or wherever such that you go through the all the steps of releasing an app at a state that others may use it however small the audience. If you are in an area where there are tech meetups go to some and talk to others. Perhaps participate in any "hackathons" and be ready to join a team and collaborate at whatever level you can.

Another useful thing to do is to keep a journal. This will definitely help if you are on / off again. There are a lot of articles out there to peruse.
11  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

12  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.

13  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.
14  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....
15  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:
16  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.
17  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.
18  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.
19  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.
20  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.
21  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?
22  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
23  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.
24  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.
25  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!
26  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.
27  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
28  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.
29  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.
30  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.

Pages: [1] 2 3 ... 13
Sralse (14 views)
2017-07-25 17:13:48

Archive (412 views)
2017-04-27 17:45:51

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

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

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

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

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

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

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

theagentd (1132 views)
2017-03-15 22:37:06
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!