Alpha 0.0.0.4 and testing

Alpha 0.0.0.4 was rolled out for testing which is fortunate as 0.0.0.3 was somewhat broken the details of which I'll cover shortely. The second bit of news since my last post is that the pool of testers has been expanded which should help progress the development of the map. I recently decided that I'm going to go back to university to pursue a masters degree. The course work doesn't start for a few months yet but I'm going to need some time to brush up on Python programming so I'd like to wrap this map up fairly soon, no later than the end of May, hopefully sooner. I've been spending more time on the PC-SG forums and one of the members informed me that PC-SG has a dedicated mod test team, so Nagcee is now in their capable hands, as well as Spud Boi and Norm who have been testing for me since alpha 0.0.0.1. I'm spending the majority of my time in GE or Notepad++ and very little in game so having a team to uncover issues is a huge help.Keep in mind the map is still in alpha, there's still a lot of work to be done but testing early helps uncover problems before they become big problems.

With Alpha 0.0.0.4 I finally got the AdditionalMapTypes script updated to v 1.0.0.8 as well as adding Spelt as an additional crop type. Millet, Oat, Rye and Triticale had already been incorporarted. I'd planned on incorporating Sorghum and possibly Mustard as well but ran into so much trouble have decided that neither will be in the initial release. So why are Sorghum and Mustard so much more difficult that the addional crop types I had already added to the game. The additionalMapTypes package includes everything you need (code, textures, fillplanes, and effects i3d's) to get Oats, Tye, Millet, Spelt and Triticale into a map. To added other crop types you need to bring in your own assets. Bringing in the textures and the code was no problem but modifying the fillplane and effects i3d's proved to be more of a challege. I was able to get Sorghum into Giants Editor, and it would show up in game, however I got some un wanted graphical glitches when I tried to harvest the Sorghum. Given my decision to wrap this map up I decided to move on.

So what were the issues that 'somewhat broke' alpha 0.0.0.3? When your actively working on a map the map folder has to be unzipped and its not uncommon for this folder to be quite large in size. The current working directory is over 3GB. When you want to pass the mod of to others, either for testing or as the final release, you want to reduce the file size as much as possible. The first step is to export the map out of GE, which strips away many of the unneeded files. The second step is to zip the file in an archieve, the end result is the 3GB file becomes a more managable 700MB archieve.

I mangaged to frak up both of these steps. As I mentioned before when you export out of GE, the editor strips out most of the files that are no longer needed. Unfortunately it does not neccessarily transfer all of the files you do need, in particular any i3d's that you have in your maps folder. The end result was that the particle emitters for the CompostMaster didn't carry over. The CompostMaster still worked but lacked some of its anaimations as well as producing a number of errors in the log. My second screw up meant that my testers could not load the mod without fist extracting the zip, deleting a file and rezipping the archive. I'm not sure how I managed to jack that up, but I took more care with zipping up 0.0.0.4 and the issue seems to have been resolved.

Both of these issues were brought to my attention by one of my testers and its unlikely that I would have caught them on my own. All in all the journey from 0.0.0.3 to 0.0.0.4 was a valuable learning experience but probably a necessary one to have learned before release.

Alpha 0.0.0.3 and beyond

Alpha 0.0.0.3 has been rolled out for testing. In addition to having added the Compsostmaster 2K17 and the Bio Diesel plant this release sees the enabling of the mission system on most of the fields. Truth be told I’m not a big fan of the mission system in FS17 seeing it as more of a necessary evil than an engaging game element. While I liked the concept of the mission system I feel that the implementation falls flat for the following reason. The missions are simply too one dimensional. Harvesting my own fields requires a coordinated effort of running the harvesters, offloading their harvest, and moving the crop to sale or silo. Harvesting missions however entail nothing more than running the harvester from one end of the field to the other, not very challenging.

So why include missions then? Early on the game is dominated by the need to generate capital to buy equipment, livestock and land and missions are a means to meeting that end. Fortunately they are not the only means. One of the alternatives that I’m considering is to stack the starting fields and equipment in favor of running grass heavy operations meaning that the player can generate early profits through silage rather than missions. The second reason I’m including missions is that the dynamic state of the surrounding fields does add to the impressiveness of the game. Even if I choose not to run any missions the fact that the NPC fields progress through the growth cycle as the game progresses does add to the immersion that you are in a dynamic environment.

Another issue with missions that work against this map is that they do not scale very well as field size increases. Knocking out a couple of 10 – 20 minute missions may get repetitive but most players would still consider the time investment to be reasonable, up that time to 60 to 90 minutes or more though and the time requirement becomes harder to justify. To mitigate this issue somewhat the smaller fields on the Nagce valley map are all NPC owned and available for missions. Consider that the average field size on GCV is 2.8ha while the average field size of Nagce Valleys 18ha or more than six times that of GCV and it’s easy to see how mission time will quickly scale up on NV.

With 0.0.0.3 out the door to be tested it’s time to look at what still needs to be done prior to beta testing. Here is my working list of what I’m still planning on incorporating

  • Update the AdditionalMapTypes script to 1.0.0.8
  • Add some additional crop types (sorghum and mustard are likely).
  • Add forest near the BGA
  • Incorporate an accurate PDA
  • Clear all errors and warnings from the log (the log is currently error free but I do have a few warnings to deal with).
  • Add foliage detail (bushes, grasses, etc.)
  • Add object details (barrels, crates, equipment, etc.)

Once those tasks are checked off I’ll consider the map feature complete and pass it off for beta testing.

Compost part 2

Owing to a business trip followed by a chest cold there has not been a great deal of progress on the map as of late. I’d hoped to have alpha 0.0.0.3 out by now but its looks like that won’t happen before the week is out.

Prior to flying out to Phoenix last week I did find some time to incorporate additional Fabrik script functionality into the map. The Fabrik script allows modders to create services that convert one or more inputs into a new output. One of the more well-known Fabrik script mods is the Compostmaster2K17from Farmer Andy. CM2K17 takes two inputs, diesel fuel and a fill material such as potatoes, sugar beets or chaff and converts them to a single output, in this case in the form of compost.

Nominally there are two reasons for making compost, to use as a fertilizer or to sell for profit. The flexibility of the Fabrik script allows for a third possibility and that is to use the compost as an input for the production of another product. Early on I toyed with the idea of setting up a diesel production facility but I wasn’t happy with any of the options that already exist for FS. Fortunately the Fabrik script makes it relatively easy to bolt this functionality on to an existing structure. The in game cow manure facility’s been used in several Fabrik script mods and using an in game asset seems like a logical choice. As the facility is already set up for liquid manure it made sense to base the diesel production on a solid input, the compost, and a liquid one, though I settled on digestate rather than liquid manure.

The end result is that the CM2K17 and the Bio-Diesel facility complement each other, with the output of each serving as one of the inputs for the other.

There was one aspect of setting up the Bio Diesel plant that did prove a bit challenging. Many Fabrik script mods make use of a screen to display the name and amount of each input and output. The Fabrik script mod that I pulled the screen from took one input and had three outputs, while the Bio Diesel plant would require two inputs with one output. Losing two of the outputs and adding another input was nothing more complicated than some simple .xml edits. How to rename the inputs and outputs though was not readily apparent and as I learned from the video linked to below that it would require editing the hud.dds file in Paint.net. In the end it was pretty simple edit but without the video I never would have guessed that I'd need to edit a .dds file.

Fabrik Script tutorial

A tale of trees and compost

I spent a good part of the weekend planting trees, implementing the fabrik script, and squashing a few bugs. Tedious and time consuming work made a bit more bearable with the help of some friends. One of the recurring themes that I’ve seen in the forums of late is that the mod community is in a state of decline, that the old guard has shunned us all, unwilling to pass on their experience outside of their old boy network. In my experience nothing could be further from the truth. While some of the veterans have moved on I’ve found that with some diligence and patience on my part knowledge and experience are still freely shared, and I’d like to highlight a few examples in this post.

Case in point was my attempt to get the CompostMaster2K17 mod incorporated into the map. The mod is by default a placeable and a fair amount of tinkering needs to take place to get it functioning correctly when adding it to the map through GE rather than as a placeable. Why bother if its extra work, why add the mod in thorough GE rather than in game as a placeable? The CompostMaster takes up quite a bit of room and I’ve never been a big fan of leaving large empty lots on a map for placeable. A second reason is that you can be much more precise with the mods placement in GE than you can in game and in some cases the game will not even allow you to place the mod where you think it should go

Depending on how the mod was put together you may be able to make changes to the layout of the building or object that you simply cannot do as a placeable. There is quite a bit of empty run in space to the input triggers on this mod. Installing the mod through GE meant that I was able to reduce the width along the X-axis without affecting the functionality of the mod.

compost_LI.jpg

In addition to tweaking the physical appearance of the mod, incorporating it though GE gives you greater flexibility in adjusting the modsfunctionality. One of the facets of the CompostMaster mod that I do not really care for as I’ve seen it incorporated into other maps is that it essentially turns compost into black gold, when in reality compost is often given away at little or no charge (this is not a knock against the mod author or anyone's implementation of the mod on thier map, just a personal preference). My intention is to reduce the profitability of making compost while still offering the player a worthwhile reason to produce it. So while selling compost, albeit at a much lower price, will still be an option on Nagce, its true value will be in using it as a fertilizer, or as the input to another Fabrik script mod that I’m going to keep under wraps for now.

This all brings me back to my earlier point about the modding community and sharing knowledge. I tried implementing the mod based solely on my own knowledge and by examining how someone else had done so on their map.But several hours later, while I had the mod in map and looking the way I wanted, it was not functional. Fortunately a quick Google search led to a YouTube video by ShyWizard that explained the process in good detail.

ShyWizard CompostMaster tutorial

This tutorial got me 9/10th’s of the way there, after following the tutorial I had a functional CompostMaster but I was getting a warning and some errors in my log file. The warning was cleared up by resolving a conflict with another script. One of the steps identified in the tutorial is to register compost as a new fill type. The conflict arose because I had already registered compost with the AdditionalMapTypes script and GE was grumbling about seeing the registration twice. Removing the second registration (the one from the CompostMaster script) cleared the warning and the mod continued to function as expected.

The errors, (related to an out of limit index) took me a bit longer to sort. I knew they were related to the Fabrik script but made the mistaken assumption that they were also related to the composter mod. This turned out not to be the case; when I incorporated the CompostMaster into the map I also placed the basic structure of the other Fabrik script building that I’m developing, the one that will feed off of the composter. This i3d contains input and output triggers that were not pointing at anything which is why I got the errors. Deleting the i3d from the map cleared the errors. Once I have a few things sorted out I’ll be able to reincorporate the i3d and point the triggers at the appropriate fill types.


For a map that does not have a forestry focus I seem to be placing a lot of trees, 2300 at last count. Its my own doing, I didn't plan the edges of my world very well and the trees are a more or less necessary buffer between the playable areas of the map and the distance objects (hills) that surround the map. An alternative would have been to use 2D tree boards but in my opinion these are only effective when viewed from a distance, as I built out to the edge of my map these were not an option.

2D tree boards

2D tree boards

Border made with tree objects

Border made with tree objects

So while a border of tree objects is more convincing it does entail quite a bit more work, particularly when you add enforced non-uniformity to the picture. One pitfall of the trees in Farming Simulator is that its all to easy to create a forest thats too uniform in apearance; neat rows of same sized trees do not feel natural. To be fair the forest trees that are included with FS17, the pine and the spruce, do come in different sizes, stage 1 through stage 5. While this helps to break up the uniformity somewhat it's still not enough variation to achieve the look I'm going for.

Stage 3, 4 and 5 spruce

Stage 3, 4 and 5 spruce

A fellow modder and blogger at F:reL:te Stud:os offered an inovative solution. You can read his blog post on the technique here but the basic idea is to build a forest of stage 3, 4 and 5 trees and then use the attributes panel to add variation to trees within each stage. By varying the stage size +/- 5% to 10% you increase the available tree sizes and add some much needed variation to the tree line. It's an effective technique but quite time consumming.

Three stage 4 spruce all at their default size

Three stage 4 spruce all at their default size

The same three stage 4 spruce, one at default size, one at 0.95x and one at 1.05x

The same three stage 4 spruce, one at default size, one at 0.95x and one at 1.05x

A mixture of stage 4 and 5 spruce using the above technique makes for a more realistic tree line.

A mixture of stage 4 and 5 spruce using the above technique makes for a more realistic tree line.

DLC goes big

I’m looking forward to the recently confirmed Big Bud DLC. As much as I like the Kuhn DLC most of the equipment is too small to play a significant role on the Nagce map with the merger and the sprayers being exceptions. We know that at least one of the 11 pieces of equipment included in the BB DLC will have a working width of 80 feet (24 m) and I’m pretty hopeful that the upcoming DLC will be well suited to my map. The fields on Nagce range from medium to large, quite a bit lager than you will find on most standard sized maps so the option of 24m seeder (if the seeder is in fact part of the 24m equipment Giants is refering too) would be a relevant one.

I did a quick look through the Bednar, Great Plains, Grégorie-Besson and Seed Hawk web sites and found an 80ft Air Seeder from Seed Hawk that I’d love to see in game. It's just a guess, or a desire, on my part at this point as Giants has not clarified what equipment from these OEM's will be in the DLC, but a large Air Seeder would make sense given that the DLC seems to be built around the Big Bud 747 and 450.

80ft (24m) Seed Hawk XL Air Drill and 980 Air Cart

80ft (24m) Seed Hawk XL Air Drill and 980 Air Cart

One of the reasons that I’m most excited about DLC that seems to be big field focused is that Nagce Valley is by design fairly easy to evolve from a medium/large field mix to one of vary large fields (at least by FS standards). The northern side of the map encompasses 8 fields in the 7 - 42ha range. By cutting down a few trees and plowing over a dirt road or two this can easily be developed into three fields in the 40 – 74ha range. Other combinations are possible but may entail a bit more work or restrict access to some parts of the map. The southern side of the map is focused more on animals and pasture land than it is on arable farming but it would still be possible to develop the existing fields into 66 – 89ha worth of cropland if so desired.

Current field layout

Current field layout

Possible expansion option

Possible expansion option

Where to start...

I've been thinking a bit about the starting equipment for Nagce Valley. The starting equipment in Goldcrest valley seemed appropriate, good enough for the fields you started off with but not so powerful that upgrading and adding equipment would be unwarranted as your farm grows in size. I haven't decided which fields the player will start with on Nagce Valley but its safe to say the player will be starting with significantly more acreage than you would on GCV.

The average field size on GCV is 2.85ha, on Nagce its 18ha. The combined size of GCV's three starting fields is 3.42ha, the smallest field on Nagce Valley is twice that size. My current thinking is that Nagce's smallest fields, 10ha or less, will be owned by the NPC's in order to keep the required work time on at least some of the missions reasonable. This means that the combined acreage of Nagce's starting fields could well be in the 20 - 30ha range.

On GCV once you've reached the medium sized equipment there's little need to go bigger. On Nagce the medium equipment is a good starting point given the size of the starting fields but your eventually going to want to move up to the larger equipment. I could start the player off with the same starting equipment as GCV and some would argue that this would add to the challenge but I feel that it might make the map unnecessarily grindy.

Another option that I'm considering that takes advantage of Nagce's grass fields is to forgo the arable crop equipment, cultivator, seeder, tipper, and harvester that you typically start off with and start the player set up for grass and silage operations. I've never started a game this way and I think it could be an interesting variation though some play testing will need to be done to see how well that idea holds up.

Daryton Farm

The idea for this map has been kicking around for a while now, ever since I first played chris_7710's Drayton Farm back in the early days of FS15. Drayton was pretty basic, 8 large fields, one farm a couple of sell points and not much else. Drayton lacked features to be sure, there were no animals and no BGA but while Drayton was simple in concept the level of detail Chris instilled into the map gave it in my view a feel of authenticity that Westbridge and Bjornholm lacked. Drayton was my go to map for a long time, and while it was closer to what I wanted than either of the default Giants maps it wasn’t quite what I wanted.

IMG_0709.JPG

Thus began my initial efforts with the Giants Editor. I spent a lot of time in GE tweaking Drayton to my liking, playing that iteration for a time and then tweaking some more. Eventually I pushed it to a point that broke my save irreparably but the things I learned then are serving me well in building Nagce Valley. Is Nagce Valley a spiritual succesor to Drayton, I'm not sure I'd go that far but without Chris's map its quite possible Nagce Valley would never have come to light.

Alpha 0.0.0.1

I’ve reached a milestone of sorts; the Nagce Valley is in alpha test. There is still quite a bit of work to be done before release but the map is playable for the most part, but still in need of detail work, a lot of detail work.

The focus of this first round of testing is to identify any issues with the fields, the animals, or the functional areas such as sell points and silage bunkers. With one exception, which I’ll talk about in a moment the testing is going very well, and the issues are all relatively easy fixes. While any issues we find need to be fixed in GE they are often easier to spot in game. Having a few extra hands to help me spot any problems is a considerable help so big thanks to Norm and Spud for committing their time to my project.

The test process for the fields is pretty strait forward; pick a field, set up an AI worker plant, hit H and sit back and watch what happens. I’ve already mentioned I do not really use the AI all that much in game play so why use them in testing? Of the three ways to work a field, player hands on, Course Play or AI helper, the AI is undoubtedly the weakest link. If the AI can get the job done then there shouldn’t be many issues for the player or Course Play. The second reason is that some of the issues I’m looking for are easier to spot when you can sit back and watch someone else doing the work rather than doing it yourself.

The numerous though relatively easy to fix issues that we’ve found so far are gaps in the terrain detail, uneven field edges, and uneven terrain. The gaps in terrain detail appear as strips of grass within the field and in addition to looking out of place would essentially be implantable regions of the field. Though the uneven field edges do not pose any real threat to game play, and some degree of unevenness is desirable, too much unevenness just looks sloppy.

The uneven terrain is the one to watch for, often not as easy to spot as the other two, but probably the more jarring experience in game. Imagine this, your planting rye on field 5, you hit a gully, bouncing your MF8700 a bit but no matter the Massey’s got a nice Air Ride seat, not much of a bother at all. That is until you look back and see that the same gully also jarred the Horsch Pronto 9 DC you were pulling so much that there is now a bald spot on your field that didn’t get planted.

All in all these are all easy though tedious issues to find and fix. The most challenging issue that we’ve uncovered so far is a dead zone in the middle of field 7 where the AI refuses to work. The AI worker starts off on field 7 without any issues, runs to the end of the field, turns around and comes back down the field on a new row as expected. About 4 or 5 rows in though the AI stops mid field, turns around and heads back to the edge it just came from rather than completing the row. This behavior carries on for two or three rows and then the AI goes back to running complete rows. The end result is a large gap in the field that did not get worked. We have not observed this behavior on any other field but it is consistently repeatable on field 7. It happens every time, in the same spot, regardless of the equipment being used or the task that was being carried out. Run the same mission in CP or hand on and there is no problem, no unworked area all goes as expected.

As CP and player hands on are unaffected it’s not an issue with gullies or gaps in terrain detail like I spoke about earlier. Initially I thought that it may be an issue with the field dimension markers but I’ve redone those several times and the problem still exists. The field is a perfect rectangle so I don’t see it being an issue with the field shape. The most promising lead came from a tip on the FSUK forum. Apparently the Gold Crest map has several worker collisions on it presumably meant to keep the AI workers out of certain areas, and that these collisions may still be present on starter maps built off of the GCV map.

Unfortunately that doesn’t seem to be the case with the NLD starter map that I used for NV, or at least it’s not readily apparent that it is so. According to the FSUK post the worker collisions should be visible in the scenegraph which is not the case on my map. It’s possible they are still lurking about somewhere but I’m not really sure where I’d start looking. I could play around with the original NLD starter map but I think I’m better served sidelining this issue and continuing on with the development of Nagce Valley.

Stuff got done

A bit of reorganization of the fields, there are now 12 arable fields for crops and three grass fields for silage and hay. The grass fields, including the fenced in pasture are now all proper fields meaning thier yeilds can be increased though fertilization.

Some initial work was done on the BGA facility, the bunkers seem to be working correctly as is the tip point for the silage. One of the bunkers gave me a spot of trouble, where in I could only dump grass/chaff in certain spots in the bunker. Initially I though is was an issue with the ground tip collision map but the actual culprit turned out simply be a miss positioned tip trigger. Milk fill and sell points have been added and tested so the map is Stop Milk mod ready.

I did have one issue that threw me for a few days. I could not get the AI to plant with the Lemken Solitar 12 on any of my fields, and no amount of playing around with the map set up could fix it. Ultimately I decided to shelve the issue and move on coming back to it at a latter time. Turns out this was a bug in FS and not my map and has since been sorted out in the latest patch.

Most of the last couple of days has been devoted to tweaking, and then fixing landscape issue. As I mentioned in the Field Work post the key to getting smooth transitions between hill and valley is to use a very large radius when smoothing. The unfortunate side effect is that you inevitably through something out of whack on the periphery of the radius which leads to a lot of detail work. Its a long and tedious process but hard to avoid if you want a realistic looking landscape.

Gully, or tractor bouncer as they're known around these parts.

Gully, or tractor bouncer as they're known around these parts.

 

 

Inspiration

A reader recently asked if Nagce Valley was based on a real world place or if it is simply my own creation. Early on I’d considered using DEM data to recreate a real world location but decided that would likely require a great deal more effort than a free style map and might be a bit much to take on in my first go at map making. A second reason is that I believe that most real world maps are made by someone who has a bond with the area they are modeling. Perhaps it was their grandfather’s farm or a place where they spent their summers as a child, whatever the reason the map author wants to see that particular farm recreated in a virtual world. I just don’t have that attachment to a particular place so made-up seemed the path to go.

I have however been turning to Google Earth images of the American Mid-West for inspiration in achieving a somewhat realistic look and feel for NV. The images are also a good way to find the little touches that seperate one map from the rest.

Case in point, what caught my eye in the first image is the circular layout of the grain bins. Forming a ring around the auger probably simplifies the task of loading which ever bin is needed and I thought it would be a neat addition that I haven’t seen on a FS map before.

Farm near Grafton ND

Farm near Grafton ND

The Twister grain bins and Farm King augers speak to the Mid-West America look I'm going for. The taller auger in the background is tied to the input trigger for the farm silo system, while the smaller auger loading the tipper is tied to the output trigger. Both augers are static models and cannot be moved between bins but as all of the bins feed one common farm silo system that wont be an issue. 

The Twister grain bins and Farm King augers speak to the Mid-West America look I'm going for. The taller auger in the background is tied to the input trigger for the farm silo system, while the smaller auger loading the tipper is tied to the output trigger. Both augers are static models and cannot be moved between bins but as all of the bins feed one common farm silo system that wont be an issue. 

Another interesting feature I noticed while looking over images of North and South Dakota was the use of tree lines to separate the farm yard from the surrounding fields.

I'm guessing the main purpose of the rows of trees between farm yard and field, and also seen between fields is to help contain soil erosion.

I'm guessing the main purpose of the rows of trees between farm yard and field, and also seen between fields is to help contain soil erosion.

My tree laying technique still needs a bit of work

My tree laying technique still needs a bit of work

Some concessions do need to be made in the name of gameplay as can be seen in the next image. Notice that there is very little headland between fields. While maximizing field space over headland makes sense when your working to get the most from your land its not the best way to go when you need to make allowances for your AI helpers. I'm still debating whether I'll use wide grass headlands to accommodate the AI or go for a more realistic gap that may require the player to do the headlands manually

Other than roads and creek beds there's very little in the way of grass head lands separating these fields.

Other than roads and creek beds there's very little in the way of grass head lands separating these fields.

Its easy to see that the AI did not have enough room to turn around without crossing over the adjacent field.

Its easy to see that the AI did not have enough room to turn around without crossing over the adjacent field.

The grass headlands between these two fields are wide enough to accomidate the AI but not very realistic looking.

The grass headlands between these two fields are wide enough to accomidate the AI but not very realistic looking.

Another source of inspiration is of course other maps. I'll frequently check out new maps to see if there are features that I'd like to add to my map (In fact I usually open a new map in GE long before I open it in game). The trick is to take influence from the other map without outright duplicating the other authors work. The top image is from Big Hoss's Big Valley V2 map. I really liked the idea of placing the Lely Astronauts near the milk tanks and tying them together with a pipe system. The second images shows my take on the idea as it currently stands in Nagce Valley.

Big Valley V2 (Big Hoss)

Big Valley V2 (Big Hoss)

The dairy yard at Nagce Valley

The dairy yard at Nagce Valley

Field work

I’ve made significant progress in laying down the fields for the map. As it currently stands there will be 13 to 14 fields ranging in size from 7ha to just over 42ha. This does not include 12ha of fenced in pasture that will serve as the primary source of grass and hay. That will leave 50ha or so of open grass land that will likely remain just that, open grass land, though I may end up using part of it to create a wood land. Originally I did not plan on devoting any of the map to forestry but if I do go ahead with the woodland I have a bit of land north of the BGA where I could place a small lumber mill. No promises yet, we will have to see how it plays out.

There is still quite a lot of work to do before all of the fields will be playable. Number one is to smooth the terrain so that the hills have a more or less consistent slope. Until last night the hills had more of a stepped look that didn’t feel particular natural. Getting the look that I wanted was proving to be a challenge. Conceptually I knew I needed to use the terrain smoothing tool but I just couldn’t seem to hit on a technique for doing so that got me the results I was looking for. Flatlander84 on FSUK suggested a few things that really turned things around for me. BlobbyFarmer and akuenzi added some addition insight to the thread including links to other threads on neat ways to do things with the terraforming tools. I really appreciate all the help I received and I’ll post a link to the thread for those who are interested in reading up on terrain editing.

Once that’s done I need to drill down on each field and look and correct any imperfections. These include gaps in the terrain detail and bumps or gullies big enough to a tractor or combine. These imperfections are not always easy to spot in GE and I found it more effective to jump in game and ride along as the AI works the field. A second advantage of doing it this way is that it brings to light any potential difficulties the AI may have with the field.  For example I’m probably going to add some additional headland between each of the fields as the AI doesn’t have quite enough room to turn around without encroaching on the opposite field. I’ll be honest, I rarely use the AI for field work so I’m still learning what to expect and how to prevent issues that tend to confuse the AI. I have found the AI is quite useful for the ‘hands-off’ testing I described a moment ago.

Gap in terrain detail

Gap in terrain detail

Not quite enough room to turn without running across the adjacent field

Not quite enough room to turn without running across the adjacent field

The field markers, buy points and field dimension points have for the most part all been laid down, though from what I’ve been led to believe I may need to play with the buy points a bit to ensure equipment lines up correctly for missions. Once all of that’s done I’ll start thinking about which fields will be player owned and which will be NPC owned and available for missions.

The map doesn’t have a lot of smaller fields, those under 10ha, and my thinking is that these will go to the NPC players. The reasoning behind this decision is to ensure that there are at least a few fields on which you can run shorter duration missions. Though to be honest the 7ha to 10ha range isn’t that small so mission times will be quite a bit longer on average than they are on Gold Crest Valley.

This does mean that the player’s starting fields will be significantly bigger than those of GCV. To offset this somewhat I’m planning on giving the player more capable equipment than you started with on GCV, though I’m still a long ways off from committing to which equipment the player will start off with. The other option would be to break some of the fields up into smaller fields but I dislike that option for several reasons. First the original plan was always to have fewer but larger fields and I don’t see any compelling reason to break with my original concept. The second reason is that the map will be best worked by the larger equipment that’s available. By starting the player off with medium sized equipment and allowing them to work up to the larger equipment I feel that I can still provide a challenge without the grind that would be likely from starting off with the GCV starting equipment.

fields.png

A quick update at halftime. Put quite a bit of time in on the map this weekend, not all of it productive, though I'm happy where I'm leaving off tonight. I set up a seed and fertilizer station on the main farm. The original idea was to just set something up quick and dirty to be used while testing but I kind of got carried away and went for something that might make the end cut. 

In the not so great column I found that a good deal of the fencing around the pasture didn't quite reach the ground. There's 2360 meters of fencing around the pasture and putting it all right took a bit of time. There's only about a meter and a half of elevation difference on the pasture but it's enough to mean that section needed to be tweaked individually to ensure it was firmly in the ground while still matching up with its neighbor on either side. I took the opportunity to expand the pasture somewhat and it now produces 500K liters of silage.

At present the pasture is simply a cuttable grass  foliage layer on top of a grass terrain detail rather than on a field. Converting to a field would allow for fertilizing and therefore greater yield. I did convert it over but wasn't happy with the way it looked so I converted it back. I'll give it another try at some point.

I layed down 3 fields and associated field dimension markers. The field size and field area render scripts that were added for FS17 are a big help though I did have one issue that threw me for a while. For some reason I couldn't get hired workers to do any work. Thinking I did something wrong I re-did all of the field definitions, several times, all to no avail. Ultimately it dawned on me that it might be a mod conflict so I removed all of the mods I had going. Sure enough that was it. I've added a few mods back in but have not figured out which one was causing the conflict. Fortunately it's not DriveControl, GPS or the Money Mod. I hate playing without DC or GPS and the Money Mod is very convenient for adding in equipment while testing. 

The map is really starting to shape up. Cows, pigs, and sheep are implemented though I still need to do some more testing. The main farm is laid down but still needs a lot of detail work. The pasture is pretty much good to go and three fields, 7ha, 10.5ha, and 17ha are laid down as well, though as you can see from the last picture I'm still working out ground smoothing in a couple of spots. I've also got a few animatedObjects errors to squash, but all in all a good showing for the weekend.

Solid fert, seeds, and liquid fert readily available on the farm.

Solid fert, seeds, and liquid fert readily available on the farm.

Measure once, cut twice, err I mean...

Measure once, cut twice, err I mean...

Finally getting some where

Finally getting some where

Well, some of us are.

Well, some of us are.

BulletBill saves the day!

Map mods are rarely, if ever, solo projects. All of the maps assets, the tree's, barn's, roads, fences, silos, etc. come from other sources. There are a few map makers that create some of their own assets but by and large we are reliant on the work of others. There are a number of sources for finding assets for a map. Giants is one and assets are often pulled from one or more of the Giants maps. A second source is to pull assets from another map mod. A third source is when the asset creator uploads the asset to a mod portal. Often they do so as a placeable mod so that anyone can add the asset to their map without needing the gIants editor to do so..

One of the placeables that's making its way into a lot of maps is Dorsets's Animated Seven Bar Galvanized Gates. Dorset did a bang up job with these gates which is one of the reasons they are so popular, but the fact that he uploaded them as placeables means a bit of extra work needs to be done when importing them into a map through GE. I won't go into details here but I will post a link at the bottom of the post to a thread on FSUK that describes how to do so. 

The other day when I was discussing my problems with the additionalMapTypes script I mentioned there were no errors in my log file. Well that wasn't quite true, there were errors, just not ones I felt were related to the crop problem. There were however error relating to the way I had implemented Dorset's gates into my map. The gates all functioned correctly but when I reviewed the log I found the following error 

Error: Adding onCreate loaded object with duplicate saveId AnimatedObject_visable_gate

I knew why I was getting the error but was surprised to see it as I thought I'd taken the proper precautions to avoid it. I reviewed my .xml and everything looked right to me. I even tried deleting my code and re entering it but the errors persisted. The issue can come about when adding more than one gate to the map. What needs to be done to prevent the error is that each gates needs a unique name. So instead of three gates all named  sevenbar_gate_RH you need to name them something like sevenbar_gate_RH_01, sevenbar_gate_RH02, and sevenbar_gate_RH03. Which is what I had done and why I couldn't understand why I was getting the error.

As much as I like to solve my own problems there comes a time when you need to turn to those who really know what they're doing for help. So I posted my problem on the FSUK modding help forum and as luck would have it BulletBill83 (creator of Coldborough Park Farm) spotted my error and in short order provided me with a work around. Here's what it was, I had in fact given each gate a unique name, just not in all of the places I needed to. 

Massive thanks to BulletBill83 for helping out the new guy!

This brings me to my final point, the importance of checking the error log on a regular basis. Those errors had likely been there for a couple of weeks. The gates were working and I hadn't bothered to check the log in quite a while. I got lucky here as it was a relatively easy fix that didn't break anything else. I wouldn't be so lucky if fixing the error meant losing a week's worth of work just because I didn't check the error log consistently. 

 

Link to thread on implementing Dorsets gates with Giant Editor

Link to thread where Bill saves the day

 

Fix 1

Success! I've got the 1.0.0.6 version of AdditionalMapTypes working. The seeder now seeds and the harvester harvests. The issue was in fact with the modDesc registrations for the new crop types. Changing fruitTypeGroups="grainHeader" to fruitTypeGroups="sowingmachine grainHeader directCutter" solved the problem.

Planting oats :)

Planting oats :)

I'm a bit worn out from work so I dont think I'll put much effort into the 1.0.0.8 fix tonight.

Where's the hammer...

In the words of Top Gear / The Grand Tour’s Jeremy Clarkson “I’ll fix it, where’s the hammer”. Building a map from the ground up is at times a proposition of two steps forward, one step back. As long as that step back is not a step off a cliff then as they say “it’s all good”. With the step back having already been taken in the last post I thought this would be a good opportunity to talks about how I intend to tackle this problem.

So to recap, with my older save, which used v 1.0.0.6 of the additionalMapTypes script, the new crops were harvestable, showed up in the PDA, but would not show as options for the seeders. With the newer save, which uses v 1.0.0.8 of the script the new crop types could be selected in the seeder but any attempt to harvest them would essentially break the harvester. Normally I’d begin the bug hunt with the games log file but a review of the log didn’t reveal any errors so another approach would be needed.

A great place to start would be the support thread for the AdditionalMapTypes.lua, unfortunately marhu.net is predominantly a German speaking site, so I’ll table that option for now. The mod authors did include an English version of the instructions for implementing the script but they’re pretty basic, though there are some details that will be pertinent. More importantly they included an example of the changes to the modDesc.xml that need to be made to get the script to function correctly. The final piece of the puzzle from the mod authors is the AdditionalMapTypes.lua itself.

One sound approach would be to look at how someone else did it. By comparing my implementation to a working implementation it may be easier to see where I made my mistake. As a benchmark I’ll be looking at Stevie’s Pine Cove v1.0.0.2 one of the few maps that I know of to implement the AdditionalMapTypes.lua. Stevie noted that Pine Cove is using a default implantation of v 1.0.0.7 of the script. I don’t believe that the format used for the modDesc registrations have changed since v 1.0.0.5 so Stevie’s implementation should be a good reference.

There is one key difference between Stevie’s implantation and mine that may or may not be relevant. Stevie added two additional crops, oats and rye, while I added four, oats, rye, millet, and triticale. Adding more than two crop types means changing some additional parameters in the map.i3d so while comparing my implementation to Stevie’s might yield some clues simply copying and pasting his implantation into mine would only break my build further.

In my post ‘From the Ground Up’ I summarized the steps necessary to add additional crop types to an FS17 map but will do so again here to keep to give the reader some perspective on what’s going on.

  1. Add the required texture, particle effect and cutter effect files to your map folder.

  2. Edit the map.i3d file. It’s here that the additional crop types are added and linked to the texture and effects files that were added in the last step. Additional changes need to be made if more than two new crop types are added.

  3. Create a new fruit_density.gdm. This step is only needed if more than 2 additional crops are being implemented.  

  4. Add the AddtionalMapTypes.lua to the map folder. This is the script that contains the code necessary to allow the new crops to work in game.

  5. Modify the map.xml to let the game know where to look for the AddtionalMapTypes.lua and the supporting texture and effects files.

  6. Edit the modDesc.xml to register the new crop types in game.

To recap I have two problems to solve, one why didn’t the seeder work in the old save, and two what’s gone wrong with the harvester in the new save. Pragmatically there’s no need to solve the first problem as it uses an older version of the script but I’d like to do so for a couple of reasons. First, I’d just like to know what went wrong and second I think it will be the easier problem to solve. Another advantage to fixing the first problem is that I can always fall back to the 1.0.0.6 version of the script while I continue to figure out what’s causing me issues in 1.0.0.8.

 Given that there were no errors in the log and that I could add new crops by painting them in in the Giant Editor I don’t think the issue lies with the edits made to the map.i3d or the associated texture and effects files. Nor do I think that the issue is with the script itself, its far more likely that there is a mistake in one or more of the edits I made to the modDescription, which are essentially the parameters that pass optional settings to the script. Options like does the seeder know about this crop. The option that I’ll need to check is to ensure that the fruitTypeGroup variable includes the sowingmachine parameter. If not, then adding the parameter should fix the problem. If it is there than the issue is a bit more complex than I’m anticipating.

 I’m still formulating a strategy for the harvester problem but something Stevie put in his Pine Crest notes may provide a potential clue; “I used the defaults on the 1007 map types install but found that if the oats won’t harvest straight away, try a short time after until it does. I’m pretty certain this is a 1007 glitch.”

 I’ll post again after I’ve played around with all of this.

 

Yesterday's build started off well enough...

Yesterday's build started off well enough, I built a fenced in pasture around the cow and sheep yards, replaced some assets on the main farm, and did some play testing. This pasture, which is outlined by the dist road in the image below, will be the primary source of grass and hay for the sheep and cows. The blue areas highlight the cow and sheep yards. These blue areas are know as navmeshes and define the region where the animal can wander around. The theme that I'm going for is that the sheep and cows will have their own yards but that they will have access to a larger shared pasture. In game the animals will never actually leave the blue areas but the theme gives me a reason for fencing in the larger pasture.

So why do I want the pasture fenced in when I've already mentioned earlier that I'm going to minimize the use of fences as they limit your options for expanding fields. The plan is that the arable fields will still be (mostly) fence free and open to expansion, but I didn't want to eliminate fenced in fields altogether as I feel they can provide the player with a nice challenge as well as add a bit of variety to the feel of the map. The fenced in pasture seemed like a nice compromise.

After completing the pasture I decided some testing (ie playtime) was in order, as you can see in the images below.  

Next on the agenda was to do some field work, and this is where the day's work took a turn for the worse. Back in GE I added a few fields and defined one of them. I jumped back into the game and confirmed that I could plant and harvest wheat and the the hired worker wouldn't have any issues on the defined field. All of which went pretty well, until I noticed that when using the seeder I couldn't select oats, rye, millet or triticale, which I had added to the map a few weeks ago. 

I've mentioned earlier the need to test often and here is a prime example of where not doing so came back to haunt me. When I added these crops I did some testing, found some issues with harvesting, fixed those, and moved on. I never checked to see that I could actually plant the new crops in game. 

I was planing on upgrading the addtionalMapTypes.lua (which is needed for the additional crop types) from 1.0.0.6 to 1.0.0.8 anyway so now seemed like a good time to upgrade and fix the seeder issue. The good news is the upgrade fixed my seeder issue, the bad news is it introduced a new, and very peculiar issue with the harvester, as can been seen in the video below. I've got a few ideas about how to fix this that I'll cover in my next post.

Unfortunately the video, captured using nVidea Shadowplay is a bit dark. If anyone knows a fix for this please let me know. I may also look into using an alternative such as OBS.

 

thro’ the field the road runs by…

On either side the river lie

Long fields of barley and rye,

That clothe the wold and meet the sky;

And thro’ the field the road runs by…

  • Tennyson

 

It would be tough to argue the importance of fields and roads on a FS17 map, there’s not much point in playing without the fields and roads are come in handy when moving between field and silo. With that in mind I’d like to share a few thoughts on these key elements, bear in mind though, these are the thoughts and experiences of someone on their first map build so it’s very likely there are better ways of getting things done.

For those unfamiliar with the Giants editor paved roads are typically objects selected from the scenegraph and placed on the map, while dirt roads are usually pained on the map using the Terrain Detail Texture Paint mode. The paved road objects are commonly broken into sections and a road is built by linking these sections together. These road sections can be exported from an existing map or downloaded as an asset on sites such as FSUK or modhoster. Typically the available road sections will vary in length, be either strait or curved, and either flat, increase or decrease in elevation.

Unfortunately I haven’t yet seen a road kit where these sections ‘snap’ together* meaning that getting them to align well enough to give the impression of one continuous road can be a time consuming and painstaking undertaking. Gaps between sections are easily seen in game and overlapping sections too much causes a flickering effect, both of which can be immersion killers. The challenge in getting it to look right is even more difficult when the road will change elevation rather than to a road which is perfectly flat.

Gap between road sections

Gap between road sections

There are a few more factors that should be considered when choosing road objects for a map as they do play into whether or not the road feels right for the map. These factors are the width of the lane, the texture of the road surface and the markings on the road. There are a number of road kit options that I looked at but none of them felt right for this map. They either felt too narrow in width for a road in North America or the texture made them look freshly paved which doesn’t necessarily typify a rural road. While the blocks that run along the edge of the roads in Gold Crest Valley are not something you’d usually see on an American road, the GCV roads had a width and texture that felt like it would work for this map, and in the end that what I went with.

The GCV roads had a few more things going for them and a few going against them. The road sections in GCV are for the most part fairly long, much longer than the sections in most road kits. The advantage of this is that you need to lay down fewer sections which mean fewer edges to line up (remember earlier on I mentioned what a time consuming process this can be). The disadvantage is the longer sections can be more difficult to place as their axis of rotation is further from the ends of the road section, making individual sections harder to work with. While the individual road sections in the kits are strait, turn left, or turn right, in GCV the strait and curved parts are combined into a single section. The GCV sections also incorporate elevation changes, and most of these elevation changes while suited to a mountainous map like Gold Crest were a bit too severe for a hilly map like Nagce Valley. Fortunately there were two or three sections from GCV that suited my purpose though this forced my hand on another design consideration.

A single section of road from GCV compared to several sections from a road kit

A single section of road from GCV compared to several sections from a road kit

This should give you a feel for the curvature and elevation change in one of the GCV sections

This should give you a feel for the curvature and elevation change in one of the GCV sections

One of the challenges facing the map designer is what to do with the road where it runs off the edge of the map. Some maps get around this by using a ring road that loops back on itself but never leaves the map. This can lead to the map having a toy train set feel to it though a few skilled map makers have pulled it off to good effect. The other option, running the road off the map, leaves the map maker with two problems, how to physically stop the player from driving off the map, and how to visually convey that the road comes to an end in a way that doesn’t put an end to the player’s sense of immersion.

The physical stop can easily be accomplished through the use of an invisible barrier; it will certainly stop you, but hitting an unseen wall doesn't do much for game play. The visual cues require some suspension of disbelief (we are living in a 2km x 2km world afterall) but are generally effective at convincing the player to turn around and go the other way. Here are two great examples. 

Road Closed barriers used in Coldborough Park Farm. The of the bend in the road adds to the illusion that the road goes on.

Road Closed barriers used in Coldborough Park Farm. The of the bend in the road adds to the illusion that the road goes on.

On the Lawfolds map the author uses tunnels to mask the end of the road. Shading the surrounding area with trees helps blend the tunnel into the surroundings.

On the Lawfolds map the author uses tunnels to mask the end of the road. Shading the surrounding area with trees helps blend the tunnel into the surroundings.

Talking about roads ran on a bit longer that I had intended, I'll cover fields somewhere down the road.

* there is an alternative in which roads are constructed by laying down a spline, but I haven’t really looked into that option. Perhaps the next time around. 

The great sheep race

In my last post I mentioned that my increscent need to tweak things in the sheep and pig yards led to repeated stabs at their respective navmeshes. One of the tweaks that I was trying to work in on the sheep yard was FarmFarm’s Sheep Race Map Object Kit  available on FSUK. I spent the better part of a Sunday afternoon trying to incorporate some of the map objects from this kit into my sheep yard. My initial problem was that though I thought these objects look pretty cool I wasn’t completely sure how they would be used in real life. Fortunately the mod author added some example screenshots which can be found in the support thread for the mod. Unfortunately this new found knowledge did not result in a yard that had the look and feel I wanted so in the end I went back to the yard I started with that morning.

The next order of business was to build the livestock sales point. One of my goals for this map is to minimize my use of Giants assets from GCV so I started looking for some alternatives. None of the animal auction points I found on any of the mod sites really appealed to me but I did find one barn in teccer’s Farm Sheds pack , also available on FSUK, which looked like it had potential. At some point it dawned on me that I might be able to incorporate the some of the sheep race objects into the livestock sales point and after a bit of tinkering was quite pleased with the results.

As the farm now stands there is a straw sell point next to the cow and sheep yards but placing the straw sell point on the farm, as Giants tends to do, always struck me a bit odd. Why would you sell straw to yourself? I guess you could make the argument that your buyer is simply picking their freshly purchased straw up at your farm but it always seemed to be more of a way to make things easier on the player than a nod towards realism. While I like the look of the barn Giants uses for the straw sell point, particularly the green re-texture Stevie did, I felt this would be another good opportunity to use a non-Giants asset. Turning again to the farm shed pack I found a shed that looked the part and complemented the barn I’d used for the livestock sell point. I’m still undecided if the green barn on the farm will be removed or if I’ll keep it and make it less profitable than the sell point next to the livestock yard. This would give the player a choice between close by but less profitable or transporting the straw a bit further for more profit.

One disappointment, though as far as I know is true of any map, is that its not possible to create additional animal navmeshes for the livestock yard. I know some maps use static models but for me that's a greater immersion breaker than no animals at all. I'm guessing that one navmash per animal may be a limitation of the game engine but its disapointing all the same.

With most of the triggers now in place and functional I think I’ll change things up for a bit and start laying down some of the fields.

I'm very pleased that I found a way to incorporate the Sheep Race objects into my map

I'm very pleased that I found a way to incorporate the Sheep Race objects into my map

On the road again

With the additional crops implemented it was time to jump back into GE and get back to work on the roads and terrain. In a way starting over again was fortunate as I changed my road layout significantly and came up with a layout that I much preferred. This section of the Nagce valley is to be honest a bit light on paved roads. A single ‘backbone’ road runs east to west roughly cutting the map into two equal halves. On the eastern side of the map a branch road runs north to the BGA and Vehicle Dealership. On the western side of the map another branch road runs south to the Mill/Grain Store. The remainder of the roads will be unpaved dirt roads connecting the fields to the farm.

 What next? Well my thinking is why not move on to the next thing I’m most likely to screw up, so it was on to the animal yards and navmeshes. I started with the cows and the navmesh was surprisingly cooperative, setting up the straw plane however proved to be more of a challenge. I just couldn’t seem to get the Y coordinate at the right height. I’d dump a load of straw, get the message that the cows had enough for 6 days but there was not a lick of straw to been seen in the yard. I’d tweak the straw plane up a bit to the point it was visible but now it wouldn’t drop away when the cows were out of straw. I eventually hit a sweet spot but it was frustrating work. I’ve since found a good tutorial on modcentral that explains how to use the strawPlaneMinMaxY setting in the attributes panel.

Pigs were next, and I spent a bit of time battling the navmesh to convince the swine that they did not belong on the roof of their shed. Once the piggies had been grounded it was time to move onto the sheep. The sheep were less inclined to flight but developed an annoying tendency to become frozen in time. These are both fairly common problems when painting navmeshes and can usually be overcome by rearranging the animal yard and repainting the navmesh.

 All was well on the animal farm until I changed out the shed on the pig yard for one I liked better than the one Giants provides and then decided what’s good for the pigs is good for the sheep and gave them a new home as well. Each change led to a navmesh repaint, followed by further changes and more navmesh repaints until I got it all to my liking.

 Side note – Testing, I highly recommend jumping out of GE (or Notepad++ if your editing xml) and jumping into FS17 to see how your changes are really working out in game. It’s easy to get on a roll and switching back and forth between editing and going in game is tedious but it sure beats discovering what you’ve been working on for the last two hours isn’t working out like you had hoped.

 Side Note 2 – Backups, I tend to back up my work on a fairly regular basis, certainty before implementing any major changes. Remember the Giants Editor is not your friend. She is a cold hearted bitch who delights in seeing you fail and your hard work squandered, and when you think you’ve won her over and she’s being a team player, just be sure to steel yourself for the impending swift kicks in the nuts that’s surely headed your way.

Pig navmesh

Pig navmesh

Pig enclosure with new shed

Pig enclosure with new shed

Sheep enclosure

Sheep enclosure

...and any fool knows a dog needs a home,   a shelter from pigs on the wing.

...and any fool knows a dog needs a home,
a shelter from pigs on the wing.