Nav: (Display/Hide) - Home - About the Author / this page

Current Projects: Americana Engine (Game Engine Development)

Saturday, October 31, 2015

Apple Hill Farms

During Halloween, I decided to head over to Apple Hill, mainly to explore, get an Apple Pie, and possibly visit the Chestnut Festival at Smokey Ridge. Despite it being listed today (according to the Apple Hill 2015 website) they did not seem to have it upon passing by late afternoon, although there were a lot of other things to look at. The farms I visited were the following:

Rainbow Orchards: Sells a variety of stuff, including apples, baked goods, jams, apple cider doughnuts and hard cider. Has outdoor seating and music performances on certain days. The size of the doughnut is a bit smaller than a regular doughnut. There is a BBQ out there as well; they sell sandwiches and hotdogs ranging from $5-9. The apple pies here are moderately expensive.

There is a price listing here.

Kids Inc: Sells large apple pies, some apples (they have samples available), and a few vegetables. Contains several vendors and a giant corn maze / pumpkin patch. Menu is located here, with a few pies raised by 50 cents. There is also a grand view of the apple fields from the hillside.

Abel's Apple Acres: Sells the largest variety of apple baked goods that I've seen so far, as well as candies and gifts. There are at least three places to buy food from, and there's attractions and vendors outside. Apple pies are relatively inexpensive here (at around $11-12 per pie, both baked and frozen).

Tip: Bring a map and figure out your route prior to heading over. It's easy to get lost out here, even with a GPS, and some of the signs for these apple farms are hard to see from a distance.

Wednesday, October 14, 2015

Americana Engine: Redesign

Minor (but important) differences in the script syntax from Beta 3 -> 5, especially for branching statements.

A number of changes have been made to the underlying code as well as scripting format in order to both improve readability and performance. Compiled maps from Engine Beta 3 or below* may not be playable since a lot of crucial triggers will not work properly, making Beta 4 the last official version for backwards compatibility. For more information on what may appear in Beta 5, see the changelog.

Brief list of changes:

  • All resources now load outside triggers instead of as actions.
  • Strings are now compressed for standalone maps
  • Map variables now include strings as well
  • Variable pointers are used at the beginning of a variable instead of extra values on an action
  • Jump Actions now made into If-Then statements by default
  • Locations were reworked
  • A lot of internal code was refactored


  • Faster map reloads
  • New GUI for terrain editing

Development Comments:

Loading resources were originally placed in triggers since there was originally enough of them would cause lag if they were placed at the beginning. After some consideration, not only does sounds and resources loaded in the middle of a map cause a few inconsistencies, they can also break some parts of a map if a trigger that loaded them happened to be skipped over for some reason, and another trigger loaded them instead. Additionally, loading in the middle will also lag for the time the texture or sound loads in realtime, and is more significant if the file being loaded is large. It's not going to make a difference in compiled maps, since all of the data is loaded at the beginning.

To centralize the location where all resources will be loaded, all resource calls are now outside triggers, and there should now be no question as to where these statements can be placed and if they will run or not.

Jump Actions were implemented because of the way the script was interpreted; You needed to get to a line, and there's a trigger to do so. Originally the jump statement required a number and optionally direction (up or down). During early stages of beta testing, users had difficulty with figuring out where these statements were jumping to, and most of the time was spent fixing issues and having to readjust the code every time a line was added in the middle. I also did not want to promote bad programming practices, and this one did it with spaghetti code. The problem was resolved with conditional statements instead. Jump to line is still there, just using labels now.

A bunch of code was refactored (and placed into separate source files) since it became progressively harder to add new features, and even more so to maintain. Prior versions placed most of the map rendering and editing functions in a single cpp file, and class definitions in several other header files. It was nearly impossible to split the main cpp file up as class methods pulled data from global variables. In larger teams, the same cpp file was being edited, which can get extremely cumbersome as all revisions from each commit had to be merged and reviewed so that it didn't cause conflicts and/or errors in the source file, as well as other classes referencing it.

The Battle Simulator in previous game engine releases is not compatible with the current engine version and will not be included in release builds, however source code for the map will be available as a separate download for anyone interested in updating it.