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 ... 15
Conduct & Design Discussion / The 1.1 Update Topic
« on: September 30, 2017, 08:07:33 AM »
So, I need a place to keep my thoughts and work on this straight, and figured, why not do it publicly.

Here goes. Originally, this started at making palaces a thing. Then it expanded to making enterable features a thing. Then I thought, if I'm doing that, lets make customizable buildings (Places) a thing. And after that I realized that to make enterable features new types of settlements, which meant adding superior/inferior relations to settlements. Around that time I was thinking about how to build a new settlement, and figured, why not make it an inventory item. So I started working on adding inventories. In short, this update will be freaking huge.

Anyways, what I've got thus far:

Entities (New):
  • Place.php - Shell File
  • SettlementType.php - Shell File
Doctrine Changes:
  • BuildingType.orm.xml - Add built_in, maps to SettlementType allows field.
  • Character.orm.xml - Add updated_places, maps to Place updater field.
  • EventLog.orm.xml - Add place field, to allow places to have event logs.
  • FeatureType.orm.xml - Add upgrades_to one-to-many relation to SettlementType
  • Place.orm.xml - New, tracks name, type, description, updater, and updated time.
  • Realm.orm.xml - Add capitals, maps to Settlements.
  • Settlement.orm.xml - Add capital_of, maps to Realms. Add superior/inferiors, maps to self. Will allow subordinate settlements. Add type, maps to SettlementType, will control what buildings can be built.
  • SettlementType.orm.xml - New, tracks allowed types of settlements. New fields for name, many-to-one relation on which features they upgrade, enabled boolean for turning new ones on or off, subtype string to tie into later roving clan system. Many-to-many field for tracking what buildings can be built where, homed off BuildingType table.
DataFixture Changes:
  • LoadBuildingData.php - Added BuiltIn logic for new settlement types, added following buildings: Warehouse, Apothecary, Guild Square, Guild District, Empty Moat, Filled Moat, Quarry
  • LoadFeatureData.php - Added new feature types, add logic for adding new ones
  • LoadSettlementData.php - Add in new settlement types
  • Feature building form updates so it knows when something is available in inventory for placing. On hold for now.
  • Construction form updates so it knows that only certain things can be built in certain settlement types.
  • Logic for converting a building to an inventory item to a settlement/place -- Palaces will not be traditional buildings. This should include monuments, plazas, etc. On hold for now.
  • Logic for managing population between settlements in same region.
  • Logic for Regional Lords to manage appointment of sub-lords.
  • Controller for Places? Or should we just build this into the existing Settlement Controller?
  • Update BuildingTypes with settlement type info.
  • Determine settlement types.
  • Update Doctrine config for building types to add type field.
  • Update Building DataFixture to load in new types.
  • Add separate logic for troops garrisoned other than cities/villages
  • Add conditions for construction of dockyards and filled moat.
  • Add resource data for new buildings.
  • Add logic for Sublords? Perhaps with individual translation strings depending on what type of settlement it is.

Announcements / "To Your Positions" Update!
« on: September 29, 2017, 05:55:15 AM »
We are pleased to announce that the 1.0.3 Update, "To Your Positions", has gone live. Along with some major back-end changes, we're pleased to announce the following new features and fixes:
  • A new method for handling realm conversations has been implemented.
  • There are now 2 default realm conversations, one for Announcements, like elections, and one for general discussion.
  • Unfortunately, due to how these are handled, all realms will see 2 new conversations added to them, but...
  • The groundwork has been laid for allowing you to customize what messages go to what conversation (on the backend, at least).
  • Elections will only be announced in the announcements thread! No more election spam. Which is good, because...
  • Ruler positions that have an election type set will now use that election type when an election is needed and...
  • All election types are fully implemented.
  • All other positions will be inherited or have an election, as appropriate, when the positions is vacated due to death/slumber.
  • Positions will inherit first, if able, then go to an election, if able.
  • Positions have set election dates, expressed in Years and Weeks.
  • All positions are elected on the first day of that week, in an automated election.
  • Elections are now handled as part of the turn system, rather than when the election list is loaded.
  • This means that the vote count times are now 100% predictable.
  • Elections will now trigger again after 7 days, down from 15.
  • Previous position holders will lose their position only after the election completes, but before the winners are chosen.
  • Positions can be designated as having more than 1 minimum holder, which the game understands is the target quantity of holders.
  • New election type added: "by fortifications" that counts vounts based on the fortifications in a person's settlements.
  • Add election sub-types for "by land" and "by fortification" to only include land in the realm.
  • NOTE: Ruler positions will always cause an election if they aren't inherited! This election will use the set election type.
If you encounter any errors, please let us know ASAP so we can fix them! Thank you!

Conduct & Design Discussion / Activity & Activity Buildings
« on: September 10, 2017, 07:43:24 PM »
So, it occurred to me that I could load the buildings in now, before all the code that will be attached to them, for the activity-centric structures.

This will be things like Jousting Grounds, Solo Match Rings, Free for All ranges, etc., but I'm kind of on the fence about how I want to implement them.

They will have buildings associated, at least for the major ones--jousting grounds are drastically different setups than say, a fencing hall.

But I'd also like to know what activities you'd like to see added, so please, share your ideas here. Both on what the activity is, how it'd work, and what building(s) you'd need for it.

Oh, feel free to discuss what skills you think would affect everything as well. ;)

Conduct & Design Discussion / M&F Changelog
« on: August 21, 2017, 02:46:16 PM »
So, it seems the bugtracker wasn't doing it how I hoped it would, so I'm going to try and include a changelog here so people can see what was added when:

Version (20171016)
  • A problem in how the game handles forms and passing integers to/from them in relation to Realm Positions was worked around. A null value in one of these fields now submits a 1. Anytime the year for a position is set to 1, the RealmController will assume the player set a null value, and then update the position to set these values to null (something the form itself won't allow, irritatingly enough).
  • A bug that prevented incumbents from being removed from positions after the completion of a routine election was fixed.
Version (20171007)
  • Routine elections will no longer report the elected position as that of the ruler, unless it was in fact a ruler election.
  • Settlement population will no longer show up on the map.
Version (20171006)
  • The bureaucrats have been told they need to report to the priests (for relay to the Gods) more thoroughly on all the dead First Ones. (We added more debug info to turn changes)
  • They're also a little smarter about all of that stuff in general.
  • Longbowmen will no longer use javelins as ammunition.
  • Only thy lord shall knoweth thou total population.
  • A typo that created an incorrect event log has been fixed.
  • A typo that froze the game's turn processing logic has been, hopefully, corrected.
Version (20171005)
  • A bug we introduced while making it so we could ban cheaters was fixed, allowing you to gift credits to players once again.
  • Elections are smarter about when they should be called, and are smart enough to know when a position has already had an election called.
  • A counter involved in numbering of elections, that forgot how to count, was taught how to count.
  • Elections no longer care about finding realm members. This was a holdover from older code that used to handle all of this for Ruler changeover.
Version (20170929)
  • Ruler positions that have an election type set will now use that election type when an election is needed.
  • All election types are fully implemented.
  • All other positions will be inherited or have an election, as appropriate, when the positions is vacated due to death/slumber.
  • Positions will inherit first, if able, then go to an election.
  • Positions have set election dates, expressed in Years and Weeks.
  • All positions elected on the first day of that week, in an automated election.
  • Elections are now handled as part of the turn system, rather than when the election list is loaded.
  • Previous position holders will lose their position only after the election completes, but before the winners are chosen.
  • Positions can be designated as having more than 1 minimum holder, which the game understands is the target quantity of holders.
  • New election type added: "by fortifications" that counts vounts based on the fortifications in a person's settlements.
  • Add election sub-types for "by land" and "by fortification" to only include land in the realm.
Version (20170907)
  • A bug introduced by a Symfony update (2.7.7 -> 2.7.33) that prevented character grouping reassignment has been fixed.
Version (20170906)
  • A fix in the code that prevented dungeon and subscription processing has been applied.
Version (20170821)
  • Some code that generated errors in the economy handler has been deactivated. It didn't do anything.
  • Characters with partners/parents that don't have crests can once again select a crest.
  • A bug involving a typo with the "dungeonEventFilter" has been corrected.
  • Dungeon DataFixture tables were altered to detect whether an entry was new or already existing when loading them in, allowing new entries to be loaded without messing up existing ones.
  • As such, 25 new monsters and 1 new card are now, FINALLY, actually in the game.
  • Nearly all travel blocking actions now show up on the character select page.
Version (20170802)
  • Bandits are far less likely to spawn on icecaps.
  • Bandits will no longer spawn with plate armor, broadswords, or warhorses.
Version (20170709)
  • A tool was added to ban cheaters.
  • In order to assist testers, the game is smart enough to figure out which server it's running on and change the page title accordingly.
Version (20170618)
  • Non-functional BitPay functionality was removed.
Version (20170608)
  • Map loadlist no longer appears on realm pages, improving usability for smaller displays.
Version (20170608)
  • Heraldry can now be shared between partners and to their children. It is no longer account specific.
Version (20170603)
  • Several hundred lines of code for an alternative message system were removed, making the game's code repository fully functional without additional work.
Version (20170520)
  • Inactive subrealms can now be restored.
Version (20170424)
  • Slumbering first ones no longer grant experience
  • Realm info can be viewed without being logged in
  • Added ability to exit settlements
  • Realm elections once again trigger for absent rulers
  • Link to wiki added
  • Publications & Positions can be linked in-game
  • Economic security can no longer be viewed at a distance
  • Dungeon framework and language errors were fixed
  • Most tables are now sortable.
Might & Fealty version - This is where the community took over from.

Announcements / Server Move: Successful!
« on: August 20, 2017, 01:44:43 PM »
We are pleased to report that the server move went incredibly smoothly, and that all interaction with the game is now on the new community run server.

You should notice a number of fixes and additions detailed on the in-game announcements you'll find on the character list.

If you encounter any errors, please let us know, either here on the forums or on the bugtracker linked in-game.

Thank you!

General Discussion / Things to Do
« on: August 01, 2017, 01:23:03 PM »
So, I'll admit, I'm still with Tom on keeping M&F a game that you can actually play in a few minutes a day. But, I understand there are people who want more things to do in game.

So, lets hear some ideas.

General Discussion / Fixing Evasion
« on: August 01, 2017, 01:16:00 PM »
The evasion mechanics are broke, and I took some time to look at the code for how this works and think I have a decent understanding of it.

Since battle isn't my forte though (I'm more a builder/roleplayer), can someone run me through what actually happens and what the problem is.

After that, lets take a moment to figure out how to fix it. I'm pretty sure I've got an idea, but I need to make sure we're all on the same page on this.

General Discussion / The Value of Experienced Soldiers
« on: August 01, 2017, 01:10:14 PM »
So the topic was brought up, and discussed, and eventually derailed, but how do we make soldiers valuable in and of themselves?

Higher experience troops should have value more than just doing slightly more damage. I'm toying with the idea of making them SLIGHTLY more survivable, but part of me likes the fact that a recruit, a veteran, or a first one all take a serious wound when they take an arrow to the eye.

We could expand the existing capture system for first ones to include more experienced soldiers, maybe assign them ranks based on experience gained, and make it so that you can store prisoners in cities (something I was already debating). You could then use them as bargaining chips between realms.

Announcements / Server Move Scheduled: 19 August
« on: July 31, 2017, 05:46:03 AM »
Hello everyone!

Tom and I are planning to move the game to my server on 19 August.

Along with a number of new updates, this server will be exclusively hosting Might & Fealty, and will fully enable the community to continue developing the game as we see fit.

Conduct & Design Discussion / The Next Big Change: Buildings
« on: July 09, 2017, 04:45:26 AM »
So, you might be thinking, we already have buildings, and they work, so why would you change them? Well, they do work, but with a lot of aspects of Might & Fealty, they strike me more as a skeleton lacking meat than a fleshed out design.

There are, at present, 53 types of buildings, focusing primarily on military or things that support the military. And you can only build them once, and from there their use is abstracted: more people in the city, more tailors, more smiths, all from one "smith". Yes, Might & Fealty is a military simulation, but it's also simulates other things, like medieval politics and nobility. And I know that there are a good number of players that do or have previously played specifically for the building aspect of things.

Here's what I propose:
  • Expand the build list -- Simulate more of what's present in a given city, modeling everything from the number of Inns to the Mints t the Jousting Fields to the Wells at the end of the streets.
  • Repeatable builds -- Allow players to control how many of a given building exist in a city. This will also allow the game to better understand how the layout of a given city, and may even allow us to do such things as modeling a city based on the number of roads that  go through gates in it's walls, and how that plays into an attacking force besieging the city. Certain things, like walls, will naturally cost MUCH more each time you build them.
  • Optional Autobuild -- Give players the option to disable the autobuild aspect. Buildings will still rely on other buildings (or the resources they put out) but maybe you just want that personal touch?
So, that covers my goal, and some of the why, but what are my other reasons?
  • It increases the amount of abstract modeling we can do on what a city may or may not look like. If you have 3 gatehouses but 5 roads that go to your city, we can assume there's a perimeter road outside the walls.
  • It lets us build other changes off of this. When player complexes are added, you could associate parts of those with specific buildings, allowing you to add flair to your city. When unit groupings are something managed through a barracks or garrison, allowing repeatable builds makes it super easy to figure out how many groups you should be able to field.
  • It also means we could even go so far as allow you to name buildings or statues or give them in-game descriptions.
  • Lastly, when you can build things outside a settlement, it means we don't have to reinvent the wheel for what the building system allows, but just reinforce the wheel we've already fixed.
Now, I'd like to hear your feedback on this. Should every building be repeatable? Which ones shouldn't? Why or why not? Is this just a horrible idea? What buildings should be added to really flesh things out?

Conduct & Design Discussion / 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.

Conduct & Design Discussion / 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.

Pages: [1] 2 3 ... 15