Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
0 user currently in Programming. | 3 guests
Acmlm's Board - I2 Archive - Programming - Looking for editor help | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Dish

Spiny
Level: 38

Posts: 428/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 06-11-05 05:36 AM Link | Quote
Quite frankly -- I hate making editors. The 'making editor' portions of my game projects seem to always kill all my motivation, and eventually the project.

I'm actually taking a break from my main game project (which, suprise suprise, is in the editor developing phase) to do a simpler game project. I'm keeping it very simplistic -- only thing I need an editor for is maps.

SO! I'd like to request aid in the form of a map editor! Any language will do (even VB!) The map format is painfully simple:

- Only one layer -- no multi-layered maps
- No tile animaion
- Tiles are 16x16 pixels, completely opaque -- no transparencies
- Tile ID is 8-bits -- only 256 tiles can be on a map
- Maps can have configurable width/height (no less than 20x15 tiles -- limit within reason -- I doubt it will get very large though)
- the "tileset" is nothing more than a 256x256 bitmap -- each 16x16 pixel block is a tile ID number. There are no further properties that need to be edited for the tiles.
- Map compressed with a simple RLE method. I can provide the compression/decompression code if you really want (assuming C/C++) -- or I can explain it if you want to do it yourself (it's very simple)
- Misc objects will be placed on map -- each object only needs 3 things: ID number, X coord, Y coord. No further properties need to be edited for those objects.
- Number of objects on the map needs to be configurable
- The player doesn't count as an object -- so the player also has a starting point in the map (just X,Y position)
- Graphics for each object don't have to be in the editor. If you want you can just put a star, or some other indicator at the location of each object.


That's all. I'm not picky about how the editor works as long as it works. I don't even care what it's written in as long as it's not a pain to use. This doesn't have to be a commercial grade editor -- it doesn't even have to be user friendly. Further details and the actual detailed map file format will be posted on request if anyone is interested in taking up this project.

There is no reward or anything for making the editor. All you get is the satisfaction of knowing you contributed to a moderately entertaining game, and my eternal gratitude.

Due to this project being very simple, it has a full head of steam -- contrary to some of my other projects I see this one actually being completed in the semi-near future -- and not just fizzling out. So you can be pretty confident that your editor will be put to good use and won't be a complete waste of your time -- however I am moving halfway across the country soon, so there might be a decent sized pause in my activity in the near future.

The editor may or may not be publically available -- it's completely your call. The game will be open sourced on completion and will be free. I'm leaning towards mashing together all the individual map files into one big file for all the maps for the final release of the game -- but I'd prefer individual files (1 file = 1 map) for the developing phase. It's easier on the editor and it's easier for making/editing the levels -- so it's possible your editor may not be operable on the final release of the game unless you tweak it.

I have a small demo up and running, but I'd rather not show it here due to it being less than impressive. There's no animation (outside of the player moving and the screen scrolling), and no objects on the map -- and no sound -- however I have the player moving about the map and all the wall collision and crap working perfectly (which actually is the hardest part -- the rest will flow like wine for me). If you're interested in making the editor but are unsure and seeing the demo may sway you -- I can slip you a copy.

I'm not interested in adding anything to the map other than what I specified. If you have further ideas on the game, that's great, but I likely won't be interested. I'm restraining myself on this project and keeping things simple -- further ideas just complicate things, and once you add one thing you think of another thing and then you have all these ideas and I have to redo all the code I did. If you'd only be interested in making the editor if you have some say-so of how the maps operated -- then you probably aren't interested. To be frank... it's "my way or no way" when it comes to how this particular game works. At least for now -- in the future I might be open to suggestions (but then again I may not).


That's it! If you have further questions, or have any interest at all -- please reply. I'd really love to avoid making an editor if possible (I hate making editors). Any help appreciated! Thank you for your time.



EDIT ----

The file format:



multi-byte stuff is stored low-byte first


u8 = unsigned byte
u16 = unsigned word (2 bytes)


start of file
-------------
u8 Tileset Id
u8 BGM ID
u8 Needed Rescue Count (not important for the editor -- just make it an editable number)
u16 Map Width (in tiles) -- must be at least 20 for valid map
u16 Map Height (in tiles) -- must be at least 15 for valid map
u16 Player Start X point
u16 Player Start Y point
u16 Object Count

------ for each object
u16 Object ID
u16 Object Additional Info
u16 Object X (in tiles)
u16 Object Y (in tiles)
------ end object info

... Compressed Map data

-------------
End of file




The compressed map data should decompress to exactly Width*Height tiles. Tiles are "read like a book", meaning top row left to right, followed by second row left to right and so on until bottom right.

Map info starts with this little 16-bit header (remember, low byte stored first):

   High      Lo
   Byte     Byte
%rjLLLLLL LLLLLLLL

r = on if this chunk is a run
j = on if this chunk is joint (should be off if 'r' is off)
L = length of data

If 'r' is off:
--------------

'L' bytes following the header are raw, non-compressed tiles.


If 'r' is on, 'j' is off:
-------------------------

The following _1_ byte in the file is repeated 'L' times in the map


If 'r' is on, 'j' is on:
------------------------

The following _2_ bytes in the file are repeated for 'L' tiles.



After that, if there are still tiles to be pulled (less then Width*Height pulled so far), another 16-bit header follows, then more data for the header.




Example
------------

Assume you have the following:

04 00 06 10 84 08 06 80 0B 0A C0 21 03


That would decompress to:

06 10 84 08 0B 0B 0B 0B 0B 0B 21 03 21 03 21 03 21 03 21 03



First 16-bit header: 04 00 -> $0004 (no run, 4 tiles)
so the next 4 bytes you just pull as tiles: "06 10 84 08"

After those 6 bytes, the next header: 06 80 -> $8006 (run of length 6)
so you pull the next byte (0B) and repeat it 6 times

After those 3 bytes in the file, the next header: 0A C0 -> $C00A (joint run of length 10)
so the next two bytes (21 03) are alternated until 10 tiles are pulled


Tileset ID will load a file "ts_xx.bmp" where 'xx' is the hex value of the ID. So an ID of $05 will load "ts_05.bmp" for its tile graphics.


ANOTHER EDIT!!!!!

Just realized I'll need additional info for some of the objects I have in mind -- so I added a 16-bit var to the objects section.


(edited by Disch on 06-10-05 12:37 PM)
(edited by Disch on 06-10-05 01:08 PM)
(edited by Disch on 06-10-05 01:11 PM)
(edited by Disch on 06-10-05 02:36 PM)
(edited by Disch on 06-11-05 11:17 AM)
dan

Snap Dragon
Level: 43

Posts: 607/782
EXP: 534516
For next: 30530

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 06-11-05 04:23 PM Link | Quote
I am interested in making an editor for you. It should be relatively easy. Do you have any sample files/tilesets, as that would make the whole thing a lot easier.


(edited by dan on 06-10-05 11:24 PM)
Dish

Spiny
Level: 38

Posts: 429/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 06-11-05 07:13 PM Link | Quote
http://www.geocities.com/disch_/TestLevel.zip

The test level, the tileset it uses, and a png with how the result should look (with a cute little mouse to indicate where the player starts)

Nothing in the map is compressed since I made it in a hex editor -- so hopefully an editor would shrink the file after loading and saving.

Also --- after I posted this, jman on IRC said he was interested as well -- I believe he already started working on it (he said he'd have something by the end of today). So I might not need you. I'll meet up with him as soon as I can and make sure he's really doing something -- then I'll get back to ya.

Thanks ^^
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Programming - Looking for editor help | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.009 seconds.