Improvements in this Release:

  • Scene visibility data for obfuscated regions has been optimized into a tree data structure, for faster processing.

A new recursive handler has been written to traverse this data, with significant speed gains.

  • Reference data has been indexed for faster retrieval, and also stored in memory as global variables, to eliminate wait times due to disk access.
  • Draw distance has increased from 6 steps in front of the player, to 9.

Colour textures can scale to accommodate drawing in these distant regions. 

Dithered B&W textures cannot scale, however. These will be drawn up to 4 steps away, then Patterns will be drawn in place of textures for further distances, as it is not worth the effort creating new art assets for such little screen real estate.

  • Two texture sets are now included, in 8-Bit colour, and dithered Black & White: Brick and Stone Walls.
  • There are three stacks (apps) included in this release: the FPS Demo itself, a top-down “rogue-like” Map, and a Message history window. 

These stacks cooperatively send messages between each other to run commands and update status.

  • Improved development and debugging tools.
  • Stability improvements.

Why Make Such a Thing?

I like the design and feel of the old Classic Macintosh GUI (resolution of 512x342, Black & White). It’s clean, simple, and minimal, but can achieve much with the limited controls it offers.

Some amazing games were developed for the platform in its heyday, and many were very innovative, making the most of the unique features the Macintosh offered over the competition.

However, many of those games were made before the FPS genre (and video gaming as a whole) rapidly evolved through the 1990s.

It would be nice to have an FPS game for System 6 era machines with a few more modern quality of life features, and standardized conventions, while also adhering to period Macintosh design rules, and aesthetics.

Being a vintage Mac enthusiast, I eventually got around to giving HyperCard a go, working through tutorials, and seeing what all the fuss was about. About the same time, I was playing through Doom RPG (developed in the mid 2000s for pre ”smart” mobile phones), and thought that it could just about be recreated with the tools that HC offered.

This project only receives a fraction of my time these days. Life happens, but I continue to learn new skills along the way, and I’m proud to release something of quality to show for the time invested.

It’s also been a hell of a lot of fun creating it!

This release has focussed primarily on improving performance, with only a few new features entering the mix.

The long term goal is to have something approximating Doom RPG, including its feature set of: 

  • different classes of monsters (with simple path-finding),
  • items / ammo / health system,
  • weapons / damage + melee,
  • interactable terminals and NPCs with text dialog,
  • locked doors + keys,
  • environmental hazards (fires to be put out, debris to be cleared),
  • a simple shop / trade & inventory system,
  • different floor types (e.g. lava),
  • scripted events (moving NPCs, destructible walls & map layout changes),
  • palette based HUD elements,
  • transparent impassable walls (windows & bars),
  • hidden doors, secret areas & easter eggs!

Maybe one day, even multiplayer could be implemented over AppleTalk. The technology exists!

Because this is developed in HyperCard, with scripts written in the almost 40 year old interpretive language HyperTalk, performance is not great. But one advantage is that HyperTalk syntax is so close to natural language, it’s easy for non-programmers to read through, learn, and make their own changes. Please do!

That fact that I was drawn to create this project in HC says something about its enduring legacy.

Can This Run on Original Hardware?

Technically Yes, practically No.

This project has been developed with Basilisk II & MinivMac, and performs best within these emulators....

Read more »