After ten weeks, I am ready to announce my work in progress. This is a very ambitious project utilising orx.
It is a remake of one of the lesser known action/adventure games from 1986 on the Commodore 64, N.E.X.U.S.
Your player must use elevators to get from floor to floor locating parts to underworld secrets which have to be send back to your HQ via computer terminal. If you are found out, you will be stopped. But you have friends on the inside who will assist you.
Current features:
* Walking / running / activating
* Working elevators
* Menuing System
* Map System with background / foreground objects.
* Map indicator System
* Rooms
I have a graphic artist, and one of the music tracks is done (an existing remix of the original). So my small team is growing.
Hoping eventually to have voice artists, beta testers & a game mapper lend their talents.
I'll be using this thread as a kind of 'blog' to publish progress.
Comments
Do you know under which license/terms you will release it?
Also, but it's only a personal preference, I like games with no voice acting, especially old school ones.
In terms on license, it'll most likely be a creative commons license but definitely not GPL (or anything from the FSF for political reasons).
September 03
Chose ORX as a development graphics library (good move) and started experimentation.
September 05
Ripped all Sprites from the original game as placeholders and laid them out in a PNG grid.
September 06
Started cutting up the background tiles.
September 07
Continue cutting up Background tiles. Put a player sprite down and make walk left/right animation. Adjustment walking distances based on the current frame.
September 12
Work on a method to create and display tiles from an array.
September 13
Display animated tile.
September 14
Fix problems with all similar tiles animating.
September 16
Fixed problem where only the first animation would play on a tile.
September 17
Built in run left and right animations.
September 18
Fix problems with animation graph and run animations not returning to idle.
September 19
Redraw level when player walks right or left to the next screen portion.
September 20
Detect when the player is over an elevator tile.
September 21
Detect what tile position and map position player is on. Created new clock to calculate when the player has stopped moving for more than a second.
September 22
Move up and down levels when pushing up or down over an elevator (no animations or waiting yet)
September 23
Position right or left when player stops
September 25
Created placeholder elevator animations and hookups. Created a timer call back for an elevator. Only works for one elevator.
September 27
Alpha'ed the elevator door anims.
September 28
Educating myself on vectors, and organising some of the source into separate headers and files.
September 30
Built in press elevator c++ vector and custom object required for multiple elevators. Created enter and exit elevator animations for the player and fixed some elevator issues. Multiple doors open and close on a timer. Player animated to enter door and wait.
October 01
Changed tile graphics to have alpha floors.
October 03
Created basic floor carpet tiles in 8 different shades.
Created floor colour map as an array.
October 04
Paint floors first then tiles.
Resolved layering issues.
October 05
Can now press multiple elevators without freaking out the game.
October 07
Created Map Panel so that user can locate him/herself in the building.
October 09
Created Elevator Panel so that the user can interact with the elevator and select floors.
October 11
Map Panel hide/reveal on press up/release, but not on elevators.
October 13
Player exit elevator animations.
October 15
Created elevator panel interface.
October 17
Player can now travel via elevator to different floors via the interface.
October 19
Brought in an old bitmap font I created from my Amiga days.
October 21
Coded text into the panel and update text on panel interface.
October 23
Created flashing map indicator dot which updates on player position throughout the map.
October 25
Create live arrow control graphics and neutral control graphics for panels.
October 27
Coded classes for panel text objects and arrow objects for constructing a custom panel.
October 29
Static elevator is removed in favour of dynamic panel system, using panel text, and control objects.
November 01
Converted the plugin project into a standalone .exe project.
November 05
Switched to an Custom Event for updating the running animations instead of a callback for smoother playback. (To do for the others).
November 07
Created the concept of Rooms. Built an array to support room data and index to the main map.
November 08
Created validation routines to check room data against map data to ensure no errors when building maps. Cuts down on the need for testing each room.
November 09
Build door animations, from the original placeholder graphics in the old game.
November 10
Linked animations in.
November 12
Player can now enter a room. Door opens, the corridor clears and the room is painted.
Player can now leave a room and continue in the corridor.
November 14
Door now closes and player is left outside the door.
November 15
Created more placeholder background tiles and changed to map to include the underground floor. Altered the map tiler routine to allow foreground overlay objects like poles, support columns, walls, trellises, etc. Cut up some foreground objects for display.
November 16
Started objectifying the main player into a character class to be used as both a player and an enemy. Requires moving a lot of existing main.cpp code into its own class.
I am so committed to finishing this project. I can't wait to get some real graphics in there too to get rid of the old look. Some test graphics are being prototyped at the moment so I am looking forward to seeing those.
You should probably post about the game when you're done on forums such as retro remakes. I'm sure a lot of people would be very happy, like me, to be able to play that game.
Massive effort to re-organise all player code into a re-useable class. Reconstruct all code to work around a player instance of that class. A whole stack of bugs discovered as a result, timing issues, behavioural sequence problems. All corrected.
November 29
Create new instances of a character (enemy agents) and have their positions properly update on screen in reference to actions by the player: ie, when the player moves and the screen is updated, the agents should update into position. TODO: Make the virtual X position (realtime offscreen position) function correctly.
So although there is not much different to see, the code base underneath is now more properly organised and re-usable.
December 01
Onscreen characters now have a virtual X position(independent of the on screen coordinates) that keeps tracks of the real position of each element and are shifted in proportion to the players position.
December 04
Enemies now position on their own levels only. They are hidden from the screen when the player is on a level that they are not.
December 06
Enemies now are hidden when the player enters a room.
December 07
Retooling the menu system to be more flexible and easier to work with.
December 08
Created the score panel. Created a score object class (similar to a textbox) to populate onto the score panel.
December 10
Finished the function menu system. All functions now map to methods ready to be populated.
December 12
Finished initial Player preview panel (to show actions available to the player) & Information Panel (which gives information to the player regard the room contents or notifies if an elevator is coming).
December 13
Blocking tile system created that will stop the player moving into illegal areas. This replaces the old IsAtEnd() or IsAtStart() as blocking can occur anywhere along a corridor or level.
TODO: Finish remaining character anims and movements.
I'm not exactly sure what that means. ^^ Is it something similar to what the camera would do?
Thanks for the log, it's interesting to see the every day progress. Can we hope for some video or demo for christmas?
The system is working pretty well in this regard. It dawned on me I probably over engineered the whole thing and could have done it differently. But it's doing the job fine.
A video. Actually yes, I should do this because screen shots are fine but don't show the movement or feel.
Fixed a bug in the blocking tiles where a player could often get stuck on one.
December 15
Working on Flying kick placeholder graphics. Separate some items from the configs into new config files. Items were getting to cluttered and hard to find. Blocking tiles now working inside the rooms.
December 17
Started Flying kick animation but I'm having trouble working it into the graph. I'm going to have to do an online animation test to see what is going wrong.
December 20
Fixed enemies not turning around on a blocking tile.
December 21
Ok folks, as promised, finally created a video to show the action. Merry Christmas and enjoy!
Looks like things are evolving pretty well. Thanks a lot for that "dedicated" video!
And merry xmas to you too!
December 27
Got flying kick animations working. Re-coded certain sections to accommodate new animations coming in. Flying kicks operate in both directions. The flying kick animation was a barrier and fixing this opens up being able to implement all the remaining movements without experiencing the same bugs again.
December 30
Started initial work on the rumours / puzzle system. Designing a flexible class to suit that manipulates text strings in order for the player to put the fragmented pieces back together again.
Progress has of course moved beyond this, so another update in a few days.
January 02
Rumours class continued. All rumours pack into a c++ vector for easy random access.
January 04
Rumours class continues. Puzzles can be now logically broken down into any number of pieces, unlike the original game which provided 2, 3 or 4 pieces for each rumour. This allows for crazy 8+ piece puzzles though may not be utilised. Shifting puzzle piece right routine complete.
January 07
Fidding with resolution settings on my fonts and GUI objects. Screwed things up and realised I was wasting time. Spent more time getting things back to where they were. Improved the character font sizing and scale, though doesn't look as nice as before. Needs more tweaking.
January 09
Displaying problems in the rumour puzzle system. Changed how rumour pieces are stored, how they are scrambled and how they are printed to the screen. ScoreTextPanelObject changed to accommodate usage in the rumour editing panel. Got the rumours displaying nicely in the panel and the user can now shift pieces left and right to try and de-code them.
Working on colour highlighing for a rumour line. Popped a tutorial for this in the wiki.
January 11
Hooked up rumour editing to keys. Can now select rumour lines and edit them to try and solve the puzzle. Panel lights up green when the puzzle is solved. Player can now enter a room and push up against an editing terminal to edit the rumours. Created a shifting panel to allow user to select which rumour to edit.
January 12
Font improved. Changed the score GUI control object to nominate the distance between the score part and the text part (to be a more flexible control). Shift Left/Right panel created for the Rumour system. "Select Rumour" panel created as well. All hooked up to the keyboard control. Rumour editing system is now complete and all working perfectly.
January 13
Met with my graphics designer and discussed a design strategy, and elements for inspiration. Also met with my in-game music composer and previewed a fragment. Sounding really great, and this is nicely on track.
Scrambling routine for the rumours is complete. All rumours are scrambled on startup, never the same each time a game is started.
A. Standing next to the Rumour Editing Terminal. Press up to use.
B. Choosing a rumour to edit.
C. Pieces of the puzzle have been shifted left and right, and the rumour is solved.
I'm looking forward the new graphic design too. I wonder what the new style will be.
Moved the test map around a little to have 8 doors side by side for testing. Built door indexes into the rumours system to tie a room to each rumour piece and assigned pieces to the rooms.
January 17
Fixed room lookups and some small bugs. Added furniture searching so that the player can now go and look for pieces to the rumours and start assembling them in a room with a terminal. Information panel shows the player if a piece has been located or not.
Milestone 2 reached!
January 19
Fixed some problems with uninitialised variables causing me grief outside of the development environment.
First character photo shoot was done today. A quick shoot and the pose is perfect. Needs just to have the background edited and the first one will be ready. Though this part won't be coded till much later.
January 24
Resumed work on the remaining character animations and movements like backflips, jumps, punches, sliding. Although I appear to have lost some of this work when I failed to backup the work directory before reimaging the PC. I may have a recent folder somewhere, although if lost, I can redo quickly enough.
Sorry nothing visual for this end of month. I am expecting some background graphics soon, so perhaps a new shot is not far away.
You might want to create a svn/hg/git repository online. Some sites, such as Assembla, offer private hosting for free.
February 02
Development stopped while I got the machine back to normal. All work backed up.
February 03
Received a few seconds of two of the in-game music pieces from my composer. Sounds great and a nice take on the original.
February 09
A long time has past and I have missed many days of development because of my machine. But I am back on the horse now. Started putting the animation cutups for the leap action in.
February 10
Problems with the leap animation working properly. Getting re-adjusted to my own code again.
February 11
Got the leap animation & action working. Started on the barrel roll action.
February 12
Big problems with this action. There are a lot of spewing events, even though it is set up exactly the same as the leap action. I know this problem was fixed in svn. It's time I upgraded perhaps.
February 13
Fiddling to avoid using svn. Everything I try just makes the problem different or worse. Downloaded an svn client. Downloaded svn code.
February 14
Having compiling problems with orx svn and extern libraries.
February 15
Got compiling problems sorted out. Project now builds, but the custom events no longer work at all
February 16
On the train from Canberra to Sydney for three and a half hours. Found the changelog and converted my custom event code as per new instructions and all is working again!
Well nothing visually interesting this time again. Sorry about that. I feel like I am caught in a rut. Perhaps this month, more exciting parts will be added. At this moment, it's all about fleshing things out.
Any improvements can only be a good thing!
On the train from Sydney to Canberra. Fixed the barrel roll. Started and finished crouching. Started and finished the backflip. Started and finished the run and slide action. Very productive train trip.
February 23
Working on fixing a bug where a player can leave a room or elevator and get stuck running into a wall. But if the player stops for a brief moment, he won't get stuck. Odd. Having trouble working it out.
That's it this month. Very scrappy. No HD graphics. Hopefully can tackle that issue in March.
March 01
Well, like a man with a camel, I finally got over my hump. Playing around with toon shading in blender today to see how the whole 3d to 2d effect would work. it's a good look. Also started recruiting for a character artist.
March 02
Working on the "stuck in the wall" bug. Still.
March 03
Stuck in the wall worked out. It was my coordinate system going out of sync. Sloppy code. Fixed sliding while running. Would only allow sliding while walking, but now you can do either.
March 04
Converted my character class to take a c++ vector and pack guards and enemies into the vector.
March 06
Got the enemies animated again from within the vector.
March 07
Fixed an issue where orx would not access the latest information from a class that encapsulates an orxObject. Turned out I was building a vector of objects, not of pointers. Thought I had it right. Once fixed, I added 20 dynamic characters into the game, all walking and running around. Built a sprite sheet to recruit a modeller.
March 08
Configured up the "Punched Out" animation and links. Hooked animation into the game. A little rough but working.
March 09
Player getting nicely knocked over. Fixed "Punched Out" quirks. Player just needs to lose control in the state. And needs to get back up again.
March 14
Working on getting the door to close behind you if you decide not to enter it.
March 15
Doors working fine when you decide not to enter. Created a nicer carpet texture to replace the old horrid one. Started working on replacing the elevator tile using Blender. Set up the blend file and started mucking around.
March 16
Finished making a modern version of the elevator tile, and with 10 frames rather than 5. Edited it into the ini file and was totally wrapped to see it in the game. Elevator opening and closing is silky smooth. Edited up a video with some old music sketches and posted to Vimeo.
Old and new elevators. This is a test and will be improved, but makes a nice start to replacing all the tile assets with modern equivalents.