Users claim coordinates of a "room", and define the layout with ascii
#location
5,7
#layout
| $ _/
_| _ _=
___/ \___
The game engine turns these charicters into collidable geometry.
Some characters could represent standard entities like spikes, moving platforms, trampolines.
Rooms are a standard size of X by Y dimensions.
When the player leaves the room, the game would load the neighboring room in that direction.
Users can extend their rooms with special scripts. This involves defining an asci entity region, and associating js script with it.
#entity:portal:4,4:teleport
^
<@>
V
#script:teleport
{
"trigger": function(player){ load_room(6,8) }
}
This looks like a nice project, but it's not really what I had in mind.
What I had in mind is not making a game engine at all (maybe something for the example game), but letting each game have its own engine (if the users want. Otherwise they can just copy the default game and change the level).
Maybe my idea is just a protocol for linking tildetown user javascript games.
I wrote my design ideas here: https://gist.github.com/jmdejong/8711e9ad760218f5a75ae4015e7739e7
Your idea would make a nice project as well. I don't think I will start it myself, but if you'd work on it I could help