SamuKata
RadianHelix
RadianHelix

patreon


Project Morningstar November 2023

Project Morningstar has been taking some significant, if terribly delayed, progress of late. We're currently about to reach the milestone I had hoped we'd be at last August, but thanks to the 3D transition, and some early optimization passes to get ahead of serious tech debt later, we've primarily spent our time preparing for the future.

That isn't visually very exciting, but it is none-the less vital work.

You can see an early vesrion of our Cutout Shader above. As one of the more frustrating issues with an isometric game with no camera rotation, being blinded by obstacles is a big issue.

Finding a medium for best practice here has been an ongoing concern, but I think we've settled on a method that works for now, simply turning off south-most walls and roofs with semi-transparency, so you know the wall is clearly there and you can still see through it.

The Reticle, which you can see in the little video clip above from about a month ago, will illuminate hidden features, also having a cutout to reveal it when hidden behind and object (but not revealing obscuring faces.) That Reticle also serves as your "range finder" for weapons with limited range, shown as a series of dots that ends where the weapon range ends, and it serves to indicate the surface you are likely to hit, and what is currently blocked by obstacles.

Project Zomboid, and even Hades & Bastion & Transistor, as examples of recent Isometric 2D games, all have "death by isometric view angle" issues.

I started playing Zomboid and Hades recently to get a better grasp of how those games are dealing with the issue, and our combination of the Reticle and Player being cut-out is working really well by comparison. We may eventually reveal enemies this way as well, using cutouts to reveal them.

Our Reticle also shows your likelihood of hitting a target due to your character's accuracy with the current weapon. The larger radius could be due to poor aim, poor eyesight, poor skills, recoil, or simply a significant distance with an inaccurate weapon. The Reticle's outer ring shows your sum, while the center dot shows your pinpoint perfect aim point.

The Reticle also uses color to indicate things you can pick up, things that take damage, can be interacted with, stolen, etc.

In addition to that handy aim-point, we have been working on Dynamic Navmeshes.

Morningstar is a titanic, fully open world game, with a mix of vast open proc-gen environments you'll be familiar with in RimWorld, and hand crafted custom locations using the Level Editor.

Obviously, we can't just generate navmesh for the procgen and ship with that. The data would be HUGE, bigger than a Bethesda game, and wouldn't allow alternate scenarios on other Fragments to be generated in a pure sandbox mode, which we want in addition to the main campaign.  StarSector fans might remember Kent's Beyond the Sector mod, which choked on memory issues. We're trying to ensure things like that don't happen here as well.

So instead, we have an A* Navmesh that is dynamically generated anytime an environmental object changes, for the area around a currently active player.

This will allow us to build the level's navmesh only when we are looking at it.

That obviously has some major performance concerns.

First is that ADDING to the navmesh is easy, since we can just subtract existing navmesh regions.

REMOVING objects, however, which creates a void, requires that immediately affected region to recalculate everything adjacent, and check its borders. That is a pain point.

Additionally, if the player uses our Dynamic Character Switching to jump far across the local map, that zone too needs to be calculated from scratch if it's far enough away from the old camera.

As the game gets more and more complicated, and we are dropping and picking up items that modify navmeshes, that will become a moment to moment source of concern. We can bypass that for now by having common droppable items simply not modify navmesh, letting characters walk over them.

Situations such as this one, with lots of 1x1 objects creating weird shapes of tight corridors, we have a good grasp on. It's not ideal? Characters may still gets a little "stuck" on corners and edges, but some AI "padding" to avoid tight spaces when more open spaces are available is on our docket.

We also have the option of training the AI to identify and avoid killboxes, destroy soft targets in their way, and recognize false doors. That will have to come as our game matures.

Another vital piece of Morningstar is slotting back into place on the 3D revision: Location Based Injuries.

Moment to Moment while in combat, you probably won't be paying much attention to the overall health of individual characters, but you can pause at any time to diagnose why a character is limping, or downed. The "Wound Man" is our UI for seeing that injury visually, as well as in a text list.

Those handy Meters in the bottom left, those are your Health and Stamina overall meters. Those are what you'll need to care about moment to moment as you fight for your life, and decide to run away or not.

ocation Based Damage is now handled on this 3D rig that each 2D character possesses. Basically they are a fake 3d body with the 2D image on top.

If you shoot a character in the back, it will hit the spine. In the front it will hit the ribs.

You can aim for the Head, Torso, or Legs with a little bit of soft Aim-Assist, both for controller and keyboard & mouse now. This handy 3D rig up above will let you carefully select where you intend to hit, for that little bit of extra control and realism, as opposed to a dice roll RNG for location based injury.

With all of our buildings and cliffs back, we can begin to focus more on the holistic picture of a what a town looks like, as soon as Curtis wraps up this next iteration of the level editor.

These cast dynamic shadows and receive lighting from campfires and explosions. They look super dope in the day/night cycle.

There are still some tiling issues that leave something to be desired. But as the system continues to mature, I hope to work out those minor issues by simply buffing out the meshes at the edges.

--

We've added fmod to our project for Audio Management. We'll owe them probably 12,000USD after release, but it's worth it. We'll be managing all our audio through this tool, enabling dynamic audio for interior/exterior environments and music audio cues, fade in/out, and better HD audio, stereo management for 5.1 and all the odd audiophile settings a user may want -- and we don't have to code any of that shit. :p

We only have minimal audio as of yet but fMod makes it much much easier to handle as our library begins to expand with all the projectile hits, footsteps, echoes in caves, gunshots, sword swings, etc.

Music too, needs fMod to cue up and be context aware.

--

I've begun preparing for 2024's ticket list and planning the timeline as well.

 

The timeline gets blurry in 2025, but I ave everything for 2024 planned out now as to what we should be doing to meet Milestones. These tickets all link to documentation, both on our human readable google docs and the Trello, and Notion docs.

It feels good to be better organized in Version Control and Documentation for the new year.

There is a lot of ground to cover, but with this upcoming milestone merger I'm confident more progress should begin to materialize quickly.

I hope your year is coming to a close in a good place too!



More Creators