STUBBJAX
PROFESSIONAL VIDEO GAME DEVELOPER
FIEND LEGION
Fiend Legion began development in February of 2017 with a single programmer and artist before I joined the team five months later as the Game Designer in July of 2017. My initial goal was to take the existing ~20 cards we had – half of which weren’t implemented and the remainder of which were only distinguished by different combinations of stats at the time – and effectively design an entirely new roster of cards (using the existing artwork as inspiration) with new skills and abilities to expand the game’s depth.
About a week or two after joining the team, having been tasked with implementing the new card designs and the features and mechanics required to support them, I ended up taking primary responsibility of managing and updating the game client. I also went on to assume responsibility of the game server when the original programmer left the team in January of 2018.
Over the next few years, I ended up developing most of Fiend Legion’s design and defining gameplay features, including over 150 card designs, primary game mechanics such as resource management and unit skills, abilities and status conditions, as well as back-end features such as game lobbies, chat, rankings, game sessions, achievements, quests, match history, challenges, coupons, inventories, rewards, player profiles, friends, notifications, in-app purchases, and more.
The game client was developed in Unity using C# and the game server was developed using a combination of Go and SQL. The server was deployed on a remote Linux-based cloud server hosted via AWS, and used an asynchronous TCP framework known as Tao with the GORM framework for interfacing with the SQL database. As I do not have access to the original server code since leaving the team in 2019, I rewrote a portion of the game server using C# in late 2023 as a personal challenge and to experience the game again.
A broad overview of the game’s features and mechanics is provided below.
Collection
Fiend Legion features a Collection interface that allows players to construct decks containing the various cards they have collected throughout the game. A deck is what a player brings into a match and from which cards are dispensed to the player’s hand at the start of each turn.
A deck contains 30 slots, however some cards – typically the more powerful cards – take up multiple slots.
Card quantities are not shared between decks. If a player has only one Cleric, they can place that Cleric in as many different decks as they like. A player can have up to 255 decks.
The Collection features a Disenchant mode where cards can be added to a special deck and recycled into Shards – a high-tier currency used for crafting new cards. A card cannot be disenchanted more than the maximum amount contained within any decks.
Shop
Fiend Legion features a shop where card packs can be purchased using the in-game currency, Coins. There are three packs to choose from, with each pack containing 1, 3 or 5 items, respectively. A collection of Shards is sometimes returned instead of a card, which can be used as an ingredient to formulate new cards.
The shop also includes a coupon-redemption feature that allows players to type in codes to receive special gifts or rewards. Coupon codes are typically limited to a particular time frame or quantity, can only be claimed once per player, and are only distributed for special events, such as launch day, Halloween or Tokyo Game Show. This is typically the only way of acquiring special-tier cards.
Game Lobby
Fiend Legion features a game lobby where players can congregate, chat, and host or join games. Players in the player list can be selected to view their information and statistics or be sent friend requests or muted. A game room can be entered by selecting it from the games list.
The lobby chat features an extensive censoring system that humorously changes bad vibes into good vibes. For example, “lick my anus” is replaced with “view my afro”.
The chat also supports several commands, such as !time to in-line the user’s local time in a message, or !discord for a link to the community Discord server. The last 100 chat messages are cached on the server.
Rankings
Fiend Legion features a rankings system that represents a player’s prowess and mastery of the game. Players earn or lose points by playing matches, relative to the rank of the participating players based on the Elo rating system. A lower-ranked player has a lot to gain from defeating a higher-ranked player, and vice versa.
Players can access a global rankings leaderboard that displays how many points each player has accumulated throughout their time playing the game.
A player can also view their match history via their profile, along with the number of points gained or lost for each match. A player’s rank point total is derived from the sum of all played matches.
Seasonal rankings with respective rewards were planned features, but did not make it into the final version of the game.
Achievements
Fiend Legion features dozens of achievements that can be completed in exchange for rewards. These rewards typically consist of the in-game currencies, Coins and Shards, but some achievements can unlock particular cards or packs as well. Some achievements can even unlock special cards that cannot be obtained by any other means.
While several achievements are typical accumulation milestones such as days logged in, matches won, win streaks, etc., there are many interesting achievements that require players to really test their skills and knowledge and explore the game’s mechanics. Many achievements also have prerequisites, such as the 10-win streak achievement that only becomes available after the 3-win streak achievement has been completed.
Friends
Fiend Legion features a robust friendships system that allows players to send, accept and cancel friend requests. This can be managed from the friends interface, or when viewing a player’s profile.
A player’s profile can be accessed everywhere throughout the game where a player is listed, whether it’s in the lobby, global rankings, match history, or even in a match. Players can also be searched by name.
Friend notifications appear in the bottom right corner of the screen when respective activity or events occur, such as going online / offline, entering a match, match-making, accepting a friend request or receiving a message.
The statuses of a player’s friends can be viewed in the friends interface, and display whether they are currently in a match, challenge, lobby, room, etc.