Today we're going to take a little peak beneath the hood of Vagabond PI and see the workings of the engine. The current status of the game is the coded more complex than it has been in the past. Almost the entire game occurs within 1 frame. The world you will be exploring and the building interiors are all within the same frame that currently has 1,228 events. A goal with the game has been to use these events has efficiently as possible through things like fast loops and copy and paste as opposed to cloning objects. After all, sloppy and inefficient coding can slow down a game dramatically.
One of the hardest features of setting up the game has been the "generator" engine, something I would like to show case. Since the game takes place in one frame, there has to be a way for resources to reset over a set period of time since the player cannot simply leave the frame and come back in. My solution was to spam the create object feature. Take a look below:
The yellow objects are invisible active objects that have the job of create specific active objects at set periods of time. The forest area shown in the top looks like this when approached in game:
Here's a quick synopsis of how it works. Trees, crabs and seashells ares super simple. Basically the invisible generator detects if an object is no longer above it, if so it will start a timer. When the timer hits zero it will spawn a new tree/seashell/crab if the player is in a different section of the map.
Wildlife like deer and snakes are a little more complex.
Because these active objects move, they have to be given an ID. When generated, they receive an ID tag in its alterable values based on the X and Y of the generator that created them. As long as a deer exist with an ID tag that coordinates with the X and Y of its generator it will not create more deer. When the deer is harvested it will start the timer on that generator. This creates an endless supply of wildlife from what is only 2 objects.
Hopefully I didn't bore you guys with this tech talk, but I'm very happy with the coding that is going into this project. Until next time, happy gaming!
Sorry the lack of posting, but some great progress has been made on the games engine. Also the user interface graphics have been improved
First and foremost, the resident AI has been created. As you build the town of Elson (or whatever you decide to call it) you will add residents to your town at random. Residents will maintain a "happiness meter" found directly above their head when talking to them. When the meter is full you will receive a unique item as a gift from that resident. Whenever you have a unique conversation with them it will add 5 points to their happiness. Unique conversations can only be had every 2.5 minutes.
The best way to add to this is by fulfilling the requests of your residents. Fulfilling a requests will add 20 points to their happiness and they will give you a random item in return. Requested items will appear above resident's heads.
I will be reusing much of the resident AI from a previous project called Motherworld that gave them pretty detailed paths to follow throughout the day.
Acquiring lumber will be essential part to the experience. Lumber will be needed to build fires for crafting and cooking. It can also be used to repair structures throughout Kudzu Province. Currently there are 4 types of trees with plans to add one more variety.
Left to Right: Palm, Ash, Birch, and Evergreen.
After cutting down a tree with your axe you can harvest the lumber that is left behind.
Until next time! Hopefully next update can discuss those pesky baddies you'll find roaming the swamps.
I have added a major development in the gameplay of VPI that is worth discussing.
First a little house keeping...
Just wanted to note that the time setup for Vagabond PI has been changed from the original project. Originally, the game was going to be in 'Real World Time' like the Animal Crossing franchise. With a lot of thought, I have decided to make the game function on an internal clock system instead (similar what is seen in Harvest Moon, Witcher 3, Red Dead Redemption 2, etc.). There are a multitude of reasons for this change. One is that when I began this project 8 years ago, I was very much in my youth still. I was captivated by real time concepts because I had enough time in my life to enjoy them. But nowadays, as someone in their 20s working multiple jobs, the concept seems like more frustration and than enjoyment. I now see gaming as something to do on a Sunday afternoon for a few hours to unwind. A real time system forces you to adapt your schedule around a video game; something I do not wish to do. For these and other reasons, VPI will feature an internal clock system instead, but I may consider making real time and option within the settings menu.
After playing some of the old .MFA file, I noticed a real lack of investment the player feels. Sandbox games thrive on building and personalizing something. In Harvest Moon you develop your farm, in Animal Crossing you personalize your home. The earlier development of VPI lacked a major goal outside of completing cases to finish the story. After a lot of thought, I decided to integrate town building into the game. I have spent the past 2 weeks creating the engine, and I will say it works very well in my opinion.
At the start of the game there will be no shops and only 1 resident in the town. As you acquire money by completing cases you eventually build a "Sporting Goods Store," which sells tools you can use throughout the game. From there forward you slowly build shops, residencies, or attractions to the town.
Here is a quick overview of the engine:
Approach a vacant lot and press space
Select what you want to build
It will take 6 in game hours or 6 real world minutes for the building to be complete.
After it is complete you can now utilize the shop.
Also worth noting, after you build a 'Carpenter Business' in your town you can acquire an item called the 'City Plan Book' which will allow you to demolish buildings so you can change their locations.