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

Flute it up

I went into this then I found this bass sound and just kinda rolled with it I found a sound a liked and rolled with it (it a bit loud fyi)

Here’s the synths (where the concert flute is a sampler)

The flute is surprisingly nice is from the Abelton orchestral woodwinds pack: https://www.ableton.com/en/packs/orchestral-woodwinds/. That being said: a part of me thinks I shouldn’t have used the flutes, it kinda takes a dance thing and un-dances it.

I started working on the HUD also but I’m failing at keeping the scaling consistent:

I did put shells on the Assault Rifle though:

Not really a huge accomplishment but baby steps I guess?

Loop-dee-Loop and Todo-s

I wanted to mesh paint (https://dev.epicgames.com/documentation/en-us/unreal-engine/getting-started-with-mesh-texture-color-painting-in-unreal-engine) a bit in unreal and thought “Oh I’ll just flip this virutal texture box”

I have a pretty good pc (4090 24gb) I’m surprised its taking so 5+ minutes (but then again I’ve made NO effort to optimize any of my materials…

That being said…

I guess I made things low poly enough that maybe this is inherently optimized….

But thats a detail thing that I can work on later, For the outside I want to:

  1. Make those back blocks look like a office building embedded into the rock
  2. Replace those generators with something that would flow better with game play
  3. Make a new texture for that platform. Tat texture is fine but I’m using it in like 12 places and I don’t want to mess with UV scaling just to get it working
  4. Make some static rock models to place along the edges of mountainous regions so I it doesn’t look like a muddy ski slope
  5. Do something better with these conveyor belts. I put in WAAY to much time to make those kinda work, I might just delete them
  6. I have this cabinet which is kinda sketchy looking, it was supposed to go with a terminal but I might move it again
  7. Fix that lighting so that there isn’t a weird skylight for a warehouse setting
  8. Get some friends for that tree.

Also I need to make a better road texture, at far distances it looks fine but then you zoom in…

Every-time I look at it my graphics card fan spins up…probably a bad thing.

I also added a tunnel model

The UV’s and normals are REALLY messed up atm but I dont want to dig in yet. I fixed it by making the underlying material double sided but generally if you’re a single sided material and your model goes from looking like this in blender:

To this…

You should probably do it again….

But in the meantime there’s the magic “Make the material two sided” button which is normally used for meshes that have both an interior and exterior (which is not this….at all)

Still has issues. The darkness underneath comes from the unreal seeing that the normal of the face is facing in a direction that is into the block’s origin rather than away from it. This makes the lighting calculations get all wonky.

I’ve been disorganized when working this (also I stopped working it for like 2 weeks and now I’m lost) So I made a trello board here:
https://trello.com/b/dmIooAod/blacklaceworking-board

Broken into:
“Longer term goals”- Things I probably wont look into until I have something on steam

“MVP Make/Design”- Things I want to add to the game before I submit a demo/game to steamworks

“Fix/Improve” – Things that are in the game but need to be re-worked.

I’ll start chipping away at these and my personal goal is to get something ready to throw on steam by June.

Touch ups

I spent the day listening to old gorillaz youtube videos while working. Once I hopped on abelton I tried re-creating “welcome to the world of the plastic beach” by memory:

It turned out better than I thought after I compared it to the original. (You may notice the beeps from rhinestone Eyes I somehow got mixed up in my head and added to this song).

The hardest part here was the voccoder which I rarley play with and is kinda annoying to get right. So for my future self here’s the voccoder settings:

Here’s the operator that’s driving it

And here’s what’s being played:

Sounds pretty good, I think I could touch up the input noises more and if I got a better brass sound I think it would work better.

Otherwise I spent some time “vibe coding” to touch up the site. Vibe coding is just asking chatgpt to do stuff for you. I can still see why you would need an engineer to do this so I wont say its totally a replacement but damn did it take a 5 hour task and make it like 20 minutes.

(You can only see the above if you’re using a PC on the website) Both the top section and the bottom are custom shortcodes added into the site using by asking chatgpt a bunch of stuff. Here’s the PHP for the category stuff: This also requires a plugin, chatgpt suggested one but I found an older plugin that was open source and asked chatgpt to change the initial code that it gave me to that. It’s pretty crazy how simply that quick reconfiguration was.

//////
//Category Icon List
/////
function shortcode_category_icons() {
    if ( ! function_exists('get_term_icon_url') ) {
        return '<p><em>Icon Categories plugin not active or function missing.</em></p>';
    }

    $output = '<ul class="category-icons">';
    $categories = get_categories([
        'hide_empty' => false, // Show all categories, including empty ones
    ]);

    foreach ( $categories as $category ) {
        $icon_url = get_term_icon_url( $category->term_id, 'category' ); // get the icon URL

        if ( $icon_url ) {
            $output .= '<li>
                <a href="' . esc_url( get_category_link( $category->term_id ) ) . '" title="' . esc_attr( $category->name ) . '">
                    <img src="' . esc_url( $icon_url ) . '" alt="' . esc_attr( $category->name ) . '" class="category-icon-img"/>
                </a>
            </li>';
        }
    }

    $output .= '</ul>';
    return $output;
}
add_shortcode( 'category_icons', 'shortcode_category_icons' );

Also under the title page

That little line above I spent atleast 3 hours trying to get working before I started embracing AI. Chatgpt understood the problem and gave me a solution in seconds. Essentially it was adding a <div> to the “header.php”

Then some java script using another plugin that chatgpt suggested using “WP Headers And Footers” It was so easy that I imagine that it probably isn’t worth blogging too much about. But I see myself getting more into the ai dev side as I go along.

WHO DARES LISTEN

This one is all lame presets and out of key stabs

I need to add art to these on soundcloud so I feel like there’s enough effort put in. I was gonna do a generic album cover and came up with this:

Where I did NONE of that using reference images or 3d model tools (which I’m not 100% sure if I’m proud of…)

The background is just a sky blue fill with a cloud filter:

The grass is a green painfill and and hsv noise:

I then used a bump map on that to make bumpy text

Then I went back to the first layer, selected the text from the bump map input, and grew the selection and deleted!

“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 ).

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.

Flashy Stuff feat. Loop

Flashbangs are working.

I have the patrol bots hooked up to throw them based upon an enumeration (Which I dont like, I’d rather a subclass but I shot myself in the foot earlier on).

I just hijacked the reload animation and basically said “if you’re a grenade bot, reload, and instead of throwing a mag up throw a flash-bang”. Pretty stupid for now but its a good proof of concept, the shakyness is because I half implemented physical animations to handle bot hits. I’m still not happy about that, I want to move to a fully unreal animation setup because my animations are so simplistic but that’s another avenue I gotta go learn.

Also