Latest Open Source Projects

By on 6/29/2013

Just wanted to post a little information about some projects that I've open sourced recently:

TattooDB-Android - https://github.com/joelmartinez/TattooDB-Android

TattooDB is a simple document-oriented database for Android. It uses plain old java objects, and manages it's persistence behind the scenes using SQLite. I wrote it as a response to the ever increasing complexity of ORMs which, ironically, are supposed to make our interactions with a database easier.

I'd like to eventually write versions of this for C# and Objective-C

FlatRedBall.js - https://github.com/joelmartinez/flatredball-js

I love making games, and I love working on the web. frb.js is an HTML5/JavaScript 2D game engine that lets you make games for the web. Rather than some of these other efforts (which are impressive in their own way) to compile x86 code to things like asm.js, I wanted a "native" way of writing games that did not try to hide the fact that you are writing the game in JavaScript and embedding it on an HTML page. Right now, the engine uses canvas to render itself. The canvas APIs are simple enough (quite similar to things like Processing), but rather than the immediate mode API that canvas gives you, frb.js exposes a nice retained mode API that makes it really easy to work with and animate sprites. The engine is based on the C# game engine, FlatRedBall.

I have built some samples (emitters, rain, tiles) to show some of the sample code, in addition to some documentation. Eventually, the engine will be refactored to support multiple renderers in addition to canvas, such as WebGL.

Foresta.js - http://joelmartinez.github.io/foresta-js/

Foresta is a selector-style query engine for JavaScript Abstract Syntax Trees. It was written to support the sample framework for frb.js, which lets you update the code in an editor, and have it hot-swapped in real-time without resetting the simulation. It can (and eventually will) be used to do things like analysis of the user's written code to give them hints and check for accuracy given a task to complete.

 

See more in the archives