Year 1 Student of George Brown Game Programming
Entering Year 2
Luxembourg Dual Citizen - Looking to move to the EU after graduating
Formation Movement mostly working. One thing I have not been able to do, is adjust the orientation of the formation. I think this might be a current limitation of the 2D implementation.
A* Pathfinding Project, Behavior Designer Pro + Formations, 2D, URP
formation_movement_working.mp4
Making progress with Formations for Behavior Designer Pro. Took me a day before I realized the documentation links on the website are for a previous version for Formations for the old Behavior Designer 🫠 I think I just need to be able to dynamically set the Vector 3 used for the formation destination during runtime, so the formation will follow a moving target like the player.
formation_movement_first_steps.mp4
I remade the "Behavior Designer Pro - Formations" demo scene with astar project instead of navmesh. Still need to add the UI, and ability to reset in different formations. There is also an RVO Controller on each AI for local avoidance.
I tried to edit the existing formations demo to use astar project, except they had some functions wrapped for warp and a couple others that explicitly checked for a navmesh agent, and had a pain trying to swap em out properly.... This was much easier.
There is a massive amount to learn about behavior trees... Next steps are getting a formation to move to an arbitrary point, or follow an object, as a formation.
I think once this is done I will go back to working on Opsive Character Controller, then I can get some AI powered by that and Behavior Designer working in a 3d environment on an A* project grid.
behavior_designer_formation_demo_remade_for_astar_project.mp4
Formations working!
astar_project_behavior_designer_formations.mp4
The behavior tree for this sequence.
Start to Repeater, so when thing under repeater fails or succeeds it just goes again. Repeater to main sequence. This runs everything underneath from left to right.
There are 3 sequences under our main sequence. Each one will first, until success, try and make the formation underneath it (triangle, circle, or grid) and then wait 2 seconds. After the wait cycle finishes, it passes success up the chain, and the next formation runs.
The "Until Success" node is there because if one of the child nodes fails (like making a formation) it will cause our main sequence to repeat from the beginning, instead of moving on to the next formation. And I was having issues where formations were occasionally failing.
I narrowed this down to the "Time Stuck" setting on each formation, increasing this from 0.2 to 1 allows enough time for npc's move around each other without triggering a "Formation Failure".
Replaced PolyNav2D with A* Pathfinding Pro and Behavior Designer Pro + Senses & Movement.
Next to get formations working.
behavior_designer_senses_astar.mp4
Finally stylable foldout headers. Inspector / editor UI coding is a bit confusing. I definitely appreciate having OdinInspector though as this solution extends OdinInspectors group drawer.
Equippable items. Rare drops or quest rewards. Lost upon death.
Percentage values in brackets may be variable.
Unique Shield Properties
Strong Surface
- Reduced incoming shield damage for first (15%) of energy capacity
- Increased incoming shield damage for last (25%) of energy capacity
Focused Matrix
- Damage to shield does not drain energy (normally drains energy 1:1)
- Disabled for ({0.5} seconds) when activating weapons
Energy Vampire
- Damage to shield boosts damage output by (%) temporarily
- (90%) increased shield drain amount
- (x = drain amount) = (x + x * 0.9)
Boost Bubble
- (x = 15%) Increased speed for the first ({y = 3} seconds) while shielded
- Cooldown equal to ({y} * 2 seconds), starting after deactivation
- Does not prevent normal shield functionality
Turtle
- Doubles shield capacity
- Reduces max thrust & boost by (30%)
Stalker
- Cannot be tracked by the following while active:
- Turrets
- Homing Missiles, Suicide Drones
- Sensor Beacons
- Slight scramble to enemy "Aim Skill" (lead calculations)
- May disrupt aim calculations to cause over or undershoot
- ( + - 2%) would be enough to seriously disrupt aim
- (50%) shield damage bleedthrough to ship (normally 0%)
Second Life
- Upon running out of energy, refill energy to 100%
- Prevent energy regeneration for ({10} seconds) when activated
- Cooldown of ({45} seconds)
Finally getting around to some AI improvements. I want to have some difficulty scaling for NPCs, and one way I have implemented this is using two properties, "Rotation Speed" and "Aim Skill". The first is self-explanatory, while "Aim Skill" controls how well the NPC can track you and lead their shots. When you are orbiting an NPC, you may have a high angular velocity relative to them, and since my weapons currently have a travel time (not hit-scan), both player and NPC have to do this (leading shots) to actually hit.
I can also adjust this during runtime, so a skilled NPC might still have some miss streaks, and the inverse for a weaker NPC. This will help make the AI feel more natural.
You can see below one NPC can track and hit quite well while the other struggles.
npc_tracking_skill_variation.mp4
I got vHierarchy/Folders/Inspector 2 during the sale and just got around to actually trying it, now I cant go back. It just a few pure QOL enhancements, a couple I particularly like are bookmarking things at the top of any tab, and the back/forward buttons in the inspector. vFavorites and vTabs are pretty handy too.
Also trying to figure out how the inspector labels and styling work. My goal is collapsible Header sections, not quite there yet.
New laser with glow effect, added extra trail effects when boosting.
new_laser_and_boost_effects.mp4
AI overhaul underway. Followed by the long overdue upgrade system, and some scaling enemies.
Not 100% sure how I will handle actual equipment. I think there might be some base upgrades you can do to your ship that will never be lost (even upon death) but then you could acquire special parts with large bonuses or unique effects, but that WILL be lost upon death.
Here is a closer look at the updated ships so far. This is using All in One Sprite Shader.
They all have normal AND emissive maps.
The cockpits are made with a simple SpriteShape, and a colored light under them.
updated_ships.mp4
And a look at the system again. I made the asteroid belt rotate once more since I kinda have the player moving correctly as a child of the moving belt, thanks to using Extrapolation instead of Interpolation on the players rigidbody.
space_game_overview_system.mp4
Also made an emissive map (although the shader really didnt requireee it...) to make this hazard in the race glow nicely (and some heavy chromatic abberation)
crystal_asteroid_emissive_chromatic_abb.mp4
Figured out how to use the reflection probe that comes with Enviro 3 setup, and how to enable reflections & planar reflections on the Crest water system as well.
Also enabled ACES tonemapping in postprocessing.
ACES_Beach.mp4
Got a nice beach setup to show off the stunning Crest Shallow Water System.
It uses fluid dynamic simulation for shorelines, shallows, or rivers with real flow.
MicroSplat/Verse Terrain.
restarting_simulation.mp4
Getting comfortable with MicroVerse/MicroSplat, Crest, and Enviro. Really loving Unity so far.
Creating gameplay / player controllers / npc next, now that I can create the environments I want.
..But I might just sit here a bit longer.
sunset_reflectProbe.mp4
Crest 5, Crest 5 Shallow Water
Enviro 3 ( + Reflection Probe)
MicroSplat/MicroVerse
Passed math 😎
Linear Algebra and Geometry is much simpler so far.. phew..
Here are some projects from Semester 2:
https://paulbh.com/leapknight/
Here is a larger space game (Work in Progress!)
More of a tech demo right now, but not much left to implement to finish the game loop
Windows & Linux Builds only - Mac build on the way..
itch.io/orions
and some examples from projects
MicroSplat + MicroVerse, Enviro 3, Crest 5
microsplat_microverse_enviro3.mp4
terrain_static_streams.mp4
terrain_static_lava.mp4
terrain_displace_and_tessellate.mp4
swimming_is_hard.mp4
Opsive Ultimate Controller + Crest 5
swimming_working.mp4
For Orions Shore
All in 1 Sprite Shader for Normal + Emissive
Used Laigter for the normal map: azagaya.itch.io/laigter
Used Krita to manually paint the emissive map
Created transparent SpriteShape with a light underneath for the cockpit
normal_plus_emissive.mp4
The dynamic particle system was a bit overkill since removed
Base sun + sprite sheet prominence still in though
new_sun_with_post.mp4
Early Earth before upscaling:\
new_earth_final.mp4
From LeapKnight
The attack was an extra I added and not requirement
It also has its own achievement for jumping over or killing the slime\
working_attack.mp4
Attack Animation from State Machine