Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411530 Posts in 69377 Topics- by 58433 Members - Latest Member: Bohdan_Zoshchenko

April 29, 2024, 02:29:04 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsParty Animals! - A Deceptively Cute Political Strategy Game (PC)
Pages: 1 2 3 [4] 5 6
Print
Author Topic: Party Animals! - A Deceptively Cute Political Strategy Game (PC)  (Read 21923 times)
ephoete
Level 2
**


View Profile WWW
« Reply #60 on: May 06, 2015, 11:42:20 AM »

Saved the date. The game is still intended to be web-based right?
Logged

Check out my Soundcloud! https://soundcloud.com/edgar-phoete
ryansumo
Level 5
*****



View Profile WWW
« Reply #61 on: May 07, 2015, 02:50:10 AM »

Ah no it was always meant to be a PC download game.  The web based thing we did was really just for prototyping purposes. Smiley
Logged

BigThink
Level 0
**


View Profile WWW
« Reply #62 on: May 07, 2015, 05:55:05 AM »

Haha the name and the characters are funny
Logged

Hey there! Just opened an YouTube channel about various game development topics! Check it out https://www.youtube.com/channel/UCGCv7wwpwETEH0kkd_CYlfQ
ryansumo
Level 5
*****



View Profile WWW
« Reply #63 on: May 07, 2015, 06:40:18 AM »

Glad you think so!
Logged

ryansumo
Level 5
*****



View Profile WWW
« Reply #64 on: May 30, 2015, 06:30:07 AM »

The following is a blog by our programmer Marnel, talking about AI in a strategy game. Reposting this from our blog.  Sorry I'm tired and lazy to do proper formatting.  You can click my signature to go to our devblog for the original post

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.

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:

 Unit stands still near the gate
If it sees a player unit within its range,
Chase and attack that player unit
If player unit dies or goes out of range, go back to gate

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.

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.

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.)

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:

Are the agents assigned the best task for them in the current situation?
Is the order of execution of agents' tasks give the highest benefit?
Are the selected actions sensible enough in the player's perspective? Is the AI playing the game right?

Single agent systems just can't answer these questions. I had to look for other ways.

Solution 1: Genetic Algorithm

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.

Solution 2: SHOP Planning System

Here's the link 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.

Solution 3: Resource Assignment Algorithm



I found this one in Gamasutra. 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:

Generate all possible tasks
Generate all possible assignments (all possible agent-task pair)
Assign a score to each possible assignment (this is based on game rules)
Sort possible assignments by score in descending order
Assign tasks to agents from the sorted possible assignments until all agents has a task

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.

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.

Solution 4: Dynamic Task Allocation

This is a lengthy Master's Thesis 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?

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.

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.
Logged

ryansumo
Level 5
*****



View Profile WWW
« Reply #65 on: June 05, 2015, 06:38:53 PM »

A sneak peek at what the game looks like right now.  This GIF was actually meant for our previous blogpost but my internet was being stupid that day.  It's still a relatively large GIF so please just wait if it seems like it's taking a long time to load!


Some notes on what you're seeing:

  • There are 3 characters right now, Mousey, Croccy, and Police StaffMousey and Croccy are the candidates on opposing side, and Police is one of the Staff that you can hire for your campaign (she's the only one we've finished so far)
  • The districts highlighted in red are Blockaded, 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).
  • 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 Kapitan, and Croccy has just given it a gift to improve his Relationship with the Owl.  As we said before, in this game you not only manage your relationship with the citizens, but also with their leaders.
Logged

ryansumo
Level 5
*****



View Profile WWW
« Reply #66 on: June 29, 2015, 06:30:32 PM »

The 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.


For example, let's take a look at the candidate Crocopio Imperial.  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 infectious.


And when it's time to start bribing, he gives you the whole sack of cash.


The Investigator, 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.


Except when he's exaggeratedly sneaking around, of course.


Contrary to the Investigator, the Police 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.


She's equally as exuberant when she's able to conduct a campaign successfully on your behalf.

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!

Logged

ryansumo
Level 5
*****



View Profile WWW
« Reply #67 on: July 17, 2015, 08:35:59 PM »

I've been revisiting the UI lately and posted some mockups on the devblogs subreddit and got some great feedback. Reposting here in case anyone has nay more feedback for us!  Essentially what I was looking for was some basic feedback on whether or not my mockup was readable or understandable immediately.

This was the original Mockup:

And this is the updated UI:

Let me know what you guys think!
Logged

Zorg
Level 9
****



View Profile
« Reply #68 on: July 18, 2015, 12:31:27 AM »

It's definitely an improvement.

When i look at this chart i'd like to know the total sum of everything immediately:



Where can i find it?
Logged
Taxis
Level 0
**



View Profile
« Reply #69 on: July 18, 2015, 03:47:34 AM »

Yes, the updated UI is a nice improvement. Says a little more that the mockup and is less intrusive.
Logged
ryansumo
Level 5
*****



View Profile WWW
« Reply #70 on: July 18, 2015, 07:40:31 PM »

Ah, silly me.  That information is in the lower left corner actually, although it's not updated with the proper numbers. (doh!)  Having the exact number of districts owned is a good idea though, thanks for that (and for the visual example)!


It's definitely an improvement.

When i look at this chart i'd like to know the total sum of everything immediately:



Where can i find it?
Logged

ryansumo
Level 5
*****



View Profile WWW
« Reply #71 on: August 01, 2015, 08:12:55 PM »

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

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

Command Points


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

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

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

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

New Meaning of Reputation

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

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

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

Raise Funds


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.

Patrons


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

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

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

Scandals


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

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

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

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

The Tip

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

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

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

ryansumo
Level 5
*****



View Profile WWW
« Reply #72 on: August 04, 2015, 05:58:50 AM »

I've had a couple of free days to tinker with the UI again, and I'm pretty much at the end of my rope now.  I don't think I can ever make fun of Paradox Interactive's UI again after wrestling with this much simplified UI for our game!  Any feedback would be greatly appreciated.

Logged

Greipur
Level 6
*



View Profile WWW
« Reply #73 on: August 04, 2015, 06:07:30 AM »

I think the shape language works well, but I would recommend giving some more attention to the colour palette. When I look at the information bubbles they get blurred together with the sea. I would recommend to change the hue somewhat, might even try to change the saturation "hierarchy" as well (make BG more desaturated and UI more saturated, or vice versa).
Logged

ryansumo
Level 5
*****



View Profile WWW
« Reply #74 on: August 04, 2015, 06:23:11 AM »

Appreciate the feedback!  I can see what you are saying.  Oddly enough I think this is something I addressed before, then I reversed a little bit and looks like I've created the same problem.  Tired

I think the shape language works well, but I would recommend giving some more attention to the colour palette. When I look at the information bubbles they get blurred together with the sea. I would recommend to change the hue somewhat, might even try to change the saturation "hierarchy" as well (make BG more desaturated and UI more saturated, or vice versa).
Logged

Greipur
Level 6
*



View Profile WWW
« Reply #75 on: August 04, 2015, 06:28:49 AM »

Appreciate the feedback!  I can see what you are saying.  Oddly enough I think this is something I addressed before, then I reversed a little bit and looks like I've created the same problem.  Tired

I think the shape language works well, but I would recommend giving some more attention to the colour palette. When I look at the information bubbles they get blurred together with the sea. I would recommend to change the hue somewhat, might even try to change the saturation "hierarchy" as well (make BG more desaturated and UI more saturated, or vice versa).

Yeah, I just saw your earlier entry and I think that is closer to what I'd enjoy. But maybe go easy on the value on the BG, maybe not as dark? What was the colour coding for in the last iteration, the party which controls a region/place? I think it might be good to have a way to differentiate regions, independent (or complementary) on party colour.
Logged

ryansumo
Level 5
*****



View Profile WWW
« Reply #76 on: August 04, 2015, 06:35:19 AM »

The color coding in the last iteration was meant to denote Provinces.  Each province contains 3 districts, and if you capture them all you get a bonus of some sort.  I removed them because I worried that the UI was getting a little too colorful and confusing, but maybe I went a little too far this time around.

Someone else also mentioned that perhaps it would be better to integrate the province colors in the map somehow.  This was something I wanted to experiment with but just didn't have the time to devote to for now.
Logged

ephoete
Level 2
**


View Profile WWW
« Reply #77 on: August 05, 2015, 01:22:17 PM »

"We’re still looking for the fun part."

I think this was more than needed for the first (and latest?) demo I'd played at that time. I could see a potentially good and unique gameplay concept but the fun wasn't there... But from what I've been seeing recently over the last months this issue seemed to have been addressed and I'm dying to see (and try!) what comes next guys. This looks really promising and talented what you've got folks.
Logged

Check out my Soundcloud! https://soundcloud.com/edgar-phoete
ryansumo
Level 5
*****



View Profile WWW
« Reply #78 on: August 05, 2015, 08:31:59 PM »

Thanks so much for keeping the faith!  There we definitely quite a few low points but we're slowly finding our way. In hindsight it would have been a terrible idea to try Kickstarter or Early Access when we first started out because it would probably have ended in disaster.  This way we've had a chance to make mistakes on our own and learn from them.

In any case, you're on the tp o the list for the next demo that we release!

"We’re still looking for the fun part."

I think this was more than needed for the first (and latest?) demo I'd played at that time. I could see a potentially good and unique gameplay concept but the fun wasn't there... But from what I've been seeing recently over the last months this issue seemed to have been addressed and I'm dying to see (and try!) what comes next guys. This looks really promising and talented what you've got folks.
Logged

ephoete
Level 2
**


View Profile WWW
« Reply #79 on: August 06, 2015, 12:28:14 PM »

In any case, you're on the tp o the list for the next demo that we release!

The sooner the better!  Gentleman
Logged

Check out my Soundcloud! https://soundcloud.com/edgar-phoete
Pages: 1 2 3 [4] 5 6
Print
Jump to:  

Theme orange-lt created by panic