Years of work, 3K classes and only 750 module names to remember, effectively supporting video engine tech, which would otherwise have been a nightmare to maintain.
Surely this is a misleading conclusion, but this seems to be a lot of bootstrapping, creating this elaborate foundation, that has the potential to be awesome, yet the only outcome is a product that didn't warrant this huge investment in time and effort. It seems like this Hollywood style Transformer washing the dishes.
"Surely this is a misleading conclusion" -> it is the one produced by the JGO / indie wisdom grinder.
For better or worse I started in this direction from a long term "blue sky" goal and adapted what I developed to try to move toward something of more immediate value which still is quite illusive in general, but close at this point or at least closer than the past. The bootstrapping part especially living in San Francisco has been arduous; behind on rent currently. Knowing that I passed on at least ~$2MM of income to this point if I simply took a traditional career path is more concerning than it ever has been...
Regarding the video engine / middleware it's more like I had the right tools at the right time to start rapidly producing something of complexity the moment it was possible on Android that normally would be prohibitive from a traditional OOP perspective let alone a team of one. Not that having more devs reduces complexity / time to market especially considering OOP trappings. What I actually created is a solid middleware layer for advanced media handling on Android that is not available in the stock SDK. This is just one of many configurations of the tech involved and many apps can be created as a result in regard to product. I'm focusing initially on a prosumer video recording / editing product, but plan to release a suite of apps with some of them being more consumer friendly than others.
I also got through the tech evaluation process recently for licensing the video engine tech for streaming use cases with a company most have heard of alas they wanted the middleware tech, but didn't actually want to pay for the requested SLA and other requirements like sublicensing. Boutique middleware development is not a good place to be in general and seemingly less so in the future in general. I'd really like to make the transition to being a product oriented company.
Besides expanded / final QA, packaging, and IAP / user extension testing things are ready to launch for the video editor. A final go to market goal is to enable users to buy a feature once and have it accessible across multiple apps in the suite. IE buy some presets or specific functionality like image stabilization or time lapse recording for the consumer app and you can use it in the prosumer / pro version, etc. I'm moving towards launching a Kickstarter since I'm 95% of the way done.
I guess one more offhand comment the chitchat monster compels me to tell is that even though I haven't got a product to market the efforts I've done has always gotten me a job / client when I need one. These days I just have to pull out my phone and say, ever see that before?
I firmly believe generalization to this extent is counter productive. I can see the potential of Entity Systems, I just haven't seen a use case, only people describing them as the ultimate answer to customizable Entities, while hardly any game ever created requires, or benefits from this complete lack of restrictions.
As I mentioned generalization to this extent is counter productive until it isn't.. There is wider applicability of CA beyond ES use cases. In my case I had a large Java 5 codebase I immediately started porting to Android when the G1 hit my hands and rather quickly it became obvious the traditional OOP mechanisms that were marginally tenable at the time on the desktop with just a couple of variations between OSes simply did not map well onto supporting the larger Android ecosystem especially with how things proceeded and the aspect of integrating with the Android runtime.
The biggest problem with current available Java ES implementations is that they were created in the blind without an existing large scale game or codebase to test against for performance or actual flexibility. It would be much better if a high performance game rendering a lot of entities was created first then work backward to a more flexible structure while maintaining performance.
My CA efforts benefited greatly from having a large codebase to refine how it all fit together including performance concerns which were important to take into consideration given Android.
I totally get it that I need to release the framework or provide a knock out app to prove the case... Almost there... Though I'd like to defer as much as possible the chitchat monster on what I'm doing and move the discussion forward regarding CA / ES in general. I hope to participate with the larger community in a less anecdotal manner "soonish".. ;P
In return we get significant code overhead, memory overhead and performance overhead, to achieve this pinnacle that nobody really gets that excited about, while actually developing a game. People fall in love with the potential of clean code, but so far every game ever developed is a tangled mess, regardless of the framework it was built on.
Not sure where the code overhead is coming from as CA / ES not only allow smaller more intelligible Class / file sizes, but significantly reduces code duplication inherent to traditional OOP... Memory overhead is not much different than traditional OOP ES with existing available Java ES. The same general techniques to improve this from the OOP side of things can be applied to CA / ES, but with the benefit of CA doing these optimizations in a more dynamic manner. The performance faults of current ES implementations can be improved and what is currently publicly available should not deter anyone from working on a new design.
The game I'm making at the moment is far more complex than anything ever produced here on JGO. Or for that matter more complex than any game I've ever yet seen made in Java, ever. Still doesn't.....
For a moment there I thought maybe you might be working on something ambitious.. <New York Accent>No disrespect...</NYA>