Maybe a Car?

I started making a car

I was trying to base it off of https://www.classic.com/m/bmw/3-series/e36/m3/ and I think the vibe is kinda there? I think the wheel wells are kinda in the right place:

My goal is to have a driving sequence at some point. But honestly this might just be a thing I hold off on attempting until I finish up the whole “game” part of the game…Plus the doors seem like they would be hard to get right.

“If the robot makes three beeps don’t stand in front of it.”

Threw the muzzle flash 3d model into the explosion so we get some kinda fire out of it. It works much better than I expected:

Also attempted to make some light-bulbs that hang from the ceiling but it turns out the unreal provided cable component (https://dev.epicgames.com/documentation/en-us/unreal-engine/cable-components-in-unreal-engine) doesn’t apply physics forces to whatever it’s attached to.

The yellow line is the cable I made

The red line is a line trace I perform upwards to find any actors that are willing to take the lightbulb:

So I’ll have to essentially make a bone heavy mesh and attach that to the lightbulb.

Also the first level is progressing:

Slow pace but I think I should have something within a week. Going with the desert motif so I don’t have to make too many buildings..

Also I made an alert sound for the bots:

I made the sound in Abelton but I didn’t save the set….Essentially it was an Up only arpeggiator into an operator preset into a redux into a compress and eq-8. Also “arpeggiator” I found out isn’t in the dictionary:

Which: https://www.sweetwater.com/store/search?s=arpeggiator#search-header (P.S. VERY overpriced for what you can achieve with a $20 arduino uno and a spliced midi cable: https://github.com/FortySevenEffects/arduino_midi_library ).

They Keep killing each other…

I re-wrote a bunch of the patrol bot AI to use EQS (Environmental query system: see https://dev.epicgames.com/documentation/en-us/unreal-engine/environment-query-system-quick-start-in-unreal-engine#2-environmentquerycontext ) , which should greatly simplify the the bots and give them better criteria to find spots that see the player, but are also kinda close.

Here’s the EQS Tree:

Essentially EQS is a way to break up the navigation grid into nodes, each has a score and the EQS tree determines the score of each node. (Lower the better). In this case I have two tests for each node: Can the node see the current location of the player? Am I close to the player? Here’s another video of things kinda working but not fully:

I also fixed up the rocket so now it wont fly through walls

Here’s some quick gameplay of what I have atm:

It’s very silent right now…Also the stabby bots are quick as hell and I want some kinda warning for that. The gameplay right now is very serious sam and I want to tone it back speed wise. I think I might just slow down all the characters and add it some head bob.

Longer gameplay (with sound) below.

The map I was playing on isn’t great but I figure it might be better than that dev arena that I had before. I’m in the process of re-making the warehouse as a big static mesh so it’s easier on lower performance machines (right now it’s like 200+ meshes).

My 4090 fan is starting to spin up more often so I gotta feeling I might be hitting the limit of my “optimize later” strategy.

Build build build build

I made a real spawn location for the patrol bots:

Isn’t too much to it, just a bunch of boxes and a conveyor that spits out the bots.

I reworked some of the deployment logic so that bots are physics objects before they get fully deployed. That way I can do stuff like drop them off cliffs after being built.

The deployment logic now hardcodes the mesh’s position and rotation before playing the deploy animation (which is why you see them jump up in the second video). A way I can fix/clean this up is by adding a rollover animation which will play if the mesh is disoriented.

Right now the assemblers are attached to timers, when I get this hooked up to the survival game mode I’ll add control back to the game mode to dump out bots as needed.

I also added this guy in game

Doesn’t look great but I want to have one of these at the side of each assembler and allow some kind of “override” command or mini-game to stop the flow of bots or to flip them to your side.

The 5th rocket post

Added particles and sounds for rockets, also added a laser point to the rocket bot.

I made the rocket sound myself by doing a lame attempt to copy the image here (idk the context I straight up just googled “Rocket Sound Spectrum”)

Source: https://www.mdpi.com/2076-3417/13/15/9041

Fasulo, G.; Federico, L.; Sollazzo, A.; De Vivo, L.; Citarella, R. Hybrid Rocket Engine Noise: Measurements and Predictions of Acoustic Environments from Horizontal Static Fire. Appl. Sci. 2023, 13, 9041. https://doi.org/10.3390/app13159041

I did this by making some white noise generators in Abelton and filtering everything down using EQ 8:

Bassy Noise
Higher Pitched Hiss
Over Saturated mid region

Not a perfect re-creation (I did not read the paper also didn’t compensate for the A weighting, which I think they would add here?) but close enough.

The laser and rocket tail are just Niagara systems, the laser has an input that is updated every tick from the rocket bot.

I kinda want the bot to aim itself at the player, that way the laser gets shined in their eyes. But maybe next time around? I really gotta work on the base map for v0.0.1( or was it v0.0.2?)

I wanted cars in the map so I did a 5 minute car….yeah…

Sound-y Sound and Bot Deployments

I swear the snare isn’t as prominent on my pc….

Added in ai perception logic

(Also the hud is still crap and rockets fly through walls….)

Right now I have the detection radius at like 1m so thats why I have to rub against the robot to get it standing up. This required some mods to the AI tree:

You can see that “start Engage” block is now orphaned off the tree. The original blueprint essentially just found the player no matter the situation and copied it into the “target” field on the blackboard:

By removing that I pushed the selection of the target to the pawn itself. Now the general logic is: I SEE A PLAYER! ATTACK! Rather than being provided a player by the engine.

Unreal’s AI Perception is one of those things that are just kinda “done” in the engine and it works the way you expect.

The goal is that I’ll have some kind of assembly line that will dump out “undeployed” robots then they’ll get deployed and try to find you in the map. Also this lets me make lying in wait kinda situations with the bots. Also if I’m aiming for a killing floor style of wave survival I want to have explicit building spawners that play an animation and dump out robots.

Rockets….Rockets Everywhere

Got some rockets made, they use UE5 projectile movement atm. I hit a couple funny bugs along the way:

The final result turned out fine.

There’s 1000 things I want to fix on this (explosion sounds/effects, better reload animations, better looking rocket in general, tune speed blah blah blah). But the framework of the idea is there and that’s all I’m going for atm.

I also re-worked the explosion stuff into a library function to let me re-use explosions as I need them:

I also had the first instance of giving myself issues with the blend -> ue5 addon. Apparently unreal has no idea where you got the model from if you don’t have blender open. In my head this is totally reasonable but it took me by surprise (I always assumed it would dump the .fbx somewhere).

The rockets themselves have some brains in them:

Mostly just having a impulse on spawn which just launches it forward, then two timers to handle when to fire engines and when to just give up and explode.

My next goal is to get a v0.0.2 setup and running and handed out to a few people. Main things there:

1.) Re-work the warehouse map so it doesn’t look terrible and is kinda playable

2.) Remake the main menu

3.) Add explosion sprites

I guess thats it? I probably forgot something but I’ll figure that out when I hit it.

Rockets…man

Gameplay isn’t done yet but I got some paint setup on the rocket launcher and the rocket.

Threw a bunch of random phrases+numbers on it, still looks pretty cartoon-y (but so does everything atm).

Next step is to get the firing + reload sequence setup.

Misc.

Added a parameter to scale the grenade explosion radius so you kinda see where you’ll get hit:

Its setup via user parameters and HLSL which I havent used in a while (I was fluent in the xna days, but that’s pushing 10+ years ago now)

I might dig into this more just to get my feet wet again with custom shader code. Here’s the blueprint setup I had to do in order to get this working properly

Nothing crazy but I always treat actors as these sacred classes that I want to minimize. Therefore when I wanted the particle system to stay put after the grenade actor destroyed itself I started going down a detachment rabbit hole. But after some googling I realized I should stop being scared of spamming actors for whatever I need. In this case I made an actor that is JUST the grenade explosion holder.

I also started modeling this guy:

Which I wanted to make a “large” version of the patrol bot that has rockets on it, then I wanted to get a laser setup coming out the front. I’m moving towards the idea that each patrol bot has to reload after ANY burst, otherwise the game probably will be way to hard.

Probably will push more on this friday/saturday/sunday to get the new bot in place. I also want to retool the flashbang grenade bots to hold the flashbang in its “hand” as it goes off and reload. No real reason other than I think that will be sillier and give a distinction to the frag grenade bots.

Still need to make more maps, still need to make a higher level meta game, still need to add more audio. Uhhhggg I probably should make a trello board…