tag:blogger.com,1999:blog-46546276537432993392024-03-14T11:14:52.740+08:00Party AnimalsA Deceptively Cute Political Strategy Game.Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.comBlogger40125tag:blogger.com,1999:blog-4654627653743299339.post-9807801231771416722016-02-15T13:08:00.001+08:002016-02-15T17:14:23.727+08:00How to Playtest Your Game<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMTfv5GHkrTtPNminqe4zEfHXW-GdPbimFqdks2bvkC1VN_pE51tcUk5lsi1yp89WLZ2fxinn1Su-Fc_K0CYpgA3K2JsMM8nKf5oJo0HeS-0uE2Ajw0AN6pqkZYGrC4IEJD7Pr7uWJhtA/s1600/playtestSM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMTfv5GHkrTtPNminqe4zEfHXW-GdPbimFqdks2bvkC1VN_pE51tcUk5lsi1yp89WLZ2fxinn1Su-Fc_K0CYpgA3K2JsMM8nKf5oJo0HeS-0uE2Ajw0AN6pqkZYGrC4IEJD7Pr7uWJhtA/s1600/playtestSM.jpg" /></a></div>
<br />
The game has finally reached a point where we're ready to show it to the world! Well not yet exactly, but we did show it to a few friends. As any self respecting game designer would know, play-testing a game is one of the more important parts of the game design process. In fact, if there are any doubts about a game mechanic, play-testing it is the way to go. In this article, I talk about how we conducted preliminary play tests for the game, and some of the interesting things we learned during the play-tests.<br />
<br />
<h2>
The Play-testers</h2>
First let me talk about the play-testers. Our very first play-testers are a few friends from the game industry who we lured with our charms, err, the promise of free food, and those unlucky enough to sit by our table during the recent Manila Game Jam held at the Ateneo De Manila University(ADMU). Seriously guys we really appreciate you taking the time to sit through the game and answer our questions. Speaking of questions, what play-test would be complete without a play-test questionnaire?<br />
<h2>
<br />The Play-test Questionnaire</h2>
For our first play tests we decided to go for a more general questionnaire, since our primary goal in doing these play-tests is to gauge where the game is in terms of fun, and to see if any problems will arise. As we iterate on the game based on preliminary feedback, we'll also iterate on the questions, refining them until we're ready to test the game with more people.<br />
Our questionnaire consists of two parts: Pre-game, and Post-game:<br />
<br />
<b>Pre Game Questions</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
The first part of the questionnaire deals mainly with knowing who the play tester is. This is important because answers to the questions will mostly be opinions of the player towards the game. Knowing the play tester will help us later on when deciding how much weight to put on his suggestions/feedback later on. Here are some of our Pre-game questions:<br />
<br />
1) Do you consider yourself as a strategy gamer?<br />
2) Please list down at least three strategy games that you have played.<br />
3) Rate your skill as a strategy gamer.(1 lowest,5 highest)<br />
4) Rate your interest in a game about politics. (1 lowest, 5 highest)<br />
5) Rate how clean a campaign you will run.(1 dirty, 5 clean)<br />
<br />
Questions 1,2, and 3 allows us to know what the play testers game preferences are which may shed some light on some of his/her Post Game answers later on. Question 5 is of interest because it tells us how the player plans to play the game ( good or evil) at the start, and later on we compare it to his actual play style.<br />
<br />
<h2>
Tester Plays the Game</h2>
<br />
After answering the Pre Game questions, the play tester is given a short introduction to the game, the goals of the player, and basic mechanics by yours truly. Afterwards, the player is let loose in the districts of Summer Island to test his political mettle against the opposing candidate. During the course of the game, the play-tester is allowed to comment and ask questions about the game, while we take notes.<br />
<br />
<b><br /></b>
<b>Post Game Questions</b><br />
<br />
When winner of the Summer Island elections have been revealed, it's now time for the play-tester to answer the Post Game questions. The Post Game questions deal mainly about the play-testers feelings towards the game. Some of the questions:<br />
<br />
1) How fun was the game? (1 lowest, 5 highest)<br />
2) Which part of the game did you enjoy the most?<br />
3) Which part of the game did you find the most difficult?<br />
4) How difficult is the game? ( 1 lowest, 5 highest)<br />
5) How corrupt were you in the game? ( 1 lowest, 5 highest)<br />
<br />
Remember during the Pre Game questions we asked how clean a campaign the player could run? In the Post game questions we ask how corrupt the player's candidate was during the campaign. It was quite surprising and fun( insert evil laugh here) to see that most players ended up being more corrupt than they thought they would be. But the best feedback was one tester that insisted they would be super corrupt but ended up only being moderately corrupt (wouldn't it be wonderful if more of ouir politicians were like that?)<br />
<br />
<h2>
Play-test Results</h2>
<br />
First a disclaimer before we present our results. Since we just play-tested with a very small pool of players, results from the play-test are not accurate at all, and should be used merely to present a different perspective on the game. Also, a majority of the play-testers are game industry professionals who have insight into the game development process which may or may not have coloured their reaction towards the game.<br />
<br />
The play-testers had an average of 2.78 (skill as a strategy gamer), 3.33 (interest in politics), 2.89 (running a clean campaign), 3.22( corruption), 3.5( had fun), 3.44( game difficulty), 4.17( accurate to political theme).<br />
<br />
Aside from the values above, we also received qualitative feedback from the play tests.<br />
<h2>
Things Players Did Not Enjoy</h2>
<b>Too Many Stats to Track </b><br />
<br />
These were game feedback which had keywords like info, and stats attached to words like Too much or Too many. These feedback seems to deal with the playing having a hard time processing game information hindering them from making decisions during the game.<br />
<br />
<b>AI Turn is too Fast</b><br />
<br />
These were game feedback which mentioned keywords like AI, Fast and Quick. These feedback seems to deal with the player having a hard time knowing what the opponent is doing.<br />
<h2>
Things the Player Enjoyed</h2>
<b>Being Corrupt</b><br />
<br />
These were game feedback which mentioned the keywords dirty, bribery, and scandals. The feedback seems to show that the player enjoyed doing bad things in the game.<br />
<br />
<b>Dominating Districts</b><br />
<br />
These were game feedback which mentioned the keywords domination, and winning. These feedback seems to show that the player enjoyed seeing his territory expand visually in the game through the borders of districts he has captured.<br />
<h2>
Looking Forward To More Play-tests</h2>
If you're looking to do a similar process during your own play-tests here's a few things to keep in mind:<br />
<br />
<ul>
<li>Quantitative data is not useful with a very small pool of play-testers because results won't be reliable. Try using open ended questions in your questionnaire.</li>
<li>Ask follow up questions. The play-tester rated fun as 4.5? Ask him what kept him from giving the game the full 5 points.</li>
<li>Always clarify if the play-tester's answer is vague. The play-tester might not mean what you think he means. (at the same team be careful not lead the tester to conclusions)</li>
<li>Observe which questions the player isn't asking. If there's a mechanic important enough to the game and the player is not asking questions about it, don't assume that the mechanic is clear to the player.</li>
</ul>
<br />
So there's our play-test experience. We're showing the game this coming February 20 at the <a href="http://www.igdamanila.org/event/feedback-february/">IGDA Manila Feedback February</a> event. Please get a ticket from the <a href="https://www.eventbrite.com/e/feedback-february-tickets-21375396386">Eventbrite page</a> if you'd like to test the game!<br />
<br />
<i>Thanks for reading. Here's a copy of our <a href="https://www.dropbox.com/s/68oyrgvb88cbpxj/Playtest%20Questions_V1.docx?dl=0">playtest feedback questions</a> for your reference. If you'd like t</i><i>o be updated on the latest Party Animals, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i><br />
<div>
<br /></div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com4tag:blogger.com,1999:blog-4654627653743299339.post-49660186213445500642016-01-19T15:45:00.000+08:002016-01-19T15:45:14.625+08:00Customizing Candidates in Party AnimalsI'm a little sad that we broke our streak of consecutive monthly devblog updates last month, but it was quite the hectic month for us as we tried to get work done in between dodging family gatherings for Christmas (A perennial nightmare for Filipino introverts). We did get quite a bit of work done though, which I'm excited to share with you all today.<br />
<h2>
Procedural Party Animals</h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLUhil7ZLRthcamraVmv24otRWMGMelZHNdynxGmEKcOF8v7fqWQ5B608xvWfLXhewr1YVNz669VTBcPw2L9hBxf4PodsvF3QzUqR3SWgxI_hOpPIHi2WtVPX6AkVvRsSjpZroGcVy6ko/s1600/partyanimalsselect.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLUhil7ZLRthcamraVmv24otRWMGMelZHNdynxGmEKcOF8v7fqWQ5B608xvWfLXhewr1YVNz669VTBcPw2L9hBxf4PodsvF3QzUqR3SWgxI_hOpPIHi2WtVPX6AkVvRsSjpZroGcVy6ko/s400/partyanimalsselect.gif" width="400" /></a></div>
<br />
In the process of making Party Animals it was always in the back of our heads to make some aspects of the game procedural in order to increase the replay value of the game. The way the game is made makes full procedural impossible in the same way a roguelike might be, but there are definitely a few aspects that when randomized will change the way the game plays for you.<br />
<br />
First off is the candidates. We guessed that being able to select your choice of animal candidate would be one of the things that players will like about the game, so we're hoping to making quite a few custom candidates to accommodate everyone's favorite animals (I've had at least one request for a giraffe, which should be interesting). The candidate's name is also customizable, as well as their traits. We haven't filled in the candidate's histories yet, but each trait will have an accompanying description alongside it. Previously our <a href="http://blog.heypartyanimals.com/2015/10/meet-candidates-of-party-animals.html">candidates</a> had pretty set histories and traits, but we figured there was more to gain by allowing players to customize their own candidate.<br />
<br />
Aside from choosing a candidate's history, you can also rename them, choose their home district and platform as well as selecting the staff you want to hire for your campaign. We currently only have three staff types right now but that should increase to at at least six by the time we're done.<br />
<br />
<h2>
New Maps </h2>
<br /><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0wrPWuoEK-3RHWOcqhrJzU7YlHi2EM0Y7PDAqN4H8E2XwjAIozMfLCR2aJ-72_N1UuV4Xb6-04J-0np9WEM3TUeGMlRpkvxwyLSv7luGy0m0_rr1gUF7BzPvTHN140lzHrv-xU-B_zLM/s1600/autumn.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0wrPWuoEK-3RHWOcqhrJzU7YlHi2EM0Y7PDAqN4H8E2XwjAIozMfLCR2aJ-72_N1UuV4Xb6-04J-0np9WEM3TUeGMlRpkvxwyLSv7luGy0m0_rr1gUF7BzPvTHN140lzHrv-xU-B_zLM/s400/autumn.jpg" width="400" /></a></div>
<br />
Some of you might have noticed that we also have a selection where you can choose the map you want to play in. New maps can definitely change the way the game is played and at the same time add some visual variety to the game. The maps will take much more effort than the candidates so we're rolling them out little by little and not announcing anything yet until we've finalized them. Previously we discussed that the <a href="http://blog.heypartyanimals.com/2014/05/worldbuilding-description-of-summer.html">Summer Island</a> map is based on <a href="https://en.wikipedia.org/wiki/Samar">Samar Island</a> in the Philippines. With the new maps we're hoping to interest players from around the world so they will be very loosely based on countries or continents from around the globe. That said, I'd like to introduce you to Autumn Island! It's still very rough and has none of the new buildings, but it should be fairly obvious where we're drawing inspiration from.<br />
<br />
<div>
<i>Thanks for reading. If you'd like t</i><i>o be updated on the latest Party Animals news including our closed Alpha, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i></div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com1tag:blogger.com,1999:blog-4654627653743299339.post-38709620540474044232015-11-30T21:13:00.000+08:002015-11-30T21:39:04.193+08:00The Machinations of Politics Part 2<i> </i><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-PH</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]--><i>In my last blog
post I mentioned that we will be using Machinations in designing the game
mechanics for Party Animals. Just to summarize, everything in the game, from
the districts, staffs,<span style="mso-spacerun: yes;"> </span>and events can be
considered as a resource, and that the game facilitates the interaction of
these resources with each other. I also described a basic node: Resource Pools,
and two different types of connections: Resource connections and State
connections. If you would like to learn this in detail check out the book
Mechanics: Advanced Game Design by Ernest W. Adams<span style="mso-spacerun: yes;"> </span>and Joris Dormans</i><br />
<br />
<div class="MsoNormal">
In this post I will
be going over the core game-play of Party Animals using Machinations while
introducing new nodes: <i style="mso-bidi-font-style: normal;">converters and end
conditions</i>. Also, <b>this is not a step by step tutorial on how to use
Machinations,</b> because the authors already did an excellent job <a href="http://www.gamasutra.com/view/feature/176033/the_designers_notebook_.php" target="_blank">right here</a>. What
this post hopes to achieve is to show you how to think about game design using
Machinations by using Party Animals as an example. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span>One thing important
to know,<span style="mso-spacerun: yes;"> </span>Machinations is not only a tool
for modelling game mechanics, but also a framework for describing <span style="mso-spacerun: yes;"> </span>game design on different levels( high to low
level). I'll start by showing the game from a high level point of view, then <span style="mso-spacerun: yes;"> </span>describe mechanics in detail in succeeding
blog posts. </div>
<div class="MsoNormal">
<br /></div>
<h2 class="MsoNormal">
<span style="font-size: large;"><b>The Whole is the Sum
of its Parts</b></span></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Party Animals is a 'territory acquisition' game at its core.
The main objective of the player in the game is to get more reputation than his
opponent before the election, and he does this through various means like
campaigning, bribing, and participating in game events. <span style="mso-spacerun: yes;"> </span>Look at the diagram below:</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3QBmSl9iUIDpxHGBhl7cQzFfazJQ3R2VXXuWbaBKHNjtqQ6ys8sOYJNL32QX8thSsoEdImtMjD1ygQBugWHbJaKpnz_rbMZCh-0AI5ez1zU8N9YJkQnFYg_byoRHnfdG82338LgDbZmE/s1600/article1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="373" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3QBmSl9iUIDpxHGBhl7cQzFfazJQ3R2VXXuWbaBKHNjtqQ6ys8sOYJNL32QX8thSsoEdImtMjD1ygQBugWHbJaKpnz_rbMZCh-0AI5ez1zU8N9YJkQnFYg_byoRHnfdG82338LgDbZmE/s400/article1.png" width="400" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-fareast-language: EN-PH; mso-no-proof: yes;"></span></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span><br />
More often than
not, actions that give the player reputation also require that the player spend
campaign resources. There are two important campaign resources in the game:
gold and command points. I will not explain the specifics here but for the
purpose of showing mechanics I<b> reduced both resources into the resource <span style="mso-bidi-font-weight: normal;">Funds</span>(see B in the diagram).</b><span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Another thing of
note is that the player can also spend funds on various actions like
rallying(raise voter concern on district issues), and gifting patrons(improve
patron relationship) which improves the efficiency of his campaign.<span style="mso-spacerun: yes;"> </span>By efficiency I mean getting more reputation
for the same(or less) amount of funds. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now let's take a look at the different elements shown in the
diagram:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">A.<span style="mso-spacerun: yes;"> </span>Fund Production</b> - <b style="mso-bidi-font-weight: normal;">The triangle with an asterisk(A) is a source node</b>. The source node
produces funds and the resource connection(arrow connecting <span style="mso-spacerun: yes;"> </span>node A to node B) stores the funds into the
players Fund pool(node B). </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">B. Fund Pool</b> -
The circles in the diagram are called pools and they store resources, in this
case funds.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">C. 'Get Reputation'
Converter</b> - The sideways triangle is called a converter.<span style="mso-spacerun: yes;"> </span>Converters take in resources as input and
transform them into other resources. If you take a look at the diagram you can
see that there are two resource connections leading to C , 1) [B to<span style="mso-spacerun: yes;"> </span>C] , and 2) [D to C] . What this means is
that in order to get Candidate Reputation(node E), the player needs to convert
funds and District Reputation(node D). Without funds or available District
Reputation then the player can't 'mine' reputation.</div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimuDdovrxxq1YCZrGE7MwgOdz18yHhDQdERC1vlnChItU1nBVeaJO-lx50Udouphg1oim7Wc7J6FxnSJcIhjlSpJpF4cdOPfPhCF3qTmu4WuhyIKZDKnmQlapjsrfLDEUKspVrXmEnC9w/s1600/article2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimuDdovrxxq1YCZrGE7MwgOdz18yHhDQdERC1vlnChItU1nBVeaJO-lx50Udouphg1oim7Wc7J6FxnSJcIhjlSpJpF4cdOPfPhCF3qTmu4WuhyIKZDKnmQlapjsrfLDEUKspVrXmEnC9w/s320/article2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The converter converts District Reputation and Funds into Candidate Reputation</td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">E. Candidate
Reputation</b> - Also a pool node, getting as much candidate reputation by
converting district reputation and funds is the goal of the player in the game.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">F,G. Campaign
Investments</b> - As stated above, the player can spend funds to improve the
efficiency of his campaign so that he gets more reputation by expending less
resources. Node F is a converter node which represents all actions in the game
which can help the player gain reputation. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i style="mso-bidi-font-style: normal;">As an example, a
candidate can give gifts(spend gold) to a patron to get bonus reputation when
campaigning in the patron's district.<span style="mso-spacerun: yes;"> </span></i></div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo-stZR1jHMmRrWhruK3SqJ45Dk0zOisOcVtEHHJwaDCM-wY18Mbya7arWp_2kw_tvo8hVkIlSC8YVWJzfh_F6J7nJvJVeYSa1zHZ8oC6eEd-x_uca6FLpIZD-7bVu9kJONUchi1R9560/s1600/article3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo-stZR1jHMmRrWhruK3SqJ45Dk0zOisOcVtEHHJwaDCM-wY18Mbya7arWp_2kw_tvo8hVkIlSC8YVWJzfh_F6J7nJvJVeYSa1zHZ8oC6eEd-x_uca6FLpIZD-7bVu9kJONUchi1R9560/s320/article3.png" width="307" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Nodes F and G represent actions in the game which improve the efficiency of the candidate's campaign</td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
When the candidate 'invests in his campaign' by
spending<span style="mso-spacerun: yes;"> </span>funds, an investment resource
is produced from node F and stored in node G. As shown in the diagram, node G
is connected to resource connections [C to E] and [D to C] by state
connections( dashes). This means that whenever an 'investment resource' is
stored in node G, [C to E] and [D to C ]increases by 1 which in turn means that
the player can mine an additional reputation resource.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>H. End Game Condition</b> - This node determines how the game
ends. The state connection [D to H] shows that the game will end when District
Concern( node D) is depleted (less than or equal to 0). <span style="mso-spacerun: yes;"> </span><i style="mso-bidi-font-style: normal;">Note
that this end condition is used only for the purpose of this article.</i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
As stated at the beginning of the post, the diagram shows
the game-play from a high level point of view, thus a lot of the game mechanics
which will make the game more interesting are missing. But it does show the
following:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
1) The player has funds to spend.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
2) The player spends funds to acquire reputation.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
3) The player can invest in his campaign in order to
maximize the use of his funds.</div>
<div class="MsoNormal">
which is what the player will be doing throughout most of
the game. Now it's only a matter of breaking<span style="mso-spacerun: yes;">
</span>these three down or <i style="mso-bidi-font-style: normal;">elaborating </i><span style="mso-spacerun: yes;"> </span>on them to make the game more interesting.</div>
<div class="MsoNormal">
<br /></div>
<h2 class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Key Concepts to Understand</b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Some of the skills I think is important when designing games
using Machinations are:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">1) Abstraction</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In the diagram, I've grouped together several game mechanics
and reduced them to a single node. For example, the Campaign Investment node
groups together mechanics in the game which the player can spend funds on to
improve the amount of reputation he can 'mine'.<span style="mso-spacerun: yes;">
</span>Learning how to 'see' similarities in mechanics and how they can be
grouped will be useful when trying to model game mechanics in machinations.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">2) Learn to think in
terms of relationships</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Game mechanics in machinations are represented by
nodes,<span style="mso-spacerun: yes;"> </span>resource and state connections.
It's important to understand how mechanics in your games are related to each
other. When designing games using machinations think about how the different
mechanics in your game work together.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">3) Learn to see and
use abstract resources</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In Mechanics: Advanced Game Design, the authors
distinguished between <i>concrete</i><i style="mso-bidi-font-style: normal;"> and
abstract</i> <i style="mso-bidi-font-style: normal;">resources</i>. Basically concrete resources are the ones you normally see in the game, and abstract
resources are the ones that you don't but are there. Some example of abstract
resources that I regularly use are <b>strategic </b><b style="mso-bidi-font-weight: normal;">advantage</b>
and <b style="mso-bidi-font-weight: normal;">player skill</b>. An example of
advantage as a resource is information in a game with hidden information as a
mechanic. <span style="mso-spacerun: yes;"> </span>Certainly getting information
that your opponents do not have increases your likelihood of winning the game.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In this article I've shown you how we use the machinations
tool in modelling our game mechanics, as well as given a few tips which will
help you learn the machinations tool. In the next blog post I'll be talking
about abstracting and elaborating mechanics as well as show some of the Party
Animals game mechanics I mentioned earlier.<br />
<br />
<div>
<i>Thanks for reading. If you'd like to tell us about political candidates from your side of the word, you can email us at </i><a href="mailto:heypartyanimals@gmail.com"><i>heypartyanimals@gmail.com</i></a>. <i>To be one of the first people to try our closed alpha, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i></div>
</div>
<i>
</i><br />
<div class="MsoNormal">
<br /></div>
Mithrashttp://www.blogger.com/profile/00116020412965341567noreply@blogger.com36tag:blogger.com,1999:blog-4654627653743299339.post-30926070104059608312015-10-14T12:36:00.000+08:002015-10-14T12:45:43.335+08:00Meet the Candidates of Party AnimalsElection fever is starting to hit our home country of the Philippines, so I thought the time was ripe for a quick devblog about the candidates of Party Animals. Each candidate has a specific set of bonuses that will nudge players towards a specific play style and ties in to their personal history. We only have three candidates for now, although we have more candidates down the line, and ideally we'll be able to let players customize the candidate of their choice. With that said, let's meet the candidates!<br />
<div>
<br /></div>
<h2>
Mousilita Ereñeta</h2>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdRBTxD3aTnfBOrbfSUmN3N-YwYTXdQmu8srwiahNnXvb8fb5K0Qz-usNsxTtTxUUP9-RPTnwa5eAuRJp15xOfHb_4meBJ-z0Ut23MjO2ininRJCeBAhkI0-VRGK1tYB7svyQLcVD4olA/s1600/Event_candidacy_mousilita2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdRBTxD3aTnfBOrbfSUmN3N-YwYTXdQmu8srwiahNnXvb8fb5K0Qz-usNsxTtTxUUP9-RPTnwa5eAuRJp15xOfHb_4meBJ-z0Ut23MjO2ininRJCeBAhkI0-VRGK1tYB7svyQLcVD4olA/s1600/Event_candidacy_mousilita2.jpg" /></a></div>
<div>
<br /></div>
<div>
Mousey is representative of everyone who is frustrated with the inefficiencies and bureaucracy. She got a taste of this firsthand as a low level government bureaucrat who eventually got fed up with how the system works. She believes in democratic system so she's decided that the best way to change things is to run for election! Inspired by her grandfather that walked barepawed to public school and eventually served in government, Mousey's platform is based on Education and Healthcare for all.</div>
<div>
<br /></div>
<div>
For a very long time we pondered how to make Mousey, who is ostensibly the good or "clean" character, a viable candidate since the game was skewed towards players who engaged in "scandalous behaviour. It was only later on when our game designer Tristan decided to add a <a href="http://blog.heypartyanimals.com/2015/08/patronage-politics-and-new-mechanics-in.html">Command Points system</a> that we had a eureka moment. Mousey's only possible advantage over her more well known and moneyed opponents would be to work harder and more efficiently than either of them. Giving Mousey more Command Points would allow her to move staff farther away from her and allow her campaign team to have a wider impact than the other candidates, who would be forced to keep their staff close by. </div>
<h2>
Crocopio Imperial</h2>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRV4n2wOfZ9kUklliEzWnyVHxUDQeLPkIs8VjfxW4mtOYMxkH8MTsQvNGLh9x6AJxyuOWjHiRI61hAxGgHaZLHqbT1lrxVleQIDNUtQfQIGR9zV-DoUaFzGWGKrDR1D-vodk76l80j9tc/s1600/Event_candidacy_crocopio.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRV4n2wOfZ9kUklliEzWnyVHxUDQeLPkIs8VjfxW4mtOYMxkH8MTsQvNGLh9x6AJxyuOWjHiRI61hAxGgHaZLHqbT1lrxVleQIDNUtQfQIGR9zV-DoUaFzGWGKrDR1D-vodk76l80j9tc/s1600/Event_candidacy_crocopio.jpg" /></a></div>
<div>
<br />
Crocopio is the stand-in for the moneyed elite that populate local government. As the son of elected officials, Croccy alsp stands for the political dynasties that are so prevalent in immature democracies. Filipinos may get a kick out of the fact that he's a crocodile, given that "Buwaya" (Filipino for crocodile) is a term commonly used to describe corrupt public officials.</div>
<div>
<br />
Given his position of privilege, Croccy has access to vast sums of wealth and uses that liberally during the campaign. He will get a bonus to funds that he can use to boost the effectivity of his rallies, bribes, and all sorts of other things. Croccy's campaigns based on Law and Order because he's a huge fan of the TV show but also because he knows having the law on his side can only be a good thing. He also supports Public Works because he likes to spend on lavish infrastructure projects that he truly believes will help the animals of Summer Island, and it doesn't hurt that he can put his name on them too!<br />
<br />
<h2>
Rooisito Espilorde</h2>
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1P6C3WlWyoJZmZ7_8ORleM9BZj9vijt3aYnw1ChNKfE_9mNJh1Q6NFTqDVsv7jXVfItDQc-1DIDsten6tYzB3YX_ArkIsGbImXKkIuqFNbq96s9y6Rsz6EMJeq8EH_EtNK6fp1oa3-X8/s1600/Event_candidacy_rooisito.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1P6C3WlWyoJZmZ7_8ORleM9BZj9vijt3aYnw1ChNKfE_9mNJh1Q6NFTqDVsv7jXVfItDQc-1DIDsten6tYzB3YX_ArkIsGbImXKkIuqFNbq96s9y6Rsz6EMJeq8EH_EtNK6fp1oa3-X8/s1600/Event_candidacy_rooisito.jpg" /></a></div>
<div>
<br />
Young democracies are prone to popularity politics, and Ruey is representative of that. Be they celebrities or sports animals, many animals have taken to politics in the twilight of their career to put their lifetime investment in the limelight to good use. The well-meaning Luey promises to knock out crime and corruption in politics just as he did in the cockfighting arena, but there's very little substance to his campaign. </div>
<div>
<br /></div>
<div>
Ruey is the last of the candidates that we've thought of (If I'm being honest, we only had the idea to make him a candidate last week) so his design is the weakest at this point. His bonus will definitely have something to do with his popularity though, so either he gets a bonus when dealing with patrons, or maybe he starts off with some reputation throughout Summer Island.</div>
<div>
<br /></div>
<h2>
Stereotypes, not Specifics</h2>
<div>
<br />
Party Animals, while loosely based on Philippine Politics, was always meant for an international audience, and so we're careful to make sure that these characters are stereotypes and not modeled after specific people. While an international audience generally knows enough about US politics to want to <a href="http://www.politicalmachine.com/">play a game</a> about it, the same does not hold true for the Philippines. Stereotypes make it easier for anyone around the world and say "Oh hey, that's like (this person) from (my country)!" and we (desperately) hope that will make it attractive to game players around the world. Lastly, while as individuals we will have to decide who we're voting for in the elections, we want to make the game about the experience of a candidate on campaign and not about supporting any specific candidate.</div>
<div>
<br /></div>
<div>
<i>Thanks for reading. If you'd like to tell us about political candidates from your side of the word, you can email us at </i><a href="mailto:heypartyanimals@gmail.com"><i>heypartyanimals@gmail.com</i></a>. <i>To be one of the first people to try our closed alpha, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i></div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-23019465892147921272015-09-20T03:22:00.000+08:002015-09-20T10:54:27.993+08:00Stories and Tradeoffs in Political Party Animals<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZTMUtvpoTGRuJmjiRt-Ovpp9zSLH_d-l44z3WlkuRuWKIkRzcm_FWXXjjYQ4BfGZp_dgVQDyO7pUSFSiOhlku1qFhKuVOBZWJNx4Rbqvfe_-WzAbeOeBg-kwPRUl6CMncRVse61Qaefw/s1600/blog_goat.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZTMUtvpoTGRuJmjiRt-Ovpp9zSLH_d-l44z3WlkuRuWKIkRzcm_FWXXjjYQ4BfGZp_dgVQDyO7pUSFSiOhlku1qFhKuVOBZWJNx4Rbqvfe_-WzAbeOeBg-kwPRUl6CMncRVse61Qaefw/s320/blog_goat.jpg" width="293" /></a></div>
<br />
This is Ka Eldereta. He is a tribal chieftain that represents the interests of the indigenous people of Summer Island. His name is a play on words, as “Kalderetang Kambing” is a traditional Filipino stew made with tomatoes, liver paste, carrots, potatoes, and most importantly, goat’s meat. Filipinos have an almost embarrassing affinity for wordplay and puns, and it’s something that we wholeheartedly embrace. For example, we have an excel spreadsheet of animal names for Owls that includes “Owlfredo” and “Owlberto”. If that made you chuckle, then you’re probably going to like our game.<br />
<br />
I was reminded of Ka Eldereta a few days ago because of recent news in the Philippines having to do with indigenous peoples. I debated for a long time whether or not to write this blog because it felt a little gross to be linking the game to a tragedy, as if we were trying to market the game based on the sufferings of indigenous people. My internal compromise was that I would not mention the specific incident in this blogpost. A google search on indigenous people in the Philippines should already give you a wealth of information on the indignities they’ve had to endure under majority rule.<br />
<br />
Still, I felt it was it was very timely to talk about it because it reminded me of one of the reasons we wanted to make this game in the first place. We wanted to tell stories. Political Party Animals is primarily the story of the player as politician, and the compromises they are forced to make on the campaign trail. But it’s also the story of citizens engaging with the politician to further their own interests.<br />
<br />
<h2>
Stories from the Campaign Trail</h2>
<br />
Some of those stories are hilariously mundane. For example, the aforementioned Owlberto has as idiot of a son named Owlfredo, who needs an internship with a political campaign. If you take him on you will have one of your staff replaced with notoriously inept Owlfredo, who will bungle up your campaign (in-game translation, -50% to the result of every action he takes). But the tradeoff is that Owlberto will be your BFF, and as a patron he’ll give you a substantial bonus to your campaigns in his district.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3C7iOiP3TbjfluiFjCycDl7ADE5_5-yUIBmNaZkE70D_grNiGh_YFF7BnSmXzAzMZ7NEVlSx9qGQ5yBIqjwQ3w0PiWxMg_PK3sUVPZqRuZlRFvcJO9sVFPyadpRFhQ3Vn5AgHP8WJo5M/s1600/mockup_event_protest.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="361" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3C7iOiP3TbjfluiFjCycDl7ADE5_5-yUIBmNaZkE70D_grNiGh_YFF7BnSmXzAzMZ7NEVlSx9qGQ5yBIqjwQ3w0PiWxMg_PK3sUVPZqRuZlRFvcJO9sVFPyadpRFhQ3Vn5AgHP8WJo5M/s640/mockup_event_protest.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
But other stories will highlight the classic struggle between a weak minority and powerful business interests (or when seen from the other side, a respectable business dealing with radical activists). For example, we see here Ka Eldereta and other activists protesting against mining activities. If you champion their cause you will gain their trust (and more importantly, their votes!) but you will displease one of the Patrons in the Mining district, who will now make it very hard for you to campaign in the district. How will you proceed?<br />
<br />
<h2>
Tell us your stories</h2>
<br />
These are the stories and tradeoffs that make politics an interesting and often infuriating business. Despite what people might think there often isn’t one right or wrong way to go about things, just a series of tradeoffs that must be weighed against each other. For now, the events in Party Animals will be based around political stories in the Philippines, but as we move forward in the game we’ll be soliciting stories from people around the world and finding a way to integrate them in the game so we can hopefully tell stories from around the world.<br />
<br />
<i>Thanks for reading. If you'd like to tell us a political campaign story from your side of the word, you can email us at </i><a href="mailto:heypartyanimals@gmail.com"><i>heypartyanimals@gmail.com</i></a>. <i>To be one of the first people to try our closed alpha, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i><br />
<br />
<br />
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-66340329275957294232015-08-31T20:58:00.000+08:002015-09-20T03:22:59.211+08:00The Animation Pipeline for Political Party Animals<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLuOwomdwd65w6h59P8KTs68ioXSWnparGwnVmORsbg3VEBHiVSTXgL37ywooRM3qGsUT31Q0b-0oeWSKB8nJ5LLt9yjyZ_OPAhI0mpnWAd6pIwG3S2nIbDpsMNxGjn8h-KZ1xJQyBwXE/s1600/gwenkyle.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLuOwomdwd65w6h59P8KTs68ioXSWnparGwnVmORsbg3VEBHiVSTXgL37ywooRM3qGsUT31Q0b-0oeWSKB8nJ5LLt9yjyZ_OPAhI0mpnWAd6pIwG3S2nIbDpsMNxGjn8h-KZ1xJQyBwXE/s1600/gwenkyle.jpg" /></a></div>
<br />
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 <a href="https://twitter.com/heypartyanimals">Twitter</a> and <a href="https://www.tumblr.com/blog/politicalpartyanimals">Tumblr</a>. 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.<br />
<br />
In the meantime, let me show you my process for the creation and animation of our characters. <a href="http://blog.heypartyanimals.com/2014/05/why-i-chose-hand-drawn-animations-over.html">Previously</a>, 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!<br />
<h2>
Part 1 : Concept Sketches</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYLCwF_yNiIbBcULVL0jSdQ3my36Mj-oP_NL-kH1p5xkHf6NPjzS6wc3TS7knUon8jZTAICKWt35hwVa4Uf4vdJrUUVEs9_GLTfkN3x7gQNW3GhEX0TTesDefUDBS8r7QnC8TjBKMhxRk/s1600/sketch_crowReporter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYLCwF_yNiIbBcULVL0jSdQ3my36Mj-oP_NL-kH1p5xkHf6NPjzS6wc3TS7knUon8jZTAICKWt35hwVa4Uf4vdJrUUVEs9_GLTfkN3x7gQNW3GhEX0TTesDefUDBS8r7QnC8TjBKMhxRk/s640/sketch_crowReporter.jpg" width="480" /></a></div>
<br />
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.<br />
<h2>
Part 2: Vectorizing</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0hATM3jZeMbiJUQiGv7T4MOttLQ1mA8NaankksMEhgW5jDapgXqPF2XI5lNHtpbSfXocUlzDPYNti3Tr5BMGe5O3olHn3cGzQX6AB__hv2eEQIrAjKltGP0Gox0FhsBXUGF4hWVu63AM/s1600/full_crow2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0hATM3jZeMbiJUQiGv7T4MOttLQ1mA8NaankksMEhgW5jDapgXqPF2XI5lNHtpbSfXocUlzDPYNti3Tr5BMGe5O3olHn3cGzQX6AB__hv2eEQIrAjKltGP0Gox0FhsBXUGF4hWVu63AM/s400/full_crow2.jpg" width="400" /></a></div>
<br />
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.<br />
<br />
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!<br />
<h2>
Part 3: Animate!</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2Bk8OLnLmXCOqyL1hR-Oi6cJOE7Ydj9zwQzjFI3Geghx_m-iZlbCvfmAQ9JNTNnNcvrZO7eZHmuW4ziAnIRmCM0kTFrhbht8VBpVuEwlo0puQ6Jj0_1Jnmsk4iDsKfCg10SiGg5jzC8o/s1600/base_investigator_movesmall.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2Bk8OLnLmXCOqyL1hR-Oi6cJOE7Ydj9zwQzjFI3Geghx_m-iZlbCvfmAQ9JNTNnNcvrZO7eZHmuW4ziAnIRmCM0kTFrhbht8VBpVuEwlo0puQ6Jj0_1Jnmsk4iDsKfCg10SiGg5jzC8o/s1600/base_investigator_movesmall.gif" /></a></div>
<br />
<br />
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.<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFoyOamV92smMfsJUTA9BkJG16bfwIhwptyAD0qHDgsbV2sB35KC8PwxftTsRTsaw0g2XPtuF2Vevl5Cuo3sshkwKIMjGuVKl1adxpq8lqkwrSadEJU_HhIsRpoEIiFgC_buwgq-KWKOc/s1600/base_investigator_move.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFoyOamV92smMfsJUTA9BkJG16bfwIhwptyAD0qHDgsbV2sB35KC8PwxftTsRTsaw0g2XPtuF2Vevl5Cuo3sshkwKIMjGuVKl1adxpq8lqkwrSadEJU_HhIsRpoEIiFgC_buwgq-KWKOc/s400/base_investigator_move.gif" width="400" /></a></div>
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOvTn3-kO91v2mcrkfBDgRCaAa442py1JBNiQicYjxyGjCq1ObP0vCpEFMp6H5Pr2pCRbga-muyxSN_ENzeeT0Jtn5wSr4QfFW34FBYzmhPMfR_ElbxDeWR3ETi84OsfKFUpPAs1ZOmaw/s1600/animationtimeline.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOvTn3-kO91v2mcrkfBDgRCaAa442py1JBNiQicYjxyGjCq1ObP0vCpEFMp6H5Pr2pCRbga-muyxSN_ENzeeT0Jtn5wSr4QfFW34FBYzmhPMfR_ElbxDeWR3ETi84OsfKFUpPAs1ZOmaw/s400/animationtimeline.jpg" width="400" /></a></div>
<br />
<br />
This is an image showing the frame by frame animation within photoshop, so you have a better idea of how many frames I use.<br />
<h2>
Part 4 : Shrinkage</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ4r6z8FPHsWZYpSUjWVffvgEgSD-ZNtGytx2_SqaIBA_TrXsFcSM3VHPGpXtosva5WEAy2GHRoMx4u6aEiyi2HIn8Nif3Ss3udK0StnN2JPShZ1IDbKTEAeBlB36XeSl4L4oGYQDgbZw/s1600/2dtoolkitanimation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ4r6z8FPHsWZYpSUjWVffvgEgSD-ZNtGytx2_SqaIBA_TrXsFcSM3VHPGpXtosva5WEAy2GHRoMx4u6aEiyi2HIn8Nif3Ss3udK0StnN2JPShZ1IDbKTEAeBlB36XeSl4L4oGYQDgbZw/s400/2dtoolkitanimation.jpg" width="400" /></a></div>
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFNmcMJRTVW1Bd-mUrwQhXjwPn2lmTzqNM8zOX3-hYrZuvAYxx4HM_I_xzQ8l0TarIdeRjToru3L91I-ItPwKiZtABoPwTBg8gP_ha9ICEIEO_K07qdcgBXJOCDVTQbrAK0dxtsGBodE/s1600/Investigartor80percent.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFNmcMJRTVW1Bd-mUrwQhXjwPn2lmTzqNM8zOX3-hYrZuvAYxx4HM_I_xzQ8l0TarIdeRjToru3L91I-ItPwKiZtABoPwTBg8gP_ha9ICEIEO_K07qdcgBXJOCDVTQbrAK0dxtsGBodE/s320/Investigartor80percent.gif" width="320" /></a></div>
<br />
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.<br />
<br />
<i>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! </i><i>To be one of the first people to try our closed alpha, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i>Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com1tag:blogger.com,1999:blog-4654627653743299339.post-44620290471791322282015-08-01T00:45:00.002+08:002015-09-20T03:23:14.725+08:00Patronage Politics and New Mechanics in Political Party Animals<i>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.</i><br />
<br />
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.<br />
<br />
<h2>
Command Points</h2>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKvoRYBG6hgLUsRuvg55XBoH7iqgBaTokdGU0WlkPqcwXtb-9DpaIH6gQj1BPK3TK66hi7YSvNGSnhmDVc-fwqP9akXID_NnL_OkB89pCXHkpKLkeurG912rgjKowKQs-G9Z4zGuNWLcg/s1600/commandpoints.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKvoRYBG6hgLUsRuvg55XBoH7iqgBaTokdGU0WlkPqcwXtb-9DpaIH6gQj1BPK3TK66hi7YSvNGSnhmDVc-fwqP9akXID_NnL_OkB89pCXHkpKLkeurG912rgjKowKQs-G9Z4zGuNWLcg/s400/commandpoints.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small; text-align: start;">Pay CP first before you can use your Staff</span></td></tr>
</tbody></table>
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
<i>Tristan's note: The implementation of command points is inspired by war games, one of which is <a href="http://amzn.to/1IdbpSX">Onslaught : D-Day to the Rhine by SPI</a></i>.<br />
<br />
<h2>
New Meaning of Reputation</h2>
<br />
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).<br />
<br />
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. :)<br />
<br />
<i>Ryan's note: The inspiration for reputation decay came from a book called <a href="http://amzn.to/1MA7XEV">Accidental Guerrilla</a>, in which author <a href="http://amzn.to/1MA81o8">David Kilcullen</a> 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.</i><br />
<h2>
Raise Funds</h2>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzh6L_i9MLyYw4ZKF0S9yh8QCNokHB7gKXPFsydjZj6s6fwxxev-uZeq2-9AsSvPcn7naxlBK2GT3L3dLLwFH_eKg73siMDabLodtsJG_ylhN7UZFjpY1CGCEAsm46wshOlVCT5m1aL7I/s1600/raisefunds.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzh6L_i9MLyYw4ZKF0S9yh8QCNokHB7gKXPFsydjZj6s6fwxxev-uZeq2-9AsSvPcn7naxlBK2GT3L3dLLwFH_eKg73siMDabLodtsJG_ylhN7UZFjpY1CGCEAsm46wshOlVCT5m1aL7I/s400/raisefunds.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small; text-align: start;">Now players can use the people they've convinced to give them money</span></td></tr>
</tbody></table>
<br />
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.<br />
<br />
<h2>
Patrons</h2>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYtrJvGZaE5Yn3Rdm1nzLBxtY6il9d7L7x5oY4-wvBZgmt2hU3FfliISoMTjsynx3Z1_J21XXi1koqXdGhUJdtgNf_0vbztAAKfPHZUjd8PpWDUGA8qfAVZnfE5XjbNtKQPR8yezoUrJQ/s1600/patrons.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="349" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYtrJvGZaE5Yn3Rdm1nzLBxtY6il9d7L7x5oY4-wvBZgmt2hU3FfliISoMTjsynx3Z1_J21XXi1koqXdGhUJdtgNf_0vbztAAKfPHZUjd8PpWDUGA8qfAVZnfE5XjbNtKQPR8yezoUrJQ/s400/patrons.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small; text-align: start;">Patronage politics at its best!</span></td></tr>
</tbody></table>
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
<h2>
Scandals</h2>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKevv_ahY1K203RlJEo3XMSZKM0XHZt5U8y7roeppnfPMfxHiegAFlhLvQWFoXoXByXy9gen4udqhKkHCzmavmST7rT0eWyXAEfu9P-BDrwHNdXgSix4StVVYQGvR3RLMuESoYrYBkvgk/s1600/scandalouscampaign.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKevv_ahY1K203RlJEo3XMSZKM0XHZt5U8y7roeppnfPMfxHiegAFlhLvQWFoXoXByXy9gen4udqhKkHCzmavmST7rT0eWyXAEfu9P-BDrwHNdXgSix4StVVYQGvR3RLMuESoYrYBkvgk/s400/scandalouscampaign.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small; text-align: start;">Red means “scandalous”</span></td></tr>
</tbody></table>
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
<h2>
The Tip</h2>
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
<i>Thanks for reading. If you want to be one of the first people to try our closed alpha, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i><br />
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-55576559771622629202015-06-29T22:00:00.000+08:002015-09-20T03:23:28.967+08:00Expressing Personality Through AnimationsThe Party Animals team is going heavily into revised game mechanics right now, and we're hoping to have something to share on that front very soon. In the meantime I wanted to show off some of the animations I've been working on in my free time. These animations will show up on the world map as your characters go around and do actions. They will be much smaller than they are right now (see previous post), but I work on them on a much larger scale to inject as much personality into the animations as I can, hoping that some of that will translate even when the animations are reduced.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy_SEO8HmB8D1ULX-Fsod-QnCWrjVajbg7DBQ2NZDnqjxSYq9mPssmQ2FW2WiCrxeWa9UMWP02hE7esrmuNiLV09wQ5qf4mqQNOMLKN8IQn1O_mlH7IF-WZL2PxgPZyHQeGtPa93L3O08/s1600/base_croc_move.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy_SEO8HmB8D1ULX-Fsod-QnCWrjVajbg7DBQ2NZDnqjxSYq9mPssmQ2FW2WiCrxeWa9UMWP02hE7esrmuNiLV09wQ5qf4mqQNOMLKN8IQn1O_mlH7IF-WZL2PxgPZyHQeGtPa93L3O08/s1600/base_croc_move.gif" /></a></div>
<br />
For example, let's take a look at the candidate <b>Crocopio Imperial</b>. Croccy is the scion of a political family and is absolutely loaded with cash. He's so rich that even while moving along the map he's already throwing money around. The gleeful abandon with which he throws around money is almost infectious. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikwgv0U1kYyZec3SjNmlCyRLMdHaN7yOAcVCg3038cE4IX3N7LLtYnjG3YPZ6uLdvtLSbRGK1vw1PVi7Xpf6byOw6lVpKRMw4SQbpe69HSKzJ0NdJUxYVKa2eSUwMVSSs6aNGPuRiOsNc/s1600/base_croc_bribe.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikwgv0U1kYyZec3SjNmlCyRLMdHaN7yOAcVCg3038cE4IX3N7LLtYnjG3YPZ6uLdvtLSbRGK1vw1PVi7Xpf6byOw6lVpKRMw4SQbpe69HSKzJ0NdJUxYVKa2eSUwMVSSs6aNGPuRiOsNc/s1600/base_croc_bribe.gif" /></a></div>
<br />
And when it's time to start bribing, he gives you the whole sack of cash.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE_CbynUr2df_MVIy2NTQ9NjP_VKfVaSQ7VAZ0DrFJXiMPfKIvaajbGYKSsY9PDKbKjXMfZXb5ANU1zVbhh_8gZrXEvG96qfQBXmV6EP99ZxzxTp5juFS7ph8XauAuSMftJ7eHLVM5HgU/s1600/base_investigator_fail.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE_CbynUr2df_MVIy2NTQ9NjP_VKfVaSQ7VAZ0DrFJXiMPfKIvaajbGYKSsY9PDKbKjXMfZXb5ANU1zVbhh_8gZrXEvG96qfQBXmV6EP99ZxzxTp5juFS7ph8XauAuSMftJ7eHLVM5HgU/s1600/base_investigator_fail.gif" /></a></div>
<br />
The <b>Investigator</b>, who is a staff member you can hire, is much more stoic. Even when he gets mad there's a minimum amount of motion. I worry that this won't read very well when it's reduced, but it's a risk I'll take, since I feel it is very central to the Investigator's character that he doesn't have any wasted movements.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbzvCZLdDPjLU8or-GV6XPRdLcyDmKvP6JmClQw8mUQ0GxuIExbp6cGGnL5epD1LXUU1TORxOclsEDuW5sk5MLNYIVteARIwjX9iRhxwgQSFCfBnC_575O6MMMTaoOTexHwe-6dizraXs/s1600/base_investigator_move.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbzvCZLdDPjLU8or-GV6XPRdLcyDmKvP6JmClQw8mUQ0GxuIExbp6cGGnL5epD1LXUU1TORxOclsEDuW5sk5MLNYIVteARIwjX9iRhxwgQSFCfBnC_575O6MMMTaoOTexHwe-6dizraXs/s1600/base_investigator_move.gif" /></a></div>
<br />
Except when he's exaggeratedly sneaking around, of course.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY4hWWQ3EwRs1AiYmkNn6x8RLZoCI_kfg-A33fTXn8hkq3iuuCnUejYbGfFtgay_6kr4e0p4oemZe1efSUr4LPTnXsAnJLvyuHWXNzvr-ebBvuGyi_udP4MYudOqxicjpk1quksg-Y-Oo/s1600/base_police_escort.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY4hWWQ3EwRs1AiYmkNn6x8RLZoCI_kfg-A33fTXn8hkq3iuuCnUejYbGfFtgay_6kr4e0p4oemZe1efSUr4LPTnXsAnJLvyuHWXNzvr-ebBvuGyi_udP4MYudOqxicjpk1quksg-Y-Oo/s1600/base_police_escort.gif" /></a></div>
<br />
Contrary to the Investigator, the <b>Police</b> looks like she once wanted to be a disco dancer, flailing he arms and blowing that whistle as she redirects traffic for your candidate's convoy.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgffL2nxEmXqxvXbfN-gGmvqevryrnnmE6vnQkmuXj1IVV2Dm2MWqBTIqXirc9qD4ti3Q2nwzUpIPt1Tp4jj_-hIROwbwoBnwMS4c6EHb50FNK67voP1V_5rZ1T1yQfBgY2Z6nWKtlVnSs/s1600/base_police_victory.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgffL2nxEmXqxvXbfN-gGmvqevryrnnmE6vnQkmuXj1IVV2Dm2MWqBTIqXirc9qD4ti3Q2nwzUpIPt1Tp4jj_-hIROwbwoBnwMS4c6EHb50FNK67voP1V_5rZ1T1yQfBgY2Z6nWKtlVnSs/s1600/base_police_victory.gif" /></a></div>
<br />
She's equally as exuberant when she's able to conduct a campaign successfully on your behalf.<br />
<br />
These are just a few of the candidates and staff that we're going to have in the game. We have a bunch more in store for you, and I'm excited to start working on them already. It's a lot of work animating them all, but I hope it'll be worth it in the end. Please let us know what you think!<br />
<br />
<i>Thanks for reading. If you want to be one of the first people to try our closed alpha, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>!</i><br />
<div>
<i><br /></i></div>
<br />
<br />
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-65863526230586525572015-06-06T10:45:00.000+08:002015-06-06T10:45:32.448+08:00Explaining the GIF!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSDYn8ivEtJwpaNpRSJXj53ftSHLg36EZ7tMQY_MAe7UUX2LpBK6lRbbTQ5h0XSkKETb13uljjNLDAC9_gK9tu3Jk1MVZCb2u09zWH7iJVhJDnDw17Nz-KPSoKCq7wdSn-LqbpJdBe5M4/s1600/partyanimals3.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSDYn8ivEtJwpaNpRSJXj53ftSHLg36EZ7tMQY_MAe7UUX2LpBK6lRbbTQ5h0XSkKETb13uljjNLDAC9_gK9tu3Jk1MVZCb2u09zWH7iJVhJDnDw17Nz-KPSoKCq7wdSn-LqbpJdBe5M4/s1600/partyanimals3.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
We usually try to keep our blogposts to a regularly scheduled once a month for the sake of consistency. But this week I wanted to take a little time to explain the GIF that I shared with you guys last week when Marnel was talking about our AI. So without further ado, here is the explanation:</div>
<div class="separator" style="clear: both;">
</div>
<ul>
<li>There are 3 characters right now, <b>Mousey, Croccy, and Police Staff</b>. <b>Mousey</b> and <b>Croccy</b> are the candidates on opposing side, and <b>Police</b> is one of the Staff that you can hire for your campaign (she's the only one we've finished so far)</li>
<li>The districts highlighted in red are <b>Blockaded</b>, which is the Police's special ability. Your enemy cannot enter the district that is blockaded unless they pay the Police a bribe to get in (This only lasts one turn).</li>
<li>At some point you see what looks like an avatar of an owl creeping slowly closer to the avatar of Croccy. That Owl is a <b>Kapitan</b>, and Croccy has just given it a gift to improve his <b>Relationship</b> with the Owl. As we said before, in this game you not only manage your relationship with the citizens, but also with their leaders.</li>
</ul>
<div>
Hopefully that's enough to whet your appetites but still keep you intrigued about what else is going in in the game!</div>
<div>
<br /></div>
<div>
</div>
<br />
<i>Thanks for reading. If you want to be up to date on the latest Political Party Animals news, please sign up for our <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">mailing list</a>.</i><br />
<div>
<i><br /></i></div>
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-53742929875996305052015-05-30T22:03:00.000+08:002015-09-20T03:23:46.527+08:00One AI is Easy, but FOUR?!?!?<i>The following is a blog by our programmer Marnel, talking about AI in a strategy game.</i><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjegkLQ8Cg4D5Mz1MGTwwdGuSxmYJxlyCBoe-j2x4VjRKJMnQaJppD3QkOfvYrQ1Zvh-DkVP0cE_TjTOvRW0eqh-HUfR476Lmi5FfFvt-gNO_y7idQr44ASHFW_b3DIrmvfLPEx0TkDksk/s1600/partyanimals3.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjegkLQ8Cg4D5Mz1MGTwwdGuSxmYJxlyCBoe-j2x4VjRKJMnQaJppD3QkOfvYrQ1Zvh-DkVP0cE_TjTOvRW0eqh-HUfR476Lmi5FfFvt-gNO_y7idQr44ASHFW_b3DIrmvfLPEx0TkDksk/s1600/partyanimals3.gif" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Our AI in action</td></tr>
</tbody></table>
<br />
I have implemented my own FSM and Behavior Tree systems for AI in games. I know how to properly use them in most cases. They've worked really well. I honestly think I already have the working knowledge for the AI of the kind of games I'd like to make... until Party Animals came. I felt stupid and incapable.<br />
<br />
FSMs and Behavior Trees are good for single agent AI. Single agent here means that the simulated behavior is only responsible for itself. It doesn't see other agents and try perform tasks together more effectively. For example, let's describe a single agent behavior of an enemy unit guarding a gate:<br />
<blockquote class="tr_bq">
<span id="docs-internal-guid-324e3f95-a3aa-2715-6080-71e03048cc57"></span><br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;"><span id="docs-internal-guid-324e3f95-a3aa-2715-6080-71e03048cc57">
<li dir="ltr" style="color: #333333; font-family: Georgia; font-size: 16px; list-style-type: disc; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 0pt;">
<span style="vertical-align: baseline; white-space: pre-wrap;">Unit stands still near the gate</span></div>
</li>
<li dir="ltr" style="color: #333333; font-family: Georgia; font-size: 16px; list-style-type: disc; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 0pt;">
<span style="vertical-align: baseline; white-space: pre-wrap;">If it sees a player unit within its range,</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="color: #333333; font-family: Georgia; font-size: 16px; list-style-type: circle; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="vertical-align: baseline; white-space: pre-wrap;">Chase and attack that player unit</span></div>
</li>
<li dir="ltr" style="color: #333333; font-family: Georgia; font-size: 16px; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">If player unit dies or goes out of range, go back to gate</span></li>
</ul>
</span></ul>
<span id="docs-internal-guid-324e3f95-a3aa-2715-6080-71e03048cc57">
</span></blockquote>
<br />
Now let's say we assign two enemy units on that gate with this behavior. It will still work but probably not the best strategy to defend the gate. Both of them will chase the target as soon as it sees one. They could have decided that one of them chases the player's unit while the other one remains on guard. This is no longer single agent. Multiple agent behavior is another beast with its own set of complexities.<br />
<br />
In Party Animals, a player controls 4 units. They are called "Staff". One is the candidate character himself and the other 3 could be any combination of Police, Accountant, Investigator, PR Manager, or Goon (we'll add more). Each staff has a common and unique sets of abilities. The game is turn based. Each Staff can execute one action and can also move to an adjacent district once in every turn. The player may choose to move then execute an action or execute first then move to another district for each staff. Aside from this, the player also has to assign budget for each action. The budget allocated affects the effect of the action.<br />
<br />
Here's the college project: implement an AI opponent that controls 4 Staff units that should pose a challenge to the player. It may not play the best moves, but should at least be smart enough to pick and order its actions sensibly. Sounds easy? (If yes, email me your solution please.)<br />
<br />
I think the main difference between single agent AI systems and multiple agent AI ones is the concept of planning. There's no planning in FSMs or Behavior Trees. You can simply pick which branch to choose based on some conditions and let the agent perform the behavior described in that branch. You can't simply pick a branch of behavior for a multiple agent AI. There are questions to be answered before letting agents do their tasks:<br />
<br />
<ul>
<li>Are the agents assigned the best task for them in the current situation?</li>
<li>Is the order of execution of agents' tasks give the highest benefit?</li>
<li>Are the selected actions sensible enough in the player's perspective? Is the AI playing the game right?</li>
</ul>
<br />
Single agent systems just can't answer these questions. I had to look for other ways.<br />
<br />
<h2>
Solution 1: Genetic Algorithm</h2>
I love brute force solutions. A genetic algorithm could certainly be used for Party Animals. Since the game is turn based, there's no pressure for the AI to run as fast as possible. I don't need the best answer either. I was thinking that I could run 1000 generations for each turn and select the best gene as the set of actions that the AI would take in that turn. In the end, I decided against it because I'm not so sure how long 1000 generations would take. I mean sure the game is turn based but we don't want the player to wait too long for the AI to execute. The chromosome encoding/decoding itself would take too much time to implement as there are lots of possible actions. The fitness scoring would be quite complicated, too. There are lots of variables to consider.<br />
<br />
<h2>
Solution 2: SHOP Planning System</h2>
Here's the <a href="http://www.aaai.org/ojs/index.php/aimagazine/article/view/1580/1479">link</a> to the paper of the algorithm. It looks simple but I'm not quite sure how to implement it. I don't even know if it's a multi agent solution. It's more like a distant cousin of GOAP.<br />
<br />
<h2>
Solution 3: Resource Assignment Algorithm</h2>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGknj1lNtDmt6b3Cqne8_ncTVJmtbJy4tnWSZ4LLnWk_-dyM40Gy-ALH22v2MsvK1Ow1QMboQr5grufASRcG8ziJNwxktE3Pm43qnZ9nT_TYlbTk0YYIsytda6q1PmI0E0pXod253pbUw/s1600/ResourceAssignmentCode.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="511" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGknj1lNtDmt6b3Cqne8_ncTVJmtbJy4tnWSZ4LLnWk_-dyM40Gy-ALH22v2MsvK1Ow1QMboQr5grufASRcG8ziJNwxktE3Pm43qnZ9nT_TYlbTk0YYIsytda6q1PmI0E0pXod253pbUw/s640/ResourceAssignmentCode.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sample code</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
I found this one in <a href="http://www.gamasutra.com/view/feature/1535/designing_ai_algorithms_for_.php?print=1">Gamasutra</a>. I liked this one because it's really easy to understand and convert to code. It's very straightforward. I implemented it as soon as I understood it. The current AI actually uses this solution. The algorithm is somewhat brute force but wouldn't take as much time as in Genetic Algorithm. These are the major steps:</div>
<br />
<ol>
<li>Generate all possible tasks</li>
<li>Generate all possible assignments (all possible agent-task pair)</li>
<li>Assign a score to each possible assignment (this is based on game rules)</li>
<li>Sort possible assignments by score in descending order</li>
<li>Assign tasks to agents from the sorted possible assignments until all agents has a task</li>
</ol>
<br />
The hardest part of this solution is step 3. There's no one rule how to compute the score for each task. It highly depends on the rules and the current conditions of the agents of the AI. In a way, you're like turning the quality of a task that is to be assigned to an agent into a number. This value should at least be comparable for all types of tasks since they are all treated the same way when sorted in step 4. Coming up with these computations is not easy. I think I need to study a special math for this.<br />
<br />
For instance, the Campaign task has various factors like population, the platform value of the candidate, the concern value of the target district, and the distance of Staff that will carry out the task. Another task called Gift has another set of factors. These are population, inverse of platform value of the candidate (meaning the lower the value, the more likely the task should be done), and distance. Campaign has 4 factors while Gift only has 3. How do I come up with a formula or system of scoring such that it gives reasonable values among these two tasks? There's also the case of precedence. Campaign should be a more important task than Gift but because it has more factors, it could happen that it has a much lower score. The scoring system should be able to compensate for this.<br />
<br />
<h2>
Solution 4: Dynamic Task Allocation</h2>
This is a lengthy <a href="https://ai.vub.ac.be/sites/default/files/Thesis_Schtickzelle_2012.pdf">Master's Thesis</a> material. I did not understand it the first time I read it. I learned to appreciate it when I ran it through again. It's actually very clever. The algorithm was inspired from swarm colonies like ants, bees, and ants. It turns out that colonies don't have a central command that assigns tasks, not even the queen. How does the colony know which tasks to prioritize then when certain circumstances arise?<br />
<br />
The individuals of the colony emit pheromone stimuli. Larvae emit pheromone to signal their hunger, sentries emit pheromones to signal intruders, etc. Each caste in the colony has a set of thresholds associated to each stimulus. When a stimulus becomes greater than an individual threshold, that individual will answer to that stimulus with great probability. Answering to that stimulus will in turn lower the stimulus. For example, worker ants would have a low threshold for a task say "gather food" but has a high one for "defend colony" task. This way, worker ants will respond to hunger stimuli more than to intruder alert stimuli. You can probably imagine by now what a soldier ant's threshold values looks like.<br />
<br />
I would have used this algorithm had I understood it earlier. I was almost finished with the implementation of Resource Assignment Algorithm. I could not afford to tear it down and start again. We need a working AI soon. Either way, I could still add this algorithm in another AI profile in the future, if there's still time.<br />
<br />
<i>Thanks for reading. If you actually do have a suggestion for Marnel regarding AI please comment here or <a href="mailto:marnel.estrada@gmail.com">email him</a>. If you want to be up to date on the latest Political Party Animals news, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>.</i><br />
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-83324259866253010002015-04-30T21:56:00.000+08:002015-09-20T03:24:08.646+08:00The Difficulties of Transitioning from Artist to Producer Without Becoming a Giant AssholeIn October 2013 Julius and I hatched the idea to make a jokey political game called Party Animals for a 1 week gamejolt gamejam. Our original plan was to keep working on the game, finish it in 6 months, and ship it out as our first indie collaboration. A year and 6 months later we've added two team members and our estimated release date of 4th quarter 2015 looms closer and closer everyday. It's only been 4 months since we've had our full team of four, and so while I was willing to chalk up the preceding year to experience, I knew I didn't want to repeat some of the same mistakes we made before. We needed to be more organized, which meant adding "producer" as well as artist to my collection of hats.<br />
<h2>
Can You Be a Good Producer Without Being an Asshole?</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2Lx7GlaA3Q9yIKzXaVN6L8WONnbvfEzwOVuqVqtDuVpSPhPBDzExSk4CudV-aBM0IxCkk5nvKgwH5KbvjH0F3iWI3kXlKC52f3ZpA9HXo35fC4Pf81vpzVwgL8_tQqHHkPfOwDPyZ6Y/s1600/lumbergh.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2Lx7GlaA3Q9yIKzXaVN6L8WONnbvfEzwOVuqVqtDuVpSPhPBDzExSk4CudV-aBM0IxCkk5nvKgwH5KbvjH0F3iWI3kXlKC52f3ZpA9HXo35fC4Pf81vpzVwgL8_tQqHHkPfOwDPyZ6Y/s1600/lumbergh.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
This is a question I've struggled with in the few times I've taken on the roll of being the leader (not that the producer is the leader in general, but in this case some of their roles overlap). Does a good leader necessarily have to fit the Steve Jobs archetype of brilliant asshole? the accepted wisdom that authoritarian leadership in tech companies is what wins the day is hard to avoid. Dilbert and Office Space successfully satirized of managers who are inflicted with the <a href="http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect">Dunning-Kruger Effect</a> (tl:dr The less you know the more confident you are about what you know). They were so successful in fact, that my innate tendency to shy away from being "that guy" may have slowed down development of the game.</div>
<div>
<br /></div>
<div>
For better or for worse, I've always approached group projects with a democratic, almost communistic outlook. Everyone would do according to their capabilities and in the end we would have a finished product we could be proud of. That may have been possible as two people, but by necessity our team grew to four, and each addition made it increasingly hard to be laissez faire about the organization of the group. It's not that any of us was irresponsible, it's just that each of us seemed to have different ideas about what we could best do in order to make the game happen, and those ideas often did not mesh very well.</div>
<div>
<br /></div>
<div>
So the question for me was, how do I get us to stay on track without pissing people off and cutting into the precious time they need to actually work on the game? Here's some of the tools I'm currently using to keep on top of the project's needs.</div>
<h2>
Communications</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOGvV506_r5G6Rai0nN0rD7Km4Duq5NPPeAQgCCOFAokxTvh7L28M5y3I9txN4XyKtIUTGADhyphenhyphen4ipX_1_0pSliBLQGF5n1dQHPyNZ3pHDW5mw77iPUSskN8T9zTE5EWgAgc2tHur4b7mU/s1600/Atlassian-HipChat-logo-aha.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOGvV506_r5G6Rai0nN0rD7Km4Duq5NPPeAQgCCOFAokxTvh7L28M5y3I9txN4XyKtIUTGADhyphenhyphen4ipX_1_0pSliBLQGF5n1dQHPyNZ3pHDW5mw77iPUSskN8T9zTE5EWgAgc2tHur4b7mU/s1600/Atlassian-HipChat-logo-aha.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
<a href="https://www.hipchat.com/">Hipchat</a> is our main communications tool. It's a private IM service that lets us chat without the distractions of Facebook and other IM services. It also integrates well with other services like github and Trello, so that we're instantly updated when someone pushes some new features to the build. <a href="https://slack.com/">Slack</a> was an alternative that we looked at, but for whatever reason Hipchat works better with Marnielle's shitty internet situation, and so we chose that. A lot of communication issues crop up because of bad internet, and so I've learned to be flexible when communicating with the team. I used to feel bad about messaging them about something more than once, but I've learned it's ok to use Facebook, email, or even SMS to contact them if a matter seems urgent enough.</div>
<div>
<br /></div>
<div>
Julius is working in New Zealand now, so whereas we used to be able to do meetings every 2 weeks, working out how to meet and chat with each other now presents an additional degree of difficulty. For one on one chats Julius and I used Vibe (no particular reason, we just both had it). Viber doesn't allow for group chat though, so for that we use Google hangouts. We've used Skype to do a group chat before but it wasn't working out for us the last time we tried a group chat but Hangouts did, so we'll be sticking with that for now. I should mention that Hipchat also allows for voice chat, but it's a paid option, and we're trying to save as much money as possible so being cheap trumps efficiency for now.</div>
<h2>
To-Do List + Project Planning</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzlwNxtIpSX0c1RH3gYYf3KCGl9Zdd-aNrfXNGaJeTdDMnzg1ezrMz3vfAC9fc1hxLHOlQSqPSeXcKJymdVEXYNzbBQgymaHyP-15qZYWILYZQ8C-UvDnZBn1Kuds-2pZuhM0sTEwlys/s1600/producer_tomsplanner.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzlwNxtIpSX0c1RH3gYYf3KCGl9Zdd-aNrfXNGaJeTdDMnzg1ezrMz3vfAC9fc1hxLHOlQSqPSeXcKJymdVEXYNzbBQgymaHyP-15qZYWILYZQ8C-UvDnZBn1Kuds-2pZuhM0sTEwlys/s1600/producer_tomsplanner.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
We use Trello for our task list and Tom's Planner for, well, planning. We used Trello exclusively for a long time because I had this aversion to Gannt Charts, but Tom's Planner (hereafter known as TP) makes it super easy, and having a schedule laid out for me is visually much more intuitive than looking at a laundry list of tasks that need to be done. Of course there is always a risk of being too anal about the schedule, but I think we're managing to be flexible about it and use the chart as a guide and adjust plans according to the current situation. I did some research on alternatives to TP, but it's definitely the best value for money for anyone who wants a dead simple Gannt Chart app. There are Excel template the simulate Gannt Charts but they're unwieldy, especially if you're untrained in the fine art of Excel. TP's free version only allows one person to manage a project, but you can share it easily. For $9 a month one project planner can handle the project but allow multiple free users access to edit the project but I don't think we need that for now.</div>
<div>
<br /></div>
<div>
Our use of Trello has waxed and waned at different points in development. It becomes more useful the closer we are to a deadline and more immediate listable items we have, but it's less useful when, for example, we are working on a longer term feature like creating the game AI. There's a bit of overlap between Tom's Planner and Trello, and I find I'm referring to Tom's more often than not. Whether that continues remains to be seen.</div>
<h2>
Game Design Documentation</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitxep03DSqphcWkT6tZaK-62yKMhHxzW3TuMj7xCK6I_jHu3GET3j1EOIewb3ltes6d_2DGAmdQ0kO-p59ZpxUMj45G-GBdhEEABxx-tac8ZZv-neoOUEQA_IsBWauYcq68T0yqjo6WNo/s1600/producer_tiddlywiki.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitxep03DSqphcWkT6tZaK-62yKMhHxzW3TuMj7xCK6I_jHu3GET3j1EOIewb3ltes6d_2DGAmdQ0kO-p59ZpxUMj45G-GBdhEEABxx-tac8ZZv-neoOUEQA_IsBWauYcq68T0yqjo6WNo/s1600/producer_tiddlywiki.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
Our documentation situation was a mess until very recently. We started out using Google Drive, shifted to Office because Tristan was more used to Excel (where he simulated the game's formulas), and along the way we accumulated a bunch of different documents with different information in them all across our different computers. Since we already used Dropbox to share the art assets used for our prototype, my quick solution to our situation was to create a "Documentation" folder and dump all of the files there. </div>
<div>
<br /></div>
<div>
While this made it easy to access the files it was still difficult to find specific bits of information, and oftentimes Marnielle or Julius would message on Hipchat asking 'Hey what's the formula for x mechanic? I can't find it." We had to figure out a way to unify all of the documentation into one concise package that was easily searchable.</div>
<div>
<br /></div>
<div>
Luckily Tristan had been playing around with a service called <a href="http://tiddlywiki.com/">Tiddlywiki</a> that allows you to create a customized wiki. He'd actually done this for a previous version of the game, but we'd forgotten about it in the midst of working towards a playable build in March. So far it's been the perfect way to store and search for information about the game, a rare case where we found the exact solution to a specific problem that we had.</div>
<h2>
Group Discussion</h2>
<div>
Hipchat is great for short bursts of free flowing conversation, but sometimes you need (well, at least I do) a more structured conversation to discuss a specific point. Kind of like email, but with a group. Google Groups is essentially exactly that, and it's what we use for longer conversations. We used to have a private Facebook group but being on Facebook was bit too much of a distraction. <a href="https://groups.google.com/">Google Groups</a> isn't the ideal solution, and I find its interface super clunky, but it serves our purposes well enough.</div>
<h2>
Conclusion</h2>
<div>
These are the tools we're using right now to help us keep on track. This doesn't take into account <a href="http://www.sourcetreeapp.com/">Sourcetree</a> for managing repos as well as <a href="https://www.dropbox.com/">Dropbox</a> for file sharing. On first glance, it feels like a whole hell of a lot of different services, kind of overkill for a four man team. But since laissez-faire didn't work then perhaps overdoing a little bit with these services isn't the worst thing, and if I find that it's too much we can very easily scale back some of this stuff when necessary.</div>
<div>
<br /></div>
<div>
Our experience is not the same as yours, and in fact the prevalence of small indie teams making games seemingly at will with little to no supervision is what made me think we could do the same. Our circumstances are different and these are the kind of things we're hoping will address those issues. If you find that your circumstances are similar, I hope this will be of use to you.</div>
<div>
<br /></div>
<div>
<i>Thanks for reading. If you want to be up to date on the latest Political Party Animals news, please sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>.</i></div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com1tag:blogger.com,1999:blog-4654627653743299339.post-29075542735318407332015-03-28T03:07:00.000+08:002015-09-20T03:24:27.810+08:00Political Party Animals Campaigning in Washington DC!As the title suggests I am in DC right now joining my wife on a work trip. I figured I would take advantage of the proximity of DC to some pretty awesome indie developers to chat with them, show off Political Party Animals and get some feedback.<br />
<div>
<h2>
March Update</h2>
</div>
<div>
<br /></div>
<div>
First off, we should talk about the stuff we've been working on since last month. We were trying to prepare a build of the game that could show off as much as we could when meeting up with fellow devs. Here's a short list of the things we were able to complete:</div>
<div>
<ol>
<li>Sortie : The candidates can now sortie, which is your main means of increasing your reputation </li>
<li>Bribe : Normally your sortie actions depend on the multiplier effect (which can be improved by doing the campaign action). Bribe overrides this by throwing money directly at citizens, but it is affected by your relationship with the Kapitans.</li>
<li>Election Day : This is our end game, candidates can choose to either support or suppress voters in the districts, and we tally the votes to find out who won the elections. This is an important step in making a playable prototype that we can get people to test out.</li>
<li>District and Candidate info UI : You can now click on each district and on your candidate avatar in order to view district concerns and candidate platform strength.</li>
<li>Finished animations for 2 candidates and one staff, the Police.</li>
</ol>
<div>
Considering we're all working on this on the side, we're quite happy about how far we've come, but there is so much more to do!</div>
</div>
<div>
<h2>
Campaigning in DC and Baltimore</h2>
</div>
<div>
<br /></div>
<div>
<object bgcolor="#000000" data="http://www.twitch.tv/swflibs/TwitchPlayer.swf" height="378" id="clip_embed_player_flash" type="application/x-shockwave-flash" width="620"><param name="movie" value="http://www.twitch.tv/swflibs/TwitchPlayer.swf" /><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="all" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="channel=mohawkgames&auto_play=false&start_volume=25&videoId=c6405707&device_id=1fe741d8613ed7f0" /></object><br />
<a href="http://www.twitch.tv/mohawkgames" style="display: block; font-size: 10px; font-weight: normal; padding: 2px 0px 4px; text-decoration: underline; width: 320px;">Watch live video from MohawkGames on Twitch</a>
</div>
<div>
<br />
My wife had a work trip to DC that provided free accommodations, and I've never been, so I figured I would spend some money and join her! This trip isn't all fun and games though, since DC and Baltimore are a hotbed of of both indie and triple A game studios. Miraculously, I managed to snag a meeting with folks as divers as Adam McClard of <a href="http://or1go.com/">Origo Games</a>, Soren Johnson of <a href="http://mohawkgames.com/">Mohawk Games</a>, and Sam Bernstein of <a href="http://bgs.bethsoft.com/">Bethesda Game Studios</a>. Highlights so far are Adam taking me to have some barbecue in Baltimore and Soren <a href="http://www.twitch.tv/mohawkgames/c/6405707">teaching me</a> how to play <a href="http://offworldgame.com/">Offworld Trading Company</a> live on Twitch (I can only imagine how many players were groaning at how bad I was). I learned a lot from Soren and Adam and I look forward to meeting the guys from Bethesda tonight. More updates in a couple of weeks!<br />
<br />
<i>Thanks for reading. If you want to be up to date on the latest Political Party Animals news, sign up for our <a href="http://eepurl.com/0bngX">mailing list</a>. </i></div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-51155653689992940922015-02-27T16:52:00.005+08:002015-02-27T23:16:46.587+08:00February Update : Marnielle Destroys Julius' Code and Apologizes<div style="background-color: white; box-sizing: border-box; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; line-height: 23px; margin-bottom: 2.3rem;">
<i>(This month Marnel takes us into his thought process on his first real month working on the game. He originally wrote this in his <a href="https://coffeebraingames.wordpress.com/2015/02/27/the-party-base-code/" target="_blank">blog</a>, then we, umm, "appropriated" it here.)</i><br />
<br />
After implementing some of the basic features of the game, I could definitely say I’m now an official Party Animals programmer. There’s no turning back now. I’ve invested huge amounts of time, effort, and code already. Might as well make a blood oath that I’m going to code for this game until it is released.<br />
<br />
Starting a code base is both challenging and exciting. I have to learn new stuff and unlearn some things that I used in my previous game. I have to reset my mindset that the project is still in its early stage. Lots of tools and systems are still missing. It’s unlike the code base of a built game where the systems are already in place and I have the thought process on how to change things. This time, I’m also not a lone programmer anymore. I have to take that into consideration.<br />
<br />
In this post, I’ll show you what I’ve done so far.<br />
<h2>
<strong style="box-sizing: border-box;">Camera Settings and Resolution</strong></h2>
I’d like my camera and 2D Toolkit settings to be consistent. I want the orthographic size of my cameras to be 1 because it feels more consistent rather then specifying some other number. It also helps with resolution independence. We’ve also decided to use 1366×768 as the base resolution. In short, I have to rip apart the current settings (sorry Julius). I’ve requested Ryan to resize the assets to make it suitable for the new resolution. 2D Toolkit sprite collections have to be regenerated. With this, fixing the positions and colliders of the districts was also inevitable.</div>
<div style="background-color: white; box-sizing: border-box; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; line-height: 23px; margin-bottom: 2.3rem;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6XH-faASeEBI1Y2y1qW-iHqFp7x4zShy1Wpbva41rnzbKqftuUGMGwuhrbL-vEVIz_HIUBVbrsRqUoxTmLk-5UTzhoTMA-F8V7_-FmOgP4g8mZHvdGucUPXeZf5WS9j_zfvYyFrJCMuY/s1600/cloudwave2.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6XH-faASeEBI1Y2y1qW-iHqFp7x4zShy1Wpbva41rnzbKqftuUGMGwuhrbL-vEVIz_HIUBVbrsRqUoxTmLk-5UTzhoTMA-F8V7_-FmOgP4g8mZHvdGucUPXeZf5WS9j_zfvYyFrJCMuY/s1600/cloudwave2.gif" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="color: #333333; font-size: 13px; line-height: 23px; text-align: start;">Resized districts. Still used Julius’ clouds and wave simulator. They’re cool!</span></td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="background-color: white; box-sizing: border-box; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; line-height: 23px; margin-bottom: 2.3rem;">
<h2>
<strong style="box-sizing: border-box;">uFrame</strong></h2>
<span style="font-size: 13px; font-weight: normal;">Party Animals is a systems heavy game where game rules could change a lot. I’ve decided that I should incorporate some form of framework to it so we could at least have some structure to where code goes. Julius used StrangeIoC. Then I was able to buy uFrame because it was on sale. I found uFrame to be superior than Strange. So I had to rip apart the current code base (sorry again Julius).</span><br />
<span style="font-size: 13px; font-weight: normal;"><br /></span><span style="font-size: 13px; font-weight: normal;">I’ve got to say don’t buy this product if you’re not a programmer or even a newbie coder. It’s hardcore code framework rather than a utility extension like most other asset store products. I wonder how they sell this thing. Only programming nerds are excited by this.</span><br />
<span style="font-size: 13px; font-weight: normal;"><br /></span><span style="font-size: 13px; font-weight: normal;">I really like it, though. It forces me to adhere to MVVM and have some kind of structure and separation on where the appropriate code goes. It forces me to follow the rule that views should react to changes in models. Only controllers can mutate models. I had a really hard time understanding it at first. Data initialization is not that straightforward. I even asked dumb questions to their forums. One reply said “Ugh, awkward questions… but here’s what you do…” I’m starting to get used to it now. I’ve implemented the features so far using uFrame.</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZeiquYkzo2SloT4bSNYmTavNWgBrfz1LeLTyGowCEqCkxbtjwXmjuONQ2KSK2NB7YvMGercnBhOfIHRyGpb1kMrkCEm36N7WLHVM_bKwDmEHkPWIDCMixCsPjZry-qhAlmOTWR4iRhJY/s1600/uframe.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZeiquYkzo2SloT4bSNYmTavNWgBrfz1LeLTyGowCEqCkxbtjwXmjuONQ2KSK2NB7YvMGercnBhOfIHRyGpb1kMrkCEm36N7WLHVM_bKwDmEHkPWIDCMixCsPjZry-qhAlmOTWR4iRhJY/s1600/uframe.png" height="243" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="background-color: white; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; font-style: italic; line-height: 23px; text-align: start;">Models in uFrame are code generated. They are authored like this.</span></td></tr>
</tbody></table>
<div style="background-color: white; box-sizing: border-box; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; line-height: 23px; margin-bottom: 2.3rem;">
<h2>
<strong style="box-sizing: border-box;">Staff Movement</strong></h2>
<span style="font-size: 13px; font-weight: normal;">The Staff and Districts are the main movers of the game. Obviously, these two had to be implemented first. The first action I’ve done is movement. Things have to be implemented a little different when using uFrame. If I had done it like I always do, I just move the staff avatar then change its current district. Not anymore. In uFrame, you have to go through a controller. I have a command called ChangeDistrict() which updates the current district in the model. The avatar (view) has been bound to the current district. It is notified whenever the current district changes. When it does, that’s the only time that I could move the avatar to the new district. See the difference there? The direction of execution is always Model changed then View reacts to it, not the other way around.</span></div>
<div style="background-color: white; box-sizing: border-box; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; line-height: 23px; margin-bottom: 2.3rem;">
<h2>
<strong style="box-sizing: border-box;">Staff Campaign and Unity UI</strong></h2>
<span style="font-size: 13px; font-weight: normal;">Party Animals is so UI heavy. I haven’t played with Unity UI yet because Warrior Defense’ UI was still using 2D Toolkit. I have no escape now. Julius is using it and highly recommends it. I hate to say that I do like it after trying it out. RectTransform is freaking awesome! I hope it won’t bite us later. I’m still not sure how to go about atlasing, hi-res assets replacement, and draw calls.</span><br />
<span style="font-size: 13px; font-weight: normal;"><br /></span><span style="font-size: 13px; font-weight: normal;">Campaign is one of the basic Staff actions. This action has a lot of parameters so I decided to use a uFrame model for it. I’m glad I did because I learned a lot of the uFrame flow when I implemented it. The major one is UI catch cases. There were lots of these. Since I have to implement in uFrame mindset, working around it is also very different. I always say “update model then UI, update model then UI…”</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://coffeebraingames.files.wordpress.com/2015/02/campaignui.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="292" src="https://coffeebraingames.files.wordpress.com/2015/02/campaignui.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="background-color: white; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; font-style: italic; line-height: 23px; text-align: start;">My first complex uFrame and Unity UI combo!</span></td></tr>
</tbody></table>
<div style="background-color: white; box-sizing: border-box; color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif; font-size: 13px; line-height: 23px; margin-bottom: 2.3rem;">
Generally, I’m happy with the base code right now. I’ve got two basic actions implemented. I now have prior knowledge on how to implement the next ones. Can’t wait to show you minimum playable version of the game!</div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4654627653743299339.post-71053525488174132702015-01-30T21:00:00.000+08:002015-01-30T21:00:04.479+08:00January Update : Long Christmas Break And A New Team Member Joins Us!<span id="goog_1498265815"></span><span id="goog_1498265816"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNxXLVzjhZba2yca4-MG7sF_N2woe0zaWlcJlLHmEmzrz_oJVke441n64YMdxorrNsJxexw9QUk8RwOBcciket_aJqbC9MPKooWRDxSxL1I4xkM4ffMvv4gmord4-t9bp8-eUCXLoCguY/s1600/warriordefense.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNxXLVzjhZba2yca4-MG7sF_N2woe0zaWlcJlLHmEmzrz_oJVke441n64YMdxorrNsJxexw9QUk8RwOBcciket_aJqbC9MPKooWRDxSxL1I4xkM4ffMvv4gmord4-t9bp8-eUCXLoCguY/s1600/warriordefense.png" /></a></div>
<br />
Christmas celebrations have a tendency to spread into the New Year in the Philippines, and this year has been no exception. It took us a while to get back into the swing of things, especially since I'm back to work on Prison Architect this month, and Julius has been battling with government bureaucracy so that he can finally leave and work in New Zealand. It'll take him a while to get settled in so progress on the Unity build has been slow, although we have managed to get a few paper prototype tests in. Luckily, we've added a new member to our team who will definitely pick up the slack on Unity Development.<br />
<br />
Marnel Estrada is another veteran Filipino game developer who has plenty of Unity experience under his belt. Last year, he released a Tower Defense game called Warrior Defense after having worked on it for about a year. Aside from being an excellent game, Warrior Defense has given Marnielle a wealth of hard earned experience about developing a game from start to finish on Unity, something that we will definitely benefit from. If you're interested in trying Warrior Defense out there is a version on <a href="http://gamejolt.com/games/strategy-sim/warrior-defense/20805/">gamejolt</a> and <a href="https://play.google.com/store/apps/details?id=com.coffeebrain.tarsier&hl=en">Android</a> for you to check out. Marnel aso blogs at <a href="https://www.google.com.ph/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&cad=rja&uact=8&ved=0CD0QFjAH&url=https%3A%2F%2Fcoffeebraingames.wordpress.com%2F&ei=-z7LVNXrCIH-8QXgkoDYDA&usg=AFQjCNEe_5k6hH5grTrp7dRkViAyW3vXIQ&sig2=ScobQvyXOCszfjaU-yl74g&bvm=bv.84607526,d.dGc">Coffee Brain Games</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLhWidr41dmoIJ3VSS-KuUDGPYZEtmwFub08XiWcGXANXEtDsZDfaYct3Gei4Fc86FomlGAb_4dcznp6g9mvdIWA6ANdCwlTPrQpp0FTd_0VvZA6Kl6hQjmQGxAlBhkY3cmVw5ZO8QQ9Q/s1600/RPS.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLhWidr41dmoIJ3VSS-KuUDGPYZEtmwFub08XiWcGXANXEtDsZDfaYct3Gei4Fc86FomlGAb_4dcznp6g9mvdIWA6ANdCwlTPrQpp0FTd_0VvZA6Kl6hQjmQGxAlBhkY3cmVw5ZO8QQ9Q/s1600/RPS.png" /></a></div>
<br />
We also got a bit of a surprise at the start of the year when we found out that we were on RockPaperShotgun's <a href="http://www.rockpapershotgun.com/2015/01/01/best-pc-games-of-2015/13/">Best PC games of 2015</a> list. We're definitely quite honored, and while I suspect that this list came out more by virtue of a slow news cycle at the start of the year, we are feeling an immense amount of pressure to deliver the goods (Thanks to everyone who joined our mailing list after checking out our blog!)<br />
<br />
So that's it for January! Sorry there's not much to report, but aside from some tweaking of design mechanics nothing of real interest happened this month. We'll have much more to report in February!<br />
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-37627241100531408612014-12-30T21:00:00.000+08:002015-04-20T16:16:33.169+08:00Political Party Animals December Devlog Update : More Political Machinations and some new art!December has been a rather slow month for the team. A storm earlier in the month delayed our weekly meetings, and the inevitable Christmas slowdown set in by the 23rd. We're starting to get back on track now though, and looking forward to 2015.<br />
<br />
<h2>
More Political Machinations</h2>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-guFSvwlaaFSYlbx8Ip4Wa7GUqokMS7Hu9FhtwNRMoXcuIg_RxPOVuvHEgWAsowayB0YJqHgdpRfGNpdUmJ709Y5QNKU22CYBgv0Fci3Bn6VUk52uO03cHg18kELgvlEo5BS52DdjfPY/s1600/horsetrading_politicalpartyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-guFSvwlaaFSYlbx8Ip4Wa7GUqokMS7Hu9FhtwNRMoXcuIg_RxPOVuvHEgWAsowayB0YJqHgdpRfGNpdUmJ709Y5QNKU22CYBgv0Fci3Bn6VUk52uO03cHg18kELgvlEo5BS52DdjfPY/s1600/horsetrading_politicalpartyanimals.jpg" /></a></div>
<br />
The paper prototype phase has been very useful in making hard game design decisions about scope, but given we only meet once a week, in order to be efficient we need to find digital ways to test out game design ideas. Our latest design that we wanted to test is called "Horse Trading". Have you ever watched those political TV shows where the main character goes around making deals in order to push forward legislation? For example, in one episode of Madame Secretary, Tea Leoni is trying to convince her husband to give the Russian Ambassador's daughter an A so that Russia will sell military technology to the Iranians, who will then release an American spy. While we won't have anything quite that dramatic, the ability to make deals like that is central to politics, and it's one we hope to simulate. Tristan has already talked about using Joris Dorman's "Machinations" to test out designs before, but this time we're giving you something that you can actually play with.<br />
<br />
To try it, first download this <a href="https://www.dropbox.com/s/comawdqnbrr93r5/horse_trading.xml?dl=0">xml file</a>. Next, go to the <a href="http://www.jorisdormans.nl/machinations/">Machinations website</a> and click file>import and click on the horse trading xml file. Then you can do the following:<br />
<br />
1) Generate an Event<br />
2) Do Quest- Do a quest for Kapitan 1 or Kapitan 2(costs resources)<br />
3) Use Favor with Kapitan 1 to resolve quest for Kapitan 2 and Vice Versa<br />
4) Make a Kapitan like the other Kapitan to reduce amount of Favor needed to resolve quests.(cost resources)<br />
<br />
So here we are exploring ideas like using favors to satisfy the "quest" requirements of a Kapitan, improving relations between Kapitans to lower the cost of the requirements, and then in the end calculating the amount necessary in "resources". Resources in this sense can be a variety of things, but starting from 100 to 0 we start to get a general idea of how much effort is required to make deals between Kapitans (100 being easy and 0 being a lot of effort). <br />
<br />
As a bonus, here is another machinations xml called <a href="https://www.dropbox.com/s/82r612cmo29mrlj/party_animals_evil_deed.xml?dl=0">evil deeds</a>, where we explored the cost to the reputation of candidates who indulge in shady tactics.<br />
<br />
<h2>
New Kapitan Art</h2>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6vBWM0NPaMr8gpbC3GXNMCUpGYD7mQ2fUWhwVv_nPkaBMZzvOLeUBXQCYdi52WMePXgGrgL-zCwPYkEPuEZl8cxcB3a53zW6WnI2CL2Z7nxWnB3wxQ1Rm8BnKYJc9s7HDvic_k99C91w/s1600/bankerbear_politicalpartyanimals.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6vBWM0NPaMr8gpbC3GXNMCUpGYD7mQ2fUWhwVv_nPkaBMZzvOLeUBXQCYdi52WMePXgGrgL-zCwPYkEPuEZl8cxcB3a53zW6WnI2CL2Z7nxWnB3wxQ1Rm8BnKYJc9s7HDvic_k99C91w/s1600/bankerbear_politicalpartyanimals.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Banker Bear</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOnVL-CBfYM1idr1cOsoxMb76Q2o-klJSKlxqEkrqu9EE3Lg19rmzVP2dsV0yDS-JiU0GwErbpIuq_WZjIzzqFFMw-z7RnhcXN8UKzfWNaNWuR9K0qbIlZb3ZfjFOBcqGejjtpchNeOn8/s1600/lionesseditor_politicalpartyanimals.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOnVL-CBfYM1idr1cOsoxMb76Q2o-klJSKlxqEkrqu9EE3Lg19rmzVP2dsV0yDS-JiU0GwErbpIuq_WZjIzzqFFMw-z7RnhcXN8UKzfWNaNWuR9K0qbIlZb3ZfjFOBcqGejjtpchNeOn8/s1600/lionesseditor_politicalpartyanimals.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">TV Network producer/Newspaper Editor</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYrSY4gCF5vdgwRMNoDM7Gt2tl5F4tC9W6SOYqLqz1do3qUO0HgKLjE6hnRjQfzT9VhIG5XeF4kDrkq2TpYZjUGo7aOgxMYJUP4Zi455o9AlTO2LwqgiN1hk2b-VKIaMXcr_f5pEIjfTw/s1600/roosterrebel_politicalpartyanimals.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYrSY4gCF5vdgwRMNoDM7Gt2tl5F4tC9W6SOYqLqz1do3qUO0HgKLjE6hnRjQfzT9VhIG5XeF4kDrkq2TpYZjUGo7aOgxMYJUP4Zi455o9AlTO2LwqgiN1hk2b-VKIaMXcr_f5pEIjfTw/s1600/roosterrebel_politicalpartyanimals.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Rebel Kapitan</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
This month I finally had some to get back to designing characters, which was a refreshing change of pace! We needed some new Kapitans to populate the new districts we created, namely the Bank, the TV Network, and the Rebel districts. The Bank was created to give us a way to offer loans to the player, the TV Network introduces the media component of elections, and the rebels? Well, the Rebel district was a bit of a lark. We had two farm districts side by side, which felt a bit redundant, so Julius suggested a Rebel district since many areas of the Philippines still have areas that are nominally controlled by rebels of different stripes. </div>
<div>
<br /></div>
<div>
Thanks for reading. If you want to be up to date on the latest Political Party Animals news, sign up for our <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">mailing list</a>! </div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-53621374051133437322014-11-30T09:42:00.000+08:002014-12-01T21:40:17.356+08:00I've got some good news, and some bad news... <br />
<div>
That's what Julius (our main programmer) told me a couple of weeks ago during one of our weekly meetings. Turns out he's got a job offer, which is good. But it requires that he move to New Zealand, which is bad. Of course we'll still be able to keep working on Party Animals online but there's something different about meeting and working together in person, and it sucks especially now that we seem to have finally gotten into a bit of a groove. Julius' leaving is the final nail in the coffin of our short-lived attempt to get funding for Party Animals to work on it full time. There was a moment when both Tristan (our main game designer) and Julius had lost their jobs and the opportunity seemed ripe to get some funding. It actually got closer than I ever imagined, but for a variety of reasons it didn't pan out. In many ways that's given ma a clarity about the project that I didn't have before. It's gonna take a lot longer than we thought, and that's okay.</div>
<div>
<br /></div>
<h2>
Paper Prototyping</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio0vipAnRX1pzShmtqlQzJdtSUwu6XbwVRiXBJcwoKBEUE9wu5vaeJC2_PpIsDbxf-tJs9RXv2fUsXlezGElsNOUeutCo-xCJz4FQd_a8PGHnZHnLkmelWLssHWPyn5i2fF6v8dVL1eWo/s1600/paperprototype_partyanimalsgame.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio0vipAnRX1pzShmtqlQzJdtSUwu6XbwVRiXBJcwoKBEUE9wu5vaeJC2_PpIsDbxf-tJs9RXv2fUsXlezGElsNOUeutCo-xCJz4FQd_a8PGHnZHnLkmelWLssHWPyn5i2fF6v8dVL1eWo/s1600/paperprototype_partyanimalsgame.jpg" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
A month ago I got the guys together to ask how they were feeling about the project. I was personally feeling some burnout, and I think we all were as well. Lots of highs and lows and the almost but not quite funding inevitably takes its toll. Tristan was unsure about whether the game had found its fun factor, and with the no looming deadlines in front of us we decided it would make sense to go back to some good old fashioned paper prototyping. Guys, I have something to share with you. Paper prototyping is fun! Anyone who's never done it before should definitely consider putting together a paper prototype before launching into code or art. Each test gave us more to think about and things we wanted to change about the flow of the game, what mechanics to keep and leave out, etc. There are times when it can feel a little daunting because of the sheer amount of information that needs to be presented in a strategy game, but in a way that's also made our game leaner and better. I think we're getting close to some final decisions on gameplay, which is definitely our goal. Julius will probably be leaving by the end of December so the more things we have fleshed out by then the better.</div>
<div>
<br /></div>
<h2>
Maps and UI</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRN95bcTaaUzZTZdO3NMuxRwOaflSa6OiIVsUfQ5PttoPoGadwObYFOPvKTz4c7WaxlbuKdy_n59ecdP_-9LKNIiSYyW0XVItBKR4K-p2dMCGGX__8GTAzZJFDyR_MYv6MXLhYLIwz0xw/s1600/newmap_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRN95bcTaaUzZTZdO3NMuxRwOaflSa6OiIVsUfQ5PttoPoGadwObYFOPvKTz4c7WaxlbuKdy_n59ecdP_-9LKNIiSYyW0XVItBKR4K-p2dMCGGX__8GTAzZJFDyR_MYv6MXLhYLIwz0xw/s1600/newmap_partyanimals.jpg" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Since we're tinkering with the mechanics again it makes no sense for use to start working on those in code, so Julius and I have been hard at work fleshing out the game world by working on some basic stuff like the UI and finalizing the world map, character movements, etc. Even with the UI thigns still change here and there based on what we figure out in our playtests, but ultimately that's just part and parcel of game development. You just have to keep iterating and iterating until you get it right! I'm pretty stoked about this because I'm finally getting to the point where I'm happy with the map, which was a source of a great deal of frustration for me early this month.</div>
<div>
<br /></div>
<h2>
Moving Forward</h2>
<div>
<br /></div>
<div>
In the past couple of months I was far more active on this blog, on facebook, twitter and reddit, trying to generate interest about our game. I wanted to get attention for the game to prove to publishers that there as interest in such a concept, but a huge part of me also needed that assurance for myself. I think that in some ways the development of the game suffered for that but at least I now know that when I put my mind to it I can definitely generate some interest, and I know that there are people love the concept and are eager to play the game. So for the next couple of months I'll be posting updates here only once a month so that we can get more work done on the game!</div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-83363478246956186142014-10-30T11:21:00.001+08:002014-10-30T11:21:40.841+08:00Prototyping in HTML5<br />
<section class="post-content" style="background-color: white; box-sizing: border-box; color: #333333; font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 26.3999996185303px;"><div style="box-sizing: border-box; margin: auto auto 1.5em;">
These past few months we have been making the Party Animals prototype. We built it in HTML5 and javascript (instead of Unity) for 2 reasons: (1) it's a technology I, as the sole programmer, am very comfortable in and (2) we won't have to worry about implementation details and premature optimization.</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
Working on a project knowing that it will be discarded later gave me a lot of freedom on the actual implementation. I didn't have to worry about scale and, to a certain degree, maintainability. I figured I only need to keep this maintainable in terms of a few weeks when we're still feeling out the features.</div>
<h3>
Make it Modable</h3>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
I do however need to make the prototype modable and make it easier for other people to play and tweak the variables. All the textual and stat data in the game are externalized on a database in Firebase.</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
<img src="https://www.evernote.com/shard/s18/sh/979de589-1f9d-46d5-8d00-81b821fe65fc/c4f847a7f91967307c831533d8e99299/deep/0/Forge--Firebase-Graphical-Debugger.png" style="border: 0px; box-sizing: border-box; display: block; font-style: italic; height: auto; max-width: 100%; vertical-align: middle; width: 400px;" /></div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
Firebase is cool because it lets non programmers edit the data on the fly and have it reflected on all instances of the game. Kapitolyo district is too rich? Open firebase, tweak the stat, and everyone gets updated to the new stat.</div>
<h3>
Take Advantage of Language Features</h3>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
Sure delegates exist in C# but that's nothing compared to passing first class functions in javascript. I don't have to worry about function signatures. Callbacks were used extensibly.</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
Using <em style="box-sizing: border-box; line-height: inherit;">eval()</em> is a taboo in the javascript world. But thanks to it I didn't have to write my own parser for solving game equations. For example, this formula computes the chances of a successful sortie: <em style="box-sizing: border-box; line-height: inherit;">((BD+IDM+em)-(IDS * 10))</em>. It's saved in Firebase as an ordinary string:</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
<img src="https://www.evernote.com/shard/s18/sh/b72a8567-0d7f-4c93-8b61-62821ec17ed2/916f479c395dd442111e6f7b1e92c32c/deep/0/Forge--Firebase-Graphical-Debugger.png" style="border: 0px; box-sizing: border-box; display: block; font-style: italic; height: auto; max-width: 100%; vertical-align: middle;" /></div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
Laying out the UI is straightforward in HTML. Displaying the daily status reports as a newspaper was a no-brainer because that's what html was <a href="http://www.w3.org/People/Raggett/book4/ch02.html" style="-webkit-transition: color 0.1s ease-out initial; background: transparent; box-sizing: border-box; color: #333333; font-weight: bold; line-height: inherit; outline: 0px; text-decoration: none; transition: color 0.1s ease-out initial;">originally intended for</a>.</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
All the data interrelationships were possible thanks to <a href="https://angularjs.org/" style="-webkit-transition: color 0.1s ease-out initial; background: transparent; box-sizing: border-box; color: #333333; font-weight: bold; line-height: inherit; outline: 0px; text-decoration: none; transition: color 0.1s ease-out initial;">AngularJS</a>. 2-way data binding means gamedata getting updated in one part of the game would be reflected every where else.</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
The graphs and charts were done on <a href="http://d3js.org/" style="-webkit-transition: color 0.1s ease-out initial; background: transparent; box-sizing: border-box; color: #333333; font-weight: bold; line-height: inherit; outline: 0px; text-decoration: none; transition: color 0.1s ease-out initial;">D3</a>. I always find drawing graphs fun so I always wanted to add them into the game. It doesn't add anything to the gameplay but it helps a lot on showing player feedback.</div>
<h3>
Keep an eye on UX</h3>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
While this is just a prototype we still need to keep the playing experience in mind. We wanted to test the gameplay and it would be very difficult to get feedback if players keep getting frustrated with the UI. It's very easy to get lost especially in a strategy game.</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
The game used to look like this:</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
<img src="https://www.evernote.com/shard/s18/sh/7932c596-a1da-45f3-b498-2d7a35f5a699/d87ff5e3ceb5d2099f14c6725c6fce7e/deep/0/Party-Animals-and-1.-node.png" style="border: 0px; box-sizing: border-box; display: block; font-style: italic; height: auto; max-width: 100%; vertical-align: middle;" /></div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
Now it looks like this:</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
<img src="https://www.evernote.com/shard/s18/sh/245ef7b3-93fc-493a-a7d3-4921dcbbd26a/92dd9b80a349a4493859db415c400a34/deep/0/Party-Animals.png" style="border: 0px; box-sizing: border-box; display: block; font-style: italic; height: auto; max-width: 100%; vertical-align: middle;" /></div>
<h3>
Caveat</h3>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
After prototyping in HTML5 we now have a general idea on the direction we want this game to take. However, I have a few misgivings with this approach. Something I will write in great detail on my next blog post.</div>
<div style="box-sizing: border-box; margin: auto auto 1.5em;">
The game can be played <a href="http://playpartyanimals.com/" style="-webkit-transition: color 0.1s ease-out initial; background: transparent; box-sizing: border-box; color: #333333; font-weight: bold; line-height: inherit; outline: 0px; text-decoration: none; transition: color 0.1s ease-out initial;">here</a>.</div>
<div>
<br /></div>
</section>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-80447927723640532862014-09-21T09:42:00.000+08:002014-09-21T09:42:06.245+08:00Prototype Version 2 coming soon!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJSID14DueYegPV_f83aVyiFtBxmTWWvhXj-w0q8o_uvy3wz8bAFregRL85vtLJPkeFP80-6ihlihy7zhSBlTGPs15dMMTpiXdC-OCDx-vWAxmWXZ0rGMOOfG9Z8SB_QYJ1qGiJV6ALg/s1600/mockup_advisors2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJSID14DueYegPV_f83aVyiFtBxmTWWvhXj-w0q8o_uvy3wz8bAFregRL85vtLJPkeFP80-6ihlihy7zhSBlTGPs15dMMTpiXdC-OCDx-vWAxmWXZ0rGMOOfG9Z8SB_QYJ1qGiJV6ALg/s1600/mockup_advisors2.jpg" height="300" width="400" /></a></div>
<div>
<br /></div>
<div>
The mockup (and I must stress it is just a mockup) above should be familiar to anyone who's played Crusader Kings 2 or indeed any game that used Paradox Interactive's Clausewitz Engine. In this blog post I'm going to go over some of the new directions our next prototype is going to go, taking a lot of inspiration from the aforementioned games.</div>
<div>
<br /></div>
<div>
Prototyping is all about figuring out what works and what doesn't. this is something we're learning the hard way by prototyping our way to a version of Party Animals that we're happy with. After we released the first prototype last month for feedback, we had another meeting at the Glorietta 4 food court and decided on a few changes.</div>
<div>
<br /></div>
<div>
<h2>
Adding Campaign Staff</h2>
</div>
<div>
<br /></div>
<div>
We'd discussed the idea of recruiting "Party Animals" into your campaign before, but we decided to give them a more prominent role in this new prototype. Instead of all the actions being taken by your candidate, you now have campaign staff that can travel around the island to do actions for you. This gives the player a lot more flexibility in terms of decisions. Whereas in the previous prototype the player was restricted to doing actions only in the district where they were located, now your staff can prepare a district for your arrival even while you're conducting a campaign in a far off district. This means a wider range of strategic options, which is ultimately more entertaining. Additionally having the staff front and center plays to the name of the game. Choosing the right "Party Animals" now becomes central to your strategy.</div>
<div>
<br /></div>
<div>
<h2>
Getting rid of the itinerary</h2>
</div>
<div>
<br /></div>
<div>
While I thought that the <a href="http://blog.heypartyanimals.com/2014/05/making-metaphors-using-itinerary-as.html">itinerary system</a> was quite clever and fit the theme of the game very well, it became quickly apparent that filling out a scheduling form is just as boring in games as it is in real life. It also introduced difficulties when trying to reconcile it with the addition of campaign staff, so we ultimately decided it wasn't worth keeping. We're replacing it with a much simpler calendar that tracks the time it will take for actions to resolve.<br />
<br />
<h2>
Shifting towards a strategy audience</h2>
<br />
If Paradox Interactive's motto is to make "smart games for smart people" we went into Party Animals wanting to make "smart games for regular people", the idea being to combine the depth of the games we love with a more humorous, approachable look and feel. When combining two disparate elements there's always a risk that you will end up with a product that pleases no one, and we noticed that with the first prototype there was strong polarization between people that liked it or were bored by the game. The people who really seemed intrigued by it were the kind folks on the <a href="http://www.reddit.com/r/paradoxplaza/comments/2drknx/please_try_out_our_political_strategy_game/">paradoxplaza subreddit</a> who if anything thought the game was too simple. So we're shifting towards that audience by creating the deeper, more strategic gameplay that they enjoy.<br />
<br />
The new prototype should be up very soon, and if you're interested in trying it out, please do join our <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">mailing list</a>! </div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-88784133197469351932014-09-02T21:41:00.000+08:002015-04-20T16:16:53.099+08:00The Machinations of Politics<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGdsy70suVASNdlP89JZRchxHuHEGDVoOHDH5o0PtCMzpiD_YTR2HBujfTYfZrZl4eo520vJbyCDJMgf8yDOeeyMYDvANpoSrpMfXhoKuwEqNRmpgx0ttgUOCi7dzFv6ekFzqRfu3rwi0/s1600/partyanimals_machinations2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGdsy70suVASNdlP89JZRchxHuHEGDVoOHDH5o0PtCMzpiD_YTR2HBujfTYfZrZl4eo520vJbyCDJMgf8yDOeeyMYDvANpoSrpMfXhoKuwEqNRmpgx0ttgUOCi7dzFv6ekFzqRfu3rwi0/s1600/partyanimals_machinations2.jpg" /></a></div>
<br />
<i><span style="background-color: white; color: #999999;">We are currently overhauling our prototype based on feedback from players and discussions between the team on the direction the game should take. In the meantime, here is our designer <a href="http://alternatdev.wordpress.com/">Tristan</a> to talk to you about one of the tools he uses when designing games.</span></i><br />
<br />
There's already been a few posts regarding the technical and art side of Party Animals but none yet that looks at its design. Let's tackle the basics here first, then hopefully we can examine each individual mechanism through succeeding posts. This initial post will give an overview of the core system which , and of Machinations a tool we will be using to a great extent in designing and examining the game mechanics.<br />
<br />
To start with the design of Party Animals borrows heavily from the concepts described in Mechanics: Advanced Game Design by Ernest Adams, and Joris Dormans, specifically the chapters on Emergence, Complexity and Internal Economies. It's a very good book which looks at the workings of games in- depth, especially those games which run on internal economies( RTS, 4X, Rpgs).<br />
<br />
To better understand our game design process, it is best to wrap one's head around these concepts:<br />
<br />
1) Almost everything in the game can be considered a resource. Any event which helps the player win gives him the abstract resource "advantage" for example. Resources can be either concrete(has a physical form in the game, example: gold, time) or abstract, which is computed from the current game state( I won't be explaining what game states here are sorry, look it up).<br />
<br />
2) Mechanics in the game facilitate the interaction between these resources. Resources in the game will be converted from one form into another and will stay 'within' the game . As of the present, the only resource I can think of in the game, that is created from nothing is the gold resource, all other resources are converted or created from other resources.<br />
<br />
3) The more connections between these resources, the more complex the game will be, but the greater possibility for emergent gameplay.<br />
<br />
Every mechanic in the game was designed with these concepts in mind, from the event system( uses resources as triggers and checks), district actions(converts resources into other types), and Kapitans(gives the player certain advantages). Hopefully this will create for a more strategic and repayable game in the future. Also, thinking of the game in terms of these concepts make it a little bit easier to analyze it in the future(easier with the machinations tool which I will introduce later).<br />
<br />
The player is doing sortie too much? Let's try increasing the cost of sortie. But sortie is how the player gets reputation, which in turn allows him to get bastions, which affects gold production. Looking at these chain of events, we see that the player will be set back by increasing the cost of sortie. The player won't feel the loss immediately but it will slow him down in the long run.(More on this when we come to feedback loops in the game)<br />
<h2>
Machinations</h2>
<br />
As I mentioned above we will be using the machinations tool to make quick prototypes of game mechanics that we will be adding in the game. Using the machinations tool, won't recreate the whole mechanic exactly but it will give us a peek into what to expect, or how a certain mechanic will play out when included in the game. You can check out the machinations tool <a href="http://www.jorisdormans.nl/machinations/">here</a>.<br />
<br />
I also suggest getting a copy of Mechanics: Advanced Game Design, or checking out the Design Patterns Library , also located in the url above.<br />
<br />
So now, about the machinations tool. The tool is built around the concepts I've stated above. The tool has three major parts: Nodes, Resource Connections, and State Connections. Under Nodes are the following:<br />
<br />
Resource Pools- Collects resources. In Party Animals, the following are resource pools: gold, reputation in a district, relationship with a Kapitan. A resource stays in a pool until it is moved.<br />
<br />
Resource Connections- Dictates how much of a resource is transferred from one node to another. In the game, a resource connection says how much gold is needed to be converted to reputation.<br />
<br />
State Connections-Dictates how a change in one node affects another node. For example two nodes can have either a positive or negative relationship. When two nodes have a positive relationship, an increase in one node increases the other node( and vice versa), likewise a decrease in one node will result in a decrease in the other node. In a negative relationship, a change in one node will have the opposite effect on a connected node. In Party Animals, there is a positive relationship between bastions and gold production. There is a negative relationship between a player's stat in an issue and the sortie difficulty for that issue( the higher the stat, the easier it is for the player to get reputation).<br />
<br />
These are just the basic node types in the machinations tool. Advanced node types include gates, converters, sources and drains, but those are for another day. As you can see, using the machination tool, it becomes easy to create models of game mechanics before making a full blown prototype of a game.<br />
<br />
Thanks for reading. If you want to be up to date on the latest Political Party Animals news, sign up for our <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">mailing list</a>! Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-74160702600315622012014-08-06T22:35:00.001+08:002015-04-20T16:17:08.593+08:00Fixing UX Prototype IssuesWe sent out an email to our mailing list a few days ago with the first build of our Party Animals prototype. Up until this point we hadn't shared the html5 prototype with anyone else, and the feedback that we got was very useful. In short, our game was confusing. Prototypes are generally cut a lot of slack by people because they are proofs of concept and only used to present the core concept of the game. So in many cases a lot of user experience issues are not paid much attention to. This is fine for action games, platformers, and sometimes even puzzlers, but we failed to realize that for a strategy game with a lot of data it's very important to even at this early juncture to have a UX/UI that clearly explains the important data points that the player needs to pay attention to.<br />
<br />
Here is a sample of some feedback from <a href="http://koobazaur.com/">Jakub</a>, creator of the excellent indie game <a href="http://store.steampowered.com/app/263140">Postmortem</a> (which is fortuitously on sale until August 9! I swear it was a coincidence!):<br />
<br />
<blockquote class="tr_bq">
<i>* Love the theme/humor of the whole game and the conversations. Seems like all the city leaders have their own personalities that it would be beneficial to learn and "exploit".</i><i><br /></i><i>* I know it's a prototype but it needs more tooltips - I was confused by a lot of the numbers and labels, for instance by the High/Lows when I was contesting or educating people... is that my Low/High? Opponent? People's interest? Likewise with some other stats. </i><i><br /></i><i>* When I was choosing educate/contest I wasn't sure what area to pick (why does it matter? what do low/highs mean? what affects the outcome? how will it influence the votes?)</i><i><br /></i><i>* It would be nice to know what affects success/failure rates of certain actions and what my initial stats do (I was still failing in a stat I put 5 in). </i></blockquote>
<i><br /></i>
So he likes the theme and the humor, which is good, since that's what we spent most of our effort on in the weeks leading up to the release of the prototype. Sadly, that meant a lot of stuff was not as tended to as it could have been, including the UX.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBKXvstox_ZAyWDyr_Rb7EdYY80yX88IeJOd9RBkWzdGU_T_6xIpBuH-siQD5DbNiA7zy4IygJuiVczg1yEBzZ6sjxlikDuTG9-gWR8szMn2pg62VIxZv95fEdHTeMJdJTli-tifMP7d4/s1600/blogUX1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBKXvstox_ZAyWDyr_Rb7EdYY80yX88IeJOd9RBkWzdGU_T_6xIpBuH-siQD5DbNiA7zy4IygJuiVczg1yEBzZ6sjxlikDuTG9-gWR8szMn2pg62VIxZv95fEdHTeMJdJTli-tifMP7d4/s1600/blogUX1.jpg" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Essentially what we did wrong was our data were laid bare and we just kind of hoped that the player would understand it as they played the game. So for example this screen is showing your stats on the specific issue versus your enemy's stats on that issue by way of gray circles. The filled up circles are the amount of that stat that has been "filled" by virtue of your candidate educating the population of the Kapitolyo. The indicators next to the issue labels (ie high/normal) show you how knowledgeable the populace is about that subject, therefor affecting how hard it is to educate them. But none of that is clarified by this screen or any other screen. It's just a confusing mess.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdfxfR5p8JdG3BurBQMnNdq-MMx9xcdb1ePsuOaqww5ayoWJ56laXQu3XMd6O8c5_k5oLyHHcszmcu459n1vMBW2rT8SJ-fdA1EjIi1tbfnE7v4mTa4ZvEiONvPMZv6QehG88d0PUZDVw/s1600/blogUX2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdfxfR5p8JdG3BurBQMnNdq-MMx9xcdb1ePsuOaqww5ayoWJ56laXQu3XMd6O8c5_k5oLyHHcszmcu459n1vMBW2rT8SJ-fdA1EjIi1tbfnE7v4mTa4ZvEiONvPMZv6QehG88d0PUZDVw/s1600/blogUX2.jpg" /></a></div>
<br />
So to fix that we asked ourselves, <b>what does the player need to know? </b>This new layout is hopefully much easier to understand (in fact if I have to explain it then we've failed) but for the sake of the blog I'll explain the changes we made and why. First, we removed the indicators showing the player and enemy stats and the vs between them. It's not important that the player knows that data, what is important is that they know that each district needs to have the issues that it's concerned about satisfied. So we labeled the section on the right "Satisfaction" and made it clear that there are only 5 satisfaction circles that the player needs to fill up. At a glance, the player knows the important information, which in this case is that they have fill up two education circles and their enemy has filled up one Education and one Law & Order.<br />
<br />
The indicators for the districts' knowledge have been removed completely.Why? Because the player doesn't need to know that right now. Sure, its information that could be useful and you might argue that we might as well show it, but if it's not necessary then it's just visual clutter. It comes up later on when it's important for that information to be known.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcAmcUrwAFJhqSW65I1Di7JIwCAQQO-_lgIwXG-SBmQ62bLMMRFmIByQE0qc05g3lu-eAdN2ZZSu_m_P2TBKkouoh5mdtdBCK_7_U5JLInWD7_HtPxLCgcrMmiL0ykK0kA-OHDAPKI7zY/s1600/districtinfo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcAmcUrwAFJhqSW65I1Di7JIwCAQQO-_lgIwXG-SBmQ62bLMMRFmIByQE0qc05g3lu-eAdN2ZZSu_m_P2TBKkouoh5mdtdBCK_7_U5JLInWD7_HtPxLCgcrMmiL0ykK0kA-OHDAPKI7zY/s1600/districtinfo.jpg" /></a></div>
<br />
Here's another example of something we changed. <a href="http://www.positech.co.uk/democracy3/">Democracy 3</a> is one of the inspirations for this game so we play it every now and again to see what makes it tick. Democracy is such a visually simple game but there's definitely a lot to be learned from it. For example during every term it shows you how the previous decisions you have made have made an impact on your constituents. This is represented by a bar that shows their support for you. If their support for you is waning an arrow pointing left shows up next to the bar, and vice versa if their support is increasing. I noticed that my eyes were always drawn to these arrows as easy indicators of problems that need to be solved. It tells the player "here's a problem" then the player can decide whether it's an issue or something that can be taken care of later. It's also instantly readable, as opposed to the way we previously showed the data, which is by percentages.<br />
<br />
I'm gonna plug the <a href="http://thegamedesignroundtable.com/">game design roundtable podcast</a> here again because they had a recent podcast on <a href="http://thegamedesignroundtable.com/2014/07/15/episode-88-what-you-dont-know-can-hurt-you/">information</a> in games, and their discussion really helped me to suss out what ought to be displayed in the game.<br />
<br />
Thanks for reading. If you want to be up to date on the latest Political Party Animals news, sign up for our <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">mailing list</a>! <br />
<div>
<br /></div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-23178502102284613332014-07-31T21:08:00.002+08:002014-07-31T21:08:45.233+08:00Bribing My Way To The TopSo I had my first fun playthrough of the prototype yesterday, which seems like an odd thing to say. Surely if our game is good then it should be fun from the start? I suppose with action games it's a lot easier to "get to the fun" right away, but with strategy games that take multiple mechanics into consideration it takes a lot longer. Or maybe we're just slow. Regardless, I had fun with our game yesterday, and here's what happened.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw_e14BbX1oQtao6yHvpEI6R9Matsa3PmzF8MnR6MtzTvUEkwMSp5cvWcgvV_gSsiHG82SsNx5i6l5DjFSNlJ4HwfbhPqTJ6AQ5zWNac6JsxY1mR7Ao-kciXUx3wekZEVQhuNQl3i1xmc/s1600/prototype_gamblewin.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw_e14BbX1oQtao6yHvpEI6R9Matsa3PmzF8MnR6MtzTvUEkwMSp5cvWcgvV_gSsiHG82SsNx5i6l5DjFSNlJ4HwfbhPqTJ6AQ5zWNac6JsxY1mR7Ao-kciXUx3wekZEVQhuNQl3i1xmc/s1600/prototype_gamblewin.jpg" /></a></div>
<br />
I started out trying to test a new dialogue mechanic we'd implemented earlier in the day. To do that I had to suck up to Catorcio, our Casino Kapitan. While I was doing that I noticed that a "gamble" activity in the Casino and I though "what the hey." I won. So I gambled again. And I won again. At this point I didn't want to press my luck, and in any case I'd already maxed out my relationship with Catorcio so I moved to the Port to have a chat with Alpacita.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2SaN8Nwr4jfEi6c5AHgfzeb_Zlq_2zXmrkkdy5q_AtwmuCzSF8TGvH7TKerE6d_NCIWWJC4oNV4CRLFS5RjOpav0hZBtmiukqTk6MXO5IEpEU7XbyuaSBb69tqZQec9z7UPmEhoUxbfU/s1600/pavedparadise_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2SaN8Nwr4jfEi6c5AHgfzeb_Zlq_2zXmrkkdy5q_AtwmuCzSF8TGvH7TKerE6d_NCIWWJC4oNV4CRLFS5RjOpav0hZBtmiukqTk6MXO5IEpEU7XbyuaSBb69tqZQec9z7UPmEhoUxbfU/s1600/pavedparadise_partyanimals.jpg" /></a></div>
<br />
To my dismay, Alpacita tells me that she can't speak to me because i have a "very unwelcome aura". I knew this. I was the one who designed her with a morality check. But in my glee at winning in gambling I totally forgot, and now I was stuck. Currently there are only very few ways to improve your morality (it's fairly obvious so I won't reveal them here) so I rushed around the map getting some good karma before having my second conversation with Alpacita. This time it worked, but ultimately because of a balance issue I failed at the task I was trying to do in the first place. Never mind I though, let's just finish this playthrough. Then i noticed that my opponent had a huge lead.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPtjsoZ5rgEolfSCgQdPxZiMks4RqBLrUW2Rrre3M_xLcLBA3UBChRmRSolN87aZ49IQwB497XBiWSqQoZg3jaMyS3wAl87jG3GmAzQxC8DNDubqUQ8q7cBVgJiug-R4d1KZjM27BXCfU/s1600/prototype_bribe.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPtjsoZ5rgEolfSCgQdPxZiMks4RqBLrUW2Rrre3M_xLcLBA3UBChRmRSolN87aZ49IQwB497XBiWSqQoZg3jaMyS3wAl87jG3GmAzQxC8DNDubqUQ8q7cBVgJiug-R4d1KZjM27BXCfU/s1600/prototype_bribe.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
I was resolved to win this playthrough, and made some attempts to raise my reputation. However at -4 days to the election I realized I was going to lose if I didn't do something drastic. So I went to the largest districts and bribed my way to victory, ekeing out a single digit win over my opponent.<br />
<br />
So that's how I had fun with our game, and also discovered that I would be a terrible politician.<br />
<br />
This prototype is the result of a month's worth of work, after almost 7 months of making mistakes and finally deciding to scrap everything and start fresh. I was a little bit frustrated about that in the beginning but I console myself by saying we're just continuing a long line of indie developers who needed to make a lot of mistakes at the beginning before they finally saw the light at the end of the tunnel. I'm personally quite terrified to be sharing it in such a rough form, but it's time to show it to people who are genuinely interested in the ideas behind the game so that they can give us feedback and hopefully help us bring it to its full potential. If you're interested in being part of that please do sign up for our <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">mailing list</a>. Anyone who signs up by July 31 (Yes, that's today) will get an email with a link to the prototype in the next couple of days.Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-8991846478296341072014-07-12T09:53:00.001+08:002014-07-12T09:53:55.852+08:00Crow and Penguin Concept Sketches, plus Prototype Update<h2>
Recruitable Characters</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3KpTBiSc0HdxuuFA-grizEaXnlqk6txoUoTiPPSMwz3MUIYMnycGy-iAQrR0yFmAj3O5Zc93CxEU3-9jzz8nJDKW4gUltv6Y4SSEBRFFQCb8iCFjtjKUqXqJJD-xnEFqR3KYJU0UmVkY/s1600/Felipenguin_small.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3KpTBiSc0HdxuuFA-grizEaXnlqk6txoUoTiPPSMwz3MUIYMnycGy-iAQrR0yFmAj3O5Zc93CxEU3-9jzz8nJDKW4gUltv6Y4SSEBRFFQCb8iCFjtjKUqXqJJD-xnEFqR3KYJU0UmVkY/s1600/Felipenguin_small.jpg" /></a></div>
<br />
We're still hard at work on the prototype, but that doesn't mean that I haven't been able to sketch out some more characters for Party Animals! The two characters I'm introducing to you today are the first of what will be recruitable Party Animals. Based on certain decisions you make they may decide to join your campaign and give you bonuses during your campaign activities. Above you can see Felipenguin, an immigrant comedian from the South Pole. Felipenguin is the stereotypical demanding celebrity, requiring 24/7 airconditioning, rare delicacies from his homeland in the South Pole, and a constant supple of yellow colored M&Ms. His popularity cannot be underestimated, and he will increase the effectivity of your photo ops and sorties exponentially.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnyjrGn5xuJ5Ae2GqTvxz962LTNheO4uL1JBtTJAJlVaBgB9MWYeMhHlTONc0Vh0UoXqxcIEYdJzHQi7h4wtUaTjGg6qPGjvZ2klYjD54G4YmVm1_PnNIu8KydKazZsueh18l3VRcJDiE/s1600/Franciscrow_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnyjrGn5xuJ5Ae2GqTvxz962LTNheO4uL1JBtTJAJlVaBgB9MWYeMhHlTONc0Vh0UoXqxcIEYdJzHQi7h4wtUaTjGg6qPGjvZ2klYjD54G4YmVm1_PnNIu8KydKazZsueh18l3VRcJDiE/s1600/Franciscrow_partyanimals.jpg" /></a></div>
<br />
Next up is Franciscrow, a disgraced former Police Chief turned Private Investigator. Franciscrow's looking for revenge on the upstart detective that ratted him out and became Police Chief in his stead. In meantime, he's willing to dig up dirt on your rivals and give you information on how to win over the Kapitans...for a price.<br />
<br />
<h2>
Prototype Updates</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3JbkjFmyyYc5cochqLfQxbDK2iecrs9JSlLnVa4NN-Q-uuIwWB7PeZECVVMzZJclrqh7Jbx5tFNZJzxBuUbdTowLu87vtUxe5a3J2g9sup238uPYV4L0c3WLS2GmqHbazBZJbzIuzQlk/s1600/prototype_activities.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3JbkjFmyyYc5cochqLfQxbDK2iecrs9JSlLnVa4NN-Q-uuIwWB7PeZECVVMzZJclrqh7Jbx5tFNZJzxBuUbdTowLu87vtUxe5a3J2g9sup238uPYV4L0c3WLS2GmqHbazBZJbzIuzQlk/s1600/prototype_activities.jpg" /></a></div>
<div>
<br /></div>
<div>
Progress on the prototype has been slow but steady, and we've now implemented the simulation of day to day campaign activities. Next up we'll be working on events, which are the storylines that create the bulk of the experience in Party Animals and will provide the moral choices that we think will make the game quite memorable. We've been working a lot on developing the character backstories and creating events and storylines for them that will be unique, and we're excited to share this with you in a couple of weeks (yeah I know we said the same thing two weeks ago). In the meantime, until we're satisfied with this prototype you still have time to sign up for our <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">mailing list</a> and be among the first to try out the game and give us your all-important feedback, so please do sign up!</div>
Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-32014461475891958232014-06-28T21:25:00.000+08:002014-07-12T09:59:20.305+08:00Partially Healed Knees, New Maps and Animations, and A Prototype (Announcement)!<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://i62.photobucket.com/albums/h100/endlessthirteen/popupanim_mine.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://i62.photobucket.com/albums/h100/endlessthirteen/popupanim_mine.gif" height="300" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Mine</td></tr>
</tbody></table>
Hey folks, I know that it's been a while since we've last blogged, and that's because we've been hard at work! Quite a few things have been happening lately, and I just want to go through a couple of them before we get into the update. First off, I'm walking again! I'm not sure I mentioned it but when I got back from Japan I had a knee injury that kept me off my feet for 3 months. It was a long and frustrating road but I'm mostly recovered now and so we're gaining a lot of steam with regards to development. I'm personally stoked and I've been hard at work tinkering with the art.<br />
<br />
<h2>
Maps and Animations</h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb9jrO5pytc3k44EUhAAeaV4q1o6RkjS9GKIiy5R7Bu7uIjsaM2OeHx4N9vrDbE99TeDideqzyxkLzIC85Xc9fyfHTrIEk8xhNzKiNHDoEb4nbWqNvH_y3yiQot6TVTKNe6mHmBhIyLis/s1600/map_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb9jrO5pytc3k44EUhAAeaV4q1o6RkjS9GKIiy5R7Bu7uIjsaM2OeHx4N9vrDbE99TeDideqzyxkLzIC85Xc9fyfHTrIEk8xhNzKiNHDoEb4nbWqNvH_y3yiQot6TVTKNe6mHmBhIyLis/s1600/map_partyanimals.jpg" /></a></div>
<br />
This time I've been playing with our world map. The last time I worked on the <a href="http://blog.heypartyanimals.com/2014/05/world-map-update.html">map</a> I made some changes to the colors and added some new landmarks. I'd felt for a long while that it looked good but lacked something to make it 'pop'. Well I took that to heart and turned our locations like the casino and the mine into pop-up like images. I quite like how everything looked, and I even added some little animations to them to make them more fun when they're zoomed in. My current favorites are the mine (seen at the top of the page), the cathedral, and the fishing village, but there's a lot more in the pipeline. This new board game look is really starting to come together, and I like to imagine this map in Mousey's campaign headquarters as the campaign team debates their options.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://i62.photobucket.com/albums/h100/endlessthirteen/popupanim_borsogan.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://i62.photobucket.com/albums/h100/endlessthirteen/popupanim_borsogan.gif" height="300" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Cathedral</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://i62.photobucket.com/albums/h100/endlessthirteen/popupanim_fisingvillage2.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://i62.photobucket.com/albums/h100/endlessthirteen/popupanim_fisingvillage2.gif" height="300" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fishing Village</td></tr>
</tbody></table>
<h2>
Prototype!</h2>
<div>
<br /></div>
Second, We have a proper game designer on board! I'll get into the details later but this guy is a friend of ours and has been around the game dev scene for a long time. We're really lucky to have him. That means that with me on art, Julius on code, and our friend on design, we have a solid team onboard to make the game.Speaking of which, we're working on a prototype! I know, I know, we should have been working on a prototype a long time ago but we fell into multiple first time indie developer traps and we've only now got our act together to put a prototype together to test our ideas. This is the prototype we're showing off to publishers to try to sell them on the game, so we'd definitely love some feedback from you guys. As a treat we're going to share this prototype to the first few people to sign up on our mailing list so if you're keen to try the game out please do sign up in the next couple of weeks! <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTwfMaVnkmWx2pwCDVo_TSO77nmLktcrZoZhmGGcT8zG8f6nFjRi1U3SUYt5NIE9DSl3yOrNGGMXwjYKw0fhghoO3vOpZS9jRADRzersOiv4-SZ4uRni1i5_Qc_u6ybQ7fu5s6vXNE3kc/s1600/prototye_kapitans.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTwfMaVnkmWx2pwCDVo_TSO77nmLktcrZoZhmGGcT8zG8f6nFjRi1U3SUYt5NIE9DSl3yOrNGGMXwjYKw0fhghoO3vOpZS9jRADRzersOiv4-SZ4uRni1i5_Qc_u6ybQ7fu5s6vXNE3kc/s1600/prototye_kapitans.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Kapitan Relationships</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFRqMUGF8bCTAlsQyxGAnTfq-Sr2LIf5sxyLymTHxcEdtiDELBBAHPxIagfetHM5Rgaj5zdCSBdMip2H19lYZlLf2sq0ht3TzpaDAJA_K81tAsWNgosxvyzGn2BFd7xaTJn5J1I7_J3XU/s1600/prototype_itinerary.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFRqMUGF8bCTAlsQyxGAnTfq-Sr2LIf5sxyLymTHxcEdtiDELBBAHPxIagfetHM5Rgaj5zdCSBdMip2H19lYZlLf2sq0ht3TzpaDAJA_K81tAsWNgosxvyzGn2BFd7xaTJn5J1I7_J3XU/s1600/prototype_itinerary.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The <a href="http://blog.heypartyanimals.com/2014/05/making-metaphors-using-itinerary-as.html">Ititerary Metaphor</a> brought to life</td></tr>
</tbody></table>
You can see a sample of the prototype above. I should say that graphically the prototype will look nothing like the real game. On one of the <a href="http://thegamedesignroundtable.com/">Game Design Roundtable</a> podcasts I heard one of the hosts say that they regularly make prototypes of their games in engines or languages that are entirely different from what they'll use to create the final game. They did this to make sure that they would feel free to experiment, since they wouldn't have to worry about making sure that the code they wrote would be usable in the final product. I think it's a great idea and we've moved forward at a much faster clip ever since we decided to do this. Well, that's all for now, and do make sure you <a href="http://heypartyanimals.us8.list-manage.com/subscribe/post?u=460bfede6e630535fc2e7f862&id=09725f1de6">sign up</a> if you're interested in trying out the protoype!Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-69194799362420832832014-06-11T09:44:00.001+08:002014-06-11T09:44:12.277+08:00We're Featured in Rockpapershotgun's Devlog Watch!And we're quite frankly both terrified and motivated in equal measure. I don't want to write a giant blogpost like the last one, but I thought I should at least acknowledge the coverage and welcome everyone who's decided to pop in because of RPS. Welcome! And do sign up for our mailing list (top of the right sidebar, can't miss it) to get updated on release news. I also wanted to address one of the comments on <a href="http://www.rockpapershotgun.com/2014/06/09/devlog-watch-blackshirt-party-animals-neon-struct-copod/">the article</a> where they mention that the devlog hasn't much gotten into the nitty gritty of game mechanics. Well that's because we chucked out our original mechanics as shit and we've been trying over the past weeks to put together something that makes all of the individual mechanics that we like work together seamlessly. I even made a diagram about it to help me think about it better! <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3G3EP2HLJluifZHfg83qXnA90-caxnPE_ye9x3vIYBmU6KyF67tkP3l5eOLTT10b7uThJU8u2wABq8etilO5Ej2uTDOGJc-KZRud3F6MpmMsxmy0ARRSUldpErdPNLSfzedZz4W3_24/s1600/designideas1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3G3EP2HLJluifZHfg83qXnA90-caxnPE_ye9x3vIYBmU6KyF67tkP3l5eOLTT10b7uThJU8u2wABq8etilO5Ej2uTDOGJc-KZRud3F6MpmMsxmy0ARRSUldpErdPNLSfzedZz4W3_24/s1600/designideas1.jpg" height="320" width="400" /></a></div>
<br />
<br />In the meantime, I continue to build out our roster of Party Animals, and so I present to you the Platypus Campaign Manager, who was actually featured in my <a href="http://blog.heypartyanimals.com/2014/05/making-metaphors-using-itinerary-as.html">last post</a>. More updates to come soon!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMU3BO1RbYz4CkRRQNVZAs_24nOQJ9yIbN8IUh15OHKDOo4b9OpgfWDrxtduwH0QZuUuWXSpbX3EjONFL3rRd3pSPEDJv9DukNiKeSzzYp601ldm900syY20xY10LoXWc0_8cY9tbgtvc/s1600/platypus_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMU3BO1RbYz4CkRRQNVZAs_24nOQJ9yIbN8IUh15OHKDOo4b9OpgfWDrxtduwH0QZuUuWXSpbX3EjONFL3rRd3pSPEDJv9DukNiKeSzzYp601ldm900syY20xY10LoXWc0_8cY9tbgtvc/s1600/platypus_partyanimals.jpg" height="640" width="480" /></a></div>
<br />
<br />
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com0tag:blogger.com,1999:blog-4654627653743299339.post-44759254722570523252014-05-28T22:30:00.000+08:002014-05-29T10:09:25.744+08:00Making Metaphors : Using the Itinerary as a Metaphor for Party Animals<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9h-gqGlZ5TR1zXOiI8spQ9AyiWCtF3xJ-jH2OjzDaJjk1fA1Q0AbOa4OAOUgMC0oqCs01oc7mHyik2jAecSBGSOYFsWjuhCPKwvD0cFaSIWOAlZwS8WUvai7_ycOv4JF9AjP1qBnWjs8/s1600/blog_campaign_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9h-gqGlZ5TR1zXOiI8spQ9AyiWCtF3xJ-jH2OjzDaJjk1fA1Q0AbOa4OAOUgMC0oqCs01oc7mHyik2jAecSBGSOYFsWjuhCPKwvD0cFaSIWOAlZwS8WUvai7_ycOv4JF9AjP1qBnWjs8/s1600/blog_campaign_partyanimals.jpg" /></a></div>
<br />
Metaphors are a powerful tool that every piece of software can use to make something that is nebulous immediately understandable. Microsoft has used the desktop metaphor to such great success that the Metro-style sliding UI of Windows 8 is having a difficult time superseding it. Today I’ll talk about a visual metaphor that I hope will make Party Animals just as intuitive : The Itinerary.<br />
<br />
We’ve been tweaking the game design for the past few weeks now, something that has been made more difficult because of my knee injury. We still hadn’t comfortably nailed down how to manage the player’s movements and make their choices matter. AP (Action Points) were brought up as the standard way of doing this in strategy games, and while I felt it was a little too videogamey (there are no real world instances where “action points” dictate your movements) I had nothing better to contribute so I agreed.<br />
<br />
<h2>
The Moment</h2>
<br />
I’m going to go on a little tangent about how I came to the conclusion that the Itinerary metaphor would be the way we represented choice and movement in the game because I think it’s an important tool that every game developer or creative can find useful in their projects. There’s a noted correlation between letting your mind wander and coming up with great ideas. This passage from James Watt illustrates how letting his mind wander during a long walk led to the inspiration that birthed a vastly improved steam engine:<br />
<br />
<i>Watt spent much time and money in making experiments, but nothing he tried succeeded. "Nature has a weak side," he was fond of saying, "if we can only find it out." So he went on day after day, following now this and now that false hope.</i><br />
<i><br /></i>
<i>"One Sunday afternoon early in 1765," writes Watt, "I had gone to take a walk in the Green of Glasgow. I was thinking upon the engine and about how to save the heat in the cylinder, when the idea came into my mind that steam was an elastic body and would run into a vacuum. If connection was made between the cylinder and a tank from which the air had been pumped, the steam would pass into the empty tank and might there be condensed without cooling the cylinder. I then saw that I must get rid of the condensed steam and of the water used in condensing it. It occurred to me this could be done by using pumps."</i><br />
<br />
That mind-wandering walk along the Green of Glasgow unleashed the power of steam and let loose the industrial revolution. Centuries later it would also birth, for good or ill, the genre called Steampunk. Our ideas will likely never be as influential as Mr. Watts’, but there’s not reason we can’t mind-wander for our own projects.<br />
<br />
It’s important to note that you’ll only come to ideas if you are already thinking of and absorbing material about the problem that you’re trying to solve. My own method is to just try to bury myself in stuff related to a topic and hope that something comes to me. In this case since we’re making a game about politics I tried to watch as many shows, play as many games, and read as many books as I can about politics. I naturally find politics interesting so this wasn’t a tall order for me. Shows like The Wire and Parks and Recreation are highly recommended, and I thoroughly enjoyed my time playing Tropico and Democracy 3. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0YEIIG8wt_5DQwRHwCrdo6YQcZ1torWOMsnBFpQ1u25OLgCK5CsoIDfe0jp5zwu2hIh7zMVsjZSej8u8yuBb8QeZ3f6qd2kWyk0OPkJKNl8IuGma7ejHb69-JjsuNH3rw0xHoHuXYOGA/s1600/veep.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0YEIIG8wt_5DQwRHwCrdo6YQcZ1torWOMsnBFpQ1u25OLgCK5CsoIDfe0jp5zwu2hIh7zMVsjZSej8u8yuBb8QeZ3f6qd2kWyk0OPkJKNl8IuGma7ejHb69-JjsuNH3rw0xHoHuXYOGA/s1600/veep.jpg" /></a></div>
<br />
Julius also likes shows about politics, and in one of our meetings he suggested I watch the TV show Veep to get ideas for the game. There was a scene in the second episode where the cast was discussing the schedule for the day because people kept cancelling meetings because they were sick. It’s not a key part of the storyline, and I didn’t think much of it until a couple of days later. I had my wife rewatch the first two episodes so that she could get caught up and we could watch together, and somewhere in between overhearing snippets of dialogue that day and waking up the next day I had my epiphany.<br />
<br />
<h2>
What’s On the Itinerary?</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8jd__960hywYeeK7E5ECh5-StnCs66XwS-aAS00tVQafDixCqHvWyPtq8G3CNLdbt-I2PKpZaT1ZBX_OZOR5EjGKBOVh-XS7Lj0uEMtxqQjwOL1FhoA8UaPDUUoy2mmjWeddyQFuJLG0/s1600/datebook.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8jd__960hywYeeK7E5ECh5-StnCs66XwS-aAS00tVQafDixCqHvWyPtq8G3CNLdbt-I2PKpZaT1ZBX_OZOR5EjGKBOVh-XS7Lj0uEMtxqQjwOL1FhoA8UaPDUUoy2mmjWeddyQFuJLG0/s1600/datebook.jpg" /></a></div>
<br />
What’s on the itinerary? What’s on the docket? What’s my schedule looking like?<br />
<br />
These are questions any high powered executive, lifehacker devotee, or presidential aspirant might ask. Time and money are the most valuable resources in a campaign. Time has to be managed even more carefully than money because while money can always be found (not on<br />
trees, though) wasted time is lost forever. So it makes absolute sense to frame actions in the game around managing that most important of resources.<br />
<br />
As I alluded to earlier another advantage of using this metaphor is that it’s immediately understandable. Everyone has had to schedule their day at one point or another. The datebook I pulled off Google images is also a visual metaphor that most people in their 20s and above would recognize. It’s definitely easier to explain to people that they need to “add activities to their itinerary” rather than “each activity costs x AP”. Anything that makes a strategy game easier to understand is a winner in my book.<br />
<br />
<h2>
Activities</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR7sYJXz8XnJE7fEGRHMJLxBh9tehVHqXxXk4IkAJDbHYZ6zF40ug8R9Qts1XexkfvuoBYVocJ8lvaBKBmTmrHQ9ebvqaD44usH_6wvD9dXnvcWK0D507xHMiI72fHBzgLLkssI8NhPdY/s1600/mockup_itinerary_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR7sYJXz8XnJE7fEGRHMJLxBh9tehVHqXxXk4IkAJDbHYZ6zF40ug8R9Qts1XexkfvuoBYVocJ8lvaBKBmTmrHQ9ebvqaD44usH_6wvD9dXnvcWK0D507xHMiI72fHBzgLLkssI8NhPdY/s1600/mockup_itinerary_partyanimals.jpg" /></a></div>
<div>
<br /></div>
There are two types of activities : regular and geographical. Regular activities can be done anytime whilst Geographic activities can only take place based on your location. For example in this screen you can see that the player is allowed to do the gamble activity, which lets the player spend campaign funds in an attempt to earn more via a slot machine (An obvious test of player morality). Having geographical activities also makes it more interesting for the player to move around the map.<br />
<br />
I rather enjoy making maps, and part of the fun when I travel is poring over maps of an area and imagining what it might be like. I’d like to impart some of the fun of that sense of discovery by adding more structures on the map that we can use to increase the number of activities that the player can engage in. Additional structures that we can add to the map that might have activities would be : Radio station, TV station, Printing Press, Hospital, etc.<br />
<br />
As you can see here each activity also take a specific amount of time. The challenge of the game (and any campaign) will be to judge which activities will give you the best value for money/time. In this case a Photo Op would be a pretty standard go to activity in the beginning of the game, since it would provides a small increase in popularity for a small amount of time/money. Meeting the Kapitan is riskier, since the results will depend on your conversation with them. Why does it take so much time? Because in people with power will make you wait as a sign of dominance over you.<br />
<br />
The last activity is “Move”. In most games moving from one area to another is almost incidental. there is no cost to travel. In our game we wanted to make sure that movement comes with a price and should be a planned decision. Since it costs so much to move you must ask yourself what the advantages are to moving to another district versus staying in the same one. It’s also a subtle jab at the pitiful infrastructure in the Philippines, where it can literally take half a day to get to a neighbouring city or province.<br />
<br />
<h2>
Party Animals</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNfVTKGDywhhCN95g4TMECI1SR4Cp6K29MnmeMhWgkQcw1zQBnPUnSzd7i_bxz3d7yLfY9GaJUHHsejZyGjjCbe9U9ueOiAsrtWTvbG4Y-r2FLGyM_wBimGUeLVMGgjH9_K__8MCHI7dY/s1600/header_partyanimals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNfVTKGDywhhCN95g4TMECI1SR4Cp6K29MnmeMhWgkQcw1zQBnPUnSzd7i_bxz3d7yLfY9GaJUHHsejZyGjjCbe9U9ueOiAsrtWTvbG4Y-r2FLGyM_wBimGUeLVMGgjH9_K__8MCHI7dY/s1600/header_partyanimals.jpg" /></a></div>
<br />
Originally, we named our game “Party Animals” because it was a play on words. We wanted to make a political game with cute animals that ostensibly belonged to political parties. We introduced the <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIPFjb0ezu1VOtnRqXaj2kG3uzciTNGH7SJUkwRowoayjigiiSHx7Gk8Zkm25E1tG8H9_DS71eU5feFzNTkr7ys-W5910agWaVwTC_wpD-_60X49-VHpO8Flu_VXWz3oXGKAVfmlzYBFJa/s1600/page5.jpg">Kapitans</a> as a way of extending that metaphor, but it still felt a little hollow to me. Then over some email exchanges we floated the idea of collecting Animals and adding them to your party. These animals would join you based on metrics like your morality and your connections to Kapitans, and would have an effect on your campaign sorties.<br />
<br />
I really liked the idea of collecting “Party Animals” and I realized that there was a terrific way to tie them into the itinerary metaphor. As I mentioned before, there are regular and geographic activities. But now if you recruit a Party Animal to your cause, it unlocks special activities tied to them. For example, an athlete Animal would let you run a sports clinic. An accountant Animal could run the “Audit” activity which would streamline your fundraising and improve funds collection for a few turns. The number of interesting and useful characters we could create is endless. Of course the terrifying thought is that means I would have to design and illustrate each of those characters, not to mention giving them backstories.<br />
<br />
<h2>
Conclusion</h2>
<br />
It can be very frustrating when parts of a game design don’t gel together properly. In this particular case I think that framing the game with this itinerary metaphor really helped to clarify things in my head and I’m hopeful that this helps shape the game moving forward!<br />
<br />
<br />Ryanhttp://www.blogger.com/profile/17988599567370345885noreply@blogger.com1