Working title: The Clarion Project

edited November 2010 in Projects - Tools
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.


  • edited November 2010
    This is great, and very exciting, to see such an ambitious project made with orx!

    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. ;)
  • edited November 2010
    Yeah the voices aren't a high priority. May or may not happen.

    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). :)
  • edited November 2010
    Sounds neat. I'm a big fan of adventure games.
  • edited November 2010
    September Diary

    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.

  • edited November 2010
    October Diary

    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.

  • edited November 2010
    November Diary

    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.

  • edited November 2010
    November 13
    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.

  • edited November 2010
    thanks for sharing your development experience, Hope your project would be nice, go along with orx.
  • edited November 2010
    Most certainly my pleasure! It helps me keep track my "blogging" the process here.

    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.
  • edited November 2010
    I'm really looking forward this graphical update.
    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.
  • edited November 2010
    November 17 - 28
    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. clarion_nexus_november29.png
  • edited December 2010
    December Diary

    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.

  • edited December 2010
    Coming along quite nicely!
  • edited December 2010
    sausage wrote:
    December Diary
    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.

    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? :D
  • edited December 2010
    Sorry, my scrawling isn't always the clearest. Each character can walk off the screen and continue to wander around. I suppose a little like the camera but each character needs his own virtual X position.

    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.
  • edited December 2010
    December 14
    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!

  • edited December 2010
    Wow, love it! The pixel perfect moves are awesome. :woohoo:

    Looks like things are evolving pretty well. Thanks a lot for that "dedicated" video! B)

    And merry xmas to you too!
  • edited January 2011
    Christmas holidays were a whitewash of jobs around the house and exhaustion at night. I did manage a little work though.

    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.
  • edited January 2011
    January 2011 Diary

    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.
  • edited January 2011
    B. Choosing a rumour to edit.
  • edited January 2011
    C. Pieces of the puzzle have been shifted left and right, and the rumour is solved.
  • edited January 2011
    It's coming along nicely! Congrats!

    I'm looking forward the new graphic design too. I wonder what the new style will be. :D
  • edited January 2011
    January 15
    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.
  • edited January 2011
    sausage wrote:
    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.

    You might want to create a svn/hg/git repository online. Some sites, such as Assembla, offer private hosting for free.
  • edited February 2011
    February Diary

    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.
  • edited February 2011
    Sorry about the difficulty with events. Actually that part will probably change again very soon as I'm going to add separate channel support in the anim module along with skeletal (bone) animation. As I'm waiting for an update of the Android port, this might even occur before the 1.3 release candidate.
  • edited February 2011
    It's really all fine... I knew my fix was put in place but I didn't have the confidence at the time to muck about with SVN. Sometimes it's good to be a little forced into new things. Now that I can happily get new versions down, it's not much of a problem. Developing the other player actions has seen a lot less problems for me since.

    Any improvements can only be a good thing!
  • edited February 2011
    I'm glad to see it's working for you and that getting the SVN versions is not too much of a hassle. Looking forward new screenshots, by the way. ;)
  • edited March 2011
    February 18
    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.

  • edited March 2011
    March 2011 Diary

    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.
Sign In or Register to comment.