Sapphire Documents Issue 005


Alright, explorers! Another issue of the Sapphire Documents is here, and boy do we have some things to discuss…

AI, Behaviours, and Spawning

Currently, the monsters in Sapphire Safari are a little braindead, and I mean they have the most simple AI guidance system. I would go as far as to say they are there simply to make our girls walk around, but I digress.

However, in order for you all to understand how our AI works I need to break down two distinct styles of AI decision-making that most videogames employ.

Behavior Tree: This method of AI allows the computer to make a decision and follow through with it, think of it like throwing a frisbee. Once the frisbee has been thrown you won’t be able to change its direction or its destination. After it lands you can throw it again to another spot, and so on and so forth. The knowledge that the AI has at its disposal is limited to what is at each destination of the frisbee, so it has limited potential for the reactions it can make.

This is currently how Sapphire Safari works, if you’ve even jumped in front of a Monster Girl only for them to ignore you, that is because they have a task of moving to a destination, anything new showing up won't affect their responses.


State Tree: All decisions all the time! This is a breaded AI system and the knowledge of potential decisions the AI can work with is much much greater. The AI will make a decision and then be presented with several more options they can swap around to at any point. As long as a decision is within its knowledge pool the AI can jump to it at any point.

The biggest difference here is setting up this AI will span over several months of work. As of v009, we have started this process, but the full rollout might not drop until v011 or sometime around then.


The next task within this basic overhaul is to more development tools we have needed to build. When we make new maps in Sapphire the spawn zones of each monster girl also have to be set up. The current system we employ is a radial spawn zone, for obvious reasons it means that we cannot just apply it to a map with a unique layout. So a new tool for our designers has been built, which allows for custom spawn zones.


More power to our map designers is always going to be a good thing!

Photo Scoring

As mentioned in our last Sapphire Documents we have a brand new team member who has joined our development staff for the game. His primary role is around programmer support and focusing on unique tasks that require a fresh perspective. The first challenge he has is building a robust scoring mechanic for photographs. 

So first, know this. Unreal Engine has a huge amount of tools we can use to understand everything in a scene, what the player can see, and what things are being blocked out. It might come as a shock to see the sausage being made here but hopefully, you can follow along.

A major issue we had to contend with stems from the game knowing what is inside a photograph. It is all well and good to know in the moment during gameplay what is happening, it is a different story for a screenshot. So first we have to know exactly what parts of a Monster are visible, where they are on the screen in relation to anything else, what else is on the screen etc. To do this we placed hidden and directional beacons within the models of the Monsters and make them face only in the direction things are visible.

For instance, if we wanted to take a photo of a girl, and have her sideboob visible but not her nipples or genitals, aka the tasteful pinup, the game needs to know what parts of the body are visible. Next, the game needs to know where on the screen, how close to the camera, if the subject is in focus, and what props make up the background. Once it knows everything in the photo it needs to compute a score, so two photos dealing with the same subject matter can be ranked based on the rules we impose. Tricky.


This is an example of the system in play, here Bunbuns does random movements and we can take photos that are instantly scored. Based on her location on the screen, how large she is relative to the zoom, and the naughty bits visible.

For the composition of environment data, we are looking at positive and negative space, scene depth, composition symmetry, and percentage of subject matter. This is determined by generating - at the time of writing - three additional images being generated for each photo taken.

The first creates a greyscale and pixelated version of only the environment minus any subject.


This photo is then scaled all the way down to a 7x7 pixel image and from that we can see how much the environment should factor into a photo score.

Secondly, a mask is made of the subject and any props blocking parts of it from the photo.


This is so we can see without a doubt what is and is not visible.

And the last photo will likely have something to do with the color composition of the scene, we are still attempting to find the easiest solution for this. Now you all might be wondering, how will these computations affect performance, well you’re in luck. As one of the next phases we will be building towards is an in game photo saving tool, as opposed to writing massive screenshots to disk. It will require out-of-the-box tool development, but it will 100% remove any delays caused by writing files. It will also let us do burst, action, and shutter speed photography options.

That is a problem for future me though.

Retirement Flow

Most of you should have some knowledge of this if you’re reading our Sapphire Documents posts, the retirement screens and the UX around it I would consider to be the most important screens in the game. Not only does this create the major gameplay loop but we also can loop in side quests and the eventual bounty system as well. Here is what we have working right now.

Monpedia: as of now we have a system for submitting photos to the Monpedia, which is our version of the Pokedex used to catalog the Monster Girls in Sapphire Safari. To do this you simply need to take a photo that matches the description needed. For example, you need to submit several different photos of Bunbuns, one of her sleeping, drinking, eating, socializing, etc. To help with this system we have the filter system and the scoring system to know what each photo is about. So when you click on the entry for Bunbuns sleeping photos, it will filter all the photos you took down to just what photos are applicable for the entry.


Expedition Points: the other key progression system tied into the retirement flow is expedition points. These total up the top 10 photos you took during your last expedition and apply the total score to the Expedition Total. Hitting milestones in this will unlock mainline gear - things you need to progress the main story - and new locations and islands.


Eventually, we will have a system here to add more photos to your personal gallery and also share them with the world via social media and Steamworks. Not right now though.

Moana Tropic Upgrades

A new region of Moana Tropic is done and will be made available in the next patch! For now, let me just say this new spot is going to have a big difference for the island vibe. We have also built a much more diverse texture layering system allowing for far more unique-looking environments.


Finally, we are also getting an update to our Tall Jungle Tree asset to make more variations and to get it to fit aesthetically with the rest of the Jungle environment.


And that is it. This post took me days to write so I hope it is all clear on what is being worked on. To be clear as well, there is a lot more I could talk about but this post would be massive, stuff like updates to the user flow for the doll system, and how things will automatically happen, etc.

Anyways hope you enjoyed the read!

Cheers,
Kinky

Get Sapphire Safari (Early Access)

Buy Now$12.99 USD or more

Comments

Log in with itch.io to leave a comment.

(+2)

The photo-system looks promising alright, and considering i never played a game similar to this (not even the game this is very likely inspired by), it'll be my first time with a game like this. oh the finished version can't come soon enough.

my impatience aside, please take your time with the development, i rather wait 5 years for a well made and polished product than have a rushed mess.

(+1)

If we can continue because sales are doing well we will polish until she shines!

well i'd say you got my money, if i were to use a credit card or something to pay for stuff online. so all i can offer is my support for the game.

so uh, i'll stay right here, near this bunny, and cheer you on!

(+1)

The only thing that turns me on more than monster girls is developer progress and problem solving!

(+2)

They call me Mr boners for that exact reason!