Introducing Runes of Runeterra - A Love Letter to Riot Games

This was originally a reddit post:

http://www.reddit.com/r/leagueoflegends/comments/2m7ovq/introducing_runes_of_runeterra_prealpha_a_digital/

But I've copied it here for safe keeping and future reference.

I've also included [this list] of games that I've played in the past 6 Months, since a link to this page was submitted as part of an application.


TL;DR: I made a game and i'd love for your guys to play test it and give me feedback. If you want to avoid reading the wall of text and get straight to checking it out, there is a section right at the bottom of this post called Without Further Ado that you can skip to. However, if you’re interested in the design/development process then I encourage you to read on! (Plus, you're probably going to want to read the rules section too)

Hi Reddit!
The deadline for Game Design internship applications to Riot is fast approaching, but i'm based in London and likely ineligible to work for Riot since they don't usually support Visa applications. However, since I love Riot and League, I built a big mushy love letter to Riot in the form of a card game to deal with my sorrows.
Over the past 6ish weeks, i’ve been working on a project called Runes of Runeterra or RoR for short. Its a card game based on our favourite pastime: League of Legends. I am definitely not the first person to design a card game based on LoL, but gosh darn it I love Riot so much I went ahead and made one anyway. Take a look!




A Brief Summary of the Game

Runes of Runeterra is based on the premise that something extraordinary has happened during the summoning process and you, the summoner, have temporarily been granted an unstable amalgamation of all champion abilities.
RoR is a 1 vs 1 duel. You build a deck out of individual champion abilities, perhaps from your favourite champions or based on some theme or strategy. Then, you take turns to rain glorious magical death upon each other until someone dies.
The game is designed such that games can be over very quickly if you can execute your strategies without hindrance, and so ideally it’s played as a best of three.


Rules

Since I don’t want to force you guys to read, I made this video roughly explaining how the game works:


Note: Upon watching it myself, I realize making the video at 6am probably wasn't a great idea. I apologize for my exceedingly monotonous voice, I really shouldn't have pulled an all nighter to try out the new Summoners Rift (for the record, it was beautiful and therefore \all #worth).
I've also included a written summary here:
RoR is played on a small board with a 7 Slot “Lane”. We place 1 token for each player in the middle of the lane, with 1 space between them. Each player brings to the game a ~40 card Deck, and a ~10 card Passive Deck.
A game of RoR then plays out as follows:
  1. Flip a coin to see who goes first.
  2. Both players draw 4 cards from their deck.
  3. Players chose 1 “Passive” card from their passive deck. This is an effect which persists throughout the round, augmenting playstyle from round to round.
  4. Take turns until either player is dead.
  5. During each turn:
    1. Draw a card from your deck
    2. Spend up to 3 action points by:
      1. Moving Left or Right along the lane (Costs 1 Action Point - 2 if Slowed)
      2. Playing cards (Must be in range, each with different Cost between 1 and 3)
      3. Performing a basic attack (Must be in melee range: On the same space - Costs 1 Action point)

Card Types

Cards have different types which alter their behaviour. Spell cards are the most basic, dealing damage if you are within range. Skillshot cards are typically more powerful, but can be dodged by discarding any dashing ability.Melee cards are similar to spell cards, but add to your basic attack damage, and require you to be in melee range to use. Buff cards augment your play for a specified duration.


Effects

There are some standard card effects in the game such as Slows, Snares, and other CC (if you are familiar with hearthstone, these are abilities like Charge or Divine Shield, which repeat often and are universally understood) as well as more sophisticated or complex effects. These are described on the card, along with relevant card stats such as damage, range or buff duration.


Design & Development

My initial designs were quite different to the current one. Initially the game solely consisted of play-and-counter rapid-fire ability spamming. With no concept of range or cost. Here are some old mock-screenshots for it:


I felt that this was too simple and didn't have enough space for varying strategies, so I recreated the game introducing this lane concept, I still wanted things to be simple but I wanted a system which could afford more strategic. I went through several design iterations, play-testing things with anyone who’d give me the time using paper cards and pennies as tokens.


This was where the concept of Passives was introduced, to vary the gameplay between rounds. Once the game rules were a bit more solid and the glaring issues with the design were ironed out, I got to work on development.

Development & Card Ability Ruling Definition Script

I decided to take this as an opportunity to learn Unity3Ds new UI system (4.6 Beta). I built a version of the game using the engine & C#. The card sprites were created using screenshots of the game client and a combination ofPhotoshopFireworks and Illustrator.
Developing a game which could handle hundreds of different unique card effects proved to be a challenge, since there are more than 600 Champion abilities It seemed infeasible to implement them all individually, so I created a small “Card programming language” called CARDScript (Card Ability Ruling Definition Script). Here’s a sample:
IF USER HEALTH <= 5 {
  USER ADDS 1 “Mystic Shot” TO HAND
  USER HEALS 2  
}
This is a card effect which when activated will add a mystic shot to your hand and heals you for 2 health (provided that your health is 5 or less). When fed into the game, this description will compile into a internal representation which does the correct stuff, and produces an in-game card description which makes sense to humans:

For those of you who are more technically inclined and interested in this project, I would be happy to write a CARDScript tutorial so that you can add cards to the game yourself. It’s not super hard to do, so just let me know if thats something you’d want to see.
Anyway, i’ve gone on a bit and its 4 AM over here in London, so:

Without Further Ado!

I've made an early Pre-Alpha version of RoR available below, it currently only has a small subset of cards (Two basic decks), single round play and no Passives. It features a very basic AI and no tutorial, you can play it in your browser here:
For an instructional video demo, click here:
I would advice you watch the demo/tutorial video before playing. But if you aren't bothered, feedback will still be useful for me to know what things are most confusing initially, so that I can build the tutorial with those things in focus.


Feedback

I would love to hear feedback! If you have some, feel free to comment! I would like to say that, even though this is a Pre-Alpha build, I would still be very grateful if you could point out things which bother you.
There are some smart folks who might see a piece of temporary artwork or a small glitch and dismiss it as “It's not even alpha, its to be expected”, but It would really help me out if you went ahead and pointed them out to me anyway. It helps to give me an idea of what the most important/obvious things are and what things need my attention the most.


Thanks

Thanks for taking the time to read this, I hope you like it! In case you are wondering how I learnt this stuff: i'm a 3rd year BEng Computing student studying at Imperial College London, (Hopefully moving on to a MA in Game Design next year!) and I like building games in my spare time. Most of this stuff is not super difficult once you've got a bit of programming knowledge (except maybe the CARDScript compiler, but there are tools that you can use to overcome the big hurdles there). If you guys have any questions about the dev process feel free to ask!