Wednesday, December 19, 2012

Novel game play mechanics in the roguelike "Tales of Maj'Eyal"

Yesterday I downloaded Tales of Maj'Eyal, a new rogue-like game that's just had it's first release candidate announced.

Rogue-like games take their name from the original Rogue game, an ascii, turn-based dungeon delver with roots that trace back to very beginning of video games and electronic computer history. They're usually heavily inspired by Dungeons and Dragons and Tolkien, have RPG elements and often permadeath (if your character dies - that's it - restart, which makes games far more tense, frustrating and rewarding).

The original Rogue.

Two of the more popular rogue-likes are Nethack (under active development since 1987) and and ADOM (recently funded on Indie-go-go for a facelift). Roguelikes are quite a lively genre of games, with a lot of interesting and experimental development, see the Doom rogue-like, or the cyperpunk roguelikes, vampire roguelikes, anime mech roguelike, space trading rogue likes, serial killer roguelike, there's a lot of healthy variation and experimentation.

Tales of Maj'Eyal

Tales of Maj'Eyal Rogue-like Innovations 

Tales of Maj'Eyal does some innovative things which I think are worth a closer look. It's not necessarily the first rogue-like to do any of these but it's does them all well.

1. It uses the Lua programming language

It uses a Lua-based engine because Lua is awesome, this means development can proceed far, far faster than something like Nethack written in C. It also allows easy to load modifications that can extend the game word. I'm a big Lua fan, so that's why I've highlighted this one!

2. Social elements

The game has some asynchronous online features, first you (optionally I think) have an online account that stores information about your character and game progress. You can share this with other people. It's like the profile page in an MMORPG.

There are online leaderboards.

By default you have a chat window on your screen with people chatting as they play the game.

You're notified when people die (and how) in realtime.

This all makes the game more competitive, social and makes the experience easier to share. Social elements are really quite important and because it has these, it would be very easy to monetise the game (though I don't think that's the plan)

3. Unlockable Content

When you first play the game half the races are locked - you don't know what they are, the same for the classes. As you play and achieve certain things in the game world, you unlock these starting options (there are also birth-options you can unlock which allow you to alter the story). This not only adds a sense of progression to the metagame while giving individual game-play-throughs more value, it also introduces a natural learning curve. Easier race / class combinations are available at the start, more exotic one's later when you have your bearing.

4. Achievements - which are social

There are various achievements in the game - and when you get one - it's broadcast to the everyone else playing. I think this encourages a number of behaviours
  • Achievements are more valuable, as they are social and demonstrate how good you are at the game.
  • Seeing other peoples achievements become unlock informs you about what achievements are available and encourages you to seek them out.
  • Provides progression and value beyond each single game.

5. Accessible interface and graphics

Most roguelikes are ASCII and use all the keys on the keyboard. As a roguelike player I found it natural to play Tales of Maj'Eyal with the mouse. Annoyingly some of the standard roguelike keys don't work (, - to pick up and that kind of thing). The graphics are passable and the rendering engine handles graphics that are larger than a single tile.

I'd love to see some of these elements extended - warping in other characters to help you with a boss (like Demon Souls), fighting other players previously killed characters and working characters that have done well into the game lore.

Friday, December 14, 2012

Playing around with Adventure Game interfaces again

I was thinking of maybe coming at Ludum Dare from an adventure game angle, so I've been playing around with interface code. This amounts basically to copying the Monkey Island 2 interface - down to the colour scheme :D Couldn't get quite the right fonts though which was annoying. If you know of a ttf font that looks like the Monkey Island 2 command buttons please let me know! :)

Here's some of the code:

Of course depending on the theme I may have to abandon my adventure game interface aspirations!

Sunday, December 09, 2012

Ludum Dare 25

I'll be taking in part in Ludum Dare again - this time I think I'll avoid spending an entire day on the intro sequence, as cool as it was! Hopefully I'll get some youtube videos up of game play.

I'm using the same engine as last time but I've rebuilt it, it's now much faster and more clever about when to reload assets during development. Last time I ended up wasting hours adding keyboard support, so today I'm going to make sure everything is up to scratch by getting my previous Ludum Dare entry working (it's very close already so that shouldn't take too long!).


Well it's the end of weekend and I didn't get my previous Ludum Dare entry compatible with my current engine but I've moved in the right direction. It shouldn't effect any features I need for next week (and I'll probably do some checks to make sure everything is ok).