Can't you see the editor as a game, and program it in your own framework?
Now I understood what you meant - edit the room at run-time? yes, it is possible, but not so intuitive.
No it's not what I mean (I think).
Forget completely that you are making Machina Engine for a moment.
I was/am suggesting to write a new and exciting game, namely "make a map".Objective
: Make a nice map by picking and placing objects from a repository, and place them in a grid.Bonus points
for using all objects and for filling the entire grid.Higher levels
are bigger and have more kinds
You can save the game halfway
, to continue later.
<insert more game promotion blurb here>
Sounds like a fun game, doesn't it? :D
So this is the game you want to write.
Now we need something for implementing the game.
Option 1: Plain programming language? nah, too much work.
Option 2: Use a library, like SDL or Allegro? nah, still too much work.
Option 3: Some game engine? Oh, I know one, namely "Machina Engine"
The trick to understanding and not go insane is to let go of the idea that 'making a map' is part of the Machina project.
Map-making is not part of the Machina project.Map-making is not part of the Machina project.
(let it sink in for a while)
Well, it is, but let's call it Machina-core and Machina-applications. The 'core' is everything but map making. 'applications' is map-making.
In other words, map-making can be seen as a layer on top of that core (or aside of it, if you like).
It's like Notepad in Windows. It comes as part of the Windows OS (at least it used to). You won't find a Windows machine without it.
However, which one is true:
- is Notepad a part of the OS, or
- is Notepad something on top of the OS ?
(I hope you agree the second option is true).
Both views are defendable, it's just a matter of where you think the OS ends, and where applications begin.
In Machina you have the same. You have functionality, and you can see making a map as part of that functionality. However, you can also see it as an application on top of Machine core functions.
(Map making is not a core functionality I think, eg the game of making a map does not need a pre-made map as input.)
I'd say a map maker as a very
nice demo project for the Machina (core) engine.
My project: Messing about in FreeRCT
, dev blog
, and IRC #freerct at oftc.net