All posts by admin

Adventures in AI scripting

I added two AI bots to my game prototype, and the process took a long time and a lot of work.  I ended up learning how to use echo statements to track the loading of the many files that I had changed and to determine where a particular file was erroring out.  This was useful debugging experience.

The way that I incorporated the AI bots initially resulted in my player character being chased by mirror versions of herself, which was eerie and reminiscent of similar Alucard versus Alucard doppleganger battles in Castlevania: Symphony of the Night.  But I soon switched the AIGuard model out so that I was fighting two demonic space orcs.

I also changed the projectile scripts on my first-person spells so that the projectiles would do damage, as well as creating various other effects such as invisibility and healing.

Then, while working on loading the animations for the ai bots, my mission stopped loading and started crashing in the middle of phase 2 loading.  I can’t figure out why, so I’m building a debug version of the app with the hope that I can find the specific line where the mission load is crashing.

first-person magical items and projectiles

I’ve been working on several features of Arcana Manor which are starting to add to the magic system.  The first is that I re-sized all of my tarot objects (the suits like cups and swords) and placed mount nodes on them so that they can be equipped as weapons in first-person view.   I worked for a couple of days to get weapon cycling operational so that players can switch between these weapons with a button press.  Then, I modified the melee scripts so that swinging the weapons would cast spells that fire projectiles in first-person mode, targeting with the crosshairs rather than selecting with selectrons.  Next, I made a set of geometrical projectiles fired by the various tarot suits, starting with a sphere textured in a wave image that emits water droplets through particle emitters.  Equipping the cup allows the player to fling this watery sphere, and each of the other tarot suits can hurl similar projectiles that correlate with their traditional ancient elemental attributions as well as the appropriate Platonic solids defined that the Greek philosopher Empedocles associated with the four elements.  The wand throws a flaming pyramid, the sword shoots an airy octahedron, and the pentacle fires a purple sphere (technically, this should be an earthy cube, but I like the glowing purple plasma texture better).  In fact, I like the plasma filter in Gimp 2.0 so much that I made seven plasma textures for each of the seven colors of the visible spectrum and then applied these textures to seven geometrical primitives that can also be projectiles (including the delightfully obscure rhombicosahedron).  When I export these, I think they can be 3d jewels as well as projectiles, so they may end up playing into a 3d magic interface of the kind that I described in

I need to implement a power-up system that strengthens spells according to what objects and cards have been collected.

In terms of level design, I also want to make a really twisted, surreal, evil sorcerous tower for the player to explore, inspired in part by Castlevania 64 and an obscure Elder Scrolls game called Battlespire, in which the developers made the ballsy move of including platforming elements in a first-person game with magic.  (I can’t turn these italics off, but they don’t mean anything.)  And also more directly inspired by the Alchemist’s Tower in The Holy Mountain, as well as the Dark Tower (Browning and King).  Because I like upward movement and vertiginous heights and the symbolism of ascent.

to do list

To do: put a mount node on each of the four tarot objects so that they can be wielded as weapons

Set up a different projectile effect for each object when it is swung/fired as a magical melee weapon

Perhaps also a different particle effect that is activated for each item

A room with four walls, each with one of the tarot suits and a Latin word (scire, audere, velle, tacere)

Maybe also murals representing a man/woman doing each

Bridges and hallways lead out from this room to four trials/levels of knowledge, courage, will, and silence

A Gothic platformer, but trying to strive for Psychonauts or Ico more than American McGee’s Alice

uv unwrapping complications

Well, I finished the polygon modeling portions of the ogre model and embarked on the uv mapping portions.  Unfortunately, I’ve discovered that Softimage Mod Tool 7.5 has some quirks that make this process a little more difficult.  First, the export as .obj file option has been removed from Mod Tool 7.5, which means that I can no longer export scenes into a form that could be opened by Roadkill, a uv unwrapping application.  Mod Tool 6.0, which still had the export as .obj option, can’t open scenes from Mod Tool 7.5.  The pelt unwrapping method, which is a smoother and cleaner way of uv unwrapping organic, curvy shapes, is not present in Mod Tool and maybe not in Softimage at all.  This is unfortunate, since Ward’s book relies heavily on pelt mapping.  I probably just need to learn to do basic cylindrical and cubic sub-projections using Mod Tool’s texture editor.

Object selection problems and selecting objects in FPS mode

Here is today’s update on Arcana Manor, in the form of a post I made to the ArcaneFX section of the Garagegames forum.  The only addendum I have is that after this post I managed to fix most of the object selection problems, thanks to the help of the user named Gibby.  They were in the playgui.gui file.  Next up is the more challenging problem of selecting objects in first-person shooter mode.

In the process of making many script and code changes to implement several different features, I seem to have interfered with the game’s ability to select objects with the mouse rollover raycast.  I can select the orc AI player, but only from certain angles (specifically from a slight angle while he is running toward the player, and sometimes from behind if the player is standing close to him).  I can’t select the orc corpse at all, even though “corpsehiddenfromraycast” is set to “0″ and “$TypeMasks::CorpseObjectType”  is enabled in “AFX::targetSelectionMask.”  If I run the AFXDemo from a fresh install of AFX 1.7.1, it is much easier to select the orc and the orc corpse from almost any angle and distance, which suggests to me that I’ve done something to mess up the rolloverraycast function or another piece of code or script related to object selection.

I’ve used WinDiff to check afxtsctrl.cp against the same file in the fresh install of AFXDemo, but restoring this file to its original state doesn’t solve the problem.  Could anybody suggest where else I might look for changes to try to fix this problem?  I also checked in GameConnection.cpp because I think some of the object selection code is in that file, but I’m wondering where else the problem might be coming from.

To provide a little context, I am working on a game in which the player can cast spells from first-person mode, like in Oblivion.  So, one of the ultimate goals here is to be able to select objects in first-person shooter mode by toggling the cursor or using the crosshairs.   Gibby’s AFXFps mod and tutorial has been extremely helpful with this, though his solution is to cast spells from a 3rd person “psionics” mode.  For some reason, I can select objects in Gibby’s 3rd-person mode but not in his first-person mode, even when I toggle the cursor on.  I’ve studied the commands.cs script that Gibby uses to switch modes (which involve showing the reticle and the shapenamehud in first-person mode), but I’m not sure which part of this script would be causing the conflict between first-person mode and object selection.

So, a second question once I fix the raycast problem would be: how can I select objects while staying in first-person mode?

Moving Platforms

It’s been a few days since I’ve updated progress on Arcana Manor because I’ve been intently involved in implementing an important feature: moving platforms.  These are moving planes or scaled cubes that players can stand on top of, moving along with the platforms as on an elevator.  These moving platforms are important, by definition, to a game in which platforming a key part of gameplay.

Torque Game Engine Advanced doesn’t have out-of-the box support for moving platforms, which means that they have to be added as C++ code, preferably by the addition of one of the downloadable resources on Garagegames.com.  To integrate such a resource with a codebase that I’ve already heavily modified, I had to use WinDiff, a program for comparing files and isolating their differences.  Once I isolated these conflicting code fragments, I had to choose how to merge them by incorporating relevant new lines of code from the resource and discarding irrelevant lines of code.  This process was complicated by the porting of the resource from TGE 1.5.2 to TGEA 1.7.1, especially since the resource itself was actually for TGEA 1.8.1 but had been compiled from multiple TGE versions.  In practical terms, these multiple versions and resources meant that I had to spend several days reading through C++ source code, puzzling out its logic and structure until I could figure out which lines of code were needed and which were not.  I re-compiled the engine dozens of time, de-bugging code changes to preserve the resource’s functionality while updating it and slotting it in with ArcaneFX, melee, and other code changes I’ve already implemented.

I now have moving platforms.  The key is making the player object a child of the platform, which is a pathshape moving along the nodes of a path.

Unfortunately, I have to use a rectangular dts shape that came packaged with an early version of the resource, because the player falls through any dts that I make myself in Softimage.  I think this has to do with the way that collision meshes are set up in the process of exporting the model from Softimage to dts format, but after spending a day on collision meshes I haven’t been able to isolate the problem.

I’m now trying to trigger the moving platforms with a spell so that I can incorporate telekinesis into my magic system.  Since the magic system is the focus of the game and the surreal mansion is the secondary focus, it would be best if these two aspects of gameplay could be tied together.  I have a telekinesis spell that can move an interior instance with the settransform() function, but the interior leaps all at once rather than animating smoothly and carrying the player with it.  If I can trigger a pathshape with a spell, the player could raise and lower bridges with the alterative school of magic, corresponding to the wands.

Quests on WorldCat and a kind review

I was happy to discover that WorldCat, a database of online library card catalogs, lists 64 libraries that currently list Quests as part of their collections. The list primarily includes university libraries, with a few community and public libraries for good measure.

I’m excited to see that the book is available to an audience of students in many emerging game design programs.

I was even more excited to find this review, from a user named Veronika on weread.com. She writes,
“A must-have for every game designer or anyone who wants to understand questing in a more sophisticated way. This book has it all – mythology, Joseph Campbell, Carl Gustav Jung, some tutorials and a lot of wisdom :) Another shining piece in my bookshelf.”

That is a really kind review. Reaching an individual reader like that might be the best part of writing a book.

First-person spells and current-gen character development

Over the last few days, I’ve been implementing some first-person spells in Arcana Manor, i.e. spells that look good from a first-person perspective, which is not really the format for which ArcaneFX is designed.  Gareth Fouche (a Garagegames community member and Torque designer) made a good spell-casting resource that uses projectiles to cast spells–an approach that resembles Oblivion (or Undying) instead of a third-person MMO.  Fouche’s approach is the one I want, but it will take some tweaking to get this going with ArcaneFX.

I also have been working through an excellent book by Anthony S. Ward called Game Character Development.  The book gives a very detailed overview of the processes involved in current-gen character development (i.e. Xbox 360 and PS3), which entails several more steps than the previous-gen workfolow.

In previous-gen character development, the game artist would use a modeling application like 3dsmax or Maya to build the character out of polygons, then UV map the character and texture it in Photoshop.

The main difference between the previous-gen and current-gen approach is the current-gen use of sculpting programs like Mudbox or Z-Brush to paint details onto a model which would have been too time-consuming and memory-intensive to be accomodated on previous-gen hardware.  The artist then converts these details into a normal map, which is an RGB image whose pixel colors indicate the directions in which the model’s normals should be transformed.  (Previous-gen character art tended to include bump maps, which were grayscale images that could indicate only elevation, rather than normal maps.  Current-gen development includes both bump maps and normal maps, as well as other shader-based modifiers such as parallax maps and ambient occlusion maps.)

All of which suggests one thing: I need to recruit a modeler so that I can focus on scripting and programing the game’s magic system rather than building its models. :)

Actually, it’s more a matter of emphasis.  It’s still good to work on 3d models (which could represent characters summoned by the player or custom aspects of the player, such as hands for first-person casting), but the production of art assets is so time-consuming that it would be best to recruit someone whose main talent and experience is in models.

That said, I’ve been working on an ogre tutorial in Ward’s book, and here are a few screenshots.

soundtrack clip and working melee

Today, I implemented two new Arcana Manor features that I’ve been wanting and working toward for a while.

I now have a rudimentary soundtrack in the form of a looping 30-second clip from Danse Macabre by Camille Saint-Saens.  I also managed to fix a melee system that has been broken for a while because of the conflict between ArcaneFX, a melee resource, and shifts between first-person and third-person camera.  This means that the player can now alternate between sigil-drawing, various spell-casting interfaces, and running/jumping.  The player can do some of these things simultaneously, so there is a certain synergy evolving between the various mechanics (though integrating and balancing them is going to be a challenge, which is why the main focus needs to be the magic system).

I also have basic Xbox 360 controller support, which is smoother and faster than the keyboard for movement and combat.  Juggling the various magical interfaces on a controller will be another challenge, but (as I mentioned earlier), this will force me to organize and refine the control scheme in positive ways.

next Arcana Manor goals

Next Arcana Manor goals for features:

Set up a control scheme using the 360 controller

This will keep the magic system from becoming too unruly (a collection of chaotic key-presses) and more focused around a set of core mechanics

Fix melee system so that the sword can swing more than one time

Implement “platforms that move” for TGEA 1.7.1 using Windiff

Correlate spell-casting with platform movements via settransform function or applyimpulse

Finish modeling demon

Begin to script more spells

Script power-up mechanic for tarot items

Work on first-person spell-casting (such as casting animations for hands, effects that don’t require selectrons to target but work as projectiles as in Oblivion, effects that don’t depend on a zodiac

or make the zodiac vertical

or displace it in front of the player

Put more enemies into the game, make them customizable

Put music in background (e.g. Danse Macabre)

new Arcana Manor feature: mounted particle emitter

Finally, after six months, succeeded in attaching a particle emitter to the cursor.

This is the beginning of a gestural magic system, since the player can now trace sigils in the air because the cursor leaves behind a trail of glowing particles (in this case, fire) which look like a will o’ the wisp.

Here’s a video of the feature out of context

And here’s a longer video of the complete build, with the particle emitter feature in context

Interested readers might want to watch these videos in conjunction with this previous video of a recent build, which lacks the sigil drawing feature but also showcases the game’s spellcasting interfaces as they’re evolving.

A few theoretical thoughts about magic systems, allegory, programming

I don’t think about theory much these days, focusing more on creative projects. For the last couple of days I’ve been doing some preparation for my classical myth and media class, which sparked a few theoretical thoughts.  Also, I’m continuing to think about magic systems, inspired in part by a podcast ( on which Roger Travis graciously invited me to be a guest) about this subject and its relation to Arcana Manor. Magic systems have become the focus of my creative design work and my research, and I tend to think about them through the lens of interactive or procedural allegory, a system of expressive rules.

This will make more sense to readers (hopefully) when the podcast is posted.

A magic system is a set of core mechanics (spell-casting is one of them, maybe the primary one) for  simulating supernatural powers and abilities rigorously and symbolically.

Quests, because of their relationship to narrative, tend to be scripted within an engine through quest flags and state changes.

Magic systems can be partially scripted within an engine (depending on the engine’s flexibility), but truly innovative mechanics have to be programmed.  New mechanics tend to require, at the very least, modifications to an engine’s source code and may require the development of new engines (or at least sub-systems within an engine).

What matters to me is allegory as system, as organized matrix of rules for generating symbolic meanings. This is distinct from a linear procession of symbols (i.e. narrative) or from free-floating pool of symbols merging into each other (collective unconscious, dream). In linear mediums, allegory manifests itself as narrative (although I wonder if poetry, in its capturing of de-contextualized images, may be allegorical without being solely or even primarily narrative). Rimbaud’s Vowels or Baudelaire’s Correspondences are dense symbols without narratives. Dante’s Divine Comedy does chronicle the adventures of one pilgrim (Dante) through Hell, Purgatory, and Heaven, but the descriptive focus of the poem is the spatial organization of these realms and their inhabitants. The afterlife is a cosmological system for representing the punishment of sin and the rewarding of virtue.

A mythology (whether real as with the Ancient Greeks or invented as in the Cthulhu Mythos) is a system (a pantheon, a set of places, artifacts, recurrent events, themes). Many narratives can occur within a mythos, but many systems can also be generated by a mythology. When I was thinking about quests, I was trying to connect narrative and system, to explore their generative interplay. As I think about magic systems, I am more and more concerned with dynamic, procedural systems, which can be expressive in interactive, procedural, re-configurable ways.

Ritual is a key middle term.  Ritual is enacted myth, enacted symbolism.

Eric Zimmerman says that there is magic in games but argues that this magic is the thrill of creativity and problem-solving, which are distinct in his mind from a mage’s 8th-level fireball spell or the mystical experiences of organized religion.

I don’t see these three aspects of magic as inevitably distinct.  There are all sorts of connections to be woven between them.

That’s why I have a Clive Barker quotation above my desk, which in condensed form says “magic is the first and last of the world’s religions: a religion whose profoundest ritual is play.”  The quotation is longer but would require a detailed gloss to do it justice, because the idea is too important for me to treat lightly.  But the main point is that in Barker’s mind the three aspects of magic in games are intertwined expressions of one another.  (And he puts his money where his mouth is, since this quotation is from the introduction to his Imajica collectible card game, and he has also discussed the metaphysical implications of the magic system in Undying.  Incidentally, the magic system in Undying may be my second favorite magic system, just beneath Eternal Darkness.)

(A sidenote on Jung: Jung coopts the concept of the symbol for psychoanalytic purposes, but the term comes to prominence in Western thought in Romanticism (English, German, French), which precedes Jung chronologically. (e.g. Coleridge, Baudelaire, Rimbaud, Nerval).  In the game Eternal Darkness, the narrator invokes Jung, Freud, and Skinner as possible correspondences to the three Ancients, but then dismisses these psychoanalysts as inadequate to the horror and majesty of the beings represented by the runes. This is a nice way of suggesting that, while Jung is a key figure in understanding symbols, their content and operation eludes his unitarian and trans-historical attempts to explain all symbols as products of a psychoanalytic entity (the collective unconscious) which he invented. A theoretical entity which originates in his own German Romanticist/early modernist context and his Freudian training.)

And allegory precedes Jung also (Plato, Spenser, Dante).

I need to read Angus Fletcher’s Allegory: Theory of a Symbolic Mode.

Question for further research: what are some of the most innovative magic systems, both in terms of mode of spell-casting, effects, and symbolism?

Mage: The Ascension and Mage: The Awakening (tabletop)

Magic: The Gathering (cardgame)

Betrayal at Krondor (crpg)

Arx Fatalis (crpg)

Loom (Adventure Game)

Eternal Darkness: Sanity’s Requiem

Video: New Arcana Manor build

As promised, here is a short video of the newest build of Arcana Manor.

This build features some experiments with a new spell interface, including a rotating 3d tarot deck and a hexagram gui with jewel buttons that summon magical sigils with spellcasting powers. The player can also shift between first person shooter mode for melee and third-person mode for cursor-based spell-casting in the interfaces. I’m using Jeff Faust’s ArcaneFX in conjunction with these interfaces to implement spell-casting effects, including a custom attack spell with my own zodiacs and rune rings and a modified levitation spell using physical zones. The build also features some custom items representing the minor arcana of the tarot deck, including an ankh wand, a glowing black sword, a cup, and a pentacle.

implementing magic system progress

Finally got the beginnings of an original magic system working.

Customized two afx spells to become Call of Cthulhu and Eye of Ra, then linked them to the 3d tarot gui.

Figured out how to add an alpha channel to a png so as to make the background transparent.  By placing a sigil on a transparent background and building a gui around it, I can approximate the effect of “drawIng” many different grams (pentagrams, heptagrams) of many different colors, which hover in front of the player in first person mode.  Different grams can be brought up by pushing the many-colored gems at the points of a hexagram, which is itself transparent and centered in the middle of the screen, like a spellcasting/targeting HUD.

Screenshots and videos soon.

The aspect of designing a magic system (maybe of designing generally) that I like the best is interface design and special effects programming, when they are closely connected to gameplay.

modeling a character

After completing the modeling of the Joan of Arc tutorial, I’m now working on a model of an original character in Autodesk Softimage (formerly Softimage XSI).   Ron Smith drew some excellent orthogonals (concept sketches that are exactly proportional to each other and can be placed at 90 degree angles to be used as guides for making a 3d model).

Here is the verbal description of the character that I gave Ron.

“Imagine a demon summoned by Knossos, the architect, when he realized that he needed supernatural help to build his manor but did not understand just how dangerous and corrupting this help could be.  The demon is in some ways a standard balor-type monster: large, red-skinned, winged, horned, and clawed.  He could tear a feeble architect’s head off, or his sister’s, without a second thought.  But there is something sad and thoughtful in his face, a pensively furrowed brow, a far-off look.  He has seen so many foolish humans sell their souls for so little, and even though he should be the Mephisto character in this Faustian drama, he takes no glee in the role.  He’s almost more of a genii in a lamp who has grown weary of the same 3 wishes and the way that they always destroy the wishers.  He holds a book in his hand: a giant, leather-bound, brass clamped tome, which is the Necronomicon-like architect’s notebook that will be so central to the unfolding of the manor’s mystery.  Eliza will be forced to summon this creature in order to find out what happens to her brother, but in doing so she takes all the risks of a conjurer, because the answers that demons give are never straightforward and they may turn on their captor at any moment if there is some slip-up in the ritual, some edge of the magic circle that isn’t drawn in fully.  So this character should look supremely ambiguous: pissed and menacing, but potentially helpful, depending on how skillful our player turns out to be.”

And here are Ron’s orthogonals:

And here are the orthogonals placed onto grids as guide images in Softimage.  I’m currently modeling one of the demon’s legs.

Here is a shot of further progress, including the demon’s haunches, torso, and shoulders.

today’s short-term goals for Arcana Manor

Model the demon using Ron’s orthogonals

Write and/or implement new AI scripts to spawn more monsters

Download and apply new textures from cg textures (wood especially)

Script a telekinesis spell (raise one platform using a transform and/or apply impulse function)

Make the hexagram gui connect its points through pressing buttons that switch out bitmaps, preferably with an outer glow applied to each line segment

customizing spells

Have been working on customizing spells in ArcaneFX, a special effects program for Torque. The process of making spells is essentially advanced scripting, and I’ve managed to modify one existing spell (Light My Fire) to produce a larger and differently colored fire on the ground and the caster’s hands. I’ve also been working on modifying the Great Ball of Fire spell to be an Iceball, but I keep getting a connection error. Jeff Faust (the designer of ArcaneFX, whose Faustian name is delightfully appropriate) offers the following help in a forum: “It’s not unusual to have to do some debugging when writing advanced scripts like this.” No doubt. I’m keeping at it.

new features of Arcana Manor build

I’ve added these new Features to the most recent build of Arcana Manor:

Modified the mission selection gui to go directly to the Arcana Manor mission, along with an appropriate introduction in the loading screen

new gui: a hexagram with a colored gem at each point which lights up and makes a sound when the cursor is passed over it

the elven sorceress as the player avatar instead of the generic Torque Orc

This allows me to briefly switch to 3rd person view rather than 1st for spellcasting without embarrassment

22 3d tarot cards, modeled in Softimage and exported (each with one item script, one execution in game.cs, one custom material, one correctly named png texture and one folder)

Each card placed in the proper position on the sephiroth where the amorphous tarot cubes formerly were.

To do this, I finally got Matt Summers’ XSI Beta 2 Exporter working

Tarot cards corrected to not respawn, so that they are unique items, but still to play sounds when they are picked up and before they are deleted from the world.

A Stormbringer-style black runesword (modeled, UV mapped, textured, exported, custom shader applied, added to engine)

A custom sound plays when Stormbringer is picked up

An long wand with an ankh at its top (tribute to Ultima IV), to replace the generic short wand (which looked too much like a bedpost)

Can toggle between default first-person gameplay, with free look camera and cursor targeting, and spell targeting mode for the afx-driven spells (thanks to Gibby’s AfxFPS resource for this)

Return to Joan

I also recently returned to the Joan of Arc tutorial in Softimage, where I finished the modeling portions of the tutorial.  Among other features, I added hair, finished the chest armor, added a skirt, a leather corset, and upper arm armor.  Here is a screenshot.  More will follow displaying the various components of the model.

Joan of Arc model with modeling finished

Joan of Arc model with modeling finished

“The runes on the sword / Are the wyrms that are wise.”

I’ve been learning to model items, unwrap the uv’s of these 3d objects, then texture these uvs and re-apply them to the mesh.  Here is the textured uv mesh of a sword, which readers of Michael Moorcock’s Elric saga as illustrated by Robert Gould will recognize as Stormbringer, the black sword.  Here is the uv mesh after I unwrapped it and textured it.

Stormbringer uv mesh, textured

Here is the textured sword.

textured model of Stormbringer

“A Wicked Pack of Cards”: Video of New Arcana Manor Build

This is a video of the newest build of Arcana Manor, a 3d action-adventure game about running and jumping through a surreal occult mansion while casting spells based on the tarot and ceremonial magic. This build showcases several new features, including two tarot-based interfaces for spell-casting, spells powered by ArcaneFX, new environments such as a platforming version of the paths of the kabbalistic tree of life with color and tarot correspondences, sounds for picking up objects, and a story journal with concept art by Ron Smith. Credit goes to Frank Bignone for graciously sharing (as a resource on garagegames.com) the 3d gui wheel and folder that I’m adapting to construct the player-character’s magical tarot deck.

Magic System, Part III: Implementing specific features

Overview

Each tarot card is a spell.

The minor arcana (the suit cards with varying numbers of wands, cups, pentacles, and swords) are low-level alterative, restorative, protective/illusionary, and aggressive spells. Players cast these spells very frequently, and the process of casting them should be quick and addictive.

The major arcana (the 22 pictorial cards with Magician, High Priestess, Tower, etc.) are ultra-powerful spells used to resolve especially tough situations (e.g. apparently undefeatable bosses, seemingly impossible puzzles, totally blocked or inaccessible areas in the manor)

MINOR ARCANA SPELLS

The minor arcana spells are relatively easy to execute.

The minor arcana are less powerful (but still effective) spells, requiring only the collection of items and the tracing of a simple sigil in the air.

To cast a minor arcana spell, the player must have at least one of the objects associated with it (e.g. at least one sword)

The player must trace the correct (simple) sigil in the air with the respective item (e.g. hexagram, pentagram, Saturn astrological symbol, Mercury astrological symbol).

Tracing a hexagram with a sword equipped has a different effect than tracing one with a cup equipped, i.e. the sword hexagram attacks and the cup hexagram heals.

Swords are charged with aggressive magic, representing the power of the analytical mind to destroy demons of illogic and delusion. Collecting a sword object allows the player to fling one flying sword as a projectile at an enemy. Collecting multiple sword objects powers up the spell, allowing the player to fling as many flying swords as he has collected sword objects.

Two options for how the powering up of spells works (I haven’t decided which)

Spells remain powered up (i.e. the player doesn’t lose spell levels when he throws swords). For this reason, power ups should be rare rewards, distributed and hidden sparingly throughout the level.

[OR: Spell levels deplete in power every time the spell is cast, so items must be collected constantly and are distributed plentifully.]

Wands are alterative, representing the power of the will. The player can use the wand to telekinetically raise platforms to form staircases and launching pads. Wands can also form bridges out of pure light and energy so that the player can pass over otherwise impassable chasms.

Pentacles are protective: they can produce a glowing transparent shield that is as powerful as the number of swords or cups that one has currently collected

Cups are restorative: they release a healing flood of soft-colored blue or purple light that raises mana or health.

In traditional occultist thought (Levi, Crowley, Jodorowsky), each of these arcana stands for one virtue of a magician: cups = knowing, swords = daring, wands = willing, and pentacles = keeping silent.

Players enact each of these arcana through a core mechanic, which is a spell power: keeping silent = stealth through invisibility, daring = leaping perilous chasms, knowing = destroying the enemies of delusion and solving puzzles, willing = bending the environment to one’s will by telekinetically moving platforms or causing

MAJOR ARCANA SPELLS

The major arcana are powerful spells that can only be unleashed through tracing the right sequence of sigils and pressing the right buttons, registered through color and sound.

They take time and deliberation to cast: the equivalent of a ritual.

They have less time pressure on them than the minor arcana spells, i.e. they are more like puzzle-solving, albeit complex puzzles with multiple solutions.

They are usually not cast while enemies are attacking, unless it is a very slow enemy or a horde of minor enemies banging at the gates.

The Death card can destroy whole levels of enemies (e.g. the enemies banging at the gates above), the Devil card can summon powerful demonic bosses to defeat or powerful demonic allies to aid you, the strength card can conjure into existence powerful magical protection (like a whole suit of armor)

E.g.:

Saturn Symbol + x + Aries Symbol + pentagram + y = the Devil, which summons a powerful demonic ally

A set of colored boxes at the bottom of the screen that light up as sigils and buttons are successfully or unsuccessfully executed

Maybe a musical tone plays also, à la Loom.

Magic System, Part II: Goals and Features

The problem: Too many MMO and single-player RPG’s have a repetitive and simplistic magic system in which players press buttons on a tray of icons, watch a series of animations to play throughout casting time, and then wait through the cool-down period before they press the mouse button again. Systems like this are repetitive and dull: automated to the point that players are almost uninvolved.

The goal: Magic, by its very definition, should feel out of the ordinary, a complex mixture of arcane art and science practiced by highly trained adepts who revel in the skill and the rules they have mastered, much as programmers or gamers do. Magic is a metaphor for the power of the human imagination to shape reality and perhaps, taking a cue from Clive Barker, for the creative activity of play itself. Hence, we need to look back at the history of the most innovative RPG’s, action-adventure, and survival horror games to re-enchant and re-activate the process of casting spells in games. It could also be helpful to consider human beliefs and practices surrounding magic in myth and ritual. Articles about magic systems in games often argue that because magic is a “fantasy construct” that no system is inherently better than another, since there is no way to judge the accuracy of a system that simulates a fiction. This attitude can result in the approach of “do whatever will be easiest for players” or, worse, “do whatever everyone else is currently doing,” resulting in the current problem of dull and repetitive systems.

But magic systems in games haven’t always been so homogenous, in human belief or in game practice. As Matt Barton has demonstrated in Dungeons and Desktops (and team member Kris Maxwell has confirmed in conversations)¸ CRPG’s like Dungeon Master and Betrayal at Krondor involved innovative and experimental magic systems. Tabletop RPG’s like Mage: The Ascension and survival horror games like Eternal Darkness have explored the philosophical dimensions of magic in innovative gameplay mechanics (not to mention card games like Magic: The Gathering). Adventure game Loom had a magic system

I would like to implement 5 features in order to make the magic system of this game exciting, fun, sophisticated, and engaging.

    1. A magic system based on a system of symbolic correspondences
    2. Magic that alters the physical environment to help overcome physical obstacles (e.g. raising platforms, building bridges)

(This is part of a more general aim to produce spells with gameplay effects that are more varied and psychedelic than the standard damage/buff/heal effects. For example, spells that cause solid stone to warp and liquefy or spells that grant visionary passage into other dimensions of pure sound and light (or demonic realms of the dead).
3. Spells are powered up by collecting minor arcana of the tarot (wands, cups, swords, & pentacles), which can be combined to produce spell effects.
4. Players cast spells by tracing sigils, such as flaming runes and pentagrams, possibly making use of the Nintendo Wiimote (since TGEA is cross-platform and I’m especially interested in aiming this game at consoles).
5. The magic system might take full advantage of 3d space by having players mold, weave, and sculpt spells, creating varying spells effects by modeling 3d shapes and directing the vectors of these shapes towards different 3d directions.

1. The magic system is based on a system of symbolic correspondences in which symbols stand for other symbols in an array or “grid,” i.e. colors stand for virtues which stand for objects which stand for gods which stand for schools of magic, or colors = notes of a scale = tarot cards = runes and so on.
1a. Players combine symbols pictorially or semantically to produce spell effects. To cast spells, players must master a language of symbols.
The system should be both meaningful and action-packed. The best example I’ve seen so far is the magic system in Eternal Darkness, where casting spells involves the combination of many different runes of three different colors, which stand for the three demonic deities of the world as well as human powers of body, mind and sanity. Spells become more powerful the more the player learns the language and symbol system of the game: which runes stand for enchantment, which stand for objects, which stand for self. In learning this language, the player also has to internalize the game’s mythology: which of the deities has power over which realm, and how these realms trump each other in rock-paper-scissors fashion.

2. Because Arcana Manor is a platformer, many of its challenges are environmental. One original feature of the magic could be its ability to help players overcome these environmental challenges by altering the environment physically. An example of effective use of magic that physically alters the environment is Soul Reaver 2 and the Legacy of Kain series generally, in which elemental magic can create gusts of wind that the player can glide on with his wings, disable the trap of a cyclopean eye with darkness, light up jewels that lower ice bridges, and summon earth platforms.

    1. The magic system will be, in part, based on the minor arcana of the tarot (which refers to the suits of wands, cups, swords, and disks/coins/pentacles). Players collect these items as power-ups that make spells more potent. There are an obvious set of elemental correspondences to these four suits (fire, water, air, earth) and also traditional schools of magic (alterative, restorative, damaging, and protective). It would be cool if these magical functions were more action-packed, cognitively challenging, and dexterity-oriented. Castlevania is addictive because the repetitive activity of whipping enemies is inherently enjoyable and requires timing to execute correctly. Throwing four swords that fly through the air or jumping on a pentacle/disk summoned from below would be comparable examples of quick an engaging magical gameplay.
tarotmagician.jpg

4. The magic system involves tracing flaming runes and pentagrams in the air to create various magical effects. I think that the add-on ArcaneFX could help to build these features, but they might also require substantial engine modification in order allow the player to draw sigils using particle emitters and to correlate these drawn symbols with gameplay effects. Shaun Walsh already has some really excellent ideas for the conceptual design of this code. Shaun writes, “Castlevania for the DS had the same concept, but they had built in functionality for that. How it would work is you would have to have a file that stored 2d coordinates of the first mouse click on the screen (where he starts drawing) and then does a match function to determine the roundabout next point he would have to draw to, something like a direction map. Heres an example
User starts drawing at 25,25
So, the computer would figures the next point is 25 points lower, and 30 points to the right so the next cord would be 50,55. Then it would go onto the next point. The file would look like this
0: +25,+30 (this is actually the second point)
1: +25, -30
2: -25, -30
3: -25, +30
4: END_SPELL

This would make a pyramid drawing. You would obviously have to make a buffing system that would make use of extreme math cause the user wouldn’t be able to click EXACT coordinates. I would think the closer he is to exact, the more critical the spell is. Obviously, some of the marks he would be drawing would be more complicated, but that’s just a basic concept.”

    1. Tracing glyphs and sigils in the way outlined in the previous point takes place in 2d, i.e. the hexagrams are a 2d overlay on a 3d environment.

We could make the system more interesting if we figured out how to take full advantage of 3d graphic capabilities in creating a magic system.
Kris Maxwell’s suggestion:
A system in which players could change the powers of a spell by directing parts of its sign toward specific 3 dimensional-vectors.
Imagine the casting space to be a north-east-south-west cube.
For example, tracing a fire rune with its tip toward the north quadrant might mean “ignite,” but directing the tip toward the south would be “extinguish.” Whereas rune-tracing would be based on two-dimensional coordinates and implemented through a drawing engine, a three-dimensional method would feel more like a very rudimentary 3d modeling application, and its coordinates would be stored in a 3d matrix rather than a 2d array.
The player would be using two virtual hands for weaving, shaping, molding patterns out of pure light and energy, like a sculptor shaping clay or a weaver making a cat’s cradle.

loom.jpg

Maybe shaping a cube would be one spell, shaping a dodecahedron would be another (or twelve others, depending on how it were turned), and shaping a sphere would entail yet another spell.
This would almost be a very simplified 3d modeling engine within the game, combined with a semantic-based system projected onto three-dimensional space.

See cube of space from neo-masonic organization BOTA

cube12trumps.gif

6. Magic is a metaphor (power of human imagination to shape reality)
The four weapons of a magician (knowing, daring, willing, and keeping silent) traditionally correspond to the four tarot suits.
Our magic system will express these ideas through gameplay,.
I’m look for ways to express these abstract human powers, abilities, virtues, activities as spells with concrete effects.

7. Other features that could be incorporated into a magic system:

Summoning circles to protect the caster from the spirits she calls up, and triangles to contain the spirit.
Draw the circle or triangle incorrectly, or step outside of it during the conjuring, and the spirit attacks you.

magiccircle.jpg

Planetary alignments (via the Torque ability to create celestial bodies that move cyclically), including phases of the moon
Certain variations on a spell, such as which planetary point of the hexagram to start tracing first, are more effective during certain alignments (cf. the phases of the three moons and their relationship to black, white, and red magic in the Dragonlance Chronicles)
Combinations of alchemical ingredients (e.g. sulphur, salt, mercury) to produce spells
Burning certain forms of incense (with appropriate smoke/fire animations)

New team member Shaun Walsh

Shaun Walsh, an experienced programmer in the process of learning Torque, has graciously agreed to be on the Arcana Manor.  Shaun is interested in conceptual code design, i.e. planning out how to implement various features, such how to program a magic system in which the player will trace runes and sigils on the screen to produce various magical effects.  This is a tremendous addition to the team given the difficulty of programming and how slow I am at learning it. :)

Shaun has experience in Php, C/C++/C#, VisualBasic, and a host of other languages.  As an example of his coding facility, here is what he was able to come up with very quickly regarding the implementation of the mechanic for tracing runes:

So, this wouldn’t be an overnight project by any means. Your drawing of the spells to the screen is interesting. Castlevania for the DS had the same concept, but they had built in functionality for that. How it would work is you would have to have a file that stored 2d coordinates of the first mouse click on the screen (where he starts drawing) and then does a match function to determine the roundabout next point he would have to draw to, something like a direction map. Heres an examples

User starts drawing at 25,25

So, the computer would figures the next point is 25 points lower, and 30 points to the right so the next cord would be 50,55. Then it would go onto the next point. The file would look like this

0: +25,+30 (this is actually the second point)

1: +25, -30

2: -25, -30

3: -25, +30

4: END_SPELL

This would make a pyramid drawing. You would obviously have to make a buffing system that would make use of extreme math cause the user wouldn’t be able to click EXACT coordinates. I would think the closer he is to exact, the more critical the spell is. Obviously, some of the marks he would be drawing would be more complicated, but that’s just a basic concept.”

Something like that would have taken me hours to figure out, which shows why recruiting team members if important.  Welcome aboard, Shaun.

Programming progress

Over the last several weeks, I have implemented several features in TGEA, but many of them are in separate project files, builds, and/or software versions.  For this reason, I need to keep a list of these so that they can eventually be combined into one file.

1) Implemented a functional inventory system with associated GUI (along with 2-3 separate inventory systems from GarageGames, many of which were stymied by outdated resources but all of which were educational).

2) Implemented two spells which allow the player to throw a fireball, as well as an associated system that enables invisiblity and healing spells if I bind them to a key.

3) Am well on my way to implementing a simple melee system by James Thompson.

Some of my fellow garagegames developers have suggested that I should invest in the ArcaneFX add-on, which has a lot of customizable special effects that lend themselves to a magic system.  That’s a good idea, although parting with the $85 dollars at this point in time is a painful prospect. :)

New Arcana Manor video

As promised, here is a new video of a small portion of a level in my game-in-progress, Arcana Manor.

I built this level in the Torque Game Engine Advanced, and I made the 3d models of the tarot suits in XSI. I also made many of my own textures in GIMP. I scripted the inventory system using resources from Garagegames, combining Torquescript with my own icons to make a GUI that would keep track of the tarot suits as they are picked up. This level demonstrates some rough platforming action and the tone of the game, as well as the ability, which I scripted, to pick up cubes representing the 22 major arcana.

Arcana Manor under construction . . .

Here are the beginnings of a level in Arcana Manor that I’ve been building in Torque Constructor.

Arcana Manor Screenshot

Arcana Manor Screenshot

This level contains, at the center, a medieval cathedral that I built in Constructor several weeks ago following a tutorial on garagegames.

cathedral made in Constructor

2) I’ve also made 22 cubes with textures from the major arcana of the Marseilles tarot deck and exported them from xsi into Torque.  This took a lot of effort because the XSI exporter is still a bit clunky and requires a lot of manual scene set-up involving dummy nodes, collision meshes, and naming conventions that have to be set exactly right in order to export.

3) I also set up a working inventory system that tracks when a player picks up minor arcana items (wands, swords, pentacles, and cups), then registers these items in an inventory graphical user interface that can be toggled on and off.

Inventory GUI

Inventory GUI

4) I set up a simple spell system using resources provided on the GarageGames site, which allows the player to throw a fireball.

5) Wrote scripts for each of the cubes and items so that players can pick them up and store them in an inventory.  Made a small, rough test level using early versions of the battlements described in the “5 minutes of gameplay” entry to demonstrate that players can pick up cubes and items.  Here is one sample cube, followed by a video of the player picking up many of them, picking up several cups, and toggling the inventory.

6) The goal now is to first make the four minor arcana mountable as weapons so that they can be held by players, so that players can wield a sword or a cup in order to trace sigils in the air, like a hexagram.

Then, I need to set up a melee system that allows the player to swipe with the sword and do damage.

However, for the purposes of this game the motions of the items will have to be more precise, i.e. they will need to follow the movements of the gamepad as a sort of cursor.  Attached to the end of the sword, wand, or cup there will need to be a particle emitter or other special effect producer that leaves a glowing colored trail and recognizes when certain patterns have been traced.

Question: How did the designers of Arx Fatalis (or Molyneux in Black and White) pull of a similar “tracing magic sigil with finger” mechanic?

7) While I’m providing screenshots, here is an arch with some custom alchemical planetary symbols applied to it as textures.

Arch with planetary textures