AURO’s Game Modes and the Single Player Evergreen XP System

It’s been awhile since I posted a real nitty-gritty game design article about AURO and what’s going on.  Right now, AURO is stuck in development hell, as we’ve mentioned, largely due to two factors: the fact that we didn’t build the game with serialization in mind from the get go (we’re a bit bush league), and the fact that we are using Haxe, which it turns out has caused a ton of technical problems.  Anyway, this isn’t a technical programmer-y post, because I’m not a programmer and I really don’t know enough about that stuff to speak in more detail about it.

What I want to talk about today is AURO’s game modes.  Partially, I’m writing this for my own benefit, so that I can clearly state it out loud for myself and make sure that everything makes sense.  With AURO’s development being held up, I have some time to think about these modes and hone them.  In particular, I’m proposing a change to TRIALS mode – the other two modes are pretty much locked down and have been for months.

 

Story Mode

This mode is probably the easiest to explain and understand, which is great, because it’s also the first mode players should play.  It functions as both a tutorial (actually, there is an optional hand-holding tutorial in there too), and also an easy, explanatory mode.  The player has to travel through nine dungeons, meeting monsters who talk, getting advice from Quillsh, with several cutscenes along the way.  There’s a final boss battle at the end, and then a final cutscene.  If you’ve played videogames, you know the drill.

The goal in this mode is completion, and it’s designed to teach you how to play the game, be the most visually impressive (you see the most environments, special monsters, cutscenes, etc in this mode), and generally introduce you to the world and mechanics of the game.  Therefore, once these things have been accomplished, it makes sense that you’d move onto other modes.  So Story Mode, while still technically infinitely replayable (it still has randomized maps and such), is designed to be played once or twice, and then moved on from.

 

Match Mode

This is the primary way to play AURO.  In Match Mode, you start a game on a randomly generated level.  The levels generated by Match Mode can be really crazy – they can be something as simple and benign as a few rats, or something as horrifying as 2 Yetis, 3 Liches, 3 Curse Kids and a Troggle.  That sounds pretty unfair, until you realize that this mode is actually a multiplayer mode – well, sort of.  It’s multiplayer in the way that golf or bowling is multiplayer.  The randomly generated map that the game makes for you is saved, and the game uses a match-making algorithm to find an opponent of similar skill.  Then, it sends that opponent your same game, and he plays on that map as well.  Your scores are compared, and a Round Winner is pronounced.  Then you do this again, with the 2nd player now going first.  The first player to get 2 Round Wins is the winner of the game.

The game has an online leagues/ranking system similar to that of other popular online games.  You can challenge friends for fun, play pass  & play games, or even play a Practice Game that isn’t recorded.

The goal in Match Mode is competitive.  You’re trying to beat another player, and rise through the ranks, just as in Starcraft or Street Fighter or something.  Also pretty simple and easy to understand.

 

Trials Mode

It’s interesting.  Trials Mode is actually the classical mode that we had always envisioned being the primary mode of the game, but ironically it’s actually the hardest system to develop good rules for.  What I had been planning – and what may still ship with version 1.0 given that we’re already like 1,000 months behind schedule – is that it’s a simple “beat your highest score ever mode”.  So if 3 years ago you got a score of 379, you’re still sitting there now trying to beat that high score.  I have a few problems with this approach, though, which is why I’d like to change it.

For one thing, I don’t think “beat your highest score ever” is a reasonable goal.  Once you get a super-high score, you may simply just never be able to win again.  Also, there’s actually a bit of a weird thing where any points you get above your previous high score, are actually just kind of screwing you over in future games.  One person pointed out in some forums the fact that it’s kind of optimal in a weird way to beat your score by 1 point and then kill yourself.  I agree that’s weird.

I also think it’s bad because it necessarily means that players who get better get punished by having longer games.  A long, long game isn’t a problem because AURO isn’t a blast to play.  It is – but the fact remains that games tend to have some ideal length based on the length of their longest arcs… and AURO’s arcs are generally very short.  AURO is a super tactical game, and not a very strategic game.  So we want games to last somewhere between 5 and 20 minutes – not hours.

So because of this, a much better solution is actually to have the goal always be “Get 100 Points”.  But how do we do that in a way that’s evergreen?  Once the player gets 100 points, what else is there to accomplish?

 

Introducing the Single Player Evergreen XP System

I’ve designed a system, which I’m using in AURO, EMPIRE, and also another unannounced future project, which uses an RPG-ish experience points system to turn a single-player, score based game into an evergreen competitive thing.

Basically, the game generates a really easy game for you, and says “get 100 Points in this!”  If you do so, you gain experience points.  If you reach a certain threshold of experience points, you “level up”, and then the game starts generating a harder game for you.  Basically, there are infinite Difficulty Levels, which you don’t get to choose, but you move up through by playing and winning games.  Losing – failing to get 100 Points – also will result in losing experience points, so if you lose a few games in a row, it might de-level you to an easier Difficulty Level.  So basically, it’s like “dynamic difficulty adjustment”, but before the game begins, so none of that silly punishing-you-for-doing-well business.

The game gets harder as you level up by increasing the number and variety of monsters – not by increasing the target number of points.  In addition to this, points that you get above 100 will give you some bonus experience.

Interestingly, I learned this lesson after releasing EMPIRE, another game I designed for another company, and we’re working on that problem for version 1.2 of that game.  You can read about that over at the EMPIRE blog.

 

Anyway, them’s some thoughts on the matter of AURO and what’s going on with it.  In other news, I’m working on some of the last music I have to make for the game, and Blake is as well.  He’s also re-doing our title-screen art, crazy enough, to make something more dynamic, since we have a bit of extra time.

OTHER NEWS:  100 Rogues just had a nice update that fixed a lot of bugs and level generation!  If you haven’t played it before, now’s the time to go check it out!

10 Comments

  • 1
    alastair
    11/25/2013 - 3:11 am | Permalink

    Yay! Sounds a lot better.

  • 2
    11/25/2013 - 3:22 am | Permalink

    I’m so looking forward to seeing this system implemented into Auro and Empire!

    Besides: Finally playing 100 Rogues on iOS again and having LOTS of fun. I really haven’t played that one enough at all due to the past problems. :)

    • 3
      11/25/2013 - 5:17 am | Permalink

      Yay! Glad you like 100 Rogues. That was another huge labor of love with a tumultuous past. I’m glad that it’s finally in a really good place now. Keep me posted on what you’re doing with it!

  • 4
    John
    11/25/2013 - 3:42 am | Permalink

    Is their going to be a handicap system for match mode?

    • 5
      11/25/2013 - 5:18 am | Permalink

      I assume you mean for like, friendly games or something? For normal match mode, I don’t think handicaps will be needed since there is a matchmaking system. However we might add a handicap system for friendly/pass&play games, post-release. Could easily do it by tweaking health amount I guess.

      • 6
        John
        11/25/2013 - 6:18 pm | Permalink

        It’s just nice to have a way of getting interesting games when you can’t find someone of your skill level.

  • 7
    Shiser
    11/30/2013 - 6:47 am | Permalink

    I don’t completely have my mind wrapped around this idea, but it’s after 4am and I wanted to get what’s in my brain down here before it melts, because I’m not getting any sharper here :-)

    So Keith – what is the Match mode matchmaking based on? Because your Evergreen XP concept plus matchmaking (with a sprinkle of inspiration from John’s question) brings to my mind the possibility of a system combining both, based essentially on Elo rating. (en.wikipedia.org/wiki/Elo_rating_system).
    Say the player starts with the Elo standard rating of 1400 (most likely transparent to the player, because that’s a confusingly arbitrary number when not explained). Leveling up in Trials mode raises the difficulty of the level generated. We can rate that difficulty with an assigned Elo score. Say that, rather than progressing in a strict difficulty progression, instead you would get a generated level with a difficulty that was ± say 100 points. This would lend a little bit of variety to the progression, and more importantly keep thing from getting frustrating while the player is at the edge of his/her competency. With a flat progression you face leveling up to the top of your skill, then frequently losing games and XP until you drop a level and get levels you can beat again.
    But with a wider range of Elo scored difficulty levels, you can get levels slightly easier to your Max skill, but they give you less advancement (based on the Elo formula comparing the player’s Elo score to the stage’s difficulty Elo rating). You can also get a level above your current skill; fail and you’ll lose some rank, but not a lot. On the other hand, when you improve, or hit your groove during a harder level, you are rewarded with even higher ranking points than when you just manage to score 100 on an “evenly matched” level. But at the max of your skill, you should still be able to eke out progress, or at the very least a feeling of progress, rather than frustration.
    So on to the Match mode. Now we have a competition-ready matchmaking metric. If available, we will always match you to as close an Elo rating as possible. But if a close match isn’t available, there’s facility available to fairly rate the match without having to handicap it – a higher ranked player loses more points for losing to a lesser ranked player, and gains less for winning. Conversely, as a lower ranked player, you gain big for beating a player out of your league, with less risk associated with losing. This also lends itself to a fairer friendly play concept without having to balance and tweak a handicap system (though I’m not really sure how a pass & play would work as only the owner would be “logged in” to an appropriate rating :-).

    tl;dr – an Elo rating based system would allow for human opponents in Match and stage difficulty in Trials to both accordingly contribute to an Evergreen XP system.

    (My rambling may have gotten a little incoherent, so please let me know if I stopped making sense somewhere.)

    /Oren

    • 8
      11/30/2013 - 12:41 pm | Permalink

      Firstly, yeah – I was gonna use ELO for matchmaking. If you know a little bit about that maybe you can help us with setting that up!

      I think it might be hard to connect the single-player XP system to the ELO system though – like there might not be good equivalency there. People playing online games tend to push the “median skill level” up a lot, and obviously other players get better to counteract that. There’s a self-balancing thing going on there.

      Basically I feel like, yeah, this would probably be possible, but I don’t really see why we’d need to, and I feel like it might cause there to be some weird loophole type behavior players could do.

      Like let’s say tons of players get REALLY REALLY GOOD. But you don’t wanna play against those really good players, instead you just do trials mode. Is it really fair that you could become #1 on the ladder without playing anyone else? Or are you just saying that it would work the other way: players who have high ELO ratings in Match get harder levels in trials?

      I am actually still not quite sure that I totally understand what you mean, though.

      • 9
        Shiser
        11/30/2013 - 4:25 pm | Permalink

        Yeah that’s exactly what I mean, if you build up a very high rating in Trials before playing your first Match game, then you are still matched at an accordingly high tasting for that match game, rather than beating up on beginners until you sufficiently drive a separate Match rating up to match your skill level.
        Similarly, someone who plays Match all the time will be able to switch over to a long-neglected Trials mode and get a more appropriate difficulty level. Otherwise, a player that gets very good playing Match might feel effectively locked out of Trials, if it’s stuck at a level that’s boringly easy for them, and they don’t want to bother spending all that time building up the XP necessary to bring the difficulty up to an appropriate and fun level.
        Basically it would provide a way to provide a consistent challenge between Trials and Match, that might otherwise fertile a barrier to entry for those modes for players that primarily focus on one mode or the other.
        That would pretty much be the only benefit to such a system that would justify the PITA of programming it, and it certainly wouldn’t have to be in place for 1.0. We could use a simple form of the evergreen XP in Trials, refine and perfect the matchmaking Elo, then adapt Trials to use the Elo once it’s perfected.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>