Brick by brick

Made a brick wall thats waaayyy to detailed to put in game:

I did this after frustration from trying to make a brick wall just from a texture:

Which looks much much worse. This was also my first major step into using geometry nodes in blender (see: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/index.html) which essentially let you make parameterized geometry in blender. You can see the layout for the geometry nodes:

Essentially my version is a modified version of the stack exchange post here: https://blender.stackexchange.com/questions/311786/how-do-i-create-bricks-in-an-object-with-geometry-nodes

Looks like a lot but really there’s only Two parts (2nd part is repeated 3 times):

This first part just takes whatever geometry I defined (in this case a cube) converts to type of “volume” then makes a bunch of individual points in said volume.

Theses points are then passed into the “second” portion which is essentially this flow repeated a 3 times:

This essentially says “Make a cube of size 0.25m 0.12m 0.065m, copy and paste the cube on each of the points, offset the position of all of the points chosen by my selection array by 0.06m, and set the material of all of the cubes to the brick material”. The incoming “selection” line to the “set Position” node comes from here:

“Index” is set for each cube on creation from “Instance On points” so If I make 200 cubes each cube will be labeled [0 1 2 3 4 5 …. 199]. What the “Floored Modulo” node does is take that index value and return 0 if the value is even or 1 if the value is odd, so that means the “set Position” will only be applied on even indexes, this gives the brick offset on every other row effect.

The bottom two portions here are for the mortar in between the bricks:

These are just smaller bricks that I apply a different material to then shove in between each of the bricks.

Now the problem with this is the number of triangles:

To give a frame of reference the first person view models should be “high poly” and the assault rifle for the game is around 4000 triangles.

So this would cause heavy performance issues if I actually put it in a game. There are solutions for things like this such as LODs (Level of details: https://en.wikipedia.org/wiki/Level_of_detail_(computer_graphics) ) and Unreal’s Nanite (https://dev.epicgames.com/documentation/en-us/unreal-engine/nanite-virtualized-geometry-in-unreal-engine) both would essentially dynamically change the number of triangles as you move through the world. However, I’m not trying to make the most photo-realistic things in the world so I think I might try to remake a wall with some normal maps (https://en.wikipedia.org/wiki/Normal_mapping ) instead.

Here’s a spin render of the brick wall:

Give me early 2000s nvidia vibes:

Touch-ups (also feat. boomstick)

Got the double barreled shotgun in game:

I also added in some tracers to make shooting a bit better:

On the back-end side I re-worked how damage functions, so now there’s falloff for shots: (Note the damage numbers in the corner).

This should make things a bit better in terms of longer range engagements.

I also added more limits to the bot’s ragdoll so the legs won’t just stick around when you shoot them.

Also Send to UE is broken in blender 4.5.2

https://github.com/poly-hammer/BlenderTools/issues/168

Also I’m starting to take that gameplay map and expand it out a bit

Finally I made a fence tool:

So progress all over the place.

“Time is the Enemy” (feat. boombstick)

Now that I’ve closed the gameplay loop I realized there’s really nothing pushing the player along. Right now if I just have “go destroy this thing” the gameplay would get stale very fast. To counter this I wanted to make some kinda timer that would force the player to go out and explore/accomplish their mission. I was thinking about adding something more akin to a base that would get destroyed if you did nothing but that would GREATLY increase the amount of work here (This human npcs, animations, sounds etc.). So I started making this guy instead:

The idea is that the robots are trying to destroy the world or something and they have these devices that are slowly going to rise up then come slamming down. The player will be tasked with destroying these devices before the end of the world!

This also give me the opprotunity to break down the game into phases (like “the first slam” the “second slam”, “The final slam”) to have the map change, difficulty ramp up etc.

Or maybe I’ll have a huge lazer come out the bottom of that middle thing?. In other news:

I resurrected a double barreled shotgun I had half finished earlier and I need to get it in game. This is very rudimentary and basically doesn’t make sense design wise. For instance:

That bottom bit is all one piece, so there’s really now way to open the breach. However currently all of my reload animations are just “hide gun” “wait a second” “Show gun” so for now I think I’m good.

Also I was thinking about adding a ps1 art style in this so I started messing with texture warping (which I honestly read zero about before hand so this isn’t great).

Seems like a good way to give people motion sickness…

Failing to make a Alert Light

I wanted to spend 30ish minutes making the alert light I talked about last post before work: here’s where I got:

At the end there the direction of the light is all wrong. Probably going to redo 100% of this later today (as it kinda looks bad anyways and a part of me wants the spinner in an animation).

It looks weird, I think its just the colors? And the proportions? And the shape?

Medical Devices

Spent some time building this guy. What I’m going for is a quick box that holds and dispenses syringes. The glass on the right is supposed to be translucent (but that will be kind hard to see until I get it into unreal).

Putting “First Aid” seems kind on the nose (no cool game design “implication symbols” or whatnot) but I’m still in rough draft mode here.

Next thing todo is to get a non-world geometry version that is a skeletal mesh that is in the players POV to play an injection animation (But honestly I might skip that in favor of just making the screen go green or something).

The heart is a Unicode ( ♥♥♥) and the “First Aid” Text are both just stencils I made up in GIMP

Gameplay Gameplan (From a Gamefan during a self-made gamejam)

So I was looking back at the last thing that I made for planning



and I already see the inherent problem is that I never made a “Game” sequence in addition to the boss building. In that vein what I was thinking is:

  1. OnStart
    • Spawn Player (give only the pistol)
    • Spawn “Protection” bots (i.e. a number of bots around each assembler)
  2. Every X Seconds
    • Spawn a bot (after checking if we have too many bots) and set the patrol location to the last known player location
  3. On Destroying An Assembler
    • Give the player a new weapon
    • Increase the difficulty of the other assemblers
    • Alert the Other Patrol Bots to your location from all assemblers (minus the patrol bots)

This seems simple enough but there’s a few mechanics I do not have written yet.

  1. Bot Patrol locations/target locations
  2. Player Pickups
    • Both Health and Weapons (Weapons can be magically granted I figure)
  3. Patrol bot synchronization for alerts etc.

Bot Patrol Locations

This was pretty easy, I just updated the EQS query to be set around a specific location rather than the location of the bot. This changes the scores so the bots wander around a fixed point and don’t leave its radius until its engaged.

I also had to update the Blackboard to hold this value, so I can swap it on the fly

Now to update the guard point for a non-deployed bot I just set the “IsGuarding” flag to true and the “GuardPoint” to wherever.

Player Pickups

I think I want the health system to be a set of stims rather than recovering health or anything else. So I started modeling up a health station in blender

and syrettes/injectors/needles/syringes are kinda easy (I did this in 5ish minutes, still need a touch up).

My hope is to play an animation before giving health, essentially I want the player to show the syrette then pull below the frame and inject. This should save me animation work (hopefully).

Game Mode Work

I got the initial game mode made and the spawn but I also made a data table which holds difficulty settings

The idea is that each assembler will have a number of randomly generated guard bots which will patrol around the assembler and a set list of “wandering” bots that will be assembled and run towards the last place the player has been seen.

Right now I have the gamemode start working I just need to get the player alerts working. Which In my head I think I want each assembler to control their fleet of bots so the chain will be:
A bot sees the player and alerts their assembler with a location > The Assembler Then alerts the game mode > The game mode gets the new position and sends it to the other assemblers.

This way I can also setup alert radius’s, a limit of reporting etc.

Zap

Put the turret in game and nearly went deaf trying to make a good laser sound.

I was trying to use electric with operator to make a good “wirrr ZAP” sound. But I ended up just making garbage that made my head hurt (Lower your speakers before playing)

I also made a scorch mark decal in gimp:

I was doing all this work to get good edging effects but the “smoke” brush seemed to work fine!

I setup the explosion from the weapon library to have scorch marks on the ground:

My initial reasoning behind making this is that I wanted the tower I made earlier to make a line as it tracked you across the ground but I pivoted to make the tower just shoot a single explosion.

The tower now detects and tracks the player. I just setup a big collision trigger around the tower that grabs the player as a variable on overlap. Then I added in some laggy tracking code below.

I also added a plasma laser thing Niagara effect:

Surprisingly there wasn’t a torus primitive model in unreal so I had to whip one up really quick in blender (its like 3 buttons to make this in blender).

I went down a bunch of silly paths trying to make the rings conform to the beam including trying to custom HLSL (see: https://en.wikipedia.org/wiki/High-Level_Shader_Language) via a Niagara module (https://dev.epicgames.com/documentation/en-us/unreal-engine/creating-custom-modules-in-niagara-effects-for-unreal-engine ):

This SHOULD HAVE worked not sure why but I gave up and used a “shape location” module which distribute the meshes along a cylinder of radius 1

Worked the same…

And the final result:

(Still working on the rotation logic which is why it randomly flips 360) No damage atm but I still dig the tower and the effect of a bright flash then an explosion. Kinda reminds me of Slave-1’s seismic charges:

Now my next plan is to:
1.) Hook these turrets up to terminals
2.) Add health to the turrets
3.) Add a “you win” screen
4.) Make this map:

5.) Make Menus
6.) Make demo
7.) Put on steam

Frightening Lamp Post

I got stuck on making the “boss” spawner thing so I decided to think more about what’s defending this boss area rather than the spawner itself. So I came up with this:

Which is just kinda a stick with a gun ontop….that being said I kinda dig it. I’m going to put some more time into this model and probably use a placeholder cube to get a simple level setup using the new game mode.

Honestly this might be one of the cleanest looking things I’ve ever made.

The thing I did this time around when modeling was to break apart models when I didn’t like the way the smoothing looked, not sure how that will translate to UE5 but I’m happy with the flat shading of this guy.

From a gameplay perspective I think I’ll have this thing shoot plasma or something that way I don’t have to have a loader mechanism for rockets (which I want to say is a pet peeve of mine but this). Which is why there’s little wires above the two tubes:

And the rear side looks like some kinda battery pack.

Also bots man:

Meh/Unreleased game

I have so much trouble trying to model the stock for a side by side. I had an old game concept that I had a single barrel which looks pretty sketch.

It kinda looked right but if you zoom in you see some issues:

The original game I was calling “shotty” and the idea was that you would have trick shells like hawkeye, here’s the gameplay of where I left the game:

I had a bunch of shells I made in substance painter which I thought were neat:

I think the animations were where I put in the most work:

But I never really had a good “game” for it, it was all mechanics. I might revisit this in the future but for now I want to focus on blacklace.