![]() |
![]() |
#1 | |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
my own pet project: Abime MapMaker
Seeing that the Amiga Game Factory is becoming very alive and I'm making some progress on my own project I thought I'd share my progress.
This project got my interest because of another thread: http://eab.abime.net/showthread.php?t=24266 Quote:
![]() The main goal of this editor is to get some l33t sk1llz with desktop application development (I'm an enterprise app kind of guy) and to be able to easily create maps for Captive the way I want too. Not only that, but the editor will save to a portable XML format that can either be used directly or can easily be converted to be used as the base for a game. I'll start off with a screeny of the current state of the editor: ![]() It's only an early development stage (so the appearance may still change radically), but quite a lot is already working to my own surprise. I can fluently edit each floor, add multiple floors to a single map (each with equal size), import icon sets (icon set = zip file with 16*16 PNG icons, you can specify a different icon set for each floor if you want), the gui updates according to it's state (like menu items disabling when they cannot be used) and the app is already filled with notification messages and such to help you understand what is going on and warn you when you are about to do something stupid. [ start boring coder geekishness ] The best thing is that I managed a Model View Controller pattern, so all my application logic (for example map state changes) is completely seperated from my GUI logic (for example map drawing). The app is basically built such that: 1) gui generates an event ("mouse dragged over cell X,Y") 2) controller picks up the event ("HE DRAGGED! HE DRAGGED!") 3) logic action is executed ("update icon in cell X,Y") 4) an event is generated ("cell X,Y was updated") and caught by a GUI listener, which then updates itself according to the event that was received, for example by redrawing the map. This allows me to quite easily plugin new features or rewire old ones without the need to rewrite whole sections of code and hunt through endless gobs of GUI event handling code. [ end boring coder geekishness ] I've put all the TODO's for the project in a seperate document for easy updating and viewing. You can find it here: http://users.insane-hq.org/~gimbal/m...r/mm_todo.html Last edited by gimbal; 13 July 2006 at 17:19. |
|
![]() |
![]() |
#2 |
Ya' like it Retr0?
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
|
That has a lot of potential big G
![]() After we sort out the EOB formats I would love to discuss CAPTIVE map generation a little more ![]() and it could become as you say a multi UNIVERSAL map maker / editor for various retro and forthcomming games through the simple use of XML [plug ins] ![]() i like it ![]() upload, create and edit your favourite maps for your favourite games ONLINE ![]() Last edited by Zetr0; 13 July 2006 at 01:38. |
![]() |
![]() |
#3 |
Registered User
Join Date: Jun 2002
Location: .
Age: 48
Posts: 5,562
|
i cheer up this project, very good idea
![]() btw, about the grid: it could be useful that way or you can go completely off the path with a paint mode, not geometrical precise but cool to see, like an hand made map (just a fool suggestion) |
![]() |
![]() |
#4 | |
Global Moderator
Join Date: Nov 2001
Location: Derby, UK
Age: 48
Posts: 9,355
|
This is wicked project Gimbal and I can't wait to properly start mapping Captive (not by playing either so it'll be quicker)
Quote:
We'd need to resource that and figure out how it decides which tile-map it uses, how to structure the level, where the codes are (which are 8 and 16bit respectively)... Anyway this is for a later project and is hopefully my future baby ![]() |
|
![]() |
![]() |
#5 | |||
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
Ha, this is the first time that I start a project that people actually want to use
![]() Quote:
Quote:
![]() Quote:
|
|||
![]() |
![]() |
#6 |
.
Join Date: Oct 2004
Location: Ioannina/Greece
Posts: 5,040
|
it rocks , keeps coding! a very usefull tool!
![]() |
![]() |
![]() |
#7 |
Ya' like it Retr0?
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
|
I tell you what Gimbal, once i get things on the ball here, and catch up a couple of things the wifes been going on about arround the house, it would be a pleasure to work with you on this.
![]() |
![]() |
![]() |
#8 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
What do you all think about the keyboard edit mode? Is there anyone that would want such a feature?
|
![]() |
![]() |
#9 |
Global Moderator
Join Date: Nov 2001
Location: Derby, UK
Age: 48
Posts: 9,355
|
Here is my take on the map thing and some features I'd like to see..
- Deluxe Paint type editing. Select floor/wall icon (would be a colour in DP) and then paint it on how you see fit. Left mouse paint, right mouse erase ![]() - A useful fill option. So I could for example draw an outline of say the pathway and fill it in - Support for movable walls etc.. Captive features these in abundance - Keyboard support for quick and dirty editing (as you say). But I'd like to for example give it my x,y,z co-ords and it'll plop the tile there. Also maybe an x,y,z to x1,y1,z1 and it fills the square area with the tile. - Configurable map pieces. I'd like to resize some of the Captive gfx and use that directly. Then if it looked silly I could load in a different tile/icon set and the map is updated to reflect. Also drag and drop icon/map tiles so I can swap the tile locations about and the program asks if you want to swap the tiles in the map. If you was to select yes the tiles in the actual map are swapped. If you select no the ID number for the tiles are swapped so that the map appears to look the same. This could be expanded and one could mark (Shift or ctrl select or drag mouse) and then tiles selected are swapped only - An option to include enemy patrolling paths. Generally in Captive most enemies home in on the player and head towards him (the player must be within a certain distance). Some enemies (postman, scientist) don't do this unless provoked. They simple follow a set path. - Option to load in say 10 maps for different levels and then cycle through them at the touch of a key/mousebutton - Printing support with some properly useful resizing. So what you print looks the same as what is on the screen and doesn't lose too much detail (This is obviously depenedant on a few factors). Also the option to SPAN paper, this would be useful for printing at the full size. - Grid overlay is an important feature and should be included. Though the grid lines should be configurable in width and colour. - Scalable. It'd be nice if you could scale the map and it'd keep the layout etc.. make it bigger, smaller (16x16 to 32x32 etc). This would need the map to be saved in it's own format for future support. - PNG saving should be an export feature as other formats could then be added (IFF-ILBM ![]() That'll do fir the time being.. I'm sure I'll think of more ![]() |
![]() |
![]() |
#10 | |||||||||||
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
Quote:
Quote:
![]() Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
|||||||||||
![]() |
![]() |
#11 | |||||
Global Moderator
Join Date: Nov 2001
Location: Derby, UK
Age: 48
Posts: 9,355
|
Quote:
I can for example immediately move the droids to 0,0 and then see what is in 0,1 and 0,2 etc.. I could then quickly select tileset and then just enter 0,1 to 0,16 in the co-ords box and it'd draw the 17 blocks for me from the current location ![]() It'd be much quicker than finding the coordinate, swapping to the editor, moving the mouse to where I wanna paint. Then painting the 17 blocks then switching back to the game Quote:
Quote:
![]() Quote:
![]() The maps should be downloadable and viewable from the program (This way things that a picture can't portray can be viewed) Quote:
![]() |
|||||
![]() |
![]() |
#12 | ||
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
Quote:
Quote:
Note that you can now find a link to the TODO list in the top post. Last edited by gimbal; 13 July 2006 at 17:25. |
||
![]() |
![]() |
#13 |
Ya' like it Retr0?
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
|
Heys Gimbal, have you thought of starting a wiki ?>
break down the TODO list into areas and then have forums based on works completed within that item. you could end up with a lot more input too ![]() ![]() |
![]() |
![]() |
#14 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
I don't want a bigger TODO list, I have enough to do as it is
![]() ![]() |
![]() |
![]() |
#15 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
Just to let y'all know that I'm not dead: I'm currently working like a dog to get the workspace logic implemented. Because of this the way the app internally references information changed completely so a fair amount of code needed to be reworked... I'm currently wrapping that up and then I'll be able to add new features again :s
Oh well, at least the information is now more logically structured and easier to manage through the GUI. The way I've got it setup is to have workspaces store inside the application directory. Each workspace will then manage it's own maps and icon sets, so the structure may look like: workspaces/workspacename/config.xml workspaces/workspacename/maps/map1.xml workspaces/workspacename/maps/map2.xml workspaces/workspacename/iconsets/iconset1.zip etc. Selecting a map will NOT go through a file-open GUI but through a simple selection list (with multiple columns, because there may well be 65535 maps in there ![]() The config file is used to remember the state of the app per workspace. So when you have a certain map and floor opened when you close the workspace, the next time you open it that map and floor will be displayed again. I'll try to figure out how to get the app to remember window states as well. |
![]() |
![]() |
#16 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
YES! It's been bugging me since the day I started this project, but now I fixed it: no matter what the size of the map, drawing is now silky smooth! Man that's a huge load of my shoulders. (the change is: originally I was redrawing the entire map with every update, now I'm only redrawing those parts that changed which is usually 1 or 2 icons each update).
With an exception: scrolling still updates like crap. But once I figure out how to get the current visible viewport dimensions (so that I again may limit the amount of drawing that needs to be done), that is also fixed ![]() The workspace and loading/saving of a map is also implemented. I still have some work to do with iconset management: currently it is only possible to import existing iconsets into a workspace, creating a new one or editing an existing one is the next thing on the TODO list. I also changed the map format: it's still XML but I changed the cell information to comma seperated. That made a nearly empty 100*100 map go from 256k to only 10k ![]() |
![]() |
![]() |
#17 |
Global Moderator
Join Date: Nov 2001
Location: Derby, UK
Age: 48
Posts: 9,355
|
Cool
![]() I'm looking forward to beta testing ![]() |
![]() |
![]() |
#18 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,975
|
There will hopefully first be a few rounds of alpha tests, A beta test is done on a finished product to get the last bugs out. By then it is too late to make design changes.
|
![]() |
![]() |
#19 |
Registered User
Join Date: Jun 2002
Location: .
Age: 48
Posts: 5,562
|
can i ask a little OT, out of curiosity? is there, between programmers and program designers, a defined line between alpha and beta tests? like something you learn in school, or it's just a thing based on each project and your eye, or your way of working?
|
![]() |
![]() |
#20 |
Ya' like it Retr0?
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
|
general theres a review and sign off for each stage of a project, depeneding on project the design could be in review for months before programming begins, and depending on the design model chosen, i.e. Waterfall, RAD etc.
There are many ethos and reasons for each development model and why some are prefered over others depeneds on your product output. a common ethos is SDLC (software development life cycle) http://stylusinc.com/Common/Concerns...Philosophy.php its a bit of a read but a good resource for project managment / leading, as well as developing your own projects. this particular resource was considered initial reading on my HND in computing studdies as well as a resource for my BSc in computing science. and in all truth i do go back to it now and again. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Next Pet Project | Enverex | Retrogaming General Discussion | 10 | 23 June 2009 01:30 |
eab mapmaker alpha 1 | gimbal | project.Amiga Game Factory | 17 | 02 June 2008 13:42 |
MapMaker sneak preview 1 | gimbal | project.Amiga Game Factory | 41 | 11 May 2008 21:23 |
Pet 4032 | Tony Landais | support.Hardware | 7 | 11 April 2003 17:53 |
|
|