Thursday, January 30, 2014

Introducing our Main Characters

Today I'd like to introduce you to our main characters.  So far they are nameless, but they have underlying motivations that have helped shaped them as characters, which will continue to build on as development progresses.


Our central character, named "Mousey" by Julius, is a former government bureaucrat who wants to make a difference.  Why a mouse? Aside from being adorable, mice are often used in metaphors as being meek or silent.  This is a mouse who has worked silently for most of her (or his) career and is finally just fed up with how inefficient the current government is.  So now she is running for mayor on a platform of change.  She is idealistic, but also pragmatic.  Having worked in government for many years she understand that politics is compromise.  Just how far she is willing to compromise is one of the central themes of the game.

You'll notice that compared to the other two characters Mousey isn't really wearing any significant clothing.  This was intentional.  Being the player's avatar, we wanted to let the player project themselves onto Mousey and not necessarily try to conform to her characteristics.  We also wanted to let the player choose Mousey's gender.  In this image Mousey is male (although oddly I have been referring to him as her), but if the player chooses female the bow tie is doffed and a ribbon is put on to signify that she's female.  We considered adding a 3rd gender but could not figure out where to put the bowtie.  Ultimately people probably lean towards one gender anyway so hopefully they don't mind picking the one they feel most affinity to.


The Filipino word for crocodile is buwaya, which has a long history of being used as an idiom for people who are corrupt, specifically politicians.  It made sense that Croc is our incumbent mayor, part of a political dynasty that has held sway over the province for decades.  Croc and his family aren't all bad though.  The original Croc was an excellent mayor and provided good social services for his constituents while finding ways to boost the local economy.  As with any hereditary position though, there will be good eggs and bad eggs (literally, since they hatch from eggs).

This current generation Croc continues the pro-business tradition of his predecessors, however his reliance on the market to solve social ills means that a lot of social services are lacking funding.  The businesses that he supports are also mostly owned by family and friends, meaning that while there is economic growth, it's not as inclusive as it could be.  Having access to the government purse makes Croc a very difficult opponent, since he can very easily sway a vote his way by strategic spending.

Here is Quentin Tarantino looking very pleased to be wearing a barong.
One last thing about Croc that non-Filipinos might find interesting is his barong tagalog. The barong tagalog is the traditional men's wear of the Philippines.  Men wear them to almost all formal occasions like weddings, baptisms, etc.  


Pig is the poor boy that made good.  A farmboy with the voice of an angel, Pig has had a successful career as a pop star and noontime variety show host.  Pig has a good heart, and likes to give away a lot of stuff to his poor fanbase during his shows.  He is vaguely patterned after a lot of different Filipino celebrities.  His choice of clothing is not specific to a Filipino celebrity, but we wanted to give him that "faded rock star" look.

One of our influences for pig, who we will not name because lawsuits.
Pig wants to give back to his community, which is why he is running for mayor.  Cynics would say that he is merely aware that his showbiz career is almost over, and he's using his fame and fortune for one last push towards relevance, but we withhold judgement.  It's obvious that pig cares very much for the plight of the poor, but unfortunately his economic policy is to throw as much money at them as he can.  He runs on a populist pro-poor and anti-rich campaign, which is ironic considering he has multiple estates and fancy sports cars in the capital city.

That's all for now.  There are many more characters under development who will play an important role in the game, but as of now they are still being formed in our minds.  In the next couple of weeks I'll probably have some design notes and Julius will blog some more about his programming methods for the game.

Monday, January 13, 2014

The Morality Meter

One of the many reasons we wanted to develop party animals was the lack of nuanced political criticism in the Philippines.  While we can be vocal critics of our government, we understand that running a democratic government is hard work.  And yet the majority of internet critics seem to think that politics is easy.  Politicians should simply "do the right thing" and follow the "will of the people".

We don't think it's that easy, and we want to show people just how murky things can become on the way to the Kapitolyo.  Party Animals is set during the campaign season in a fictitious animal world.  You play the role of an idealistic mouse that wants to change the way her province is run.  The ultimate goal of the game is to become elected mayor. To do that the player must run a campaign around the province, holding campaign sorties against their opponent.  As they travel across the province they will come into contact with different groups seeking the player's support for their different advocacies and businesses.  As in the real world, you cannot say yes to everyone, so the player will be forced to make decisions that will affect their campaign for better or worse.

Like Julius, I am a self hating hipster that designs on paper
A political game like that would be interesting enough in itself, but we've added a new wrinkle to challenge players even more.  Remember what I said earlier about people's expectation that their politicians simply "do the right thing"?  We question how simple that really is, so I added a mechanic called the morality meter to the game as another measure of success.  So for example, in some districts a smear campaign will work better than positive propaganda in gaining votes.  But running a smear campaign is certainly not "doing the right thing" so the player will be penalized with a loss of morality points if they choose to do it anyway.  The player can ultimately win a pure political victory, a pure moral victory, or something in between, but very rarely (if at all) both.  In this way I hope that every decision the player makes causes them to question themselves and what they are willing to do in order to win.  By the end of the game they will ideally have a better understanding of the perils of entering politics, but more importantly a better understanding of themselves.

The morality meter may be difficult to implement properly in the game, but since the game is not just about winning, but questioning what it takes to win, it is central to the game's design.  We may have to change how it works exactly in order to get a better balance or fun factor in the game, but I'm sure we'll figure it out down the road.

Making Better Maps

Even the best artists (and I don't claim to be one of them) find that fresh eyes are useful when looking at their work.  We can get so focused in on an artwork and so used to how it looks that we find it difficult to disengage and see what we could do better.  So when I started working on the map again after the gamejolt contest I decided to put it up on tigsource to get some feedback on it.

This is the map as it appears in our gamejolt entry:

So generally speaking, people liked the look of it, though there were some comments on the color palette:

The rainbow sail is a unique palette and seems out of place.

The purple squares are competing with the buildings.  If the purple grid pattern was darker, the buildings would pop.

Also a comment on the placement of some of the trees:

The regions are delineated but the parts are mixed together.  Palm trees growing with deciduous/hardwood (sp?) and the same trees on both coasts.

The placement of trees was not really well thought out. I just figured that on an island this small, trees would grow in all sorts of places ( we don't quite have the same distinction of trees and seasons in the Philippines).  But I realized that the placement of trees wasn't the real issue, it was that some of the districts lacked a sense of place.  Except for the districts with large places like the kapitolyo and the churches, it was true that the districts did not seem very distinct from each other, so I set out to rectify that with my next iteration:

There were comments that were appreciative of the angular style that I had used, so to amp that up I replaced the gradients in the old coastline with more hard edged graphics.  I added elements like the mine in the upper right corner to give a sense of place to the specific districts.  I also removed the "outer glow" that I used on some of the landmarks.  I initially did that in order to make them stand out, but now I'm thinking they stand out enough just being flat on the map, and it looks much more unified that way. Not sure if I'll stick to this but I like it so far.  People liked the changes, but there were still a few more suggestions:

The black lines around the purple squares creates a lot of contrast and pops.  The government buildings recede back when next to these purple squares, which may not be what you want.

Those black lines are supposed to be roads, and the contrast was intentional because I wanted the buildings to pop in the way the commenter mentioned. But this is a case of a single aspect of the whole standing out too much, for no real good reason.  By simply removing the roads I made the map look much more unified:

This is not the final map by any means, and it will go through numerous changes as the game is developed. But hopefully this gives you an interesting look at how feedback can help you create better artwork!

Sunday, January 12, 2014

Why Party Animals is using a Finite State Machine

We finally decided on a game flow for Party Animals. This time we have something more complex than just answering multiple choice questions every turn.

Note: Answering the same multiple choice question every turn is bad game design.

Now that we have a rough idea on how the game is going to work each turn, the next step in the game dev process is for me, the programmer, to design how it is going to be implemented.

The game is a turn based 2-player game so I came up with a classic solution:

Finite State Machines (FSM)

"State machines" is a useful world modeling concept from computer science. Here's what Wikipedia says about it. The key concepts here are 1) a machine has a finite set of states 2) the machine is in one of those states at any given time 3) the machine changes to another state through a transition.

In games, screen management is a common example. One screen shows you the Main Menu screen, then depending on the user input in that state you can either transition to a Settings screen or a New Game screen, New Game screen transitions to a High Score screen or a Game Over screen and so on. It's a neat way to structure your code; everything a state does is contained inside one code block and interaction with other screens are done through transitions.

So how does that apply to the game?

I write my codes on paper like a hipster do

In the game, the player turn cycle is an FSM. A player starts in the My Turn state -- in it, his avatar is shown and his UI is reactivated. If the player selects to move his avatar to a district, the game transitions into the Move state -- the avatar is shown moving to the desired location. Since the Move state doesn't rely on user input, it can immediately transition into the End Turn state once the animations are done. In the End Turn state, we can decide to show more effects, animate the avatar to "sit" etc. (This is just an example, I ended up with plenty of states for the game.)

What's important is that these states are contained in one block of code -- a class, or a function. You want to have draw confetti when a turn is done? Fine, let's add that in the End Turn state. You want to have a minigame that determines if a player can move to the location or not? Write a MiniGame state that transitions to the Move or Stay state depending on the result. We can even assign a "controller" into each state for it to differentiate between a human or a computer AI taking a turn.

Am I over-engineering this? That's what I thought at first when I was sketching down the design on paper. But after I coded it and was amazed at how easily the pieces seem to snap together with the entire game, I imaginarily thanked my professor for not being boring back in Computer Science school.


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