After copy-pasting my own code around so many times, it seemed prudent to derive a library of sorts. I use this codebase to quickly hack an experiment together. I consider it to be the equivalent of a notepad.
/examples/
Contains typical usage examples:
online demo: Classic Flocking Behaviours;
online demo: Color Similarity Heatmap;
online demo: Curve Smoothing;
online demo: Voronoi diagrams with k-means;
online demo: Neural networks;
online demo: Polynomials;
online demo: Vollyball Game;
many more at: http://gerardmeier.com/lab/.
/src/engine/
An actual engine, of sorts. Ties a few components together.
/src/prefab/
Some useful pre-made entities. Components frequently used, but not part of the core
/src/math/
Math oriented features.
/src/collections/
Several datastructures.
/src/aux/
Optional files. You won't need them, I do.
/src/contrib/
Code sourced from open source projects. Each file contains more details about its origin.
Texture transformations
Textures are commonly manipulated by the following operations: resize, translate, skew, clip, rotate. The current implementation doesn't support everything yet, nor is it very structured. Mostlikely an optional 3 by 3 matrix will be introduced to allow for most transformations. A matrix also works tightly with the scheduled Web GL renderer.
Physics
Extend the entity with physics and refined collision shapes - or defer to, say, box2D. (will never happen)
Audio
IE and iPad support are lacking. Also "audio sprites" must be implemented.
Muli-touch controls
This API has yet to be exposed. I have plans.
Threading
This API has yet to be exposed. I have plans.
Web Sockets
The client side is easy, but further study needs to be done for a generic server implementation, e.g., a server that simply forwards all messages to all clients is open for abuse - some form of authentication needs to be performed.
Copyright (C) 2013 Gerard J. Meier gerjoo@gmail.com
N.B. I cannot quite agree with any pre-made license thus far - until I figure this out, a default copyright is to be assumed. Most code is very poorly structured, so I can imagine as a whole this project has little use. I certainly don't use it for production code.