Ultimate Amiga

Amiga Software Help / Discussion => Software Development => Development Diaries => Topic started by: Hungry Horace on November 29, 2009, 09:27:59 PM

Title: Project Diary: Horace Goes Skiing
Post by: Hungry Horace on November 29, 2009, 09:27:59 PM
Project Name: Horace Goes Skiing

Type: Amiga Remake

Language: AMOS Professional

Hungry Horace - Concept, Programming, Graphics, Sound.
eLowar - Additional programming assistance.
Unallocated - Additional Graphics
Unallocated - Music

Reference Material (video):

Reference Material (Online emulator): http://myspeccy.org/en/games/horace-goes-skiing


I have, somewhat obviously, always loved the ZX Spectrum "Horace" games since a very young age. However, I am also very keen on multiplayer Amiga games, and have been for a very long time.

As such, i thought it would be entertaining to take William Tang's original idea and update it for the Amiga. Not a complete re-imagining, just a few tweeks and improvements, as if the game had been ported to the Amiga nearer the time of the original.

The original concept for this was devised way back around 1998, when i sketched up some AGA Amiga graphics for this and the other Horace games. At the time I was coding a small amount on the PSION 3a/c Series, in a language not dissimilar to AMOS, but i was not working on this any further than concept and some graphical improvements. I had planned to have the game produced in Blitz Basic, to utilise at least a 64 colour AGA palette and a 640x512 display (i thought that was likely to become an Amiga standard by then) - However, i'd need a coder to get it beyond the "psuedo code" phase. This never happened.

Then, only a few years ago, around 2006, I began working on my own Horace game "Horace Boxing", in AMOS, having become familiar with the language through some mucking about with other bits and pieces. This game didn't (doesn't) work as i wanted it to, but i still learnt a great deal. Eventually, having developed some nice graphics, and a style for such games, i decided to return to my old concept of remaking the old Horace games... this time limiting the requirements to something a bit more practical.


Screen Mode: 320x256
Colours: 32
Players: 1-4
Single Player Cut-scenes
Improved Graphics / Sound effects
To run on vanilla A1200

Title: Re: Project: Horace Goes Skiing
Post by: Hungry Horace on November 30, 2009, 12:27:57 AM

Phase One:

The initial stages I went through were simply to get a suitable usable graphics set together.

Firstly, i ripped all of the (limited) graphics from the original ZX Spectrum version. these were pretty easy to enhance, with the same style being used that i had used for Horace Boxing. This meant I could have some kind of consistancy between the games.

I have a standard method for this kind of thing when it comes to creating sprite/bob banks for AMOS. By keeping all of my graphics on tables, laid out in .IFF pictures, I then set about coding a small program in AMOS which effectively "grabs" the sprites from the table layout. This gives me extra flexibility, because it means that any changes I make in DPaint to the original IFF files during the development will instantly be transferring into the game the next time I run it.

With this in place I decided to begin coding on what i considered the more difficult part of the game, but also the more enjoyable part to play; the Skiing.

Scrolling is not something I am fond of in coding, and AMOS has a terrible problem with it. However, I did eventually achieve something passable, although not ideal. By not always refreshing the screen, i was able to make something that achieved the kind of speed I was after.

I also integrated a basic 'map' system to bring objects onto the slalom, this would allow for different objects to have different "rules" later on.

The main gameplay / character control was crafted by carefully studying the original game. It was quite simple to see however, that when Horace was facing 'south' he would move to the bottom of the screen, without the scrolling changing. south-east and south-west would simply travel directly left/right, without changing Y-coordinate, and finally, to move full East or West would cause Horace to traverse "back" up the screen, giving the deceptive impression that he was moving down the hill at a slower rate.

The character control was implemented in such a way that shared variables meant the same routines could be used across any players, providing they were 'active'. To give myself something to trial, I also set about creating athe first object "rule" for interaction, just to have it spot if one of my players had missed a gate.

My final adjustment which was suddenly required, was a necessity to prioritise my sprite (well, BOB actually) placement, so that anything further down the screen (with a higher 'Y' coordinate value) would be placed on-top of anything with a lower 'Y' value. This would allow the perspective to suit the various objects of scrolling down-screen.

Contented with the status at this point, my first preview video was created, and so ended my session on this game.

Reference Material (picture): A comparison between my first new sprites and the original graphics


Reference Material (picture): Test run of the map generation and the multiplayer character control


Reference Material (video): Phase 2 demonstration video

Title: Re: Project Diary: Horace Goes Skiing
Post by: Hungry Horace on November 30, 2009, 01:21:56 PM
Phase Two:

At this point it was necessary to develop the structure of the skiing section, so i set about putting into place the major requirements of the gameplay.

This largely involved interaction between map-objects and characters, such as the 'bumps' which change a characters direction, and trees to damage the player's skis.

One element that was added, was the 'flattening' of the gate-posts, which was a simple case of checking for the player being "outside" the requried gate, and some collision detection with the gate item. This was actually inspired by the same thing occuring in the C64 version of HGS, which is one of the few nice addional touches in that version. It creates a nice visual element, and is the sort of enhancement I think is expected in a version such as this.

Two new entirely new elements were added into the gameplay. One was the 'rock' item, which instantly breaks your skis, added purely to add some more variety into the game. The other, was done as a consideration of the multiplayer aspect. This is that there is no long a 'stop' in game-play when your skiis are damaged, but not broken. Instead of the original "3 stikes and you're out" method, a health-bar was added for the skis. This allows gameplay to continue smoothly when only one player (of several) has made a mistake.

It was that at this stage the below video was created, demonstrating the object/character interaction. The map data shown is a fixed data-table, which I intend to create an editor for at a later stage.

I then set about adding the display-bar at the top of the screen, to show the health variable I had previously added, and which would later be used to display the cash of each player, which effectively represents a lives-counter. The style of this was conciously made to be similar to the display previously used on Horace Boxing.

Having achieved a point I was happy with on the Skiing section, I also began work on the Road-Crossing section, although only up to the stage of screen opening, setting up and filling with placer graphics. With this in place I was able to ensure the "higher level" game loop was able to go between the two sections of the game smoothly.

Once again, I took a break from development.

Reference Material: Phase 2 Development - mid-point


Reference Material: Visual display