Patch, Patch, Patch, Patch, Patch

The Alpha has been out for 5 weeks. Thanks to everyone who’s been enduring crashes, save loss, performance issues, and other Alpha-related shenanigans. We’re a very small team: your feedback and bug reporting really helps us.

By the way, if you don’t have Alpha yet, you can’t get it. We would prefer if everyone plays Starmancer when it’s in the best state possible (on release day). You can still buy Beta Access on our Pre-Order page, but I would recommend waiting (you can always message us later, and we’ll upgrade your order).


Alpha Information

You can find patch notes, bugs, and what we’re working on at Instagantt. It’s a free website that automatically converts an Asana project into a public Gantt Chart.

Here is the link

The format of this website isn’t the best, but it automatically syncs with the project management tool that we’re already using, so it requires almost no maintenance, upkeep, or additional time on our part.


Patch Frequency

We’ve released 1 patch every week. Our goal is to push out patches every week or two, but this might be adjusted depending on the sorts of changes that we have to make. It’s never our intent to make Alpha less playable, but occasionally we’ll break some things.

We release patches on Monday. This gives us the entire week to identify and fix any major issues.

I’ve been recording a video and posting it to youtube every time we have a patch. I’m not sure if I prefer writing a post (like this one) or creating a youtube video.

It’s much much quicker for me to create a youtube video, but it’s significantly more difficult for me to articulate my thoughts and present them in a modestly entertaining and coherent order.

I also prefer writing over speaking (even in real life).

Going forward, I’ll create a new written post everytime we upload a patch. It might not be detailed, but it will include at least the patch notes.


Development Priority

Our development priority at all times is:

  1. Fix bugs

  2. Improve quality-of-life

  3. Add new features

We would prefer to have a game in which the player can do a few things flawlessly over a feature-rich game that barely works.

From a development perspective, it saves the most time to fix bugs immediately. The longer you wait, the more you forget about how you originally implemented whatever caused the bug. And any features that are built on top of a bug will inevitably need to be fixed or redesigned.

The severity and frequency of a bug will affect how quickly we fix it, and how much it pushes back new features.

Patch 0.0.6

Now that that’s out of the way, here’s what we did last week.

Pathfinding

I adjusted pathfinding so that floors are now composed of 2x2 “pathfinding” units. Previously, a floor was a single pathfinding unit. This worked fine for the most part, but it caused issues when you placed an object on a half floor.

Like this shelf:

Half-floor objects used to be a nightmare

Half-floor objects used to be a nightmare

A colonist shouldn’t walk through a shelf. Generally speaking, this means that the floor that a shelf is on should be “unwalkable”. The pathfinding generator skips any unwalkable floor.

Target Object

This becomes an issue when a colonist needs to walk to a floor that is unwalkable in order to reach an object.

In the previous image, the colonist needs to walk onto an unwalkable floor in order to reach the shelf.

This requires that every floor (even unwalkable ones) are checked when generating routes. If the floor is unwalkable, but it contains an access position for the target object (and only if the target object is the only blocking object) we’ve generated a successful route.

This solution also causes issues. For example, a colonist shouldn’t be able to walk through an object in order to reach an access position on a half floor, and a colonist needs to be able to leave its current unwalkable floor when leaving the shelf.

There’s also some more issues, like what happens if the target object is not the shelf, but a colonist needs to reach the floor? This could happen if a crate was abandoned or a colonist died while interacting with a shelf.

2x2 Floors

Converting the floors into 2x2 units solved almost all of these issues.

Unfortunately, all of the access positions were placed at spots that made sense for the old pathfinding system. So in the short term, colonists will sort of walk in circles when they approach an object.

Every route generated with this new system will take about twice as long to generate as well.

Colonists can walk on half tiles now

Colonists can walk on half tiles now


State Failure

I also fixed some issues related to colonists not abandoning items during various AI states.

When eating, for example, a colonist would pick up food, take it somewhere, then eat it. This caused issues if a colonist had to abandon its current state before it could successfully eat.

A few reasons for that would be: passing out, the destination object becomes unreachable, death, etc.

So now, colonists should more consistently abandon their carried item.

By the way, this is made more difficult because eventually colonists will be able to internally store items (like candy bars, photos, and weapons), so I can’t just “drop” everything that the colonist is carrying.

Selection System

I overhauled the selection system as well. It wasn’t designed well for “nested” objects.

A nested object is an object that contains another object. The crop spot is an example of this. The crops (like tomatoes) are completely independent of their parent: with separate health, claimable components, etc.

This caused issues when selecting the correctly material to use when mousing over, deleting, and selecting various objects.

Unity Update

I upgraded from Unity 2018 to Unity 2019. This caused some issues (hopefully I fixed all of them). You might see some performance improvements because of it.

Let us know.

Patch Notes

What is New:

- Colonist pathfinding is now based on each tile as opposed to each floor, this fixes various issues where objects placed on half floors were inconsistently walkable.
- Shelves now have access positions on their sides
- Nanobot Station displays warnings when there is less than 6 metal or 1 biomass available for building
- Paintings are now used for free time, and give a slight morale boost


Bug Fixes:

- Plated food dishes are now correctly lit
- Colonists no longer carry food around forever after they eat it
- Incinerator correctly incinerates dead bodies if they were added before it was powered
- Room lights consistently turn off when a Colonist is sleeping in the room
- Floors underneath doors are no longer used for free time activities
- Random tabs are no longer toggled on when menus are opened (hopefully)
- Wall vents no longer leak to space after save and load
- Crop materials are now changed along with the crop spot for selection/deletion/mouse over
- Lacking item warning is no longer displayed when an object does not have power
- Scroll bars no longer have “bounce” when scrolling past the stopping point
- Chefs correctly use shelves for cooking food in recipes
- Colonists no longer render behind wall objects
- Dish Drop-Off is correctly unclaimed by chefs
- Save menu correctly closes when saving over an existing file
- Colonist rotation is correctly saved and loaded
- Walls can no longer be built in front of or behind doors
- Saving the game when colonists are talking about a “Generic” memory will no longer cause a crash on load

Previous Patch Notes

Because this is the first “patch” post, I’ll include all previous patch notes. The very first patch notes were way too long, so I started becoming much more brief in my descriptions.

Patch 0.0.5

What is New:
- Colonists now prioritize cooked food over raw food when getting food from shelves
- Crop Spots now have a notification when a Colonist can not find a close enough Crop Drop-Off to use with them
- Colonists now require line of sight to be able to talk to each other

Bug Fixes:
- Object notifications are now cleared when an object is deleted
- Colonists now use correct access position when removing Biomass from Food Recycler
- Water recycler level is now positioned correctly after save and load
- Crop Drop-Off now consistently opens when there is an item contained inside
- Fixed exception caused with lists being used as dictionary keys, this resulted in a crash when saving and loading a game with items sometimes
- Toilets have doors once again
- Colonists no longer use tables before they are built
- Enough atmosphere is now vented to space to not cause any flashing red rooms
- Shelves closest to Colonists should now be used when transporting items
- Farmers no longer plant a second crop when a crop is already growing in Crop Spot
- Rugs now properly render below Colonists
- Colonists are now correctly lit when walking through doors
- Atmospheres of Doors are now calculated based on the atmosphere around them

Patch 0.0.4

What is New:
- Added memories and morale modifiers to more actions and objects.
- Added free time uses to more objects
- Added access positions to the sides of Mining Probe
- Added access positions to the sides of Nutrition Brick Creator for picking up, dropping off, and repair
- Bio-Tank, Nutrition Brick Creator, and Food Recycler now have notifications when they lack items to produce
- Colonists can now eat from the Crop Drop Off and the Fridge
- Added the games version number to the top of the error pop up

Bug Fixes:
- Colonists now requeue find food state if they are still hungry after eating
- Colonists fall back to free time activities if there are no jobs to perform more consistently
- Mounting position angles are no longer wrong when the camera is rotated 
- Adjusted how the inclusive item filter works when an item has multiple attributes.
- Shelves now correctly adjust its input requests when a transfer ticket fails
- Fixed some edge cases when you would load the game while a colonist was waiting for something.
- Reduced the memory allocation of most periodic code to 0. This should help with Garbage Collection issues.



Patch 0.0.3

What is New:
- Colonist Morale System (only the backend)
- Colonist AI Category System (work, free-time, sleep, etc)
- Wires/Pipes/Air ducts are no longer removed until an object is constructed, and they're restored when that object is removed
- Implemented a different selection system

Bug Fixes:
- Input field is now cleared everytime it's opened
- Construction material is now only lit once
- Food recycler will more consistently close when all biomass is removed
- Input slot on ore refinery will now reset once production starts
- Fixed some saving issues
- Fixed some miscellaneous null reference crashes
- Fixed some issues with different region settings
- Fixed some issues with colonists eating
- Fixed a sprite sorting order issue.
- Fixed some issues with the item queue.
- Fixed some issues with room lighting.

Known Issues (caused in this patch):
- Sometimes the colonists refuse to perform the free-time fallback when there is no valid job to perform.
- The hold and drag selection box does not always select all of the objects within its bounds
- Nanobot Station can no longer be selected
- There is now a big Garbage Collection spike after playing for a long time (maybe this was always an issue?)

Patch 0.0.2

What is New:
- Added a pop-up window when an exception is caught. It shows the error, and the stacktrace. This will negatively impact performance, but will help us track down bugs.
- Object deletion will now be cancelled if you mark an object for deletion while it's already marked for deletion.
- Added Stardancer to the Music library
- Added new game Icons in different sizes
- Added emission texture to the Starmancer Core Body
- Added an Application Config Banner

Balance:
- Increased colonist movement speed from 1.0 to 1.5
- Reduced hunger tick reduction from .07 to .04. So it now takes 41.67 game hours to become fully empty
- There are now 3 nanobot builders.
- There is now a random delay between 0 and .2 seconds added when the build bot finishes construction. It helps to make the 3 build bots appear less synchronized.
- Generator now has a notification when it is out of items

Bug Fixes:
- Fixed an issue with building an air duct through a wall.
- Added RealtimeSoundPlayerComponent. It pauses / resumes sounds when the game is paused / resumed. 
- Sounds will now resume at the correct runtime when save-loaded (hopefully).
- The search bar is clickable again.
- If you don't enter a save name, it will now be provided for you. Maybe this fixed a crash issue.
- Doors shouldn't cause an atmosphere leak anymore.
- Fixed some AdjacentObjectFinder issues.
- Fixed an issue with colonist job priorities not being correct when assigned.
- Fixed an issue where colonists would perform jobs after they were unassigned.
- Objects are now rotated in correct directions when Q and E are used
- Fixed a bug where the AdHocMaterialChangerComponent would not correctly revert materials on renderers that were not linked before an AdHoc material change was applied.
- Fixed a bug where the AdHocMaterialChangerComponent would not forward material changes to renderers that were not linked. This caused an issue when using the All key (because the All key is always forwarded).
- Fixed a bug where materials were incorrectly reverted when a renderer was unlinked on an entity that still had other renderers with the same key. This is a complicated way of saying that crates were being incorrectly reverted on shelves.
- Toilets no longer have the "OwnableComponent" on them. So multiple colonists can use the same toilet (not at the same time). Disgusting.
- Removed OwnableComponent from several entities that didn't need it, like the garden bench.
- Changed rug position offset from .1 to .01.
- Objects will no longer increase their damage chance while building the starter station.
- OnColonistWalkedTowards.isColonistAtObject now defaults to true. This fixed an issue where the build bot would become permanently stuck when moving towards an access position that had been removed. This would occur if you removed an object while a build bot was building it.
- Action_MoveTowardsVertex now succeeds if the target vertex is null. This will probably prevent an infinite loop in the future.
- The BuildBot is no longer added to the TileGrid, and it's no longer stackable. This fixed issues with floors thinking that an object was on top of them.
- Action_IteratePathfindingRoute now calls OnCurrentPathfindingFloorChanged. Previously, it was directly stacking colonists and floors. This fixed a separate issue with the build bot placing itself on floors.
- Crop crates will no longer show up in food recycler
- Material changes are now always applied when a renderer is linked in the AdHocMaterialChangerComponent.
- Objects can no longer be claimed if they're queued for deletion. (this was already implemented, but I made it more consistent)
- Objects can no longer be deleted if they're claimed (but they can still be claimed for deletion).
- Made the water level for the Fountain receive lighting properly
- Starmancer Core is no longer removable
- Nanobot Swarm is no long able to be selected, as well as get material changes for being selected and moused over
- Moved ConstructionItemConsumer from the Swarm entity to the Station Entity (and forwarded all events).
- Build cost resources are now consumed when an buildable object is claimed, and not when construction starts. This prevents multiple builders from starting construction at the same time with the same exact resource.
- Fixed a stack order issue when forwarding stacked agent events between children and parents.
- Agents are now stacked when construction is finished instead of in OnPlaced.
- Adjusted all crop crates to have biomassable attribute
- Removed deconstructable component from Nanobot Station Entity.prefab

Thanks for supporting Starmancer, for reading these things, and for playing Alpha.

-Tyler