Thursday, July 19, 2012

The LoadDown -- 07/19/2012

The weather is hot here in Michigan, USA -- it's a good time to stay inside and play video games.  You don't even have to go outside to buy them!

WiiWare --  Nothing at all on the Wii or the Virtual Console this week.

DSiWare -- Two new titles for DSi and 3DS:  Rabi Laby 2 is yet another game inspired by v. dentata Alice in Wonderland, a sequel to the original Rabbit Labyrinth, again sending Alice and her pet rabbit through a series of dangerous puzzles which they must overcome with teamwork.  Petit Computer is an odd but interestingly retro idea -- it presents a virtual, BASIC-driven computer that lets users create their own programs and games; the sprite capabilities are a bit beyond what most actual 8-bit computers could handle, but otherwise it seems like a forgotten 80s platform.  I'm not sure about typing in programs using the stylus on a virtual keyboard, though, and I doubt we'll see any magazines full of type-in listings for this quirky throwback.

3DS eShop --  New titles here, plus a few old ones.  The Phantom Thief Stina and 30 Jewels is an action/strategy game -- players can play as the jewel thief Stina or security chief Sara, as Stina tries to steal jewels while avoiding security droids; it sounds like a stealthier game than it is but is a fresh idea for a real-time strategy title.  Nikoli just keeps pumping out new, vaguely dissimilar puzzle titles, with Masyu by Nikoli, kind of a pipe-fitting Sudoku variant  And Nintendo's 8-Bit Summer continues with the Game Boy sequel, Kid Icarus: Of Myths and Monsters, and Tumble Pop, which borrows from Ghostbusters a bit as its boy hero sucks up various monsters with his backpack vacuum weapon.

XBox Live Arcade -- Two new games in the past week.  Tony Hawk's Pro Skater HD brings the original skateboarding game up to speed graphically, while inadvertently highlighting how stagnant the long-running series has become.  Dungeon Fighter Live: Fall of Hendon Myre brings the popular Korean PC title Dungeon Fighter Online's multiplayer dungeoneering and light RPG elements to XBLA, though the 2-D gameplay resembles Golden Axe more than Rogue or Dungeon Master.  The subtitle implies there will be more of these released as time goes on.

PS3 on PSN -- One new game arrives this week: Dyad, a psychedelic, symbolic, fluid arcade sort-of-racing game with musical elements -- it calls late Jeff Minter and SEGA's Rez to mind, but is definitely its own critter.  Sony's always been a little more adventurous with its online content than other platforms, and PS3 owners will want to check this one out.

PSOne Classics -- Nothing new here this week.

Notable on Steam -- New releases are nonexistent while the Steam Summer Sale is going on, but there are good deals on PC games new and old afoot.  My backlog is growing, but I'm not really complaining.

Wednesday, July 18, 2012

Let's Make Us A Game II-1: Basic Logic



Before I get into anything fancy with my Tic-Tac-Toe Bastard game, I'm going to sit down and work through some basic game logic. I want to code the foundations in pure Lua with text output to the console, to get a bare-bones version of the game working for faster and easier debugging.  We should be able to reuse a lot of this material as we layer graphics, sound and GUI elements into the build later on, but there's quite a bit of groundwork we can do first and it's good to keep things simple while we create the core.

We'll represent the tic-tac-toe grid using a simple 9-cell table structure.  While our visual representation is a 3 x 3 grid, we really don't need to make the table that complicated; we'll just lay out the 9 cells in a single row, numbered as follows, and display the grid to the user in the expected manner:

1 | 2 | 3
---------
4 | 5 | 6
---------
7 | 8 | 9

(Note that Lua, unlike many computer languages, natively starts numbering at 1 -- this makes intuitive sense, but it takes some getting used to for programmers used to counting from 0!)

Each of these cells will start in an empty state, and will be marked by either the player or the CPU as the game progresses.  For readability, we'll declare three useful constants at the top of the routine -- the numeric values really don't matter, as long as they are unique:

EMPTY_ID = 0;
MY_ID = 1;
CPU_ID = 2;


Now we'll declare and initialize the tic-tac-toe grid accordingly:


gGrid = { EMPTY_ID, EMPTY_ID, EMPTY_ID, EMPTY_ID, EMPTY_ID, EMPTY_ID, EMPTY_ID, EMPTY_ID, EMPTY_ID };

With this structure and the constants we've set up, all we need to do to record a player's move is set an element of the gGrid array to either MY_ID or the CPU_ID.


One of the logic challenges we need to deal with is recognizing when somebody has won the game.  We could do this heuristically, searching through the grid for patterns indicating a win, but there are a finite number of combinations to consider.  Our code will run faster and more simply if we just define all of the winning combinations in a table of tables, like so:


POSSIBLE_WINS = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9},
                  {1, 4, 7}, {2, 5, 8}, {3, 6, 9},
                  {1, 5, 9}, {7, 5, 3} };


(We could also use this approach to impose rule variations on the player -- an "only verticals win!" round, for example, although that seems unlikely to be much fun in a game of Tic-Tac-Toe, so we probably won't do that.)

For reasons that may (or may not) become clear later, I'm going to treat the human player and the CPU as "players" by setting up another table:

   PLAYERS = { MY_ID, CPU_ID };


This approach makes the main game loop simpler -- we just need to loop through the players, giving each one a turn until somebody wins.  (This will also simplify our lives later on if we decide to add a player-vs.-player option, or a CPU-vs.-CPU exhibition mode, or even an online mode or a more-than-two-players mode.)


We will still need to distinguish between the human player and the CPU at another level -- when the main game loop looks for input from the current player, we'll want to solicit interactive input from a human player and call upon an algorithm for the CPU's move.  But the main game loop can just solicit a move from the current "player", however that is defined, check for victory, and end the game if that player has won.


My initial scripting goal for this installment is to establish the Tic-Tac-Toe grid, mark it up, and verify that we can detect a victory condition and identify the winner.  So I'm not going to implement any real user or CPU action -- I'll just let the code select a random number from 1 to 9.  In fact, I'm not even going to check for duplicates, so our players can just mark right over each other.  I just want to set things up so that the game can run until somebody wins a single match.

My main game loop logic needs some work at this stage -- it always forces the first player listed in the PLAYERS table to go first, and it's not even really using the PLAYERS table correctly; it only works because our indices {1, 2} happen to match the PLAYER_ID and CPU_ID values.  If we wanted to mix up the play order we would have to fix that, so that then we could just restructure the PLAYERS table to reorder the participants.  My code also breaks out of the for-player loop using a "break" command, which is less than elegant.  And there are some conditions it doesn't catch, like playing to a draw, which is entirely possible.  But we'll have time to refine this in a future installment.

The checkVictory function accepts a grid and a player ID, and uses the POSSIBLE_WINS table to see if that ID has occupied a winning set of squares on the grid.  This routine will probably not change much as we develop the game.  (Note that I could reference the actual game grid directly as a global variable, but passing it in as a table keeps the local code clean, and the ability to handle multiple grid instances might prove very useful for our AI implementation later on.)

For now, I've defined a getMove function that takes an ID from the main loop, and then decides how to obtain move input.  Right now, the supporting getPlayerInput and getCPUInput functions do exactly the same thing, picking a random number from 1 to 9, but we'll change that later.


I've also written a throwaway utility function -- doPrintGrid renders the game grid to the Lua console, in a readable text format.  This routine is handy for now but will probably be discarded later in the development process.


All we can really do with this initial version is run the code and see whether it stops when victory is randomly achieved -- which it does!  The code so far is below the fold.


Tuesday, July 17, 2012

Adventure of the Week: The House of Seven Gables (1979)


It took me a while to track down Greg Hassett's The House of Seven Gables adventure for the TRS-80 -- some online archives have what appears to be a machine-language version, but that game is actually Bill Miller's House of Thirty Gables, in a very different style from Hassett's games.  Like Miller's game, this one bears remarkably little resemblance to the classic Nathaniel Hawthorne novel, House of the Seven Gables, aside from the fact that the house that serves as the game's setting does indeed feature a number of gables.  I knew this was the right code as soon as I saw the title screen: 




Like most of Hassett's early adventure games, this one is written in BASIC and has a rather limited vocabulary.  It still performs pretty well, and it's fun to play, if a little obtuse when it comes to scoring.  The game seems to be introductory in nature, given the copious hints available within the game itself; the source code was published in the Captain 80 Book of BASIC Adventures.  A version also exists for the Commodore 64.

As always, I encourage interested readers to try The House of Seven Gables before proceeding below.  It's a treasure hunt set in a mysterious house, and it's not a hard game to finish, really, though earning all of the points can be a challenge.  Beyond this point, in the interest of documenting my experience with this game, for those who have already played it or may never get to do so, be advised that there are comprehensive...

***** SPOILERS AHEAD! *****



The story begins outside of a house with, naturally, seven gables.  There's a doorbell and a compass we can take with us.  We can't TAKE COMPASS, but we can GET COMPASS, and we can't look at it, examine it, or read it.  So it may not be very useful, except that -- aha! -- we can't maneuver anywhere without it -- no exits are displayed, so we do need to keep it in hand.  Most adventure games take directional navigation for granted, so young Mr. Hassett deserves credit for turning this into a minor puzzle.

The game is very player-friendly -- if we try to go S, we are told THE DOOR IS LOCKED. I THINK I CAN GET BY IT, THOUGH.  And if we try and fail to OPEN DOOR, then we learn that MAYBE THESE PEOPLE (?) ARE FRIENDLY, SO TRY RINGING THE BELL.

Upon RINGing the BELL, we are swept inside and the entrance vanishes.  We are in a living room, with no objects visible, and can explore to the south, east and west.  The Dining Room contains an empty bucket and some silver candlesticks.  We don't seem to gain any SCORE points after we get the candlesticks, so maybe they are not a treasure.

The kitchen contains SOME FRESH GARLIC, a BANANA, and a SINK WITH A WORKING SPICKET [sic].  Mr. Hassett's spelling was often... inventive.  The spelling is the same in the listing in the Captain 80 book, although there the text is in mixed-case unlike this version; it may have been typed in by a TRS-80 owner without an uppercase kit installed, like many of us back in the day.

A door east of the dining room has no doorknob or keyhole, but again it is suggested that we can get by it.  KNOCK DOOR doesn't do the trick, though.  And HIT DOOR returns I DON'T WANT TO HIT THE DOO.  Neither do I, sorry for suggesting it!

The Guest Room right off of the living room leads to the first and second gables.  There's a BLACK CAT at the second -- if we try to GET him, he vanishes, SAYING "I WILL RETURN..."

South of the living room, in a dark closet, A HOLLOW VOICE SAYS: MIX THEM.  This is yet another early adventure game influenced by Scott Adams' approach.

Downstairs is a long east/west hallway.  At the east end is DRACULA'S CHAMBER.  We can try to OPEN COFFIN, but THE VAMPIRE WON'T LET ME!  He's listed as a MEAN LOOKING VAMPIRE, to boot.  Why aren't there ever any friendly vampires in these games?

The Barren Library contains a BOOK TITLED PRIMEVAL WITCHCRAFT; I don't think that word means what Mr. Hassett thinks it means.  The book is very short, reading NOTTUB SSERP, or PRESS BUTTON backwards.  But there's no button in the library.

This sort of thing occurs at random:



Ahem.  After self-consciously checking my attire, there's only one turn before THE GHOUL KILLS ME!  This was the first death I ran into; restoring, I made it past that room with no ghoul appearing, and found my way to a DUNGION [sic] where A CRUDE NOTE ON THE WALL READS: YOU CAN'T GET OUT WITHOUT KILLING ME FIRST! -- WITCHY-POO.  No wonder the Bay City Rollers couldn't get out of their Saturday morning contract with the Krofft brothers!  This isn't actually true, at least if we take it at face value, as while most paths return to this same location, we can just go S to exit the dungeon.  The dungeon entrance doesn't really lead to a maze, it seems, but there's a real maze nearby, also at the west end of the hallway, containing an AXE.

Randomly during our explorations, we may see that A GHOST POPS OUT AND SAYS: THROW ME SOME TREASURE!  He'll accept our gift if we THROW CANDLESTICKS, so apparently scoring is just deferred; clearly, we should avoid this situation if possible so we can earn all the available points.

The hallway maze leads to a MAD SCIENTIST'S LABORATORY where we can pick up some chemicals.  Presumably these are what we want to mix.  If we MIX CHEMICALS they turn into AN ORANGE BUBBLING LIQUID.  We can FILL BUCKET with water using the kitchen's spicket [sic], though this doesn't seem to be necessary for working with the chemicals.  And when we run into the GHOUL we can THROW CHEMICALS so that THE GHOUL MELTS TO NOTHING.  But eventually it comes back.  Fortunately, the chemicals also remain intact, we can just pick them up each time and reuse them later.

I did run into a small bug -- at a couple of points I tried to GET AXE after finding or dropping it, and was told I couldn't carry any more; but after an INV check, I was able to; some counter must get cleaned up when we take a look at our inventory.

Returning to the interior locked door with the axe, we can't SMASH DOOR but we can CHOP DOOR so that THE DOOR IS CHOPPED TO PEICES [sic].  This leads to a staircase, with A BEAUTIFUL ROSE at the top.  There's also a BROOM CLOSET, with some VALUABLE RECIPIES [sic] written IN WITCHISH.

The sixth gable contains a PAPER AIRPLANE; the third, a TEST TUBE OF FLUID (which is neither a TEST TUBE nor a TUBE, but FLUID per the game's dictionary.)

Another hallway south of a DILAPIDATED BEDROOM leads to a MAMOTH [sic] ART GALLERY where we can pick up a PRICELESS REMBRANT [sic].

At the eastern end of the hallway is A ROOM WITH A PEDESTAL IN THE MIDDLE, and we can see a button atop the pedestal.  Even if we haven't read the book in the library, it's tempting to PRESS BUTTON here (actually, PUSH BUTTON doesn't work so the book's clue is actually kind of helpful). 

This leads to the WITCH'S CHAMBER, where an UGLY WITCH has a POT OF WITCHES' BREW, in case there was any question; where the other witches are who are apparently responsible for the brew remains an open question.  The Books of Oz tell us what to do - THROW WATER and THE WITCH HAS VANISHED! HER HAT REMAINS.

With the witch's hat in hand, we can return to the LIVING ROOM.  And the entrance door has been reopened, so we can just go N.  And suddenly, we've won!  (So that's what the witch's note meant.  Odd of her to invite her own death that way.)



Except... I haven't done very well scorewise -- yes, that is actually a negative 70 points -- and there's no opportunity to continue.  It looks like we need to ignore the red herrings, and carry as many treasures as possible out the door as we take our one shot at exiting.  Basically, it appears we need to grab the compass, fill the bucket, mix the chemicals, kill the witch, collect all the valuable treasures and leave the house.

So what puzzles remain to be solved?  There are a number of objects we haven't experimented with yet.

We can EAT BANANA to be left with a BANANA PEEL.  It looks like a slip-and-fall may be in someone's future. But whose?  Random ghoul appearances continue to be a pain, as the creature can arrive long before we have an opportunity to acquire the chemicals.


We can SHOW GARLIC to send the vampire scurrying off, and claim a SULTON'S [sic] DAGGER from his coffin.  He shows up again at the top of the stairs, at which point we need to STAB VAMPIRE so that he dies and vanishes; why he was keeping this dangerous dagger in his own bed is another unanswerable question.

I also notice that my once-SHINY COMPASS has become A TARNISHED OLD COMPASS while playing, though this seems to have no bearing on our score at the end of the game.

The ghost will eventually kill us if we don't throw him a treasure when he demands it; I didn't find any solution to this, we just have to be quick about our business and hope the random number generator looks kindly upon us.

We can UNFOLD AIRPLANE to turn the paper airplane into A PIECE OF PAPER WITH WRITING ON IT.  It reads: "REMEMBER THE WIZARD OF OZ."  So we've already figured that out.

Down from the pedestal room is the Seventh Gable, with a DIAMOND in it; I had just missed exploring that direction, after seeing the button on the pedestal.  The WITCHY-POO note room is still not a maze, just a room whose exits all lead back to itself; it does not change state after the witch is dead, so the note refers only to our ability to leave the house itself.

It seems that if we are not efficient, our score drops dramatically.  I was down to -595 points at one point, and dropping by 25 points per turn!  I wish I knew what the object of the game was, or had some way to determine which items were the critical treasures!

Fortunately, Dorothy's walkthrough at CASA indicates that the AXE, HAT, REMBRANDT, ROSE, RECIPES and DIAMOND are the treasures, and that we don't need to carry them with us -- just drop them in the living room before we escape the house.  So playing quickly, we can pick up all the valuables and escape to a proper victory:




The House of Seven Gables is not a particularly difficult game; the biggest complications stem from all the red herrings (I never did find anything useful to do with the black cat) and a few random unsolvable situations that can present themselves at inopportune times.  I'm slowly working my way through the Greg Hassett oeuvre, and I enjoyed this one.


Monday, July 16, 2012

Let's Make Us A Game II: Tic-Tac-Toe

Back in 2010, I ran a short Let's Make Us A Game! series in which we actually designed and implemented a simple text adventure using Inform.  I'd like to do that again, but this time I'm using the Moai framework and Lua scripting to build something a little more visual.  (There are lots of good engines out there, but Moai and Lua have the distinct advantage of being free for our purposes.  Lua is always free, Moai has some restrictions for commercial use but the "sandbox" level is free to play around with.)  If you want to play along, you can pick up the Moai SDK by registering at www.getmoai.com.

I'm going to be learning as we go, so I expect to document quite a few missteps and considerable rework during this process.  To keep the project's scope reasonable, I'm reaching deep into personal nostalgia to remember the very first interactive computer game I ever played.  It was a Tic-Tac-Toe system at a science museum -- the player would hit one of the squares on the grid, and the computer would respond with a move of its own.  It was simple, but still fascinating at the time -- the idea that a machine could "think" and play intelligently was mind-blowing for a little boy in the mid-1970s.

As an homage to Lance Micklus' classic TRS-80 checkers program, The Mean Checkers Machine, I'm going to call our experimental Moai/Lua game Tic-Tac-Toe Bastard.

Here's what I have so far -- I've decided on a 320 x 240 screen layout; this is very tiny by modern standards, but Moai will let us scale it to the display, and keeping the resolution low keeps the pixel art easier to handle.  Sketching it by hand on graph paper, I've mapped out a rough idea of the display:



As you can see, there aren't a lot of controls here.  There's a difficulty slider, allowing us to adjust the CPU's "intelligence" level, a QUIT button to exit the game, and a RESTART button to start a new match.  The player will simply click on a square in the 3 x 3 grid to place a smiley face, while the CPU will place death's heads in response.  A scoreboard at the left will chalk up Player and CPU wins during this session, with RESTART wiping out the accumulated scores and resetting the grid.

I'm devoting the largest chunk of screen real estate to the 3 x 3 game grid.  Because we're not really constrained by old-fashioned tiles and sprites, I'm making the grid 160 x 160 pixels -- this gives us 9 53 x 53 pixel blocks which include their own outlines, plus an outline border on the right and bottom edges.  (At least that's how I think this is going to work, prior to actually building anything.)

Here's a rough to-do list for getting this very simple game up and running:

-- Design and create game data structures (scores, play grid)
-- Script the basic game loop
-- Implement and test tic-tac-toe CPU algorithm
-- Implement the user interface and wire it into the game logic
-- Implement and test victory detection
-- Draw graphical elements in .PNG format
-- Design and produce sound effects

We'll be tackling each of these steps, though not necessarily in sequence -- I may jump around a bit depending on what I feel like doing in each installment.

Off we go!


Sunday, July 15, 2012

Cover to Cover: Jaguar EGM Promo (pp. 6-7)

Our pagethrough of the 1994 Atari Jaguar ad insert in Electronic Gaming Monthly continues, with pages 6 and 7.

Page 6 features one of the most innovative and technically impressive games to grace the Jaguar's lineup -- Iron Soldier, casting the player as the pilot of a giant robot.  The missions were varied and challenging, from seek-and-destroy to escort duty, and there were upgrades along the way to keep the basic mechanics interesting.  The largely-untextured polygon graphics look dated now, but seeing buildings disintegrate into what seemed like an impossible number of tiny cubes still looks pretty unique and cool.  The game saw a CD sequel on the Jaguar, and another sequel on the Playstation, titled Iron Soldier 3 though it seems more like a graphically updated version of this original game.  And, to the game's credit, the ad doesn't have to exaggerate the game's features:



Page 7 features one of Atari's ill-fated attempts to get in on the one-on-one fighting craze, with a shameless ripoff of Midway's Mortal Kombat franchise.  The digitized graphics and backgrounds were somewhat impressive at the time -- the Jaguar's color depth outdid the SNES and Genesis -- but the action was uninspired and poorly balanced.  The ad does its best to drum up some excitement, but even in 1994, "Use a fatality move to finish him!" sounded almost as lame as the preceding "Ooo, that's gotta hurt!":


More to come -- there are 16 pages of Atari promotion in this brochure.

Friday, July 13, 2012

Of Import: Slot Gambler (1995)

Nichibutsu is best known in the West for the arcade game Crazy Climber, but in Japan the company's output seems to have been dominated by risque pachinko and mahjong titles.  Slot Gambler, a similar game involving slot machines, was released in 1995 for the PC Engine's Super CD-ROM format.

Many of the images in this game are NSFW -- there's nothing X-rated, but for propriety's sake I'm going to put the later parts of this post below the fold, including the title screen that usually serves as my lead. I'll try to describe the gameplay first, so people with scruples and dignity can avoid the seedier side of the game.

I've never been a big fan of gambling videogames -- there's nothing at stake, really, and most of the time the results are completely dependent on chance.  This game features two types of slot machines -- 3 x 3 grids where success can be scored in numerous ways a la Tic-Tac Toe, and separate single-window machines where a row must be matched.   The slot machines look different on each island, but the seem to fall into these two categories consistently.




The player can bet one to three medals on each round, with the rewards scaled accordingly; some games allow better chances of success if we lose bet more on a given round.

The game's Story Mode is structured as a series of islands in a manner reminiscent of Super Mario Bros. 3:




Oddly, the game casts the player as a totally 80s American boy, with blonde hair, a backwards baseball cap, blue jeans and a hot pink jacket.  There is a little bit of skill involved here, as to clear each island we have to visit all the establishments there, sliding map tiles around on occasion to open up pathways.



Beyond the cheesecake and slot machines, sometimes we find bonus round kiosks on the island that offer more traditional game-like activities:



And... below the fold you'll find further discussion of Slot Gambler's aesthetic.


Thursday, July 12, 2012

The LoadDown -- 07/12/2012

Activity levels are picking up a little bit this week, with multiple new downloadable games on several channels...


WiiWare -- Hey, some activity!  Konami's Frogger: Hyper Arcade Edition also arrives on the Wii!  See the XBLA section below for details.

Wii Virtual Console --  This platform is active too, with SNK's Neo*Geo one-on-one brawling classic The King of Fighters '96!

DSiWare --  2 games are available for the DSi and 3DS.  Candle Route is a colorful casual puzzle game, where the player must collect candles and find each level's exit in a limited number of moves; the hero is a little flame, and the game takes place in Crayon Castle, so somebody's probably going to find their Burnt Sienna in a messy little puddle.  Ace Mathician (try saying that five times fast) stars a Koala bear who must move platforms to gain access to fruit, by entering mathematical formulas.  What I like about this concept is that, unlike most math "education" games which focus on computation drills, this one actually uses the equations to affect the game world -- ideally, kids can gain an appreciation for math, something that's always been hard to inspire.

3DS eShop --  A bunch of new 3DS games all of a sudden - 4 in total.  Johnny Kung Fu pits the player's hero against Mr. Wang Gang in what sounds like a very 70s experience - it even does something new as retro-inspired games go, with limited-motion Game & Watch LCD matrix-style rounds included.  Sweet Memories: Black Jack features simulated gambling and suggestive themes for its T rating, as the player plays blackjack with attractive girls.  There are also two more 8-Bit Summer releases, both from the Game Boy era -- Kirby's Pinball Land and RPG The Sword of Hope II, which combines traditional combat and level-up mechanics with some rudimentary adventure game puzzles.

XBox Live Arcade -- Three new titles this week.  Quantum Conundrum is a time-traveling first-person puzzle/platform game, with lots of switches to pull, pitfalls to avoid, and dimensions to explore, with creative direction by Kim Swift (Portal).  Frogger: Hyper Arcade Edition is another vintage coin-op update, bringing Konami's road-crossing amphibian into the fast-paced, skin-swappable, particle-spewing modern era.  And PopCap's Zuma's Revenge! is more casual ball-banging fun; sorry, the official marketing term is apparently "ball-blasting action," which sounds much less entertaining but still kind of smarmy.

PS3 on PSN -- Three new titles here. Quantum Conundrum and Frogger: Hyper Arcade Edition also hit the PS3 this week. And Rainbow Moon is an old-fashioned isometric turn-based RPG that's sure to call Grandia to mind.

Notable on PC -- The Steam Summer Sale is on!  Ready your wishlists and your wallets!