Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Andrew

Pages: [1] 2 3 ... 14
Creating Might & Fealty / Equipment Overhaul
« on: June 16, 2017, 07:56:06 PM »
So, I'd like to start working on this as I'll be tinkering with how soldiers handle their equipment in the coming days anyways. This is what I'm thinking things could look like in their next phase:

Melee Items (Weapons):
  • Club - Think "improvised weapons"
  • Axe - Bonus against wood shields
  • Peasant Flail - Purely wooden, more powerful than a club. Cheap, breaks easily.
  • Spear - Bonus against cavalry
  • Pike - Like halberd, but no defense boost
  • Halberd - Mostly offensive, but slight defense boosts, bonus to dismounting targets
  • Mace - Bonus against plated armors
  • Sword
  • Morning Star - A mace with pointy bits, no more bonus, but better overall (even when accounting for the mace's bonus)
  • One-handed Flail - "Ball and chain" weapon, that can harm it's user when it misses. Powerful though.
  • Broadsword
Ranged Items (Weapons)
  • Slings - Super cheap, not very strong at all though.
  • Shortbow - Small bonus on horseback
  • Javelins - Double as a melee weapon in a pinch. No longer single use.
  • Crossbow - Single shot if mounted.
  • Longbow - Small penalty on horseback
Armour (in order of defense provided)
  • Cloth Armor - Light Infantry
  • Leather Armor - Light Infantry
  • Scale Armor - Medium Infantry, no more metal requirement
  • Chain Mail - Medium Infantry
  • Mail and Plate - Heavy Infantry
  • Plate Armor - Heavy Infantry
  • Saddle Horses - Really, more intended for work on a farm than part of a military.
  • Coursers
  • War Horses (Destriers) - More likely to survive blows
  • Camels - When we introduce larger scale deserts.
  • ?Elephants? - Very powerful, VERY dangerous.
  • Round Shield - Cheap, wood shield.
  • Kite Shield - Standard, wood shield.
  • Heater Shield - Metal shield.
  • Pavise - Bonus against ranged attacks for infantry, no bonus in melee. Infantry only.
  • Dagger - Replaces short swords
  • ?Bandages? - Increases recovery chance
I'm open to further suggestions as well, and would like to include an initial rollout of advantages/disadvantages with this, as well as having mounts be separated from general equipment.

So when creating a character you can't select places that are run by family but not your character. Seems odd that you can't choose to start at your OTHER parent's estate.

This is partially a note to work on this, and partially me be curious if anyone has an opinion on this.

General Discussion / On the Effectiveness of Roads
« on: May 27, 2017, 04:10:56 PM »
So, this has been a question that many people have asked I suspect, but how effective are roads in M&F?

Well, lets take a look. Traveling in M&F is handled by a command run several times throughout the day, appropriately titled "WorkerTravelCommand.php" that does all the heavy-lifting, for ever character going anywhere. The main things we're concerned about with this command are the following lines:

Code: [Select]
Code: [Select]
$progress = $char->getProgress() + ($char->getSpeed() * $this->speedmod);
The first one is a call to the game's Geography Service to update the travel speed for a given character, which looks something like this (edited a bit for your viewing pleasure):

Code: [Select]
   public function updateTravelSpeed(Character $character) {
      $query = $this->em->createQuery(--FIND TRAVEL FOR A CHARACTER--);
      $query->setParameter(--DEFINE A CHARACTER AS THE ONE WE'RE GIVEN--);
      $length = $query->getSingleScalarResult();
      if ($length <= 0) return false;
      if ($character->getTravelAtSea()) {$base_speed = $this->base_speed;}
      else {$men = $character->getSoldiers()->count() + ($character->getEntourage()->count()/2);
         $base_speed = $this->base_speed / exp(sqrt($men/200));}
      if ($character->isNPC()) {$base_speed *= 0.9;}
      if ($road = $query->getOneOrNullResult()) {
         $road_mod = 1.0 + $road->getQuality()/10;
         $biome_mod = $this->getLocalBiome($character)->getTravel();
         if ($biome_mod < 1.0) {$biome_mod = min(1.0, $biome_mod + $road->getQuality()/20);}
         $combined_mod = $road_mod * $biome_mod;
         $base_speed *= $combined_mod;}
      else {$base_speed *= $this->getLocalBiome($character)->getTravel();}
      $speed = $base_speed / $length;
      return true;}

Okay, that's a foreign language to a lot of people, what does it mean? Well, this set of code expects that it's going to be given a character when called, and without it, it won't do anything. After that it proceeds to figure out if that character has travel set. Before we go too indepth, the base travel speed of the game is set to 12km a day. Where it starts to get interesting is around here:

Code: [Select]
      if ($character->getTravelAtSea()) {$base_speed = $this->base_speed;}
      else {$men = $character->getSoldiers()->count() + ($character->getEntourage()->count()/2);
         $base_speed = $this->base_speed / exp(sqrt($men/200));}

This chunk of code determines base travel speed. On water, this is always the same. On land though, this is determined by your soldier and entourage count. Entourage affect travel half as much as soldiers do, as we can see. What follows that is a bit outside my specialty, but from what I can understand, it calculates the square root of however many men you have divided by 200, then raises that square root to the power of e. For 200 men, this will set $base_speed as 4414.55329 (or thereabouts). The next line:

Code: [Select]
      if ($character->isNPC()) {$base_speed *= 0.9;}
Simply makes NPCs just a touch slower, so it's not as impossible for First Ones to catch them. In our 200 man example, their base speed is 3973.09796. That's followed by a query against the database for nearby roads, returning either the best road found or a null result, which is processed by the following lines:

Code: [Select]
      if ($road = $query->getOneOrNullResult()) {
         $road_mod = 1.0 + $road->getQuality()/10;
         $biome_mod = $this->getLocalBiome($character)->getTravel();
         if ($biome_mod < 1.0) {$biome_mod = min(1.0, $biome_mod + $road->getQuality()/20);}
         $combined_mod = $road_mod * $biome_mod;
         $base_speed *= $combined_mod;}
      else {$base_speed *= $this->getLocalBiome($character)->getTravel();}

If we have a level 3 road, as the best road available, $road_mod will be set to 1.3. For $biome_mod, here is a quick chart of how each biome affects travel speeds:

Grass = 1
Thin Grass = 1
Scrublands = 1
Thin Scrublands = 0.95
Deserts = 0.9
Marsh = 0.65
Forest = 0.8
Dense Forest = 0.75
Mountains = 0.6
Snow-covered Mountains = 0.5
Water = 1.5
Ocean = 1.5

So, if we're in a forest, $biome_mod gets set to 0.8. Since we're on a level 3 road though, the next line is the game accounting for the road making things easier, and with numbers plugged in looks like this:

Code: [Select]
         if ($biome_mod < 1.0) {$biome_mod = select smaller of: (1.0) OR (0.8 + 3/20);}
That brings our $biome_mod to be set to 0.95. With that worked out we combine the road and biome mods to get a $combined_mod of 1.235, which is then multiplied against our base speed to get a value of 5451.973318 or so.

After that, we simple calculate the distance that you will have traveled as a percent of the whole:

Code: [Select]
      $speed = $base_speed / $length;
And then return that to our WorkerTravelCommand.

Code: [Select]
$progress = $char->getProgress() + ($char->getSpeed() * $this->speedmod);
This takes the current progress you have and adds the product of your speed multiplied by 0.15, so people aren't moving so fast the game is impossible to play.

So, TLDR, what does it mean?

Roads can cut your travel time by up to a third.

General Discussion / Help Wanted: Dedicated Translation Teams
« on: May 21, 2017, 08:43:44 PM »
So, with every little update I do the game gets a few more strings of text that need translated.

If there is anyone out there that speaks a second language that would be willing to help translate the game, I'd be most appreciative of your assistance. For those willing to help out on a continual basis, I have no problem upgrading you to a quasi-paid account (that is, on that won't require payments but will count as paid).

Mind you, once I add in complexes, we could be talking a hundred plus new strings to be translated. Just a warning there.

Developing Might & Fealty / Current Priorities
« on: May 21, 2017, 08:22:28 PM »
I can't speak for De-Legro or Weaver, but this is my current priority listing (and logic why). If either of them want to post their current priorities here as well, I guess we'll know what each other is working on.

Major Projects
  • Player Complexes - Players are big fans of leaving their mark on the world, and I think these are a great way for that to happen. These will be especially for those who want to "paint a picture" with their words, allowing them to describe in as much or as little detail they want the different areas of their settlement. Will include customizable rooms with associated distances between and varying types, restricted access based on permissions, editing of room descriptions by other people, leaving of notes, or even items.
  • Conversation Handler - It's stupid that you have to wait until the next full hour for messages to be populated on joining a realm.
  • Lendan Tower Integration - Or the removal thereof so we can get the game moved. Lendan Tower Functionality has been removed.
Minor Projects
  • Add functionality for Children/Spouses to use heraldry (if permitted).
  • Add functionality for bastards.
  • Settlement Descriptions
  • Abandoning Settlements, possibly with a SettlementManager service being created.
  • Any and all bugs I can find.
  • Seneschals
  • Change send notifications default setting to false.
Future Goals
  • Adding a Changelog, probably as a separate bundle.
  • Map rework.
  • Warrens.

General Discussion / Help Wanted: Map Editing Team
« on: May 21, 2017, 04:39:03 PM »
As some of you may be aware, it's on my list of things to change how settlements and estates are connected, and part of that requires that the map be overhauled with a significantly higher number of individual regions.

Before I go farther, I am NOT planning on expanding the map. I'm planning on shattering it. I want to take every region on the map and break it down to somewhere between a sixth and a tenth of it's current size (because some are larger than others).

The end goal is to allow a single settlement (town/city/fortress/whatever) to own multiple regions that may or may not have smaller settlements of their own. Of course, since we're looking at the map anyways, we could also go in and add a bunch of cliffs or even add in tributaries and creeks and deltas to rivers.

At minimum, I'll need people capable of installing PostgreSQL and QGIS on a machine of their own, following some instructions on how to setup the database and import the map tables, and how to actually edit the map information. QGIS editing itself, I have found to be very straightforward, but you'll need to experiement with it yourself. Given the size of the map, I'd like this to be a team project so people don't get burnt out, but I'm not in a huge hurry to get it done either.

If anyone is interested in helping to make the M&F map a more interesting thing, please let me know.

What does everything think about settlements having types that control what can be built there, and provide certain bonuses or penalties to different buildings or even enable or disable construction of certain buildings outright?

Developing Might & Fealty / Notes for list member management
« on: May 17, 2017, 03:43:39 PM »
If we want to fix the issue of the game selecting the wrong user we need a way to submit the character that the user selects as an ID. Unlike names, ID's for an entity will always be unique. Due to how that page works and being able to type names in and stuff, we either need a hidden field to exist that's populated when people click one of the drop down options or we need to let players just input IDs. ID input on the player side looks bad, but it's guaranteed, so maybe as some form of advanced mode? The previous would be ideal, if it's possible. On that same note, we might be able to add a third field that the user can't edit that depicts the ID selected, then submit that field rather than the text field. This would bypass the charactertransformer, which is where the name/id issue arises.

General Discussion / A Not So Quick Question
« on: May 17, 2017, 03:35:10 PM »
In line with trying to get an idea what players want to play, I'd like to ask you all to describe the Might & Fealty of the future, what new things the game will let you do and what parts of it have been expanded so far to be unimaginable. To you, what is the game you envision this becoming?

Please be detailed, I'm not only curious what your thoughts are, but I'm looking for ideas on all fronts. I've a list of my own, but everyone here is far more creative than I am alone.

So, the game already sets characters as slumbering after 21 days. What I'd like to do in order to make it more obvious where there is free land is to have these estates lose their lord after that time period. Maybe even sometime later have it lose it's realm membership as well. I'm tempted to not even have that give a message to anyone about it happening.

Now that I see its 21 days though, I'm thinking about cutting it to 14 then adding an abandonment of lordships an additional 2 weeks later. Regardless, your input is appreciated.

If we wanted to add the proposed seneschal to the conversations we'd just need to include them in an array on this line here:

newConversation is already setup to handle an array for the conversation participants as seen here: ; if anything, it actually expects an array.

As for making these welcome messages customizable, that's going to be editing and the line below it to reference a new table--storing these as part of the existing conversation system would require reworking the conversation handler to avoid specific topics. A new table would mean a new entity file and a new doctrine config file located here: Ideally, this is going to involve a many-to-one relationship from template ID to Character ID, a column for topic, and a column for message. I don't think anything else is actually needed here.

It should be feasible to use the existing wikilinks logic as a template for how to setup a special rule to allow users to encode into the message the new arrivals name. The wikilink code is here:

Creating Might & Fealty / What if: you could appoint a seneschal?
« on: May 14, 2017, 07:11:59 PM »
So I know permissions will allow you to do basically anything the lord can, but what if you could appoint a seneschal for estates allowing you to grant lord-level access to an estate? For most things this would be the same as just having all permissions, but they'd also be able to manage permissions and even make knight offers. Ideally, they'd also be included on the auomatically made new knight conversations, allowing a second person to respond to these when you're not around.

A crazy idea I just had: what if you could deny people from exiting your city?

Creating Might & Fealty / Top Level Position Types
« on: May 11, 2017, 11:50:30 AM »
Alright guys n gals, I've got something I need figured out, so I can implement it without having to change it a whole lot later.

I need to know what the categories of positions are. A few obvious ones are Ruler, Judge, and General, but I need to know what everyone thinks the less obvious ones are. I'd like to display these all on the realm page, and move the position list to a separate page since not everyone cares about who is the Fifth Marshal of the Southern Reaches. A mock-up of how this would look for the Grand Fate is below:

RulerPraesul Vanessa Calinus
GeneralImperator Jackson Drakon
JudgeChancellor John Hawksmoor

Adding this in will be, I believe, really simple, and it will also include the ability to rename the Ruler position, or even make other positions ruler. So, theoretically, the Grand Fate's ruler position could look like....

RulerPraesul Vanessa Calinus
Grand Councillor Aldric Fox
Grand Councillor Gaelor of the Hammer
Grand Councillor Oberyn fii'Hamad
Grand Councillor Wyn Peladon
Grand Councillor Yorda Kurima
Grand Councillor Vanessa Calinus
Grand Councillor Jacksen Drakon
Grand Councillor Artos Flambard

Hm, this could also include an electorate category for those realms like the Grand Fate that have a High Council that holds authority.

Anyways, your thoughts and ideas pelase!

Announcements / M&F Live Test Server Online
« on: May 07, 2017, 09:10:12 PM »
Hey everyone!

I'd like to let you all know that we now have a live test server for you all to poke around at. Things aren't exactly the same as they are on, but the goal is that we'll get them there soon--excluding new features that are already added.

If you'd like to go take a look, head on over to

Your M&F credentials should work to log into it, assuming you didn't change your password in the last 6-12 hours. To populate the test server and get it as close to the real M&F as possible (so we can see how it handles the load), it's loaded up with a very recent database backup.

Please post any bugs you encounter here.

Thank you!

Pages: [1] 2 3 ... 14