Development Diary Archives - March 2003
|30th March 2003 - Build 329|
Well the good new is that I've finished my driveway . I spent the first half of the week chasing my tail in a compile error. The error was brought up in a MS header file (for building the COM frame work) and I couldn't work out what was causing it. Turned out to be a missing include in another header file which had nothing to do with the file I was trying to compile.. Gotta love the COM programming..
Anyway I can now create (and delete) objects in the level. The first (ofcourse) was the main Jumpman Player and then followed by the bomb.
You Can see that I've chosen to keep the original 64 graphics in the editor.. It makes instance recognition about what each object is. Each object is made up out of vectors (and not a bitmap) so it can be scaled correctly for zooming in (and out) aswell as putting the selection outline around it.. Its a bit of a pain putting in all the object drawing code but doesn't take to long.
Dragging the object around the level (either by Mouse or via the Cursor Keys) snaps the object to the Level Grid. Objects Can't be created off the Level Grid or moved off it. If you try It just clips it to the edge. At the moment the Grid is 8 x 2 units but I am thinking I might change it to 4x2 which would allow finer placement of objects aswell as steeper girder segments (which is the next object I will be working on).
Multi-Select is also in.. You can either select the objects with the cursor or hold down shift and select each one individually. Once a group is selected, the group and be dragged to a new location, deleted or copied (and pasted). I haven't done the Copy/Paste stuff yet though
Zoom (obviously) is working.. Here is some shots of the same bit of the level at normal (1x zoom) and maximum (4x)
Just converted the game to use a 4x2 grid.. Was a quick change to 2 defines (the joy of thinking ahead) but as you can see it make placement of objects a lot more relaxed. Offcouse all the above pics are now out of date but that what a WIP is all about, viewing the development cycle.
I've also changed the editor to display the bomb a different (darker colour) if it is either non-active or invisible.
Also been working on designing the objects property dialog's. Each object in Jumpman has (or will have) an extensive definable range of things that can be changes such as sounds to play when this happens, what graphic set to use etc.. this should allow a lot of flexibility in designing some themed levels (such as jungle, in space, underground etc.).
I've added some level completion rules to the level editor. More will be added as I get to them (or find I need it). I will also probably add some nice Graphic and Sound/Music Icons to the dialogs which are for defining Image/Sound/Music. Ofcourse I have still to do those managers.
And the Property's for the Player.. Mostly Sounds and Images but also if Jumpman shoots, throws etc..
The Bomb has a little scriptlet which will be executed when it is collected. This script can make other bombs active/visible as well as change other objects properties real-time during the game play. I will be adding a new object type (a trigger) which will do the same things when jumpman runs over it. Active means that the bomb can be collected.. if you have an inactive (but visible bomb) then jumpman won't collect it.
Stein is just starting to work out the graphics for the game as we will be needing them soon(ish).. the first step is to take the main character and make up some mockup's of what he will look like. With more colours and higher resolutions than the poor old 64 we have a lot more to work with. But we want him to still look like his 64 counterpart. Ofcourse as you can see above anybody can put in their own sprite sets for the graphics so what we are doing is just the default graphics set that will go out with Jumpman-UC.
|23rd March 2003|
Been a very good week this week despite working some oddball hours at work, digging a second driveway and watching the war on the box. Managed to track down most of the crashing bugs and got in the object property editor.. This links to the COM object and like mentioned last week allows editing of the object.
At the moment the only object is the Level (which is contained in a Game class) and I've only put in a few properties. There will be more added in (like image set to use, background image and a half of other things I've not even worked out yet.)
I also changed the object palette to use smaller buttons (with out the text). At the moment it looks bare but when there are a lot more objects in the editor then the gap below the buttons will contain the scroll bar. I just have to work out how to do a tooltip so a little caption comes up to let you know which object is which.
Still a lot of little editor tweaks to do and a lot more support code but things are slowly getting there.. Not too sure if I work on the Game Editor this week (basically just allows you to define the level order, name of game, Author etc..) which means all the image and sound importing has to be done or work on getting the first real object into the editor and being dragged around.. (which it should do right out of the box..)
Pritty much decided to use openGL as apposed to DirectX. It seems nice to use and I might be able to do some nice neon effects as per the original Jumpman cover artwork on the 64 release.
Put in the about box (see below) and the menu / toolbar items now correctly enable/disable depending on the state of the editor. Really exciting things but hey.. they have to be done.
Here is the current pic of the editor.. This is the last time I will probably post the entire pic as it doesn't need to be done every time.. just smaller pictures of the bits I'm working on.
|16th March 2003|
Got an absolute huge amount of editor frame work done this week.. The current level being edited is now rendering the template grid. No objects can be created yet but you can zoom in and out of the editor window. Also got in the object property code. When you click on object it will expand a property sheet which will allow you change how an object works aswell as any defaults it has (for example, a bomb would have a points property).
The editor still doesn't look like its doing much but all the object mouse hit detection is in aswell as the object rendering functions. There are still some issues to be sorted out and a few crashes to find .. I just love windows programming.
Here is a pic of the editor as it stands at the moment.. The grid is set to 8 x 8 at the moment although it should be 8 x 2 as every object in Jumpman-UC has a Y placement of 2 units. (like the original game)
|9th March 2003|
Got the Main Editor class creating the main window which included the menu and the object palette. The Previous/Next will be used to change which level is being edited in the current game.. Jumpman-UC uses the MDI window system so it's possible to edit multiple games at once. The way I setting things up is that there is a game class, which then contains many level classes.. Each level will then be made up out of many object classes. Each class is really a COM object so it contains methods and properties that the editor can use aswell as the Scripting Language that will be put into Jumpman-UC.
Here is a pic of the editor window. The Jumpman, Girder etc.. icons slide (via a scroll bar) if the window is too small to show them all.. Offcouse there are a lot more objects to add to the toolbar but for now, it just contains the basic building blocks of the game.. (pressing a button does nothing at the moment. ) The icon graphics at the moment are just quick hack attempts of getting something out. My good friend Stein will no doubt be able to make them look a little better.
I can create a new game which create a new level but at the moment it doesn't do much.
Not getting much time this week due to the Australian Formula 1 being on all weekend.
|2nd March 2003|
Where to Start ? Jumpman-UC is being developed under Visual C++ (non MFC) so it was easy creating the COM skeleton code. Created the Game and Level Class which at the moment don't do anything.. Everything is tracked by Vectors (similar to linked lists) so got them put in. Also put in the memory leak tracking which brings up a dialog when a memory leak is detected and where in the code it was allocated.. This piece of code we used in Visual Pinball and it was very good at finding memory leaks in the game.. Not much to show for the first week of development.. Just a decent start to the skeleton.