Recruiting The Abravan King Wants You to Join the Army (you code?)

Fiasom

Rookie
Member
Posts
1
#1
THE ABRAVAN KING WANTS YOU TO JOIN THE ARMY (you code?)

The Civil War Team is looking for a coder/scripter to join their ranks. Pokémon Civil War is a fan game still in its infancy, being built with Essentials 17.2. The game includes some major departures from classical Pokémon tropes, a complex plot with deep lore and world building, and some new mechanics that will affect the gaming experience, bringing a fresh new take on the old tried and tested aspects of Pokémon games. As a result, there is major work undertaken on the conceptual design front, and we would like someone with coding/scripting experience to contribute to the game concept, as well as implementing the mechanics listed below. The game is planned to be released in eight chapters.

More information can be found on: https://reliccastle.com/threads/1937/

PRIMARY REQUIREMENTS: Game Concept & New Mechanics

This mainly includes scripting and implementing new mechanics that are present either in very few other games, or will be developed for the first time in Civil War. This is the main long term commitment the game requires of a coder/scripter, and it is likely that the coder who deals with these aspects of the game will also contribute to the conceptual design of the entire game. I should note that the below list does not cover everything, new considerations are likely to arise as the game progresses, and each item below is up for debate considering feasibility and improving the gaming experience.

That said, I do not expect one person to do everything listed below. Any contribution is appreciated.

Factions & Relationships: The game includes 13 political factions vying for power, and the players’ choices influence which (if any) of the factions achieve their goals. The game also includes relationships with several major NPCs, making them anything from enemies to rivals to friends/allies to lovers.

I am (planning on) using switches and variables to implement the consequences of players’ choices regarding the political outcomes and their relationships with NPCs. However, this is a bit daunting, especially the players’ influence on the political factions’ goals, as this is likely to get insanely complicated using switches and variables. It also puts me in a hard place of either having to plot out every political detail of the game in advance of actual eventing of anything on Essentials, or not releasing the game until it is fully completed. (Neither of these scenarios will happen, which pretty much guarantees future regret.) Perhaps a new mechanic can be implemented to make life easier?

Field Effects: This is the salt and pepper of any good fan game. Perhaps some field effects can be the same as those used in Reborn, but there will be at least one new field effect. It is likely that we may prefer to have a unique field effect for each terrain/route, even if they are only slightly different from the others. This is also relevant to the below item.

Pokémon Aquaticity: I’m not sure if this can be implemented, or whether it should be implemented to begin with, but I think it could be nice to add an aquaticity division similar to the airborne/grounded division. If this is implemented, the presence of water and land on any field effect will become crucial.

Different Battle Types: Can we implement triple and or rotation battles alongside double battles? The game involves military campaigns, and a variety of battle types can be used to enrich the game – especially in terms of military tactics.

New Battle Engines: There are some large battle sequences planned – including a siege on a fortified city. My original idea was treating the battlements as a Pokémon called “The Wall”, or a unique field effect, but it was later suggested by a contributor that a new battle engine could be designed and implemented. While I like this idea, honestly, I don’t what I could ask for.

Permadeath: I would like to make it so that Pokémon can die in the game, but this would need to be different to Nuzlocke – sometimes a strategy requires a mon to take a hit for the team, and I do not want to disqualify such strategies. I have a couple of ideas floating in mind about how this could be implemented, but I would rather talk this over with a coder/scripter.

Scripted Losses & Starting Over: I would like to make it so that players can walk around with a full team of fainted Pokémon until they walk back to a healing point – instead of being teleported straightaway. Also, you may drop all your money if you lose to a hostile NPC (means differentiating between enemy soldiers, thugs, and friends.)

Pokédex: It needs to give false nesting information for plot and narrative related reasons. We can also make good on the pretension that we are given a Pokédex because we will do field research. Well, let’s get that research done. I remember that Gen 5 may have some ideas to offer on this front.

Banking & Financial System: The economic system of the region has been considered while world building, but I had no ideas regarding how to implement the economic aspect of the world into the game until very recently. It’d be awesome if we can implement a proper banking & financial system. I got a few ideas on this front too.

Flying: Fast travel instead of instant travel. I imagine a cross between panorama graphics used in Rejuvenation and the ‘flying’ Light Platinum.

SECONDARY REQUIREMENTS: Common Elements

This mainly includes implementing the scripts and mechanics most games have, but do not come with the Essentials Pack. Most of this stuff will be available out there, and any one on the team can find and implement these, but since it is in the domain of scripting and coding, I’ve included them here as well.

  • Updating the game to Gen 7 Pokémon, moves, items, mechanics, etc.
  • Gen 5 type repel use
  • Weather conditions
  • Minigames (e.g. Voltorb switch)
  • Quick save
  • 3 registered item slots
  • Skip text (I am verbose if nothing else)
  • Mega-evolution
  • …and more…
OTHER ROLES

Gamer: This role is about helping with the gaming aspects and balancing. I.e. competitive boss battle teams, balancing field effects, value of items depending on how the new game mechanics change the environment etc.

Composer: I do not compose music, so the music I have chosen for the game so far is from my own music library, ranging from electronic to orchestral, and from stoner rock to Mongolian folk. All of this is copyright-problematic music, but then again, we all live in the shadow of Nintendo…

DEVS EX MACHINA

Fiasom: Lead Designer and Writer, Eventing, Mapping, Game Concept

Phi-Bi: Game Concept, Spriting, Tiling

SCREENSHOTS (does not reflect Phi-Bi's work yet)



CONTACT

You can contact me (Fiasom) on Relic Castle, the Reborn forum, and on Discord.
 
Last edited:

MGriffin

Trainer
Member
Posts
74
#2
Wow, that's quite a daunting list of features!

Factions & Relationships: The game includes 13 political factions vying for power, and the players’ choices influence which (if any) of the factions achieve their goals. The game also includes relationships with several major NPCs, making them anything from enemies to rivals to friends/allies to lovers.

I am (planning on) using switches and variables to implement the consequences of players’ choices regarding the political outcomes and their relationships with NPCs. However, this is a bit daunting, especially the players’ influence on the political factions’ goals, as this is likely to get insanely complicated using switches and variables. It also puts me in a hard place of either having to plot out every political detail of the game in advance of actual eventing of anything on Essentials, or not releasing the game until it is fully completed. (Neither of these scenarios will happen, which pretty much guarantees future regret.) Perhaps a new mechanic can be implemented to make life easier?
I wanted to ask about this, what kind of solution are you imagining to make your political woes managable?

(Also I'm not convinced that switches and variables would require you to plot everything in advance, but I don't know much about that specific area of Essentials/RMXP)
 

Fiasom

Rookie
Member
Posts
1
#3
I might be speaking too early when saying any of this, as the game is still not mature enough for any of it to become reality. But if it develops as I expect it to be, the maths of balancing how your choices affect political outcomes will be complex. The problem is more about balancing than switches and variables.

Honestly, I do not know what I can ask for. For me coding is an alien language. I think the best I can ask for is something that will allow me to make mistakes and fix stuff retrospectively. I'm happy to give more info, but would rather do it on private messaging.

I know it might be a daunting list of features. The game is certainly ambitious, but the above list all possible avenues than can be pursued, rather than stuff that I definitely want. That is one of the main reasons I would like the coder to contribute to the main game concept.
 

MGriffin

Trainer
Member
Posts
74
#4
But if it develops as I expect it to be, the maths of balancing how your choices affect political outcomes will be complex. The problem is more about balancing than switches and variables.

Honestly, I do not know what I can ask for. For me coding is an alien language. I think the best I can ask for is something that will allow me to make mistakes and fix stuff retrospectively. I'm happy to give more info, but would rather do it on private messaging.
It's hard to comment on how feasible it is to code this since the idea is pretty vague, but I'd say that if you can write down precise instructions for how you want things to work then you can probably translate those into code.

I reckon it's not too tricky to have the variables and switches turn into sensible relationships with NPCs/factions. The first thing I'd try to investigate is by representing political alignment as a set of vectors, having a function that loops over the variables/switches and turns them into those vectors (depending on which political movements they align with) which you then sum up. Then your conditional branches can look at the length and direction of those vectors to decide how the characters feels about the player's politics.

An example (that's deliberately over-the-top and a parody of all sides, before anyone gets upset):

Code:
# Our political vector space has two components, social and economic.
# Negative values are liberal-aligned, positive values are conservative-aligned.
# Represented in code as [s, e]

SWITCH0 = true  # Eats quinoa.
SWITCH1 = true  # Kicks puppies.
VAR0    = 1     # Voted for 0. nothing, 1. open borders, 2. child internment.
VAR1    = 2     # Tax cuts for 0. everyone, 1. the poor, 2. the rich.

# actual ~= [-0.82, +0.57]
# Examples:
# politicalAlignment([-1.00,  0.00]) == 0.81
# politicalAlignment([ 0.00, +1.00]) == 0.64
# politicalAlignment([+0.50, +1.00]) == 0.22
# politicalAlignment([+0.50, -0.50]) == -0.99

# Returns a number -1 .. +1 inclusive, where +1 is identical, 0 is neutral, and -1 is opposed.
def politicalAlignment(target)
  actual = [0, 0]

  actual = vadd(actual, [-1.00,  0.00]) if SWITCH0

  actual = vadd(actual, [ 0.00, +1.00]) if SWITCH1

  case VAR0
  when 1; actual = vadd(actual, [-1.00, -0.50])
  when 2; actual = vadd(actual, [+0.80, +0.40])
  end

  case VAR1
  when 0; actual = vadd(actual, [+0.00, -1.00])
  when 1; actual = vadd(actual, [-0.80, +0.40])
  when 2; actual = vadd(actual, [+0.30, +0.90])
  end

  # Take the cosine between the player's politics and the target politics,
  # this is how similar they are in beliefs (but not strength of beliefs).
  # https://en.wikipedia.org/wiki/Cosine_similarity
  vdot(actual, target) / (vmag(actual) * vmag(target))
end

def vadd(v1, v2)
  v1.zip(v2).map {|c1, c2| c1+c2}
end

def vmag(v)
  Math.sqrt(v.inject(0) {|s, c| s + c**2})
end

def vdot(v1, v2)
  v1.zip(v2).inject(0) {|s, cs| s + cs[0]*cs[1]}
end

The nice thing about an approach like this is that you can tweak the vectors and the game will adjust itself automatically. I think that's what you're worried about when you say:
It also puts me in a hard place of either having to plot out every political detail of the game in advance of actual eventing of anything on Essentials, or not releasing the game until it is fully completed.
You might want to incorporate the magnitude of the vectors into the similarity comparison, I figure that a staunchly economically conservative doesn't have too much in common with economic conservative with only weak beliefs, but cosine similarity thinks they're well aligned, and that economic liberals with weak beliefs are strongly opposed. I suppose you want to measure distance on the axes that target measures.
 
Last edited:

Fiasom

Rookie
Member
Posts
1
#5
The nice thing about an approach like this is that you can tweak the vectors and the game will adjust itself automatically.
This looks promising. My problem is that the last time I spoke mathematics was in highschool (with the exception of statistics here and there), and I don't know some of the concepts here. That's one of the reasons I'm looking for a coder who can at least advise on the game concept.

The Ps choices throughout the game in the main storyline and in the sidequests affect which factions become stronger, and which ones become weaker. The faction(s) you suport/gain the support of, declare(s) allegience to your cause in the grand finale. In each chapter of the game, the P explores a different faction, and in the last 3 chapters can do things for or against any and all factions. My worry is that when writing, say Chapter 3, I might end up with 10 events that support/oppose a certain faction, and 3 events for the rival faction, thinking that I can rectify the imbalance come chapter 4 or 6, only to find that it doesn't make narrative sense, and I can't rectify the situation unless I go back and change a few things on a chapter already released. Then I got players locked into choices I never gave them because I didn't have the necessary narrative foresight. This is my worry basically.

Automatic self adjustment can help though - even if I can't force players to go back to chapter 3, I might be able to write something into the game that retains their ability to choose, even if I have made some mistakes.

I made a copy of the above code. Do I credit you if I use it?

Also, thanks a lot.
 

MGriffin

Trainer
Member
Posts
74
#6
This looks promising. My problem is that the last time I spoke mathematics was in highschool (with the exception of statistics here and there), and I don't know some of the concepts here. That's one of the reasons I'm looking for a coder who can at least advise on the game concept.
Yeah, so like you noted, this solution is a mathematical one more than a programming one. I don't think there's anything particularly complicated going on in terms of the math, so I think if you brush up a little on vectors and try to get some intuition for what cosine similarity means (and why it's not quite what you want) you'll do fine. The code itself is a relatively straightforward translation, I think if you can follow the concepts you'll be able to make whatever logic changes you need. Maybe it's easy enough to see how you'd add new cases even if you don't understand everything yet, YMMV.

The Ps choices throughout the game in the main storyline and in the sidequests affect which factions become stronger, and which ones become weaker. The faction(s) you suport/gain the support of, declare(s) allegience to your cause in the grand finale. In each chapter of the game, the P explores a different faction, and in the last 3 chapters can do things for or against any and all factions. My worry is that when writing, say Chapter 3, I might end up with 10 events that support/oppose a certain faction, and 3 events for the rival faction, thinking that I can rectify the imbalance come chapter 4 or 6, only to find that it doesn't make narrative sense, and I can't rectify the situation unless I go back and change a few things on a chapter already released. Then I got players locked into choices I never gave them because I didn't have the necessary narrative foresight. This is my worry basically.

Automatic self adjustment can help though - even if I can't force players to go back to chapter 3, I might be able to write something into the game that retains their ability to choose, even if I have made some mistakes.
Right. To some degree it's fundamentally impossible to achieve both of these aims:
  1. Some quests have a minimum amount of faction reputation required to access them.
  2. Previous quests' faction alignment rewards can change between chapters.
Because "what happens if I did a quest that I would not be allowed to do again today?" Time-travel causes paradoxes. There are solutions, but nothing perfect. Just FYI the code as-written will automatically take into account the alignment changes for previous quests, but still treat the player as if they had done all the quests that they would no longer meet the requirements for.

I made a copy of the above code. Do I credit you if I use it?

Also, thanks a lot.
That's up to you. I don't really care about receiving credit, but I'd appreciate it if you could share whatever solution you settle on to help anyone else who happens to want a similar feature; here—again—the choice here is yours.
 
Top