Ananias 2.4 released

Decided to pack a new version, this one contains small but important gameplay tweaks, seeking to make the Arcane, Hunter and Alchemist classes be more fun to play. Full changeset available below.

Screen Shot 2017-06-19 at 12.07.25 AM

Gameplay

  • New skill for Alchemist: Can use reagents multiple times
  • New spell: Momi Gyr (Create Arrows) first circle of Matter magic. Creates a pack of arrows (quantity depends on the magic power)
  • New spell: Rew Ram (Attack self) first cirlce of Mind magic. Makes an enemy attack himself once (works as a ranged attack for wizards)
  • Remove separate spells to recover blunt and edge weapons, add weaker variation of repair weapon
  • Make Hunter start with Momi Gyr spell.
  • Make Arcane start with Rew Ram spell.
  • Reduce MP cost of Kam Va (enchant wand) spell.
  • Change Hunter magic schools to second circle of life and matter.
  • Change Hunter starting magic power to 1.
  • Make starting wands have full charge
  • Cap combat to 13 max

UX

  • Allow closing the action dialog (canceling selection)
  • Tweaks on help screens

Bugfixes

  • Create sprites in case they don’t exist, for the gameover screen
  • Fix issue with magic power 0 when used in empty room
  • Prevent targeting yourself on ranged mode
  • Add key captures for arrows to prevent scrolling when embedded.

Plans for the future

I won’t have a lot of time next month for Ananias, however I have a big revamp in mind related to the structure of the world, and the plot of the game. Also pending are some missing steam achievements as well as fixing the steam overlay and finishing the keyboard command (although 90% of the game is now playable using a keyboard).

Ananias 2.3 released, challenges and steam achievements


A lot of work went into adding support for Steam achievements using the excellent Greenworks library. This version includes 37 achievements and there are 10 additional ones I couldn’t add due to the API for progressive achievements not being available on Greenworks; the addition doesn’t look overly complex, however I would need to set up a complete dev env for it (right now I’m using their precompiled binaries).

The challenges are not steam exclusive, but they are only tracked right now on Steam (that means you’ll still see when you complete them on any other version, but they won’t be added to your profile).

I also bumped the version of nw.js to 0.20.3 (I think I had to do it in order for greenworks to work). This increased the size of the downloadable packages for desktop quite a bit.

I think I’ve ran out of Steam to work on Ananias for the moment… it’s been such a long time, and I’ve got a couple of projects to work in (for $$$) and also the rebirth of Expedition keeps haunting me day and night. Although the backlog is filled with feedback from players, I don’t think I’ll be able to tackle their suggestion for some months, so it’s now on maintenance mode where I’ll only be fixing critical issues.

This version also includes some small but important gameplay changes, see below for complete info.

Check out version 2.3.0!

Achievements

  • Add support for Steam achievements via Greenworks
  • Add 19 challenges (all linked to Steam achievements but also tracked on the other versions)
    • Assault, Flintstone, Brave Chamo, “That comes handy…”, Caretaker, Shepherd, Die Hard, Dungeon Explorer, Breaking stereotypes, Burning stereotypes, “I gotta be the very best”, Dungeon diver, Sword collector, Super Shepherd, Die Hard II, Massacre, Legendary Shepherd, Genocide, “Was this supposed to be hard?”
  • Add 16 “marks” as Steam achievements
    • Discover the ruins of Ananias, Discover the Caverns of Chaos, Discover the Underground Lagoon, Discover the Crystal Caverns, Hero of Alchemy, Hero of Wizardry, Hero of Chivalry, Hero of Archery, Hero of Hack’n Slash, Hero of Soul, Hero of the Elements, Hero of the Mind, Hero of Humility, Discover the Lair of the Ancients, Discover the Darkness Abyss, Back to the roots
  • Add 2 steam unachievements
    • “Are you there?”, “Oh well…”

Gameplay

  • Allow shooting over friendlies
  • Show health description for enemies on inspector
  • Prevent levels with far too many “big rooms”
  • Increase max carry capacity to 30
  • Drastically reduce chances for boosted Combat and Strength when fully exploring levels.

User Experience

  • Add intro track to intro

Still pending…

  • Complete support for Steam overlay
  • Keyboard support for:
    • Using multiple selection dialogs
    • Checking player and pet stats
    • Navigating thru menus
  • Additional Steam Achievements for Marks
  • Detailed GFX for weapons and armor.
  • Adding more plot and may be even random stories.

Ananias introspection: Content Creation and Balance

This new series of blog posts will be based on /r/roguelikedev FAQ Fridays, a long standing series of discussions where roguelike developers share their techniques and experiences around a single topic.

FAQ Fridays Revisited # 6 Content Creation and Balance (original)

How do you decide what mobs/items/abilities/terrain/etc to add to your game? In any good roguelike content creation is inseparable from the concept of balance, so your methods of balancing content are certainly within the scope of this discussion.

Ananias has a fairly static collections of monster races. They were first added based on the original rogue monsters and with a single criteria on mind: each race should have an unique feature or ability.

Sometimes implementing an ability is costly and there’s the temptation of parameterizing it so it can be reused with slight variations, but I think it gives more character to the monsters having their distinctive skills. This means Ananias doesn’t have Ice, Fire, Water, Earth and Thunder dragons whose only distinction is the “type” of their attacks, I’d rather have a single Dragon monster distinguished by a strong ranged attack.

The uniqueness of an enemy race is not defined only by their active skills, their stats are also put in consideration. In this case they are assigned relative values first (i.e. orcs have high attack and medium hp, Lizardmen have extreme high attack and low hp). This is balanced so that races without cool active skills get some advantage stats-wise.

The dungeon is then split into 5 areas with increasing difficulty. Mob races are grouped thematically on these areas and then assigned final values for their stats by scaling their relative values to the difficulty level of the group they are in. In order to do this, I do a projection of the average stats for the player on each one of these areas and then I apply some simple general rules (for example, a strong monster may kill the player in 5 hits, a monster with low HP should be killed by the player in a single attack). These define ranges within which the stats of the final monster will be placed.

Items follow a similar model. For weapons and armor I started with a list of preexisting graphics (the artist made them on advance for a different game using his own creative criteria) then based on they appearance I assigned them relative values (high/mid/low) for damage and integrity (how likely they are to break), and then I grouped them on power tiers to define their final stats. They also get assigned a generation weight representing how likely they are to be added to the levels, this value is used in level generation along with the power tier to select the items to be added.

Player abilities are guided by the same principles of uniqueness. Ananias is strongly classed, and each class has unique passive skills that guide players into adapting different playstyles for each one. The process for player classes is similar as with the monster races, they are balanced based on their skills and relative values for their stats. (Except for the shepherd ;)).

On a final note, I’d like to say that while seeking to balance the different stats is worthwhile (to prevent your game from being utterly broken), it’s also to some point a futile exercise, since the variability of the game and the player’s choices create a lot of unpredictability, specially as journeys progress in games which provide long and open experiences. This is not necessarily a bad thing, and a little bit of unbalance is not always harmless since it allows the players to find strategies and challenges within the game.

 

Ananias on IndieGala’s Hump Day Bundle

Ananias has been included on IndieGala’s hump day bundle #36 which runs until April 12! If you still don’t have Ananias it’s your chance to get it along with a mix of other nive interesting Indie games you can play on Steam. Click here for more info.

Even if you already have the game, I recommend you check the bundle and get it if you want, some nice games there 🙂

indiegala

Ananias2600? – Setting up a simple Atari 2600 dev environment on 2017

So, I got my retro gaming setup at the office, and a friend suggested if I was porting Ananias to the Atari 2600. I promptly replied I had no time for such thing.

Atari 2600 at work

But then, the project picker spoke. And the project picker is wise and fair, and we must obey his bidding.

I started following the instructions here, but they are super old and mostly for windowzer, so I had to dig around a little bit. Here are some instructions which can be helpful if you want to start your career on Atari 2600 game development (who knows, may be Atari will hire you…)

Before proceeding I should mention that this is just one shortcut for real hardcore Atari 2600 development. It’s definitively not the most optimal way to create your games (in terms of resources handling and exploiting the limited power of the device), but it’s enough to give you a sample on what it entails (then you’ll jump ahead and become an elite ASM coder).

Install dasm

The assembler takes ASM source code and transforms it into BIN files which can be read by an emulator or loaded into a cartridge and a real Atari 2600.

For mac it’s available via homebrew so just…

 brew install dasm

Get an emulator or something to test the games

You need to run the games, right? Stella works perfectly for starters if you can’t afford to get a Harmony cartridge or you don’t have an Atari 2600. Once your game is gold, you can have AtariAge create a custom cartridge for you.

Get a working build of Batari Basic for your modern OS.

That one was tricky to find, I got mine from here and it works perfect on macOS Sierra.

Run the install_ux.sh script, note that PATH modification may fail for some reason on macOS so you may need to fix it manually (since the script is meant for linux).

Verify your build pipeline

Use the batariBasic compiler with one of the included samples (say ../2600basic.sh zombie_chase.bas) it will generate .asm and .bin files

Open the .bin file on Stella

Mess around a bit

Take one of the .BAS examples and try to understand what the heck is going on. Move things around, recompile and check


That’s just the beginning

batariBasic makes things much simpler than doing straight assembler, but that doesn’t mean it’s going to be a walk in the park. There’s some reference material online and even a very handy tutorial for the kernel included with bB which is what simplifies development so much. The other great challenge is working with the limitations of the 2600 which is actually what makes it fun:

[…] As if all this weren’t enough, the VCS could only display five interactive objects at any one time: two “player” sprites, two “missile” sprites, and one “ball.” This was more than enough for replicating Pong and Tank, the popular arcade games of 1977. It was useless for anything even slightly more complicated, such as Space Invaders.

Of course, software developers later found tricks to overcome these limitations allowing the machine to do things it was never meant to be able to do, but my goal will be to work within the original constraints without pushing it too much.

 

The Kramora Times # 6, Ananias at the GDC, version 2.2

This is the sixth edition of The Kramora Times, you favorite and most reliable source for all Ananias-related information. You can now subscribe to receive this newsletter in your email too!

Lots of things have happened so let’s begin!

Version 2.2

A new version is available, it comes with important fixes and gameplay changes, as well as mostly complete keyboard support.

Following is the changelog:

Gameplay

  • Make pets always obey commands.
  • Make enemies check if player is waiting at the other side of the room before walking into it.
  • Remove penalty for damage for ranged weapons and wands when low on ammo / charges.
  • Reduce power up for boost elemental magic.
  • Change MP cost of elemental spells

User Experience

  • Remove force sound disable from mobile, make it an option on the launcher
  • Preserve preselected layout on mobile if game saved
  • Prevent casting spells when character has no magic power.
  • Make Portrait be the default mobile mode for browser (Instead of Chibi)

Major fixes

  • Prevent extremely long generation times for levels with twisted corridors
  • Prevent inconsistent HP value when casting spells with no magic power

Keyboard UX

  • Ranged attacks using spacebar
  • Using, throwing and dropping items from inventory
  • Mixing reagents on the inventory panel
  • Scroll entity panel and book panel with arrows
  • Use enter key to advance conversation or close dialogs
  • Use ESC key to close entity panel, book panel and inventory
  • Changing tactics and pet command with keyboard

Ananias at the GDC Expo 2017 in San Francisco

Last week I was at San Francisco at the GDC Expo, where I was able to join 11 other Colombian companies in the ProColombia booth and show Ananias to developers from all around the world.

20170302_104225

I got some important feedback for the game and made some good contacts for potential future work. We also had a small roguelike developers meetup where I could share the current status of Ananias to other fellow developers and friends including Glenn Wichman, one of the original developers of Rogue, Tarn Adams of Bay12Games/Dwarf Fortress and Jim Shepard of Dungeonmans.

meetup

I also got to meet these people I have never seen in person:

  • Kornel Kisielewicz: Developer of DoomRL and Jupiter Hell, and a great inspiration for all my roguelike projects.
  • Ashton Morris: the composer of the soundtrack for Ananias
  • Björn Ritzl: a long time collaborator for roguelike projects.
  • Kike Fuentes: Teravision Games mastermind, lots of gamedev industry experience.

Lord British plays Ananias

I also had the chance to attend the Ultima Dragons 25th Anniversary Bash, four awesome days full of cool Ultima geekness including having Lord British play the game. He said it was fun!

20170225_200233

First month on Steam and iOS

We keep doing well in Steam and iOS but we need more reviews! Please post a review there if you like the game, it’s really important in order for more people to notice the game.

Upcoming Features

  • Full Keyboard support: We are almost there, following are the pending things which will be tackled in priority order
    • Using multiple selection dialogs
    • Checking player and pet stats
    • Navigating thru menus

Some stuff still pending from last update:

  • Steam Achievements
  • Detailed GFX for weapons and armor.
  • Adding more plot and may be even random stories.

There’s been a lot of useful feedback! I keep integrating everything into the list of things to do so keep them comment coming!

First Boxed Edition

A limited run of boxed editions was done and some lucky individuals got to get their hands on them during my trip to California! there were two variants with one of them containing actual diskettes. Due to logistic issues I couldn’t get enough diskettes nor save the light Ananias edition on them.

20170225_191757

Some of the persons who received this edition:

  • Glenn Wichman: For creating rogue and thus roguelikes. Not much to say, Ananias is a roguelike so there’s a lot to be thankful for 🙂
  • Richard Garriott: For creating Ultima which is an inspiration to Ananias and most of my games.
  • Denis Loubet: Illustrator for most of Ultima covers and manuals, an obvious inspiration for out-game art for Ananias.
  • Ashton Morris: For creating Ananias OST.

An enhanced second run of this boxed edition will eventually be produced.

New storefronts

GoG.com rejected the game again citing the same reasons as two years ago. I got some useful feedback from them but it seems the game definitively is not a good fit for their store.

On the other hand the game is now available on the Humble Store, where you can get the game and support charity at the same time.