I?ve decided to show my first prototype because I?m working alone and almost nobody in the my nearest circle doesn?t understand what I?m trying to do. Even worse - the only man who understands (my friend-programmer) is saying that choosing C2 for this project is like trying to kill somebody with a toy gun ? possible but very perverted. :) Maybe he?s right a little. But I urgently need a support from the C2 community ? not only things like ?Wow, dude, how did you do all this cool stuff??, but some healthy critics too. So I?ll be very pleased with any response.
Well, let?s start.
<img src="http://hexacat.com/images/ecodigger.jpg" border="0">
This is Ecodigger Engine prototype. It?s not a game yet, even not a complete engine for it, but already a solid framework for its further development.
Tiles represents various soil types ? wet and dry soil and sand, rich (fertilized) soil, water and rock. Despite this is not a final sprites' version I need to know ? can you discern various soil types one from another intuitively, without the hints? Or not?
Engine has three basic modes: Level Editor, Physix and Debug.
A. In the Editor mode you can delete (left mouse click) or change (right click) tiles. All physical calculations and actions in this mode are frozen. All the perimeter tiles are locked for the changes.
B. Physix mode activates tiles processing. Currently it?s able only to drop water tiles to the empty spaces (and infiltrate it through the sand), to find tops for water basins and to find water filled neighbours for water and wet sand tiles (wet soil currently doesn?t count because it has a different behavior ? to store water, but not to share it like wet sand).
You can delete and change tiles in the Physix mode as well.
Nearest ?to do list? for Physix:
1. Calculate water pressure for all linked tiles in the single basins.
2. Distribute water from high-pressure to low-pressure areas.
3. Sand and soil moistening (not only down straight, but in the every possible directions) due to a pressure gradients.
4. Water levelling.
5. Tiles drowning in the water.
6. Tiles gravity (it?s done already, but temporarily turned off, ?cause it should run after the all water processing).
C. In the Debug mode you can see tiles values, tiles? IIDs for water basins top (small green number) and waterlinks (tiny red arrows). You can increase a delay to have a time to catch transitions between different phases. You can also export current level to the JSON-string.
Important note: all sprites you see doesn?t move or do something at all except changing animation frames and handling mouse clicks. All variables and calculations settled in the 2D-array 24x17.
I don?t think it?s a good idea to disclose caproj-source until the work is done. Especially due to constant changes (here you can see a 5th generation of Physix already) ? I?m afraid that current version will likely bring more mess in your minds than good examples to learn to. But I'll gladly answer to all your questions and can share any tricks you ask. :)