Thursday, December 29, 2016

How to implement movement undo

It turns out that Skye still has a partner in crime on this project. I tend to keep to my hermitage, but from time to time, I feel it necessary to let people know I'm still here. Lately I've been focusing on building the code instead of the artwork, which is why there hasn't been much to show. However, I thought it might be interesting to talk about some of the design.

One of the most constructive bits of feedback we received from the Salt Lake gaming convention was that our movement system was not immediately intuitive. Because of that we decided to overhaul it and move to a point-and-click waypoint system similar to other tactical games. There are a few working parts to this, including the path finding algorithm, the grid system, the waypoints, and the actual movement. However, I'd like to focus more on the design of the waypoint system.

For those familiar with the fundamentals of programming, there is the concept of a stack. For those that know a bit more, there's another concept called the state pattern. A stack is essentially what it sounds like. You add things to the top and when you need something, you take it off the top, making it a "last in, first out" structure. The state pattern is a way to design the flow of a program. Essentially, there is one object that everything references and it delegates to state objects that behave differently. In order to implement a path (with waypoints) that can be undone, I employed a combination of these two concepts.

Here come the technical details, so if that makes you uneasy, feel free to stop here or skip to the last paragraph. Anyway, to start, I added an interface for what I refer to as an “action”. This action is essentially one of the state objects and any state in the state machine will need to have the same interface to its actions as the others in order for it to be reused. As I am using C#, the code looks something like this:


1
2
3
4
5
6
public interface IAction {
 void Act(Vector2 move);
 void Act(bool confirmation);
 ....
 ActionType GetActionType();
}


The Act() function accepts a number of different types of arguments. Each one will be implemented differently based on the state.
An example of one of the states might be something like this:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public class MovementSelection : IAction {
 private Vector2 location;
 public MovementSelection() {
  // Initiation stuff for this state
 }
 public void Act(Vector2 move) {
  // Check for stuff that might need to validated before the move actually happens
  // Now we have a move, so we need to store it and move to the next state
  location = move;
  ActionHandler.Instance.SetState(new MovementWaypoint(move));
 }
 ....
 public ActionType GetActionType() {
  return ActionType.MovementSelection;
 }
}


As you can see, the state is in charge of initializing stuff for itself, storing any relative data, and then moving to the next state if appropriate. It also can return the type of state it is for bookkeeping if necessary. Then the next state (MovementWaypoint) handles itself in a like manner. And of course different states will keep track of different stuff and behave differently.
Now you may be wondering where all of this is initiated from and where the main handler object comes in. One of the keys to the state pattern is that the states are essentially hidden from the rest of the application. The state handler and other states are the only ones that should know anything about states. Ultimately, the state handler becomes the interface to the rest of the application for this.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class ActionHandler : IAction {
 // The following makes this object a singleton
 private static ActionHandler instance;
 public static ActionHandler Instance { 
  get {
   if (instance == null)
    instance = new ActionHandler();
   return instance;
  } 
 }
 private ActionHandler() { /* any necessary initialization here */ }
  
 private Stack<IAction> stateStack;
 public void SetState(IAction newState) {
  // sets the current state or, for us, adds it to the stack of states that are used to keep track of state history
 }
 public void RevertState() {
  // Pop off the stack to have the previous state be the current
 }
 public ActionType GetActionType() {
  // get the type of the current state 
 }
 public void Act(Vector2 move) {
  // calls Act on the current state
 }
 public void Act(bool confirmation) {
  // calls Act on the current state
 }
 ....
} 


There’s kind of a lot going on here, so explain it a bit. The first part makes this into a singleton, which ultimately means that only one instance of this object will ever exist. I won’t go into too much detail on this concept, but this is important because we only want one occurrence of the state machine. The next part is the stack that I mentioned previously. This is used to keep track of a history of states, or in our case, moves. The MovementSelection state handles the initial selection and the MovementWaypoint state handles subsequent selections and can also close out the path. Since all of these states are kept track of in the handler, it can handle all of it and delegate calls to the states themselves. Then if we need to undo, we can just revert the state and have the previous state as our current.

The benefit of using a stack is relatively obvious as it provides a history of actions, however, the state pattern is another powerful tool. Instead of having to edit a lot of code that could potentially be in a giant if statement, we can just add a state and update who goes to that state and what that state’s behavior is. Additionally, the state pattern can be expanded to more than just the movement (hint: I used this for the entire battle flow). Anyway, I hope this has given some useful information to those curious about the process.

Tuesday, December 27, 2016

Dev Take Tuesday - A Small Tribute to Carrie Fisher

Like many others today, I’m saddened by the death of actress Carrie Fisher. As a huge fan of the Star Wars universe—including the movies, books, and video games—I first appreciated Carrie Fisher for her role as the iconic Princess Leia. But later in life I started to also appreciate her honesty and candor in interviews as she discussed her problems with mental health and addiction. I think it’s important for me to remember that she wasn’t just about unconventional hairstyles, creative insults, metal bikinis, or even her skill with a blaster. Carrie Fisher was royalty off the screen as well.

Image found on this Huffington Post article


While writing and developing the characters of Alkanaur, I’ve always known that mental illness would play some role in shaping their personalities and backstories. I’ve personally dealt with depression and anxiety, and people close to me have had even more acute experiences with mental health. At this point, I haven’t written any specific dialogue, so I’m not sure how much of our characters’ problems with mental health will show. However, I do promise that all our characters’ struggles and experiences will be treated with respect, openness, and sincerity. Hopefully—in some small, small way—that will be a fitting tribute to Carrie’s legacy.

Saturday, December 17, 2016

Showcase Saturday - Steam Greenlight and Skelattack

When I mention that I’m making a video game to friends and family, many people are curious how we’ll take our game to market. I’m going to use this showcase Saturday post to give a quick explanation of how we plan to get our game to consumers: Steam Greenlight.

Image found on Steam's website


Steam is essentially a digital storefront for nearly all computer games on the market. With few exceptions it’s safe to say that if you’re into PC gaming, you know Steam and use Steam. Steam used to curate all available games on its own, accepting titles from known publishers and then reviewing games from smaller companies to see if they belonged on Steam. With more and more independent (indie) publishers trying to get their games on Steam, the company decided to use a new crowdsourced approach called Greenlight.

So once our game is a little farther along—we’ll need to include screenshots and a nice trailer that show polished gameplay—we will enter Alkanaur into the Greenlight process. Once there, people can vote whether or not they’d be interested in buying the game. If we get enough attention, our game gets “greenlit” and we reserve a spot on Steam’s digital shelves, so to speak. From that point on we’ll continue to develop our game until it’s ready for release. Another nice feature of this process is that we’ll be able to build a community on Steam and keep receiving feedback to improve.

With so many games trying to be greenlit, the first few days of being on the front of the Greenlight page are vital. After you slip further back in line, you rely on other avenues to get visibility on your personal Greenlight page. So we’re hoping for a big first day, but if we don’t get greenlit right away, we’ll just keep spreading the word. Both Robby and I are confident that we’re making a well-designed, polished, and meaningful game that belongs on Steam, but it might take some extra work to make sure we get the necessary visibility. When the time comes, we’ll be reaching out to everyone for a bit of help. We’ll let you know!


In the meantime, I’d like to showcase a fun game called Skelattack. I’ve been following its progress on Twitter, and I think it has a unique character design and some fun gameplay. Skelattack is currently in the Greenlight process, so if you have a Steam account head on over to this link and check out the game. There’s even a demo version for Mac and PC users.

Tuesday, December 13, 2016

Characterization Takes Time

I recently finished the television series Supergirl. In the first few episodes, I had some reservations. I sensed way too many tropes and flat characters. Add that to the fact that I’ve never exactly been enamored with Superman as a concept, and I was about ready to drop the series altogether.

Fortunately a good friend convinced me to give it a bit more time. As the season went on, Supergirl’s supporting cast became much more vibrant. In fact, two of my least favorite characters—Cat Grant and Hank Henshaw—became my two favorite characters by season’s end.

High-power CEO Cat Grant from the show Supergirl (image found here)

Characterization takes time. If you want characters in your TV show, movie, or video game to develop, you need to give your audience sufficient time with them. If the characters change too fast, the development won’t seem realistic. And if you don’t change at all, you end up with flat characters that will never really capture your audience in a profound way.

In Alkanaur, we wanted to provide our audience with fun, insightful, and sincere characters. On the other hand, we also know that many tactical gamers want to focus on the gameplay with minimal distractions. Our compromise was too split most of the character building from the tactics battle system. While actions in the battle will influence character relationships and conversations, those conversations will take place in separate, optional events that we’re calling “tavern moments.”

These tavern moments will have characters sitting next to each other and discussing the most recent battle, and as relationships deepen their conversations will become more profound and open as well. As a writer and storyteller, I—of course—hope that players will participate in these tavern moments. With sufficient time, I think that they’ll fall in love with our characters just as I fell in love with Supergirl’s characters. However, I’m also glad that people who want to get right back to the core gameplay will have the option to do so.

Tuesday, December 6, 2016

Balancing Innovation, Pragmatism, and Patience

Lately, I’ve been playing a lot of Terraria, the action-adventure sandbox game from Re-Logic games. With over 200 hours played at this point, it’s obviously held my attention for quite a while. I was discussing the game with my wife tonight, and I initially said that the game was perfect. Or at least perfect for the game it was trying to be. But, to her credit, my wife pushed me to keep thinking about what I would change. And I did eventually find some (small) issues with the game.

My number one issue is inventory management. Terraria’s dev team does an amazing job delivering free, content-rich updates, and those updates have added some helpful features for managing all your stone blocks, countless potions, and leftover furniture. The system of storing items in various chests is still unwieldy, however, and I find myself irked when I spend an entire play session reorganizing my chests simply because I needed to expand my home.

The much, much harder question is: what would I change? I’m not sure there’s a great answer here. You could get rid of all chests and just have a global inventory, but that would take some of the survival and resource management mechanics out of the game. One big “home chest” that you can’t move but holds everything? That would lead to a massive mess of an inventory and creates a huge problem if you do have to move the chest for some reason. All of the “fixes” I came up with in my own quick brainstorm had serious drawbacks as well.


Not every conundrum in game design has a clean answer. For example, in Alkanaur we’re always looking at ways to speed up combat for the player, but no matter what there’s going to be some pauses in the game. When we chose to make a turn-based strategy game, we simultaneously chose not to have the responsiveness of a real-time action game. Of course, such thinking can stifle creativity. If designers always left things the way they were, we’d miss out on a lot of great innovations. I think the key is accepting that every design has a drawback, while at the same time pushing ourselves, constantly asking: what could we change? 

Saturday, December 3, 2016

Showcase Saturday 12/3

Hope everyone's having a great weekend!

On our Showcase Saturday this week, I want to show off a pixel art concept Robby and I have worked out for a character we're calling Sentinel for now.


Sentinel focuses on defensive abilities using her humongous tower shield. Her parents were too wrapped up in their own busy lives to take care of their several children, so as the oldest daughter she learned to take care of those around her. Now she takes her protective personality to the battlefield as a member of the mercenary team.

For these pixel art character concepts, Robby and I work together through various iterations until we find an art concept that fits the gameplay and narrative niche for that character. It takes a little longer to get it right, but we want each character to feel unique and look fantastic.

Tuesday, November 29, 2016

Returning the Right Way

On Black Friday I spent most of the day binge-watching the entire new mini-series of Gilmore Girls. When I first heard that they were going to return to the Gilmore Girls universe, I was ecstatic. The witty writing, overwhelming amount of references, and loveable characters in the first seven seasons make it a television series I’ll never forget.  But as excited as I was for the revival, I was equally nervous. As fast food teaches us, some things are simply better the first time. Would the new season, set 10 years after the final seventh season, end up like reheated French fries?

Fortunately, that wasn’t the case. While I don’t find the season gripe-less, I think the writers did a great job delivering something familiar yet new. The four episodes weren’t simply sappy nostalgia trips—I saw a great deal of character development, and I think I gained new insights into most of the main characters. I can’t go much farther here without spoilers, so I’ll stop.

What does this teach me about game development? You gotta return the right way.

With Alkanaur, we aim to make a return of sorts. We absolutely want to make a game that will remind people of Final Fantasy Tactics. As I’ve considered the mechanical design, plot, and characters for our game, FFT has always been a reference point. And when you set yourself a strong reference point, it’s easy to simply rehash or reskin the old game. After all, it’s beloved—why “fix” it? However, if a game wants to successfully return players to a game from their past, the developers need to make sure they also take that game somewhere new.

And so I continue to look for ways to set Alkanaur apart from the wonderful tactical RPGs of the past. Like FFT, we have a two-job system to allow players creative freedom in building a party, but the primary and secondary class system in Alkanaur is distinct. We’ll include character progression, but with a new experience system. We’ll tell a great political-minded story, but players should gain some new insights from the narrative.


Just as I learned to love—and resent—the residents of Stars Hollow in brand new ways in Gilmore Girls: A Year in the Life, we need to present gamers new challenges, new experiences, and new joys in Alkanaur

Sunday, November 27, 2016

Happy Thanksgiving

I took most of the week off for Thanksgiving (and Gilmore Girls), but you can expect our usual blog schedule next week. I hope all of our followers were able to eat their fill, without feeling too sick afterwards.

Whenever I have a little time I've been working on our sprite sheets. Working on each frame individually can be tedious, but the final result is worth it. We finished a good portion of the frames for several characters in our demo, but since every character can fulfill any class role we need to have a wide assortment of animations ready for each character. So I've been working on filling the animation gaps here and there.

One of the most recent animations I worked on was a punching animation for the character we call Runic.


Runic gets angry when he punches


See you next week!

Saturday, November 19, 2016

Showcase Saturday 11/19

On Showcase Saturdays, I'll post a screenshot, gif, short video, or other type of update on Alkanaur's progress. Sometimes I'll post a similar update on another dev's project instead, because I follow a lot of indie developers that do cool stuff.

One of those dev teams is creating an awesome 2D arena shooter called Crashnauts. The developers also live in our home state of Utah, and we first met them at Salt Lake Gaming Con. If you like Super Smash Brothers, Towerfall Ascension, frantic action, or squishing other players with a drop-pod, check out this gameplay trailer.

https://www.youtube.com/watch?v=fqkwEkt3PP8&t=2s


Thursday, November 17, 2016

Nathan, Nords, and Emergent Narratives: A Recollection of Skyrim

Hi everyone! This post will be my first Throwback Thursday review. While you can expect the same type of info that you’d find in a traditional game review, the format is a tad unconventional. Since these are retrospective reviews (with some games over a decade old), there’s no reason to provide a typical pros/cons list with a rating. Instead, I’ll be traversing each review with a narrative perspective—small, focused stories that explain how my life and that game intertwined.

Nathan, Nords, and Emergent Narratives: A Recollection of Skyrim

I sit outside my professor’s office, my right leg nervously bouncing up and down. I’m nervous because I’m excited; I’m nervous because I’m scared. I found a possible topic for my critical theory class, a higher level course in UVU’s English program. Usually, I scrap together a thesis a couple nights before it’s due and begin the whirlwind of research and writing necessary to pass. But this time I have an idea several weeks in advance. This is new. This is why I’m excited, and this is why I’m scared. What if he turns it down?

Professor Gorelick invites me in. I look around his office. It’s cleaner than most English professor’s offices, and there are several Rorschach ink blot tests pinned on the walls. Professor Gorelick has studied Freud, Lacan, and other psychologists extensively.

“Professor Gorelick…” I begin.

“Please, just call me Nathan. I post memes on the projector during our classes, after all,” he says wryly.

“Okay. Nathan, I’d like to run my research paper concept by you since it’s a bit… avant-garde,” I say. He nods, and I continue, “I’d like to use a video game for my literary reference: Skyrim.” I wait as he briefly mulls over my suggestion.

“Sure,” he says with little hesitation. Phew.

And that’s how, about three years ago, I began to write a literary analysis of Skyrim. In the following weeks, I made sure to brag on social media about my homework, which involved a second play-through of the popular role-playing game. Most Skyrim fans will be unsurprised that I decided to make my character a stealth archer. The homework was mostly just to familiarize myself with the game and characters, because I already knew the topic of my paper: emergent narratives.

Bethesda’s Skyrim was my first real foray into emergent narratives—the stories born from interaction between players and game mechanics. And these were the stories I shared in my paper.

One of your first companions in the game will generally be the shield-maiden Lydia. Due to her ubiquity, most people have some type of story about her. These stories have nothing to do with her non-existent backstory or her repetitive lines (such as the sarcastically delivered “I am sworn to carry your burdens” whenever you trade items). No, these stories come from the emotional attachment players develop with the AI-controlled companion.

In my first Skyrim play-through, I quickly grew confident in Lydia’s ability to soak up damage. I’d often let her engage with the enemy as I sat back and used spells or flanked the enemy with a melee weapon. Lydia was invincible—if brought to low health she would kneel down and stop fighting, and then enemies would ignore her.

Soon Lydia and I ran into a necromancer and his dragon pet, an encounter caused by my incessant wandering off the beaten path, an irresistible pull in Skyrim’s open and expansive game world. I relied on the same strategy, letting Lydia take a beating while I tried using some spells on the wizard. Realizing that the wizard and dragon were next to each other, I saw the perfect opportunity to throw a fireball and hit both enemies. After the fireball hit, both enemies were low. I rushed in with a sword to finish them off.

I imagine I said something haughty and dramatic and embarrassing to the screen in that moment, proud of my newest victory. As I looted the corpses, my personal loudness belied an uncanny silence from my speakers. Something sounded… off. But I couldn’t place it. The dragon bones and scales I collected were rather heavy so I turned around to Lydia so she could “carry my burdens.” Lydia wasn’t behind me. That’s why the game sounded so quiet—I had grown used to the sound of her footsteps behind me, her occasional comments about our surroundings. I frantically searched, and eventually came across her body. Just like the dead wizard and dragon, I was able to “loot” her corpse. I was devastated—my hubris at exploiting the near-death game mechanic had led me to a wonderfully horrific narrative moment.

Later I found out on an internet wiki that your followers can die if hit by an AoE (area of effect) spell after they’ve kneeled down to yield in combat. So I had killed her with my fireball. I felt guilty, even though I soon found a different companion as I wandered Skyrim.

This is the power of Skyrim, and the power of emergent narratives. The game designers probably had no idea that the game rules they designed for the player character’s companions would end up inspiring a compelling narrative around arrogance and guilt.  But I will never forget the genuine anguish I felt upon looting her corpse and the rebound of remorse when I realized her death was my fault.

Skyrim is an immersive, amazing game. That doesn’t mean it’s without fault. While I love the delightful feeling of discovery as you came across a new cave or bandit hidout, I am less enthused by the dull and uninspired main storyline. Whereas some NPCs have brilliant, fun moments of characterization (look up Ulfr the Blind), the main character’s growth is unrealistic and full of narrative dissonance. And for every time a random dragon encounter helps you defeat a difficult quest, another dragon encounter might kill a villager that provides an important quest.

While the academic paper I wrote was bold and new to the English department at my university, the concept of emergent narratives has been discussed frequently in the gaming world. As is too often the case in critical discussion of video games, people often pick a side—emergent narratives or traditional “on rails” narratives—and begin a shouting match. Should games go one way or the other?

I don’t think so. Even though I cherish my Lydia story and the other tales my own mind created through Skyrim’s interactive mechanics, I also cherish games that follow a traditional narrative structure, such as Knights of the Old Republic (which I will indubitably cover in a future Throwback Thursday blog post). The interactivity required for games mean that some measure of personal input will be required by the player, and that personal input will add extra emotional impact to the game’s plot and dialogue as well as any narrative created solely in the player’s mind.


Anyway, if you somehow still haven’t tried out Skyrim, I’d highly recommend it. Bethesda recently released a special edition of the game with some graphical improvements, so now is a great time to start. While many games provide similar opportunities for stories based off the game’s mechanics, Skyrim’s focus on inciting wonder and encouraging discovery set it apart.

Tuesday, November 15, 2016

A Quick Update and Our New Blog Schedule

We're sorry for the long delay with our posts, but Rob the Sky Games is back with a brand new blog schedule. We have continued our work on Alkanaur, utilizing feedback we received at Salt Lake Gaming Con to reshape our direction. I've personally been focusing on refining our world, characters, and game mechanics. Robby continues to program and digitally paint like a boss. We're both increasingly excited as Alkanaur gets closer and closer to release.

But we've still got a while to go. To keep our fans updated, we will continue forward with a new blog schedule that should provide a bit more structure. On Dev Take Tuesdays I will write short posts about Alkanaur's development that originate from another source, whether that be another game, a movie or TV show, or simply a life event. On Throwback Thursdays (original, I know) I'll write game reviews about my favorite games from the past. Hopefully those reviews can inform our followers about my personal design philosophy and taste. On Showcase Sundays, I'll upload a short post showing off something we made during the week, or I might choose to link to another game in development that I'm excited about. In addition to my regular posts, Robby will continue to post the occasional in-depth post on programming or art as he sees fit.

We also invite you to follow us on Facebook and Twitter!

Thanks, and I'll see you on Thursday with our first throwback review: Skyrim.

Thursday, August 11, 2016

Empowering Players

This won’t be a long post, but I’d like to quickly share Rob the Sky’s design motto and explain how that motto influences our day-to-day design choices. We’re still working on our first published game, and we want to make sure that this game and all our future games possess a consistent design that fulfills our goals as developers. For this reason, all our game design choices will refer back to one essential question: how do we empower our players?

Empowering our players affects all aspects of design, from the narrative to the gameplay to the user interface. So we’ve developed a few key “pillars” that will support our overarching motto.


Meaningful Gameplay


We don’t think it’s fair to our players to limit them to only gameplay or only narrative. We don’t subscribe to that kind of binary thinking, and we believe that games can be an excellent vehicle for both meaningful narrative and engaging gameplay. We feel that the best games use gameplay to enhance and inform the narrative, and vice versa.

Strong Characters


We want our characters to feel real, to feel “human” (assuming the character is human, of course). Helping our players suspend their disbelief will give their actions and choices weight and meaning.  An assembly of flat, boring characters won’t allow our players to dive into the story like they want to. We also want to keep our cast of characters diverse so that all our potential players may feel represented.

Consequential Choice


We think a good game provides tradeoffs and significant decisions. Consequential gameplay choices allow a player to express themselves through their gameplay. However, we don’t believe in overloading our playerbase with choices simply for the sake of “choice.” We strive to have every gameplay decision offer competitive choices, instead of one clear path to victory.

Clear Design


If our players don’t know where to click, what to do, or why their character just died, that’s on us. We want to ensure that we provide clear feedback throughout the gameplay experience. That way our players will know precisely what happened and what they need to do next. When feasible, we want to give user interface choices to the player so that they can have a comfortable amount of input.


Of course, these four pillars don’t cover every aspect of design. But working toward them will help our games empower players and will help us make the kind of games that we always enjoyed playing. Have you ever played a game that exemplified one of these four pillars of design? Let us know in the comments!

Tuesday, July 19, 2016

Five (Less Apparent) Reasons a Convention Was a Great Idea for Our Indie Game

Alkanaur has technically been in development for over two years. We tinkered with concepts and story ideas for a while. Then we slowly learned how to build a game. As the project gained momentum we were forced to think beyond making the game itself and start thinking about marketing, publishing, and distribution.

Last summer, I attended the Salt Lake Gaming Con and had a blast. I saw great cosplays, watched some competitive League and Hearthstone, and attended a couple informative panel discussions. But my favorite part of the event was visiting with local indie developers for both board games and video games.

At the beginning of this year, Robby and I decided to set a goal to attend SLGC in 2016 even though our game was still early in development.

We narrowed our dev goals to completing a polished demo, so that we could give players a good taste of what to expect with Alkanaur. Our work became more focused. We met more often.  And in the final 2-3 weeks before the convention we exhausted ourselves until, with only a few days to spare, we finished our demo. It took me plenty of caffeine, and my partner had to take a couple days off from his day job, but we did it.

So was it worth it? Heading into the convention, we knew we could expect some playtesting and hopefully a list of sales leads. We watched for gameplay issues and kept an emailing list so we could contact interested players when we go to Steam Greenlight. And while we did reap some of those expected benefits, we also noticed several more. So here are five less obvious advantages from our experience at a gaming convention.


1. We Gave Ourselves a Clear, Measurable Goal

Unless you work in game development, it’s hard to grasp just how giant a video game project can be. And for a small indie team like ourselves, part of the struggle is simply knowing what to do next. When we decided to present a demo at SLGC, we set our first official development goal. As I mentioned above, that goal helped us hone our work and develop our own project management system. And after the convention, we both felt more comfortable with setting future development goals.


2. We Learned from Other Devs

At the convention, we spoke to a lot of visitors as they played our demo. But we spent even more time speaking to the other indie devs near our booth. We talked about convention dos and don’ts with the developers of Legacy of the Elder Star. We chatted with the devs behind Crashnauts about the merits of Unity 2D and Unity 3. We discussed the Greenlight process with the minds behind the fanciful We Need to Go Deeper. From these conversations and others, we made important decisions about our own game.


3. We Found the Essence of Our Game

Probably our least favorite part of the event (aside from the bugs) was pitching. But after making pitch after pitch, we started to get a better read of the game we were trying to make. It sounds silly—after all, we’d been working on the game for a couple years. How could we not know our game was about? Yet when players or press invariably asked unexpected questions, we were forced to find answers. Many of my personal design principles (which I’ll share in a future post) were revealed as I justified design decisions and explained gameplay goals.


4. We Received Emotional Feedback from Players

When we attended the convention, we were ready to receive plenty of gameplay feedback. We only had time for some very limited playtesting from friends and family members, and we knew that we’d find some bugs and balance issues. As I watched player after player lose—the demo might have been a little too tough for players new to tactics games—I found myself paying more attention to the player than the actual game. I noted our visitors’ moments of frustration as well as their moments of triumph.  For example, we had a couple young kids try out our demo. I noticed that they had a lot of fun even though they really didn’t understand the game. Eventually I realized that they simply enjoyed moving characters around the screen while the enemies gave chase, and I realized just how important fluid animations and an adaptive AI can be.


5. We Remembered Why We’re Making a Game

Like point #3, this point might seem a little esoteric, but I truly feel that this was by far the greatest benefit I personally received from attending a gaming convention. As developers, it’s easy to get tunnel vision on what the project needs to continue. Perhaps it’s even necessary for a successful project. Watching people play and enjoy our game reminded me on why I needed the project, why I needed to make a game.

Out of hundreds of players, only a few people actually beat our demo battle at the convention. I vividly remember one of those victories. A group of young adults all came in a group. Two of them played our demo while the others watched. One player lost fairly quickly, and soon all eyes were on the remaining player. Two of the three characters on his team had already died, but he had also eliminated two of the three enemy AIs. His remaining character—Clarion, our principal protagonist—fled from the burly enemy with only a sliver of health, kiting the enemy around the map and firing fireballs. The small crowd literally gasped as the tactic finally worked and the tough enemy collapsed. High fives were shared. The player stretched out his wrists and grinned. I looked over at Robby and we exchanged a small nod of satisfaction.


In short, our trip to SLGC 2016 was definitely worth it. We had to step out of our comfort zones, but we now feel revitalized and ready to take the next step in our game’s development.

Wednesday, July 6, 2016

2D or not 2D

Well, the convention is over and we survived. And now after a month, we're back at it. However, we received loads of great feedback and noticed some things that we could definitely improve. Since we never really posted a screenshot, I'll put one up so it can then be forgotten after I tell you our next move.


You might not be able to see, but the current version includes a very block-y 3D world with 2D sprites overlaid on the top. It made a bunch of things relatively easy, but introduced several problems that I believe were unnecessarily introduced by using 3D. I'll just name a few.

  1. Making tiles that were dynamic pieces of art (for example, with grass that overlaps another tile) instead of obviously textured cubes is much easier (in my humble opinion) to achieve with 2D.
  2. The performance was starting to drop a little, but that might have been my naivete with Unity.
  3. I found a very nice asset to handle isometric tiles that vastly reduces the amount of programming necessary.
Aside from personal preference, I think this revamp was a good move. As this is our first project, I have been learning how to use Unity and program with their component based architecture. As with anything, there were growing pains, but I think I finally realized the best practices. I will admit that the code had grown from experimental to a patched together architecture. However, it was quickly becoming a monolith that wouldn't scale very well, so I decided to redesign it with a proper architecture and best practices. One of these decisions was to simplify things with a 3rd party library and to use 2D. The rebuild still in the early stages, but based on what I've learned up to this point, I think it will be a step in the right direction. In a later post, I will go over more details about what I've learned and my ideas about how best to utilize Unity.

Wednesday, June 1, 2016

The Story of Alkanaur

The story of Alkanaur is set in a good-vs-evil, gods-vs-gods, mystical, industrial, and chaotic world. However, despite these multiple aspects vying for attention, the characters are what ultimately drive this adventure onward. Almost everyone will find something relatable in the courageous, jealous, isolated, selfless, and eccentric personalities that will surface as the story unfolds. Characters will evolve and ideologies will clash in the epic story of Alkanaur.




As the main developer and artist (I should also say an amateur artist) on this project, and as a first time game developer, I’ve come to understand that a lot of work goes into the production of even a seemingly simple game such as this demo. While it might be of interest to some to thoroughly explain the process, I won’t bore everyone with the details. In fact, I’ll probably write only a little. Hopefully the images and occasional banter will prove entertaining for some.

Characters

Clarion


Clarion is the main character. In the words of Skye (our designer and writer), here is a brief description of her.

Clarion values independence, but also is very loyal to friends and family.  She has no strict code of morals, and she doesn’t love rules either.  Still, she generally will do the right thing and strives to always help others, even when it isn’t convenient.  She has a love for adventure and has always wanted to leave Ithaca (her island hometown) and see what’s out there.  She’s not overly pious, but she’s always tried to be respectful to the gods, just in case.

Clarion’s father has recently contracted a rare plague that is draining her family’s resources.  Her mother wants her to help with the family business, but Clarion knows that the money probably won’t be enough.  Also, working every day with her mother seems like a nightmare to her.  She decides to start a merc company and head for the mainland to make more money for her family.  That way she can have her freedom, see the world, and help her family.

Concept art (in relative chronological order)


One of Clarion’s main skills is her summoning ability. Knowing this will help you make sense of some of these pictures. 


Runic



More words from Skye.

Runic is the quintessential “gentle giant.” Most of the time. He cares for others and will often get himself into trouble by sticking up for those in need. He is easily offended and does not take criticism well. He will not usually speak unless asked a direct question. Runic strongly believes in the new Roman Order because he has seen how unfair the meritocracy system has treated him and others. He is fiercely loyal to his friends and family, even when he feels slighted or betrayed by them.

Runic was born with no magical powers at birth, which is considered a curse by the gods in this world. Large in stature, he performed physical labor from a young age to appease his parents, who detested him. With the onset of puberty, he started to develop strange runic markings all over his body that granted him some magical prowess. Thinking all his problems cured, he eagerly shared his magical talents with friends and family, but his issues only worsened. Any talents he had were considered impure and impractical, and he has been continually bullied and belittled all his life.

Concept art (again in relative chronological order)



Slayer


Of all the characters that we have worked on so far, Slayer’s personality is the coolest to me. Maybe I’m just pessimistic like I imagine her to be.

Slayer is a rebel who hates being forced into anything. One of the only people she’ll listen to is Clarion, because of their friendship since they were young girls. She won’t go out of her way to hurt others, but she doesn’t feel many moral obligations either. She’s rude and belligerent, but her pointed remarks are usually correct even though they’re sharp in tone. No one would call her a pious or devoted worshipper of the gods, but she highly values the current Greek ideals of individuality, intelligence, and creativity.

Slayer’s family members are all very much like her, which has led to a rather dysfunctional family overall. Like Clarion, she is eager to get out of Ithaca and see more of the world. Eventually, she’d like to live in Athenia—the bustling Greek city—with enough money to open her own business. She is loath to admit such an ordinary dream, and hasn’t even told her closest friends about that. Slayer received her battle prowess from Marshal school, which was kind of like a private school except with an arena brawl at the end of every semester.

Concept art (I think I remember the order of these)



There are other characters in the mix and more general details that we will most likely reveal later, but for the sake of brevity, I will cut it short here.

Wednesday, May 25, 2016

Why You Sometimes Need to Leave Your Best Ideas Behind

When my friends and I sat down to plan out the theme of our video game, we stumbled upon an exciting, fresh idea. What if the Greek and Roman cultures never died out and stuck around until the Industrial Revolution? And what if their distinct ideologies (at least according to pop culture) caused a civil war of sorts? A civil war that would impact the gods themselves? As far as we knew, these thematic questions were unique. And the Greek and Roman influences would stand out among other tactical RPGs—our chosen genre.

It was a great idea. But ultimately we made the best decision possible for that idea—we ditched it.

Prune isn’t a sexy word. But without proper pruning, some trees and bushes will never reach their full potential. Sometimes even the best ideas need some pruning. Every creative process involves more than one great idea, one perfect plot line, one remarkable riff, or one beautiful brushstroke. If you allow one idea to take over your entire project, it might choke out the other branches.

As we continued to work on our indie game over the past couple years, we kept pruning. We loved the idea of mixing Greek and Roman culture with a steampunk aesthetic, but the task was beyond our small team. Perhaps a more experienced team with a legion of concept artists could figure out a great way to believably blend the two concepts. However, our primary focus was to make sure our art looked good and stayed consistent. 

But we could leave behind the art stuff and still keep the world building concepts, right? We tried. After all, with tons of centuries under their belt, the Greek and Roman empires would probably appear quite a bit different. Maybe they would grow tired of all those columns and chariots. While the idea of pitting Greek myths and ideology against Roman myths and ideology was a great design constraint as I molded the world of Alkanaur, that constraint became less and less helpful. I realized that many of the good ideas that had spawned from our initial thematic questions could thrive on their own. And so Alkanaur eventually became its own world with its own gods.

Does this mean that our initial idea wasn't that great after all? Perhaps. But I don't think so. To get started on our video game, we needed more than a good idea—we needed the best. That gave us the energy and excitement we needed to gain momentum on our project. But as the project grew we needed to be brave enough to take care of the whole tree and not just the best-looking branch.