Monday, August 31, 2015

The Animation Pipeline for Political Party Animals

As we inch ever slowly to a closed Alpha, we’re slowly building up our social media presence.  If you haven’t already, please do follow us and spread the word on Twitter and Tumblr.  We’ve had a pretty good run of bi-weekly testing and for the first time last week the latest version of the game was played by people from outside the team.  The results were encouraging, since both our friends Kyle and Gwen had fun playing (see Gwen's victorious pose), but there were definitely numerous things that we still have to work on.

In the meantime, let me show you my process for the creation and animation of our characters. Previously, I wrote about my decision to stick to frame by frame animation, mostly because it’s what I know best.  Now I’ll go into a little bit more detail in the hopes that you guys might pick up a thing or two from it, or tell me why what I’m doing is terribly wrong.  Let’s get started!

Part 1 : Concept Sketches

With each concept sketch I take an animal, assign its occupation, then make some sketches based on those two factors.  So for example the Crow is meant to be an investigator or reporter that digs up or fabricates dirt on other candidates. I'll usually spend around 10 hours or so first looking at reference material then sketching out concepts  and then coloring them in. If I had the time I would love to spend more time really doing a lot of concepts of each character but as it is I'm squeezing these in after work, which means an hour or two whenever I can find the time.

Part 2: Vectorizing

After the conceptualization is done I pick out my favorite concept animal (this is harder than it looks, and sometimes I have to ask my wife to help me choose) and render it in vector.  This is important in terms of efficiency because once the animal is in rendered this way it becomes much easier to resize it and use it for multiple purposes. It's also important for me to organize it properly in different layer folders.

So let's say for example that I wanted to make a character portrait for the Investigator.  I could just take the body and head part, resize it, and voila! A portrait for the Crow Investigator! It's important for small teams to always keep in mind different ways that they can make work more efficient, which is something I learned having usually worked as the sole artist for many games!

Part 3: Animate!

Now this is the meaty part, the animation!  We have a list of animations that each character has, for example we need animations for move, bribe, etc.  for this one I will show you the move animation for the Invesigator.  The first step is for me to sketch out a very small animation.  I sketch it small so that I don't overthink the details and just try to get a good sense of movement going.  I wanted him to be all sneaky like to fit his ability to fabricate scandals.

Once that's done I take the original vectorized image and then start making frames based on the smaller animation.  If I have time I will go ahead and sketch out larger frame by frame animations as well, but I usually make do with using the small animation as a reference.  This is where having separated the different body parts before is really key, as I can I much more easily pick out the body parts I want to animate and move them around rather than having to look through a whole mess of vector layers.

In about 2-4 hours I will have something like this!  I actually had quite a bit of trouble with this and had to refine the previous quick animation some more before I had an animation I was happy with.

This is an image showing the frame by frame animation within photoshop, so you have a better idea of how many frames I use.

Part 4 : Shrinkage

Once again this is where doing everything in vector pays off, as I can easily shrink the different frames of animations, flatten them, give them an outline an then save them one by one as pngs for use in the game.  We use 2dtoolkit for our animations, which I'm starting to realize may not be the best for a game with multiple animations.  The file organization for 2dtoolkit seems pretty primitive, and you can easily be overwhelmed with the sheer amount of individual images.  Right now we aleady use 213 sprites, and we're probably at 1/10 of the amount of animations we're planning to do.

And finally here is the Investigator in action in the game!  His special ability is to fabricate a scandal, which if it's revealed in the district will do massive damage to your opponents reputation.

Thanks for reading.  If you have any suggestions about how I can streamline my process without overhauling it entirely I would definitely love to hear from you!  To be one of the first people to try our closed alpha, please sign up for our mailing list!

Saturday, August 1, 2015

Patronage Politics and New Mechanics in Political Party Animals

Ryan's note: Hi all, I asked Marnielle to write this month's devlog, and he talks about the mechanics that we're slowly adding to the game.

The development of Party Animals has been hanging around for over a year already (or years) but the truth is that the game’s mechanics are not yet zoned in. We’re still looking for the fun part. We’re at the stage when we are adding new mechanics and testing them out as soon as we can then decide whether to keep them, change, or discard. If we’re not having fun with it, our target players most probably won’t. While we unanimously agree that what we have is fun enough, something is still missing. This post will be enumerating what we’ve done so far. As a bonus, if you stay a while, you’ll get a tip on how I start my coding momentum.

Command Points

Pay CP first before you can use your Staff

As context, Party Animals is a game about winning an election. The main mechanic unit of the game are the Staff which the player can move around in different districts and make them execute actions. The game is basically an attrition with an opponent through Staff actions.

We introduced the concept of Command Points (CP) to control the movement of Staff such that players are forced to strategize on which district to move next as usage of such units now have cost. CP cost is simply defined as the shortest district distance of a Staff from its Candidate (a Candidate is just another Staff with special abilities). If a Staff is in the same district as its Candidate, then CP cost for the Staff is zero. CP resource is assigned to each candidate at the start of the turn. It is increased when certain campaigning days are reached. In real life, we’d like to think of this as the cost of planning with your Staff that is in another city or province.

During playtesting, Command Points had a direct effect on Staff movement. During early game, players only move their Staff along one adjacent district distance from their Candidate.

Tristan's note: The implementation of command points is inspired by war games, one of which is Onslaught : D-Day to the Rhine by SPI.

New Meaning of Reputation

Reputation is one of the most important metric in our game. It directly tells whether or not people will vote for a candidate in a certain district. It used to be a percentage of the population in the district that is willing to vote for you. It’s a value between 0 – 100. Not anymore. It’s now the actual count of people that will vote for a candidate. This implies that districts with more population is now harder to own (get at least 50% of voters).

Due to this change, we introduced the concept of Reputation Decay. A percentage of a candidate’s reputation in a district is deducted if the Candidate has no Staff stationed in that district. The message is that voters are fickle. They won’t vote for someone unless they constantly stick around, or the candidates give them money. :)

Ryan's note:  The inspiration for reputation decay came from a book called Accidental Guerrilla, in which author David Kilcullen proposes that the best way to weaken extremism is to provide a strong alternative to it.  Civilians in conflict areas inherently always fear for their safety, and gravitate towards the group that will offer them security and consistency, whether they be extremists or government.  It dawned on me that voters in countries where there is a weak government act in the same way.  Since their lives (or livelihood) don't feel secure, they will gravitate towards the candidate who feels strongest, or who sticks around longest and makes them feel that he or she has their best interests at heart.

Raise Funds

Now players can use the people they've convinced to give them money

We finally implemented this Staff action. It’s been in the game design papers ever since the beginning. We designed it such that the more Reputation a candidate has in a district, the more money it can raise. That’s how it is in real life. People are willing to give you money if they like you.


Patronage politics at its best!

I had a direct hand in introducing this mechanic and I’m happy with it. Before this change, each district has a Kapitan which Candidates can have a relationship with (in a friendly way). The only effect it had was during elections. If you’re closer to the Kapitan, then people will vote for you in that district.

As a strategy gamer, I feel that the game doesn’t have much avenue in acquiring ‘things’ that generates resources, which I really like in such games. Mechanics like building an expansion in Starcraft to exploit new resources, building that Bank to generate gold in Civilization, etc. I suggested what if there are patrons or sponsors that players can court. They could be an influential family in the district, a business man, celebrity, or another politician. You gain some effects if you can get them to support you like giving you funds per turn, or slowing Reputation Decay.

Our game designer, Tristan, came up with Patrons. Kapitans were discarded. There are now 3 Patrons in each district. Each Patron has a distinct effect depending on a player’s relationship with such. One Patron had an effect when Raising Funds, another one for CP cost (reduced or increased), and last one had an effect when doing Sortie (increases or decreases the amount of reputation gained). A player can decide to make a good relationship with one or more of these Patrons using the Gift action.


Red means “scandalous”

Everybody loves scandals… as long as you’re not implicated. Our political climate is rife with it, even during elections. I’ve heard in an interview with a local election campaign consultant that there’s this one politician who didn’t win but spent so much. He was running for Senator. When he was asked to compute his expenses divided by the votes he got, he spent around Php5000 per voter. The election campaign consultant then said “Imagine if he bought votes instead. That’s only Php500 per voter. He would have gotten ten times more votes.” Vote buying is a big scandal, but if you’re the one running the election, it could be very tempting.

Given such fact, the concept of Scandals is a vital mechanic in Party Animals. Of course the representation is rather simplified. Scandals in our game is just a number of scandalous acts that a candidate has done in a district. Actions like Bribe and Smear Campaign increases the Scandal Count. Other neutral actions like Campaign, Sortie, Gift can become scandalous (increases the Scandal Count) if a bigger amount of money was used to carry out such actions. If you didn’t know, COMELEC has a prescribed amount of election money to be spent. It differs per location and position. You can get sued if you’re found spending more.

At the start of the next turn, each “unchecked” Scandal are then “checked” if it is revealed or not. We are running a formula to this. If it gets revealed, the game imposes harsh penalties for the candidate on that district. The penalties are in the form of reduction of Patron relationship, Reputation and increased CP cost on the district. The higher the Scandal Count, the higher the probability of it getting revealed.

As simple as it looks, implementing Scandals gave us a lot of headache. There were a lot of design issues that we’ve encountered; there were some cases that we needed to consider. As of writing, I’m still working on the final touches of the mechanic.

The Tip

As promised, the tip I’m sharing is about how do I start my coding momentum. It may not work for everybody but it certainly worked for me. Programmers are peculiar creatures. They need to be in a certain state so that they can work productively. But reaching that state is hard because programmers must be working to reach it. It’s kind of like an “almost” chicken-egg problem. Reach that state to get work done but work to reach that state.

As I ponder upon this, I thought about working out. People hate it. It’s tiring. The time used for it could have been used for something else. To make things worse, the main benefit of working out is kind of an abstract bullshit: health. Then I thought of myself. I go to a martial arts gym but how could I do it? I know I need to do it but what really gets me to go there and tire myself? The answer is really quite simple. “I packed up my gym stuff.” Packing up gym stuff is easy. It doesn’t take a lot of will. But it starts there. Next, I go out and commute to the gym. While I’m at a bus, it’s already hard for me turn back and change my mind.

Back to programming work, I can ask the same analogous question, “What’s the least and simplest thing that I can do to start coding?” My answer is “write one line of code”. It works for me like sorcery. It might be different for you, so go find yours.

Thanks for reading.  If you want to be one of the first people to try our closed alpha, please sign up for our mailing list!


Party Animals Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger