Sunday, May 20, 2007

Initial PlanetCute level editor

Corsix just posted up a prototype of a level editor he built using the PlanetCute set from last week. You can download it here:
To install:

Extract all files, make sure DX9 is intalled

To run:
Double click EXE

To use:

  • Arrow keys: Move active character
  • b: Change active character
  • 1 though 6: Load premade levels
To manipulate the terrain:
Click on terrain in top left, click one of the blocks across the top to select it, click on a block in the level to set it to that block. Click and hold a block, and drag up/down to move the block up/down.

To manipulate objects:
Click on objects in top left, click one of the objects across the top to select it, click somewhere in the level to place it. Only one object can be present on each block. To delete an object, select the object across the top then click on the object in the level.

To manipulate people:

Click on people in the top left, works same as objects.

This is exactly the type of project I was hoping someone would build. Once you get a hang of the editor, it is easy to build interesting levels rather quickly. Be sure to check of the prepackaged levels. Though simple, each one is actually a rather enjoyable exercise in finding keys and delivering gems to the princess.

I'm impressed that Corsix even figured out the shadow system, probably the most complex part of the set.

I find that my initial tiles usually go through several iterations before I settle on a final look and feel. Having seen them in action there are still a couple of rough spots.
  • Displaying vertical height: This is still a bit tricky. There are a few simple shadow tricks I can play. A simple trick that can be played on the programming side is to increase the brightness of each layer by 10%. This makes the top blocks lighter and the bottom blocks darker given a nice bit of depth perception to the whole thing.
  • Noise in the base tiles: The basic floor tiles are a bit high contrast. This gives the playfield a much noisier feel than I would like. I'll tone that back.
  • Lack of objects: It is obvious that some basic objects are missing. Vertical doors, conversation bubbles, ramp corners and better buildings all come to mind. Any others that seem missing?
One of my dreams while making this set was to one day see an online RPG maker similar to Little Big World. The player wanders about a series of realms, but they have the ability cast spells and mold the terrain like a giant art canvas. Think Populous, writ small.

take care


  1. I had that Dream! I called my project DreamStones - it's an open source online game, built with a "wiki-like" philosophy in mind: i.e. real-time, multiplayer editing of the world is possible.

    Also, it's made to work in a distributed way, a bit like the web: anybody can run a server and players can travel between them (this has some impact on the game design: there is no "central" pooling of stats, so no money, no death ... except locally on one server). You could think of it as an online RPG maker - though it's still far from having all the RPG maker features.

    Back when I was beginning the project, I had been looking over the net for tilesets I could use, you can see some of my notes here.

    (I'm not working on DreamStones now, mostly because of my current contract's non-competition clause)

  2. I should have posted this earlier on, but alas: I'm blown away by your art (and in particular this set, albeit basic). I'm about to use it in a college project that involves a multi-party IM service. I'll and let you know how that works out, and add proper credits ;-). There are some basic questions though, still on my mind:

    1) Do you have any geometric info? I'd like to know the angle at which the tiles are viewed by the virtual "camera". I've found that angle to be around 33.557 degrees. Maybe a better question would to calculate the position of a character (but I think I'd better pose ask question to Corsix :-)).

    2) Do you plan to update the set in the near future? If so, I could prepare myself for possible changes/additions.


  3. There is a Flex based 2d game making tool online called - I know the folks who are working on it and they are doing some very cool stuff - they are starting to use your planetcute tiles in their tutorial levels! It's awesome.

  4. Jules: I'm using DirectX in 2D mode, so I would know nothing of the camera angle

    I'll have a play around with darkening / lightening layers, along with making it easier to add new blocks and objects. Any advice on making the editing interface easier / more intuitive would be helpful :)

  5. PlanetCute: more than just a tileset

    DanC I bet you are realizing this but if not, here's a thought for you. PlanetCute and SpaceCute are more than just tilesets. They are (could become) a sort of visual language for game prototyping. Have you noticed that folks are asking for all kinds of extensions? Its because they want to use these graphics to build upon via their games, and perhaps other implementations - it's like it's "almost" exactly what they are looking for, if it just had a few more verbs and nouns (visually).

    I hope you consider adding some targeted tiles which I believe could expand the number of potential implementations dramatically.

    Also, what is PlanetCute without little floating hearts? (Health powerups)

    I can't wait to see what comes next.

  6. Agreed, Andrew, floating Hearts and Stars are a must... to truly optimize the cuteness. However you don't get health power ups, they're Caring powerups... see your little cute guys start to become apathetic the longer they search for the key and can't find it, and so they need to be charged up, reenergized or else they'll get bored and walk off the play board. :) That way there's no death... cuz in the world of cuteness there is no violence, only apathy. :D

    Perhaps little bunnies can distract you from your quest, cuz they're cute too... sapping your caring meter...


  7. Corsix: It's not very user friendly to have to go back to the top of the screen every time you wanted to change your tile/object/person. Perhaps you can make it so that a little context sensitive menu would pop up when you right click which lists the categories. When you move over a category it expands out with the different options (like the start menu or qeradiant level editor).

    Danc: Oh yeah, definitely needs some hearts to up the cuteness level.

  8. are you guys serious ? what we need is some tiles without the cuteness factor, like the old tiles from zelda but using current graphics, it's ok to have cute characters but hearts and bunnies ?

  9. Updated version:

    Main Changes:
    - Height perception via layer brightness
    - Rendering bugfixes
    - Right click menu for editing (hold down right mouse button)
    - planetcute\gfx_defs.lua can be edited in a good text editor to configure graphics and stuff (you can look at and tweak the other lua files too, but they're more dificult to understand)
    - Changed some preset levels
    - The princess, upon recieving a gem, well, find out for yourself ^_^

  10. Holy s* corsix it looks cool, especially the righ click menu.

    But the thing you get when the princess receives the gem is well too cute for me :).

    Great work.

  11. I love the idea of you getting your tilesets involved with the guy(s) doing Hackety Hack.

  12. Hey Danc, about the shadowing system... I don't think it's that difficult really. I got to implement it in a couple of days, thanks to the clear rules you gave (getting to think those rules should've been more difficult, I think :-P )

    Here's a screenshot of what I've been doing with Python+PyGame...
    I loved it when I got it right almost the first time :-) Functional programming rocks

    I've been releasing the intermediate revisions of the game in my blog, though all the explanation of what I'm doing is in Spanish. It's not yet interactive, i.e. can't use the mouse to move tiles, but I'll be implement that this weekend.

    I still don't get the right dimensions for each tile (its height and depth in pixels). Guess I'll have to keep experimenting :-)