worldbuilding
parent
9d31ff7d4b
commit
6e699bc390
@ -1,16 +1,81 @@
|
|||||||
<!--210610,200429-->
|
<!--210610,200429-->
|
||||||
<h1>projectiles in godot engine</h1>
|
<h1>hostility</h1>
|
||||||
january 13, 2022<br>
|
january 27, 2022<br>
|
||||||
#design #mechanic<br>
|
#design #mechanic<br>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<center><img src="/static/img/ent/projectile.gif" alt="(image: Helia shoots a projectile at Chloe.)" width="500" height="267.72"></center> <br>
|
<h2>what is hostility? </h2><br>
|
||||||
|
Hostility is a state that a character's AI state machine can enter. More specific states will inherit from the hostile state to prompt targeting, aggressive, and defensive behavior. It's a very similar concept to <a href="https://wiki.guildwars.com/wiki/Aggro">aggro</a> in Guild Wars because weaving through patrol patterns and balling mobs is one of my favorite things from any game. <br>
|
||||||
<br>
|
<br>
|
||||||
<h2>the ultimate keyword </h2><br>
|
<h2>when does a character become hostile? </h2><br>
|
||||||
Blessfrey's skills are generated through a Python 3 script called the Altar of Spellmaking (like in Oblivion). Skills are just collections of keywords. Keywords are granular effects caused by the skill, like Damage and Bleeding. AoS produces skills that work great, but most follow the same pattern: <br>
|
NPCs generally will not seek out the player for combat. They will either stand stationary or follow their patrol route, oblivious of the player until becoming hostile. <br>
|
||||||
<br>
|
<br>
|
||||||
The new diagram is more concept-oriented than code-oriented, but it accounts for
|
Usually, if an NPC is hostile, that means a threat got too close. Currently, proximities in Blessfrey mirror <a href="https://en.wikipedia.org/wiki/Proxemics">Edward T. Hall's zoning</a> for interpersonal distances. Intimate distance is the range for physical interaction and melee attacks and social distance is the range for assessing hostility and ranged attacks. <br>
|
||||||
|
<center><img src="/static/img/ent/Personal_Space.svg" alt="(image: A visualization of proxemics by WebHamster of Wikipedia. Around someone are 4 concentric circles with varying diameters: within 25 feet is their public space, 12 feet is their social space, 4 feet is their personal space, and 1.5 feet is their intimate space.)" width="500" height="267.72"></center>
|
||||||
|
(By <a href="//commons.wikimedia.org/wiki/User:WebHamster" title="User:WebHamster";>WebHamster</a> - <span class="int-own-work" lang="en">Own work</span>, <a href="https://creativecommons.org/licenses/by-sa/3.0" title="Creative Commons Attribution-Share Alike 3.0">CC BY-SA 3.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=6147809">Link</a>) <br>
|
||||||
<br>
|
<br>
|
||||||
|
An NPC will become hostile under a few conditions: <br>
|
||||||
|
<ul>
|
||||||
|
<li>An enemy faction member enters its social distance. Every character has a RangeBubble (Area2D) representing its social space. When a character enters range, its AI will assess both set of factions and change states upon finding a conflict. If there is a significant level desparity in the opponent's favor, though, the character will remain idle. </li>
|
||||||
|
<li>Someone attacked it or dealt damage to it. If their opponent isn't in range, they will become hostile and begin searching or ambushing. (There is no friendly fire, so teams aren't going to implode.) </li>
|
||||||
|
<li>Someone was damaged or attacked by it. Once again, if their opponent isn't in range, they will begin the hunt. </li>
|
||||||
|
<li>When the majority of a team is hostile towards an opponent, any team of the same faction or type entering the social space of the hostile team will also become hostile towards it. </li>
|
||||||
|
<li>When one member of a team becomes hostile, the others remain idle until aggravated. This allows skilled players to pull individual opponents away at a time without alerting the others and divide and conquer. This also prevents one foolhardy teammate from programmatically pulling aggro onto its entire team. </li>
|
||||||
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
Last Updated October 17, 2021
|
<h2>what changes when a character is hostile? </h2><br>
|
||||||
|
A hostile NPC will enter a combative AI state, usually with the goal of pursuing its opponent until either is killed or out of range. During combat, its passive health regeneration will slow, while energy regeneration will remain constant. Maybe certain skills and items can't be used during combat. If it has hostility towards multiple targets, it will prioritize targets according to its targeting AI state, probably favoring the nearest and weakest opponents. <br>
|
||||||
|
<br>
|
||||||
|
Each NPC will express hostility differently. Broadly, hostile behavior falls into 3 groups: offensive, defensive, and targeting. Offensive states may involve melee or ranged attacks, weapon attacks or offensive skill usage, single-target attacks or AoE, frontlining or backlining, and so on. Defensive states may involve buffing or healing, fleeing or kiting, protecting themselves or their teammates, and so on. The targeting state will allow the character to have unique opinions on who is most deserving of its attention. <br>
|
||||||
|
<br>
|
||||||
|
When a character becomes hostile toward the player, there will be feedback, such as battle music playing, the opponent's name turning red, or a sound effect playing. (Now I have the <a href="">Aion aggro sound effect</a> in my head.) <br>
|
||||||
|
<br>
|
||||||
|
<h2>when is a character no longer hostile? </h2><br>
|
||||||
|
An NPC will lose hostility under a few conditions:
|
||||||
|
<ul>
|
||||||
|
<li>Enough distance has spread between the NPC and its opponent. Usually, an NPC will not pursue an opponent very far. The farther the NPC is led from its idle route, the less tolerance it has to pursue its opponent. However, if pulled slowly, a few steps at a time, it can be led almost anywhere. </li>
|
||||||
|
<li>Its opponent exits the NPC's territory. Some NPCs have lines they will not cross. </li>
|
||||||
|
<li>Its opponent or itself dies. </li>
|
||||||
|
<li>The opponent no longer belongs to a conflicting faction. </li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<h2>what happens after a character is no longer hostile? </h2><br>
|
||||||
|
The character will return to its idle position or the nearest waypoint of its patrol route. Its passive health regeneration returns to its usual rate. Possibly some skills and items will be combat-only and will become disabled. <br>
|
||||||
|
<br>
|
||||||
|
<h2>team hierarchy </h2><br>
|
||||||
|
Teams have a leader. If there are additional teammates, they will be followers of the leader. Teams can be allied with other teams. Generally, the leader of the ally team will become a follower of the main team's leader, while its teammates will be followers of their local leader. If a teammate has a pet, raises a minion, casts a summon, or triggers an event that grants it an ally, that character will be the leader of its own group, allied with the responsible teammate. Alliances can be gained or broken. <br>
|
||||||
|
<br>
|
||||||
|
Teams will be more or less oblivious to their allies' position and lose them if they aren't keeping up. They will support allies in combat, but they characters usually prioritize teammates over allies. <br>
|
||||||
|
<br>
|
||||||
|
<center><img src="/static/img/ent/team_hierarchy.png" alt="(A diagram of team hierarchy. )" width="500" height="375"></center> <br>
|
||||||
|
<br>
|
||||||
|
<h2>scenarios </h2><br>
|
||||||
|
<center><img src="/static/img/ent/ally_chain.png" alt="(An illustration of the chain resulting from paladins allying with a necromancer who summons a vampire who converts a ghoul who is friends with a chaos dwarf who build a war golem.)" width="500" height="375"></center> <br>
|
||||||
|
<br>
|
||||||
|
A, B, and C are in team 1. D is allied with them. They are preparing to attack the idle team 2 (V, W, and X with ally Y). Both teams will be spotted by the patrolling team 3 (M, N, and O with ally P) in a minute. Team 2 and 3 are members of the same faction, while Team 1 is of an opposing faction. A, B, and D are within range of either other, while C is investigating something just out of range. V, W, and X are within range, while Y is stuck behind a rock just out of range. M, N, and O are patrolling, while P walks too slowly to be in immediate range of the others. A, V, and M are leaders of their teams. They lead, while their teammates flock with them. Allies are members of their own team(s). Ally team leaders will follow the team leader of the main team, while their teammates flock with them. Allies can have their own allies, resulting in large trails of allied groups. Allies will not engage against allies or support direct enemies of their allies. Allies may engage against allies removed or support direct enemies of allies twice removed, though. <br>
|
||||||
|
<br>
|
||||||
|
Technically, allies are in their own team by themselves. Allies will flock within their own team and follow the general position of the main team or the individual teammate they are allied with. The main team will flock within their own team and ignore the positions of their allies. Allies will only share hostility with the main team through the coincidental case of being the same faction or type. <br>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li>A attacked V. V and A are hostile towards each other. B and D gain hostility towards V from being in range of A. W and Y gain hostility towards A from V. Now A, B, and D are opposed to V, W, and Y and vice versa and begin fighting. C and X are bound to cluster closer or be approached by opponents and join in soon. </li>
|
||||||
|
<li>A lays a trap. V walks into the trap and takes damage. A and V are now hostile towards each other. A and V will prepare for battle and begin hunting for each other. Their RangeBubbles will extend farther during this time. If they search for too long or travel too many steps without finding an opponent, they will resume their idle positions. If A finds an opponent, any teammates or allies within their RangeBubble will gain hostility towards the opponent and move within range. Combat will ensue. If very few or no members were in range of A, its team will idle on without it. If most members were in range, the remaining members will flock to their team and inevitably gain hostility and enter combat. </li>
|
||||||
|
<li>A one-hit-kills V from a safe distance. A becomes hostile and searches for an opponent. Team 2 is oblivious. </li>
|
||||||
|
<li>Teams 1 and 2 are hostile towards each other. Team 1 changes to the same faction. Teams 1 and 2 lose hostility. They will now consider each other friendly and possibly support each other. If one team gains hostility towards another team, the other will share hostility if still in range. </li>
|
||||||
|
<li>Teams 1 and 2 are friendly with each other and following each other. Team 1's faction changes to an adversial one. They are all so close, they all gain hostility towards the other team's members immediately. </li>
|
||||||
|
<li>All of team 1 is hostile towards all of team 2. Team 3 enters range of team 2. All of team 3 gains hostility towards team 1 the moment a member of team 2 enters range of a single member of team 3. </li>
|
||||||
|
<li>Team 1 and team 2 are hostile towards each other with team 3 approaching. Ally P intersects with ally Y, triggering hostility between them. Teams 1 and 2 remain oblivious towards Team 3 and vice-versa. If team 3 starts going somewhere else, P will be left behind. Members of team 3 will gain hostility on a case by case basis as they flock nearby and inevitably get too close. </li>
|
||||||
|
<li>Team 1 and team 2 are hostile towards each other with team 3 approaching. Teammate M intersects with ally Y, triggering hostility between all of team 3 and ally Y. Team 2 will eventually enter the fray coincidentally. </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>ally chains </h3><br>
|
||||||
|
<br>
|
||||||
|
<center><img src="/static/img/ent/ally_chain.png" alt="(An illustration of the chain resulting from paladins allying with a necromancer who summons a vampire who converts a ghoul who is friends with a chaos dwarf who build a war golem.)" width="500" height="375"></center> <br>
|
||||||
|
<br>
|
||||||
|
If a necromancer is allied with a team of paladin, they will only enter hostility through their own terms. For instance, the paladins may attack a bear, but the necromancer will ignore it until the bear is a direct threat to itself. If the paladins attack another necromancer, the enemy necromancers will likely ignore the paladin-allied necromancer and never pose a direct threat. The allied necromancer may express idle supportive behavior like buffing the paladins, but it will remain idle. The politics of the main team trump that of other roaming teams. The allied necromancer will not enter combat with the paladins merely because it is the same type as the necromancers. It will also not idly heal the team that is currently directly opposed to its paladin allies. If the enemy necromancers were fighting a team of merchants, and the paladins completely ignore both groups, the necromancer ally will enter the fray in support of the necromancers and against the merchants. This may draw the paladins in, who will support the merchants and fight the necromancers. The allied necromancer will immediately lose hostility towards anyone directly opposed to the main team's leader. <br>
|
||||||
|
<br>
|
||||||
|
If the necromancer raises 2 liches, each lich is the leader of its own team, and each team is allied with the necromancer. Let's say the liches summon vampiric minions, one of which converts someone to an allied ghoul whose alliance remains constant with its chaos dwarf buddy who in turn is allied with its wargolem. The paladin will respect the necromancer and liches but become hostile towards the vampires and all other evil monsters and vice-versa. In the case all these groups were factionless, the paladin would be neutral towards the vampires and everything else down the chain. Neutral characters are generally low priority in combat, but AoE attacks can easily whip up hostility. <br>
|
||||||
|
<br>
|
||||||
|
If the necromancer dies, the lich and paladins will no longer restrain themselves from becoming hostility towards each other. <br>
|
||||||
|
<br>
|
||||||
|
Last updated January 12, 2022
|
||||||
<br>
|
<br>
|
||||||
|
@ -1,43 +1,27 @@
|
|||||||
<!--210610,200429-->
|
<!--220224,220224-->
|
||||||
<h1>hostility</h1>
|
<h1>lucrest, a player home based on my home </h1>
|
||||||
february 2, 2022<br>
|
february 10, 2022<br>
|
||||||
#design #mechanic<br>
|
#game-design #setting #lucrest<br>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<h2>defining hostility </h2><br>
|
<h2>quick overview of blessfrey's game world </h2><br>
|
||||||
NPCs will generally not seek out the player for combat. They will either stand stationary or follow their patrol route, oblivious of the player until becoming hostile.
|
Blessfrey takes place between two worlds: the southern American town of Lucrest and the underground world of Blessfrey. This week, I'll explain the concept behind Lucrest, then on the 24th CST, I'll tackle Blessfrey. <br>
|
||||||
<br>
|
<br>
|
||||||
It's a very similar concept to <a href="https://wiki.guildwars.com/wiki/Aggro">aggro</a> in Guild Wars because weaving through patrol patterns and balling mobs is one of my favorite things from any game, and I'd imagine it'd be just as fun in single player. <br>
|
<h2>lucrest, the mundane </h2><br>
|
||||||
|
Lucrest is more or less representative of a typical town, with a shopping center, school, church, a neighborhood, and some natural beauty. Functionally, it will have story events and side quests, but it will mainly serve as the hub for recovering and gearing up between dungeon crawls. I think of it as Torchlight a lot. (At least, the hub from the first game.) Artistically, it's an opportunity to work with what's familiar to me. <br>
|
||||||
<br>
|
<br>
|
||||||
<h2>when does a character become hostile? </h2><br>
|
I think it's a chance to do something a little different in a game, too. I learn lots of interesting little tidbits of Japanese culture through Japanese media, but I feel like my day-to-day life and childhood rarely come up in games with American settings. Some games do have detailed settings, like Bloodlines's L.A, Mafia II's generalized 1950s east coast, and all the Night in the Woods's, Life is Strange's, and David Cage games out there, but America is so patchwork that I enjoy them for their cultural differences as much as I do for their cultural simularities. <br>
|
||||||
An NPC will become hostile under a few conditions:
|
|
||||||
<ul>
|
|
||||||
<li>A character from an enemy faction or an NPC allied with that character enters its social distance </li>
|
|
||||||
<li>That character dealt damage to it or its ally</li>
|
|
||||||
<li>That character attacked it or its ally</li>
|
|
||||||
<li>That character was damaged or attacked by it or its ally. </li>
|
|
||||||
<li>Any group of the same type entering social distance of a group actively hostile towards a character will also become hostile towards it. </li>
|
|
||||||
</ul><br>
|
|
||||||
<br>
|
<br>
|
||||||
Currently, the ranges in Blessfrey mirror Edward T. Hall's zoning for interpersonal distances. Intimate distance is used for physical interaction and melee attacks, social distance is used for assessing hostility and ranged attacks. <br>
|
This is due to an urban vs rural divide, but it's also a regional divide. Writers favor other regions heavily, then limit the South to Louisiana and Florida, which are both geographically southern but culturally divergent with stronger ties to France and Spain respectively than the English derivative Deep South. Wikipedia agrees. In their <a href="https://en.wikipedia.org/wiki/Category:Video_games_set_in_the_United_States_by_state">list of games by state</a>, California, Alaska, the West, and the D.C. metropolitan area dominate American representation. It's not like the Deep South is the most romanticized setting, but there's only 1 <a href="https://en.wikipedia.org/wiki/Wikipedia:Notability">notable</a> game in Alabama for me to compete with, and it's a sports game. <br>
|
||||||
<center><img src="/static/img/ent/Personal_Space.svg" alt="(image: A visualization of proxemics by WebHamster of Wikipedia. Around someone are 4 concentric circles with varying diameters: within 25 feet is their public space, 12 feet is their social space, 4 feet is their personal space, and 1.5 feet is their intimate space.)" width="500" height="267.72"></center>
|
|
||||||
(By <a href="//commons.wikimedia.org/wiki/User:WebHamster" title="User:WebHamster">WebHamster</a> - <span class="int-own-work" lang="en">Own work</span>, <a href="https://creativecommons.org/licenses/by-sa/3.0" title="Creative Commons Attribution-Share Alike 3.0">CC BY-SA 3.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=6147809">Link</a>) <br>
|
|
||||||
<br>
|
<br>
|
||||||
<h2>what changes when a character is hostile? </h2><br>
|
Really, I just want to put the things meaningful to me and my world in this game, good and bad. Looking around, though, it seems like a little portal into suburban Alabamian life could be novel. <br>
|
||||||
A hostile NPC will enter a combative AI state and pursue its opponent until either is killed or out of range. During combat, its passive health regeneration will drop dramatically, while energy regeneration will remain constant. Maybe certain skills and items can't be used during combat. If it has hostility towards multiple targets, it will prioritize targeting according to its targeting AI. <br>
|
|
||||||
<br>
|
<br>
|
||||||
When a character becomes hostile toward the player, there will be additional cues, such as its name turning red or a sound effect playing. (Now I have the Aion aggro sound effect in my head.) <br>
|
<h3>what's there to do in alabama? </h3>
|
||||||
|
This isn't my first iteration of game world that's more of a personal diary for things I encountered growing up. I spend a lot of my middle school years filling out a GDD for a game named after the fictional neighborhood it was set in. The protagonist was Walker, a girl who she ripped out all the pages of her diary in a moment of grief and set them to the wind. All you did was walk around, watch events, collect diary pages, and do some basic puzzle-solving. There's an entire subdivision to explore, each neighborhood with its own flair and obstacles. As you collect diary pages, you unlock a clearer image of who Walker is and why she was sad. At the time, I was inspired by Tale-of-Tales, especially The Path and The Graveyard, but similar genres have since emerged like walking simulators and whatever those Slenderman collect-all-the-pieces-of-paper games were. The only remnant I have left of the game is an old <a href="https://sixthview.tumblr.com/">tumblr blog</a>. If only Unity went free earlier; I would totally be sharing an broken demo instead of a moodboard with a broken theme. <br>
|
||||||
<br>
|
<br>
|
||||||
<h2>when is a character no longer hostile? </h2><br>
|
<center><img src="/static/img/ent/sixth_view.png" alt="(image: a screenshot of my old game project moodboard. There's flowers, home gardens, fortune-tellers, cute girls, fairy rings, polaroid cameras, and meandering prose about Walker's encounters in her neighborhood. Overall, the writing was meant to evoke Kafka or Sisyphus, like how she watches a boy recreate a Michelangelo masterwork in sidewalk chalk, only for the first drop of rain to fall on it as he finishes the last stroke. Deep stuff.)" width="500" height="551.19"></center> <br>
|
||||||
An NPC will lose hostility under a few conditions:
|
|
||||||
<ul>
|
|
||||||
<li>The player and all allies put enough distance between himself and the NPC. </li>
|
|
||||||
<li>The player and all allies leave the NPC's territory. An NPC will only pursue its victim so far before losing hostility and resuming its patrol route. If . </li>
|
|
||||||
<li>The player dies. </li>
|
|
||||||
</ul>
|
|
||||||
<br>
|
<br>
|
||||||
<h2>what happens after a character is no longer hostile? </h2><br>
|
Sixth View's gameplay is really basic, the narrative is really linear, and a lot of it is middle school cringe, but there's a tiny glimpse of Lucrest in there. Like Sixth View neighbors, Blessfrey townspeople are going to be drawing with sidewalk chalk, having yard sales, playing Concentration 64 and Big Booty, painting clear nail polish over chiggers, avoiding water serpents in the brook, doing Bible drills, folding fortune-tellers, finding golden orb weavers in their gardens, wondering why pairs of shoes were hung over telephone lines and trees, wearing clover crowns, making sock monkeys, blowing dandelion puffs, finding arrowheads in the river, four square, cutting through cotton fields, and all the stuff I think of when I think of home. <br>
|
||||||
The character will return to its idle position or the nearest waypoint of its patrol route. Its passive health regeneration return to its usual rate. Possibly some skills and items will be combat-only. <br>
|
|
||||||
<br>
|
<br>
|
||||||
Last updated January 12, 2022
|
Last updated January 16, 2022
|
||||||
<br>
|
<br>
|
||||||
|
@ -1,81 +1,61 @@
|
|||||||
<!--210610,200429-->
|
<!--220210,220224-->
|
||||||
<h1>hostility</h1>
|
<h1>designing a fantasy game world: where do I even start?</h1>
|
||||||
february 2, 2022<br>
|
february 2, 2022<br>
|
||||||
#design #mechanic<br>
|
#design #mechanic #blessfrey<br>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<h2>what is hostility? </h2><br>
|
<h2>quick overview of blessfrey's game world </h2><br>
|
||||||
Hostility is a state that a character's AI state machine can enter. More specific states will inherit from the hostile state to prompt targeting, aggressive, and defensive behavior. It's a very similar concept to <a href="https://wiki.guildwars.com/wiki/Aggro">aggro</a> in Guild Wars because weaving through patrol patterns and balling mobs is one of my favorite things from any game. <br>
|
Blessfrey takes place between two worlds: the southern American town of Lucrest and the underground world of Blessfrey. Last week, I explained the concept behind Lucrest, and now I'm tackling Blessfrey. <br>
|
||||||
<br>
|
<br>
|
||||||
<h2>when does a character become hostile? </h2><br>
|
<h2>blessfrey, the fantastical </h2><br>
|
||||||
NPCs generally will not seek out the player for combat. They will either stand stationary or follow their patrol route, oblivious of the player until becoming hostile. <br>
|
Blessfrey is functionally a vast, unknown world full of exploration, combat, gathering, and plot-driving discoveries. This is where the real game takes place, though the overworld is a nice safe place for getting your bearings. It's populated by multiple uncontacted cultures, so artistically, it's a chance to do whatever I want without having to ground it firmly in real world logic. <br>
|
||||||
<br>
|
<br>
|
||||||
Usually, if an NPC is hostile, that means a threat got too close. Currently, proximities in Blessfrey mirror <a href="https://en.wikipedia.org/wiki/Proxemics">Edward T. Hall's zoning</a> for interpersonal distances. Intimate distance is the range for physical interaction and melee attacks and social distance is the range for assessing hostility and ranged attacks. <br>
|
That also makes Blessfrey a white sheet of paper. With Lucrest, I can model society and all its components after my own. In fact, the more I lean on my local surroundings, the <em>more</em> unique the setting will be. With Blessfrey, I don't have a lot to start with. <br>
|
||||||
<center><img src="/static/img/ent/Personal_Space.svg" alt="(image: A visualization of proxemics by WebHamster of Wikipedia. Around someone are 4 concentric circles with varying diameters: within 25 feet is their public space, 12 feet is their social space, 4 feet is their personal space, and 1.5 feet is their intimate space.)" width="500" height="267.72"></center>
|
|
||||||
(By <a href="//commons.wikimedia.org/wiki/User:WebHamster" title="User:WebHamster";>WebHamster</a> - <span class="int-own-work" lang="en">Own work</span>, <a href="https://creativecommons.org/licenses/by-sa/3.0" title="Creative Commons Attribution-Share Alike 3.0">CC BY-SA 3.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=6147809">Link</a>) <br>
|
|
||||||
<br>
|
<br>
|
||||||
An NPC will become hostile under a few conditions: <br>
|
The earliest vision of the setting illutrated Blessfrey as a vast world under Lucrest. In Podunk, Alabama, you shouldn't expect more than farmland, a general store, and a church, but rural Lucrest florished under its current mayor beyond believability, stocking all the luxuries and exotic goods you would expect from a big city, albeit at a tiny scale and population. Tourism off-sets a little, but the local population doesn't support all this - the mayor propped up the entire local economy through conquering a pocket of Blessfrey and establishing it as a secret micro mercantilist colony. <br>
|
||||||
<ul>
|
|
||||||
<li>An enemy faction member enters its social distance. Every character has a RangeBubble (Area2D) representing its social space. When a character enters range, its AI will assess both set of factions and change states upon finding a conflict. If there is a significant level desparity in the opponent's favor, though, the character will remain idle. </li>
|
|
||||||
<li>Someone attacked it or dealt damage to it. If their opponent isn't in range, they will become hostile and begin searching or ambushing. (There is no friendly fire, so teams aren't going to implode.) </li>
|
|
||||||
<li>Someone was damaged or attacked by it. Once again, if their opponent isn't in range, they will begin the hunt. </li>
|
|
||||||
<li>When the majority of a team is hostile towards an opponent, any team of the same faction or type entering the social space of the hostile team will also become hostile towards it. </li>
|
|
||||||
<li>When one member of a team becomes hostile, the others remain idle until aggravated. This allows skilled players to pull individual opponents away at a time without alerting the others and divide and conquer. This also prevents one foolhardy teammate from programmatically pulling aggro onto its entire team. </li>
|
|
||||||
</ul>
|
|
||||||
<br>
|
<br>
|
||||||
<h2>what changes when a character is hostile? </h2><br>
|
Initially, Blessfrey was defined by Lucrest's needs, and the impulse doesn't go far beyond "subterranean" and "alien." It needs to have rich natural resources equal to a nation to solely support a town. It needs a full-bodied manufacturing and supply chain. (In contrast, the town will have next-to-zero above ground areas dedicated to industry.) It needs a population that can be subjugated and perform labor. It also needs a population that would seldom be seen by anyone above ground. <br>
|
||||||
A hostile NPC will enter a combative AI state, usually with the goal of pursuing its opponent until either is killed or out of range. During combat, its passive health regeneration will slow, while energy regeneration will remain constant. Maybe certain skills and items can't be used during combat. If it has hostility towards multiple targets, it will prioritize targets according to its targeting AI state, probably favoring the nearest and weakest opponents. <br>
|
|
||||||
<br>
|
<br>
|
||||||
Each NPC will express hostility differently. Broadly, hostile behavior falls into 3 groups: offensive, defensive, and targeting. Offensive states may involve melee or ranged attacks, weapon attacks or offensive skill usage, single-target attacks or AoE, frontlining or backlining, and so on. Defensive states may involve buffing or healing, fleeing or kiting, protecting themselves or their teammates, and so on. The targeting state will allow the character to have unique opinions on who is most deserving of its attention. <br>
|
However, Blessfrey existed long before Lucrest. The mayor learned about it through Civil War era historical records, so it was technologically advanced 150 years old ago, while Lucrest is a small Alabama town and couldn't have been <em>founded</em> much earlier than that. The world, or at least the region beneath the town, is positioned to be culturally rich, visually intricate, and descended from a comprehensive history. Since this is a game, I don't need a worldbuilding bible to rival the real Bible, but there needs to be enough to support a cast of characters, a host of locations, story events, and a general sense of depth for the players. Where do I start? <br>
|
||||||
<br>
|
<br>
|
||||||
When a character becomes hostile toward the player, there will be feedback, such as battle music playing, the opponent's name turning red, or a sound effect playing. (Now I have the <a href="">Aion aggro sound effect</a> in my head.) <br>
|
<h3>character-driven approach </h3>
|
||||||
|
The first Blessfreian I designed was the main cast member Rune. He's a young castaway of his people living in the buffer zone between civilization and the outside world. His class is the first special class the player will encounter. The humans will have access to the expected RPG classes: melee, magic, ranged, healing, etc, but Rune and the other subterranean people will have different and apparently more powerful classes: teleporting, shape-shifting, mind reading, time manipulation, etc. He's pale, thin, very tall, with expressionless red eyes. He also has rigid keratin horns that blend into his dark hair, a little like G-Dragon from the Monster video.<br>
|
||||||
<br>
|
<br>
|
||||||
<h2>when is a character no longer hostile? </h2><br>
|
He's intended to be a project for the player, like a Princess Maker ward, Geralt's adoptive son in The Witcher 2, Brother Martin in the original kingmaker concept for Oblivion, or Shandra Jerro in Neverwinter Nights 2 if you could multiclass her. You can turn him away or take him in and train him up, critically branching the game's trajectory. He'll start out undersocialized, monosyllabic, and ignorant of most of the world, and hopefully the player helps him to become human, expressive, and capable. <br>
|
||||||
An NPC will lose hostility under a few conditions:
|
|
||||||
<ul>
|
|
||||||
<li>Enough distance has spread between the NPC and its opponent. Usually, an NPC will not pursue an opponent very far. The farther the NPC is led from its idle route, the less tolerance it has to pursue its opponent. However, if pulled slowly, a few steps at a time, it can be led almost anywhere. </li>
|
|
||||||
<li>Its opponent exits the NPC's territory. Some NPCs have lines they will not cross. </li>
|
|
||||||
<li>Its opponent or itself dies. </li>
|
|
||||||
<li>The opponent no longer belongs to a conflicting faction. </li>
|
|
||||||
</ul>
|
|
||||||
<br>
|
<br>
|
||||||
<h2>what happens after a character is no longer hostile? </h2><br>
|
<center><iframe width="560" height="281" src="https://www.youtube.com/embed/btDd9rOlc2k" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br>
|
||||||
The character will return to its idle position or the nearest waypoint of its patrol route. Its passive health regeneration returns to its usual rate. Possibly some skills and items will be combat-only and will become disabled. <br>
|
<img src="/static/img/ent/G-Dragon_Monster.jpg" alt="(image: G-Dragon's hair from Big Bang's Monster music video.)" width="500" height="504.92"></center> <br>
|
||||||
<br>
|
<br>
|
||||||
<h2>team hierarchy </h2><br>
|
Rune is a member of a dominant Blessfreian race, so this gives me some ideas what the rest will look and act like and possibly even some ideas about the prevailing culture. Semi-rigid keratin horns made from hair is a trait the race can have, and every member can have a different style. Rune's are long and curve harshly to rest on his head like a halo, while GD's are short and slightly curved at the top. Individualized horns make me think of Homestuck, which isn't my favorite webcomic, but honestly most horned races offer this variety. Rune's an outcast, so there's a potential in-group/out-group culture at play here, be it resulting from legal disputes, religion, or his personal appearance. It's also possible his society would find his abandonment reprehensible, and it's due to a negligent mother or tragic accident. <br>
|
||||||
Teams have a leader. If there are additional teammates, they will be followers of the leader. Teams can be allied with other teams. Generally, the leader of the ally team will become a follower of the main team's leader, while its teammates will be followers of their local leader. If a teammate has a pet, raises a minion, casts a summon, or triggers an event that grants it an ally, that character will be the leader of its own group, allied with the responsible teammate. Alliances can be gained or broken. <br>
|
|
||||||
<br>
|
<br>
|
||||||
Teams will be more or less oblivious to their allies' position and lose them if they aren't keeping up. They will support allies in combat, but they characters usually prioritize teammates over allies. <br>
|
<h3>environment-driven approach </h3>
|
||||||
|
Just because a world is underground doesn't mean it has to be all caves or hellscapes. If I do learn on the familarity of spelunking through local caverns here, though, it gives me a foothold. There's crystals, bottomless pits, and underground waterfalls and rivers. There's solutional caves, tectonic caves, and volcanic caves. There's eyeless fish, bats, and cave swallows. People have built mines, entire cities, escape routes, secret passageways, and metros underground. Certain indigenous people groups have lived underground or tell stories of ancestors who once did. <br>
|
||||||
<br>
|
<br>
|
||||||
<center><img src="/static/img/ent/team_hierarchy.png" alt="(A diagram of team hierarchy. )" width="500" height="375"></center> <br>
|
I can also be inspired by what is <em>not</em> underground. The sun, passage of day to night, weather patterns, seasons, star patterns, migration patterns, fresh air, chlorophyll, and countless other things don't fit as logically into an isolated subterranean civilization. <br>
|
||||||
<br>
|
<br>
|
||||||
<h2>scenarios </h2><br>
|
Using these reference points, I can start piecing together a world. How is time measured? The concept of an hourglasses still works, but rotation-derived hours do not. What is the fashion? Perhaps roots, asbestos, or fine metallic threads dominate over animal derived fibers...unless they use their own hair. If this isn't a vast inner world but rather cavernous pockets, how is their waste managed? Do they have designated dumping tunnels or use bottomless pits? <br>
|
||||||
<center><img src="/static/img/ent/ally_chain.png" alt="(An illustration of the chain resulting from paladins allying with a necromancer who summons a vampire who converts a ghoul who is friends with a chaos dwarf who build a war golem.)" width="500" height="375"></center> <br>
|
|
||||||
<br>
|
<br>
|
||||||
A, B, and C are in team 1. D is allied with them. They are preparing to attack the idle team 2 (V, W, and X with ally Y). Both teams will be spotted by the patrolling team 3 (M, N, and O with ally P) in a minute. Team 2 and 3 are members of the same faction, while Team 1 is of an opposing faction. A, B, and D are within range of either other, while C is investigating something just out of range. V, W, and X are within range, while Y is stuck behind a rock just out of range. M, N, and O are patrolling, while P walks too slowly to be in immediate range of the others. A, V, and M are leaders of their teams. They lead, while their teammates flock with them. Allies are members of their own team(s). Ally team leaders will follow the team leader of the main team, while their teammates flock with them. Allies can have their own allies, resulting in large trails of allied groups. Allies will not engage against allies or support direct enemies of their allies. Allies may engage against allies removed or support direct enemies of allies twice removed, though. <br>
|
<h3>genre-driven approach </h3>
|
||||||
|
I can refer to others who explored the concept of an inner world. <br>
|
||||||
<br>
|
<br>
|
||||||
Technically, allies are in their own team by themselves. Allies will flock within their own team and follow the general position of the main team or the individual teammate they are allied with. The main team will flock within their own team and ignore the positions of their allies. Allies will only share hostility with the main team through the coincidental case of being the same faction or type. <br>
|
As for games, I already mentioned Torchlight, which isn't too dissimilar to Blessfrey, with a town supported by a dungeon that involves some other worldly power. Persona 3 exists between two worlds, an ordinary Japanese town and the shadow dungeon Tartarus that only appears in the school at a certain time of night. SMT IV is set in an apparently Edojidai Japanese town with a demon-filled dungeon. <br>
|
||||||
<br>
|
<br>
|
||||||
<ul>
|
As for entirely subterranean games, Arx Fatalis is an apocalyptic game where the world's population was driven underground and their war continues. <a href="https://www.gog.com/game/avernum_the_complete_saga">Avernum</a> is an prison planet game (like Gothic), but the prisoners are kicked through a portal that leads somewhere underground, a place inhabited by prisoners, hostile subterranean natives, dragons, and lots of mushroom-based life like trees and cows. I think Wizardry and Ultima Underworld games take place in an underworld, too, but I've never played them lol. There's also infinite JRPG dungeoncrawlers out there, of which I've played very few. <br>
|
||||||
<li>A attacked V. V and A are hostile towards each other. B and D gain hostility towards V from being in range of A. W and Y gain hostility towards A from V. Now A, B, and D are opposed to V, W, and Y and vice versa and begin fighting. C and X are bound to cluster closer or be approached by opponents and join in soon. </li>
|
|
||||||
<li>A lays a trap. V walks into the trap and takes damage. A and V are now hostile towards each other. A and V will prepare for battle and begin hunting for each other. Their RangeBubbles will extend farther during this time. If they search for too long or travel too many steps without finding an opponent, they will resume their idle positions. If A finds an opponent, any teammates or allies within their RangeBubble will gain hostility towards the opponent and move within range. Combat will ensue. If very few or no members were in range of A, its team will idle on without it. If most members were in range, the remaining members will flock to their team and inevitably gain hostility and enter combat. </li>
|
|
||||||
<li>A one-hit-kills V from a safe distance. A becomes hostile and searches for an opponent. Team 2 is oblivious. </li>
|
|
||||||
<li>Teams 1 and 2 are hostile towards each other. Team 1 changes to the same faction. Teams 1 and 2 lose hostility. They will now consider each other friendly and possibly support each other. If one team gains hostility towards another team, the other will share hostility if still in range. </li>
|
|
||||||
<li>Teams 1 and 2 are friendly with each other and following each other. Team 1's faction changes to an adversial one. They are all so close, they all gain hostility towards the other team's members immediately. </li>
|
|
||||||
<li>All of team 1 is hostile towards all of team 2. Team 3 enters range of team 2. All of team 3 gains hostility towards team 1 the moment a member of team 2 enters range of a single member of team 3. </li>
|
|
||||||
<li>Team 1 and team 2 are hostile towards each other with team 3 approaching. Ally P intersects with ally Y, triggering hostility between them. Teams 1 and 2 remain oblivious towards Team 3 and vice-versa. If team 3 starts going somewhere else, P will be left behind. Members of team 3 will gain hostility on a case by case basis as they flock nearby and inevitably get too close. </li>
|
|
||||||
<li>Team 1 and team 2 are hostile towards each other with team 3 approaching. Teammate M intersects with ally Y, triggering hostility between all of team 3 and ally Y. Team 2 will eventually enter the fray coincidentally. </li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>ally chains </h3><br>
|
|
||||||
<br>
|
<br>
|
||||||
<center><img src="/static/img/ent/ally_chain.png" alt="(An illustration of the chain resulting from paladins allying with a necromancer who summons a vampire who converts a ghoul who is friends with a chaos dwarf who build a war golem.)" width="500" height="375"></center> <br>
|
For books, there's endless iterations of this idea. I'll guess Divine Comedy or Journey to the Center of the Earth are the most famous, but there's a full genre of hollow earth exploration written by sci-fi authors, pseudoscientists, theosophists, followers of Eastern philosophies, and schizophrenics. I've read a few of these already, like <a href="https://www.gutenberg.org/ebooks/32825">William R. Bradshaw's The Goddess of Atvatabar and <a href="https://www.gutenberg.org/ebooks/57426">Ingersoll Lockwood's Baron Trump's Marvellous Underground Journey</a>. Poe and C. S. Lewis have incorporated this idea into their books, The Narrative of Arthur Gordon Pym of Nantucket and The Silver Chair. The youth fiction series Artemis Fowl featured an magical underground world full of fairies. There's also the manga Made In Abyss and all the countless dungeoncrawl, dungeon isekai genres out there. <br>
|
||||||
<br>
|
<br>
|
||||||
If a necromancer is allied with a team of paladin, they will only enter hostility through their own terms. For instance, the paladins may attack a bear, but the necromancer will ignore it until the bear is a direct threat to itself. If the paladins attack another necromancer, the enemy necromancers will likely ignore the paladin-allied necromancer and never pose a direct threat. The allied necromancer may express idle supportive behavior like buffing the paladins, but it will remain idle. The politics of the main team trump that of other roaming teams. The allied necromancer will not enter combat with the paladins merely because it is the same type as the necromancers. It will also not idly heal the team that is currently directly opposed to its paladin allies. If the enemy necromancers were fighting a team of merchants, and the paladins completely ignore both groups, the necromancer ally will enter the fray in support of the necromancers and against the merchants. This may draw the paladins in, who will support the merchants and fight the necromancers. The allied necromancer will immediately lose hostility towards anyone directly opposed to the main team's leader. <br>
|
Subterranean worlds also appear in myth and folklore. Hades, Patala, Shamballa, Jigoku, some of the Norse 'heims. The Tuatha Dé Danann live underground, and so do dwarves, asura, and naga. The Hopi people originated from underground, and so did the Lakota, Navajo, Apache, and Zuni. It's possible Eden is underground now. <br>
|
||||||
<br>
|
<br>
|
||||||
If the necromancer raises 2 liches, each lich is the leader of its own team, and each team is allied with the necromancer. Let's say the liches summon vampiric minions, one of which converts someone to an allied ghoul whose alliance remains constant with its chaos dwarf buddy who in turn is allied with its wargolem. The paladin will respect the necromancer and liches but become hostile towards the vampires and all other evil monsters and vice-versa. In the case all these groups were factionless, the paladin would be neutral towards the vampires and everything else down the chain. Neutral characters are generally low priority in combat, but AoE attacks can easily whip up hostility. <br>
|
Plenty of reference material. Each has its own interpretation of a giant dungeon, which can spur questions about Blessfrey's worldbuilding. Why does the dungeon exist? How does it interacts with the surface world, and why did surface-dwellers explore it? Who lives there, and what factions are at play? What's at the bottom of the dungeon? Some of them get pretty deep, asking what the dungeon represents and how it mirrors the surface world. <br>
|
||||||
<br>
|
<br>
|
||||||
If the necromancer dies, the lich and paladins will no longer restrain themselves from becoming hostility towards each other. <br>
|
<h3>altogether </h3>
|
||||||
|
Designing a fantasy world, like the subterranean world of Blessfrey, from scratch can feel like an overwhelming blank on a page. If you're already in the midst of writing your story or designing your game, the page might not be as blank as you think. I have a surface world that has active and prior interaction with this fantasy one. I have a character who lives in this world. <br>
|
||||||
<br>
|
<br>
|
||||||
Last updated January 12, 2022
|
Also merely by placing it underground, that connects my world to a wealth of material to reference. Analyzing other worlds will begin to fill your once blank page with questions to answer. You can always skip this step and jump straight into a <a href="https://ellenbrockediting.com/worldbuilding-bible-template/">pre-made questionnaire</a>, but building off of other entries in your genre is an inspiring personal process to undergo that will tip you off to audience expectations. Whether you serve them or deconstruct them is up to you. <br>
|
||||||
|
<br>
|
||||||
|
At the end of the day, what will really draw your players into your game are fun levels that make clever use of your game's mechanics and your characters. If all your world does is justify a crowd-pleasing level and favorite character, it's perfectly adequate. After all, an almost lore-less released game is more successful than an epic-length worldbuilding bible with less than a demo to show for it. <br>
|
||||||
|
<br>
|
||||||
|
Good luck worldbuilding!
|
||||||
|
<br>
|
||||||
|
Last updated January 16, 2022
|
||||||
<br>
|
<br>
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
<!--210610,200429-->
|
||||||
|
<h1>???</h1>
|
||||||
|
february 2, 2022<br>
|
||||||
|
#design #mechanic<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<h2>what is hostility? </h2><br>
|
||||||
|
Hostility is a state that a character's AI state machine can enter. More specific states will inherit from the hostile state to prompt targeting, aggressive, and defensive behavior. It's a very similar concept to <a href="https://wiki.guildwars.com/wiki/Aggro">aggro</a> in Guild Wars because weaving through patrol patterns and balling mobs is one of my favorite things from any game. <br>
|
||||||
|
<br>
|
||||||
|
<h2>when does a character become hostile? </h2><br>
|
||||||
|
NPCs generally will not seek out the player for combat. They will either stand stationary or follow their patrol route, oblivious of the player until becoming hostile. <br>
|
||||||
|
<br>
|
||||||
|
Usually, if an NPC is hostile, that means a threat got too close. Currently, proximities in Blessfrey mirror <a href="https://en.wikipedia.org/wiki/Proxemics">Edward T. Hall's zoning</a> for interpersonal distances. Intimate distance is the range for physical interaction and melee attacks and social distance is the range for assessing hostility and ranged attacks. <br>
|
||||||
|
<center><img src="/static/img/ent/Personal_Space.svg" alt="(image: A visualization of proxemics by WebHamster of Wikipedia. Around someone are 4 concentric circles with varying diameters: within 25 feet is their public space, 12 feet is their social space, 4 feet is their personal space, and 1.5 feet is their intimate space.)" width="500" height="267.72"></center>
|
||||||
|
(By <a href="//commons.wikimedia.org/wiki/User:WebHamster" title="User:WebHamster";>WebHamster</a> - <span class="int-own-work" lang="en">Own work</span>, <a href="https://creativecommons.org/licenses/by-sa/3.0" title="Creative Commons Attribution-Share Alike 3.0">CC BY-SA 3.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=6147809">Link</a>) <br>
|
||||||
|
<br>
|
||||||
|
Last updated January 12, 2022
|
||||||
|
<br>
|
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
After Width: | Height: | Size: 1004 KiB |
Loading…
Reference in New Issue