The End of Fief

I have some sad news today for Fief fans. I’ve decided to officially call an end to the project.

I’ve been pouring my spare time into this project for the better part of eight years. In that time, I’ve learned a great deal about programming and game design. Combined with the scientific programming from my day-job, I feel my skills as a developer are at a peak. Unfortunately, no amount of skill can stymie the bleeding ulcer that Fief had become.

I have had a great time working on the game. My passion for the project ebbed and flowed, but predominately was positive. This past year, however, has wrecked havoc with that passion. The codebase was reaching maturity to the point where I decided it was important to improve the visuals of the game aiming for eventual release on Steam Greenlight. So I started looking into artists to help with the visual components of the game. This decision however also added administrative duties to my already limited time for programming. Thus my programming work became quite a bit slower as I spent way more time coordinating with artists on the needs for the project. I had to train them on the image layouts and parameters required by the resources. The turn-over rate of artists was ridiculous! Each new artist would proclaim excitement for the project and throw out ideas. I wanted to give them a lot of say in the visual design, so I sincerely listened and supported the ideas I thought were tenable. However, when it came to actually working on project materials, only one amateur artist, Dino, continued to produce output throughout the time period. The others simply stopped working and/or responding to my inquiries. So I had to find new artists to train on the project, and the cycle repeated.  It repeated at least three times over the year.

The frustration that came with all this came to a crushing point. After the last batch of artists fizzled out, I took a break from the project. I got really busy with work from my day-job and let Fief gather some dust in the corner. I tried to return to the project numerous times, but I just don’t have the passion for it anymore. The eight-year flame may have finally gone out. The project was always too big for one person, and perhaps I thought with enough passion and devotion I would be able to put it together. Without that passion guiding my fingers, I certainly cannot.

Thus I will say good-bye to Fief. I don’t know if I’ll see it again, or if the project will be revived at some point in the future. I’m just grateful for all the people that kept encouraging me along the way. I really appreciate your support!

I cannot leave my hands idle, however. I have begun a new project using a lot of the best features from the Fief codebase. Really its a revivification of an old project, the same project I was working on before Fief took over my life years ago. It is a procedurally-generated dungeon-crawling RPG titled Endless Worlds. My passion for this new project is strong and I am determined not to make the same mistakes I did with Fief.  I intend to handle all the graphics and visuals myself and avoid dealing with flaky artists.  It may not look at good, but at least it will not be susceptible to the same pitfalls.  I’ll post more information in the future as the project planning comes together

Thanks again for all your support over the years and I hope you follow along as I embark on this new project.


I’ve been working at the behavior and general AI.  This work had a few dependencies that has pushed me in new directions for the time being.  Once this new tree is finished, I’ll return to working on the AI.  I’m being intentionally secretive about it for the moment because I’m not exactly sure how it will all play out yet.  But in the meantime, I created the Manor Management screen with a map viewing mode.


Here you can see the new Manor Management screen with the new map-viewing tab selected. This map will help you plan your manor's layout. The other tabs are a secret for now. 🙂

New Release: (Combat and lighting!)

It’s finally here, the next installment of the Fief saga.

This version has all the fancy new lighting features and realistic combat mechanics.  I know the focus of this next release was supposed to be improving the availability of food.  In that respect, I failed miserably.  However, I really like the new features that were incorporated here.  I’ve been slowly working on adding more behind-the-scenes world processing, and this will factor into the eventual goal of getting some good AI.  Once these problems are figured out, I’ll continue moving towards getting visitors to the manor (this includes huntable creatures).  This should improve the food situation for survival play while also allowing me to work towards the fief-management portion of gameplay.


As a teaser, here are some of the types of visitors I plan to add in the future:

Visitor What they offer/do
Animals Food!
Traveler Gossip
Sage Teach skills
Merchant Trade goods
Refugee Can join village
Pilgrim Sermons
Researcher Trade research (for unimplemented research system)
Desperate Farmer Trade son/daughter for marriage
Bandit Steals by force
Thief Steals by stealth
Invader Seeks to conquer
Noble Seeks comforts (won't come until you can adequately host them)
Knight Protects your land/people at request of your lord
Tax Collector Collects your lord's dues

Also, here’s a fully armored hero!


Here you can see the implemented armor and lighting sources. Bob is wearing the latest fashion in hide armor and sporting an oiled torch in his off hand. Also you can see the new condition bars on item renderings.

Combat, Take 2

Combat is almost finished.  I’ve been running a number of simulations with my archnemesis… Human.   I never gave him a decent name.  But everything seems to be working well and I hope to put out a new release shortly.  In the meantime, here’s a little teaser screenshot:


Here's the defense screen. You must choose a defensive position. Since I can only dodge (there is only bread and water in Bob's hands). My objective is to choose a position away from the attack. If I were Parrying or Blocking, I'd want to choose the position of the attack. The red squares indicate my level of intuition about the attack, dangerous zones are highlighted. Due to Bob's decent Dodge skills, I know the attack is coming from the Midline and Low and will avoid that area. Dodge right!


I have finished the lighting engine.  Now both constructions and objects can give off light.  Although items only do so when held in the hand of a person.  There a few minor annoyances when lights come close to each other, but otherwise it works well.


Here there is both the campfire and a torch giving off light.


Just a taste…

Here’s a little taste before I head out for a week.  I was playing around with a lighting engine and, thanks to libGDX, I have an engine ready to go.  Just a couple hours of work and I’ll have really dynamic lighting in the game.  So expect those nights to get a bit darker.  Also shown in this image is the multi-line tooltips to show the effect details for conditions.



A sneak peak of the lighting engine with ambient and dynamic lighting. Also shows off the new multi-line tooltip and Condition effects.



Now I have basic world generation for my fictional island realms.  Like I pointed out in the last post, these realms are about 500 x 500 miles in size (which coincidentally is about the size of France).  The perfect size for a number of kingdoms to fight over the resources the island has to offer.  I like to think of this aspect of Fief as a very complex game of Catan.

Anyway,  I now have kingdoms settling on the island and expanding.  I don’t do any crazy history calculations or evolve it over time like Dwarf Fortress does.  But I do retrograde things to account for the expansion of a kingdom.  Things like vegetation, rainfall, and elevation determine how readily a civilization will expand, limited by a distance factor from their first settlement.  This creates civilizations that very quickly expand if resources are readily available (such as a seaside, forest kingdom) or very slowly if resources are more limited (such as a dry steppe kingdom).  I also do some vegetation degradation to account for a kingdom harvesting resources for a few centuries in the region it occupies.  But keep in mind that things are set to be about 900 A.D. (in an equivalent Earth time period) as far as technology goes.  So towns and cities are quite rare.  Later when the technology and research arc is added in, perhaps you’ll be able to choose a later period and see more active cities.

Here’s an example of the standard map with civilizations displayed (by color), each dot is a fortress/town/city depending on the civilizations demographics.  Each colored square is claimed territory for that kingdom and may contain an agricultural manor, a village, or just wild territory.  In this map, the wet southern portion is dominated by larger kingdoms, while smaller kingdoms control the dry and rough territories to the north.  This distribution is quite like the British Isles.


Here you can see the settlements for each civilization (by color).

Here (with the settlements and domain territory removed) you can see the vegetation degradation caused by settlements.


Here you can see the vegetation degradation caused by the settlements.

And for the sake of completeness, here’s the elevation/rainfall map:


Combination elevation map (lighter is higher) and rainfall (redder is dry, bluer is wet).


Behold!  For I am the creator of worlds!   …well, at least world data.

I’ve been working on the world map generation for Fief with some amazing results.  The random map generator creates a mostly square island continent 256 x 256 “manors” in size.  With the assumption that a “manor” is about a 2 x 2 mile square.  That creates about 65536 game world tiles (although ocean and mountain ones won’t be very habitable).  Here are a few things included in the model:

Height map generation using midpoint-displacement (diamond-square) algorithms.
Temperature map that generally goes from warmer in the south to colder in the north.
Rainfall map that uses height-map topography to find land shadows for rainfall using a random wind direction.
Waterways flow map that generates rivers based on high rainfall areas and has them connect to create larger waterways (also carves the terrain with realistic erosion).
Vegetation map that uses the elevation and rainfall data to populate the land with vegetation.

Here is one example:

Here’s is a combination heightmap/rainfall map.  Color indicates the amount of rainfall (red=dry, blue=wet). And brightness of the pixel indicates the elevation with higher elevations being brighter (like typical height maps).


Combination elevation map (lighter is higher) and rainfall (redder is dry, bluer is wet).

Here is the resulting biome/vegetation map with rivers left out for now.


Vegetation map without rivers.

Here’s the color key for biomes.


Biome index.

Here’s the water flow map, brighter waterways have more water flowing through them and are larger.


Map of the water ways (lighter is larger waterway).

Here’s the biome/vegetation map with the waterways included, the darker the waterway the more flow it has.


Vegetation map with rivers.