Christmas Carol vs. The Ghost of Christmas Presents

A Brief History of Christmas Carol

Christmas Carol vs. The Ghost of Christmas Presents started life as a self-imposed technical challenge to port a popular arcade maze game from the 1980s to the Intellivision®. After working on that game on and off (mostly off) for a couple of years, I had enough of the basic framework to display the background maze and move the iconic yellow avatar around the screen using the Intellivision® hand-controller.

It was already mid-December, 2010 by the time I had something to show. I then thought it would be cool if I just took the core game as it was, change the graphics a bit to give it a "Christmassy" look, and offer it to the Intellivision® programmer community as a friendly Christmas present.

Inspired by the Christmas Spirit, I conceived a unique and whimsical story for the game to fit its theme; and with the gracious technical assistance of Joe Zbiciak, of Left Turn Only Productions, a full-fledge, single-screen arcade game was born in just two weeks. The result was a conceptually and mechanically different game, far from its original arcade inspiration.

The short game was well received, and everybody who had a chance to play it, loved it. Joe then suggested I should polish the game a little in order to get it published as a cartridge—box, overlays, manual, and all!

Fast forward 20 months—through much toil and frustration, new level designs, more spit-and-polish that you could shake a stick at, and no less than three re-writes of the game engine—the final version of Christmas Carol vs. The Ghost of Christmas Presents is ready!

Original "Demo" Version

The Demo

The first release of the Christmas Carol game is now considered a "demo" in comparison to the full production that came later. Its one and only cave became Stage #1 of the latter version, now titled Haunted Hollow.

The demo is simple, and lacks much of the polish and flair of the full game, but it is still addictive and a lot of fun!

Demo Features:

  • Original retro-style game play
  • Frantic arcade action
  • Increasing difficulty, saturating after 20 levels
  • Practically unlimited scoring potential
  • Extra life every 225 points
  • "Perfect Level" bonus when picking up every item on a level, without dying
  • Same enemy AI and game mechanics as in the full version

And most important of all...

  • Same fun and addictive action as the full version!
Carol walking animation frames

Miscellaneous Design Images & Documents

What follows is a loose collection of various design documents, game algorithms, and sample images and test videos of various in-game elements. It is meant to give some insight into the development processes of the Christmas Carol game.

Design Documents

move_elf.c Algorithm describing the Elf movement routine.
move_enemy.c Algorithm describing the enemy movement AI.
zap_elf.c Algorithm describing the collision detection of Bad Toy and the Elf.
add_score.c Algorithm describing the routine to add points to the Player's score.
check_dot.c Algorithm describing the routine for candy and snowflake collisions.
circle-bresenham.c Variation of Bresanham's Line Algorithm to draw circles, devised by Alosi Zingl, Vienna, Austria.
draw_circle.asm Adaptation of Alosi Zingl's circle-drawing algorithm to CP-1610 Assembly Language. This routine was used to generate a screen "fade-out" effect by drawing concentric inward circles.
scene_title.txt ASCII source file used to generate Christmas Carol's title screen. It contains color and graphics information.
xmas_carol-theme.mid "The Bells Of Christmas Carol"—An arrangement of "Carol Of The Bells" in three voices, made specifically for the Christmas Carol game.
xmas_carol-theme.wav "The Bells Of Christmas Carol"—A "wave file" version of the theme song, extracted from the title screen of the game.

Test Screenshots

Screenshot thumbnail Working title screen during development.
Screenshot thumbnail Screen test of "Perfect Level" bonus message.
Screenshot thumbnail Screen test of "Game-Over" message.
Screenshot thumbnail Screen test of basic sprite animations.
Screenshot thumbnail Screen test of the presents scene.
Screenshot thumbnail Screen test of "fake" snowman scene.
Screenshot thumbnail Animation screen test of Elf carrying a box.
Screenshot thumbnail Screen test of Elf freezing (death) animation.
Screenshot thumbnail Screen test of Bad Toy thinking of Carol.

Screen Test Videos

Screenshot thumbnail Screen test of Elf "sneaky" walking, pausing on every step.
Screenshot thumbnail Testing the Practice Menu smooth scrolling routine with sound effects.
Screenshot thumbnail Screen fading test in two passes, with "halo" effect.
Screenshot thumbnail Screen fading test in two passes, slow.
Screenshot thumbnail Screen fading test in two passes, fast.
Screenshot thumbnail Screen test of Bad Toy animation and AI.
Screenshot thumbnail Screen test of Bad Toy laser blast and targeting AI.
Screenshot thumbnail Screen test of Snowball collision "splattering" animation.
Screenshot thumbnail Screen test of the "trapped ghost" melting animation.
Screenshot thumbnail Screen test of pyrotechnic explosion and spark showers.

Game Sound Effects

Game-Play Sound FX

badtoy-laser.wav Laser blast sound effect when Bad Toy shoots at Carol.
carol-walk.wav Carol's walking sound effect.
carol-death-snap.wav Sound effect when Carol is frozen and breaks up.
carol-death-tinkle.wav "Tinkling" sound effect when frozen Carol collapses to the ground.
carol-eat-candy.wav Sound effect when Carol eats a piece of candy.
carol-eat-snowflake.wav Sound effect when Carol eats a Magical Snowflake.
ghost-steal.wav Raspberry sound effect when the Ghost steals Carol's presents.
pickup-present.wav Sound effect when Carol picks up a present.
snowman-howl.wav Snowman's attack howl sound effect.
snowman-walk.wav Snowman's walk "thumping" sound effect.
snowman-kill.wav Sound effect when Carol is frozen by the Snowman.

Other Sound FX

jingle-level-end.wav Jingle that plays at the end of a level.
jingle-practice-done.wav Jingle that plays at the end of a level during Practice Mode.
jingle-boss-taunt.wav Jingle that plays at the end of the introduction to the "Boss Level".
jingle-intro-start.wav Jingle that plays at the start of an introduction sequence.
jingle-intro-end.wav Jingle that plays at the end of an introduction sequence.
jingle-intro-jack.wav Jack-in-the-box music.
menu-option.wav "Chirp" sound effect when a Practice Menu option is highlighted.
menu-scroll.wav Sound effect when scrolling the Practice Menu screens.
menu-select.wav Sound effect to mark a Practice Menu selection.
whoosh.wav "Whooshing" sound effect.
snowball-hit.wav Snowball hit sound effect.