Thanks for pointing out all these issues. How complex is this! I just wanted to give my work for free But I must know about all this legal stuff and other considerations.
These are big arguments for going open source! I appreciate your detailed reflexions about this issue. And you guys are experienced about it (@bjorn author of de facto standard mapping tool, developer in a big gaming company, @TilemapKit engines and books published on paper…) I would be short-sighted if I don’t consider what you have to say! Now I’m starting to think seriously about fully releasing it. After all, what I want is to give Tilengine the opportunity to reach as many developers as possible, and being used to make actual games.
What I need now is a good source of information (book or website) about open source management. From my ignorance I fear that open source projects are a kind of anarchy where everybody can put its hands on it, and projects end growing out of control. I’m sure this is not how actually works, but I need knowledge about this. I have a rodamap, a list of things that I’d like to implement, and an “identity” about what Tilkengine is that shouldn’t be lost. How new features make its way to the roadmap? Who have the rights to make commits? etc… So if you can recommend some literature, I’ll read it.
The renderer is software based (CPU), the GPU is not used at all. Current GPUs and 2D VDPs (the things Tilengine is based on) are very different and I don’t think a GPU can be used to emulate them. Of course pixel throughput is lower than modern GPU engines, but this is not a problem because this engine is designed for retro style graphics, that are low resolution in nature but require scanline rendering to implement the raster effects properly.
For what it does the performance is quite good: on my humble 6 years-old Compaq Mini 110c Netbook (Atom N270 1.6 GHz), the majority of samples, which have an internal resolution of 400x240, take about 22% CPU. I’ve run three of them at the same time and still get 60 fps on each.
The usual workflow should be getting the low-resolution frame from tilengine and upscale/postprocess it through the GPU with HLSL filters such as CRT effect, etc. This is how arcade emulators like MAME do: software rendering and hardware post-processing.
The short answer: as long as you can allocate a pbuffer, a MemoryImageSource or any other kind of video surface that you can lock in to access pixel data, and a native build of Tilengine, it is possible to integrate it inside any framework. One of my Java samples renders inside an AWT JFrame.
The long answer: it may not be feasible in your engine, because if I understand well, your TilemapKit is a complete Tiled loader (it supports all kinds of maps, all features, etc). Tilengine is not that complete, in fact it can only load 8-bit (256 colors) tilesets and orthogonal maps -its not a Tiled loader, but uses its file format-. On the other hand it has extensive palette animation features, layers don’t need to be of the same size (as in Tiled), and has the raster effects. Oh, and I don’t have OSX / iOS builds yet I hope that when I’ll go open source you can help with the porting because I don’t own Apple equipment.
Congratulatiosn for your TilemapKit engine! It looks great and full-featured. Unfortunately I’m not in the Apple world so I can’t try it.