Making trees in Unity

Turns out trees are blessedly easy to make in Unity, so for once the assignment went swimmingly. Well, the second time: the first time materials were bugging out and we downloaded three different tree packs from the Asset store and they didn’t come with the properly-designed textures.

Unity literally comes with ‘tree’ as an available 3D object, and when you add it you can just start fiddling with its settings to make trees. Though I did keep getting this crash when trying to add textures to leaves, but I got around it by creating my own texture and applying an alpha channel.

Procedurally-Generated Terrain

Completed another homework assignment for ProcGen class.

This is a procedurally-generated terrain. You can adjust the sliders and it’ll make it look different.

And, uh…I guess this is the same thing??? I don’t know, I made these with Quinn walking me through every goddamn step. It feels like outright lying for me to turn these in as my own assignments, I was a glorified AutoKeyboardPresser as he just explained every little step and walked me through the most basic of actions. I’m not blaming Quinn, he did his job as a tutor getting paid by the university, but I’m not learning. This exercise felt completely pointless because I can’t even recall a single step about how these terrains came into existence.

But I mean, working in Unity in any capacity, no matter how small, can’t hurt can it???

Unity noise-filtered procedural mesh

Noise homework completed, with Quinn’s help. We created C# scripts, named MeshCreator and CubeMaker, and used them to spawn the 20×20 grid of cubes. We then downloaded a Perlin noise function from a professor-supplied website and tied that function to the height of the cubes. This caused the cube’s height to change depending on the noise function, creating this wavy-water effect.

Upcoming project: Noise in Unity

posting from my iPad because I’m exercycling and my desktop is streaming Overwatch League. The doctor informed me yesterday that my blood pressure and cholesterol are both slightly high, which I partly blame on there being nowhere to eat near college except a McDonalds and a Jack-in-the-box.

Another homework assignment for ProcGen class, this time we need to make a 20×20 field of cubs whose top side has a randomly-generated height. But we gotta add a noise function so each cube tapers into the next, so basically we’ll have a nice “calm waves on an oceantop” feel. I’ve completed part 1, spawning a single cube, since we just had to paste the code from class into MonoDevelop, but I’m struggling with the next step, duplicating said cube into 20 via MonoDevelop, not just duplicating the cube within the Unity visual editor. I meet up with Almir tomorrow, hoping he’ll be able to help me going forward, and I’ll report what I learn here.

In other news, a friend of mine is submitting their novella to a publishing contest, and they were acting really scared and self-deprecatingly fatalistic, so to show them they had a good story I wrote a quick rap summing the plot up. I originally synced it to some royalty-free beats but it made the song really repetitive; if I can learn to make my own music I’ll reexplore adding music but for now you can listen to the raps a cappella. If they win the contest, I’ll link you to their novella!

Final result on them particle systems

The C++ one is now downloadable from the same URL You can get all my other SFML projects:

My initial Unity effect, an explosion with shockwave and smoke, is admittedly really bad.

I was still wrapping my head around how to do anything, and I hadn’t gotten into the “lets really fuck shit up” mindset that usually leads to creative results. Case in point, the rainbow hellfire I somehow stumbled into after setting enough sliders to bizarre places:

I mean, I’m not gonna toot my own horn, but that actually looks decently cool. I replaced the default texture with my own, added tails, and streeeetched those tails out; they’re actually the majority of the effect. I originally had the camera at a birds eye angle, showing a big circular ‘radiating out’ effect, but it looked a lot cooler when you stuck the camera right in the middle. Looks like you just got nuked by Lisa Frank or something

How to make a particle system in C++ and/or Unity

I’m just gonna write down everything I remember from the crash course Ahmet gave me tonight on the two particle systems I just had to make for homework.

For the C++ one, we had to make a particle, a particle system, and a main for where the two interact. The particle started off with a header file, where we defined the particle and the various pieces of the particle that made it what it is (initial velocity, initial size, initial color, initial texture, and I think a few others.) Then we created a .cpp file where we typed functions that defined where the particle spawned and what it did. Most of these weren’t literally what the particle did, more like “a bunch of variables showing what the particle will be doing once the ParticleSystem tells it what those variables are gonna be” since 90% of the project requirements involved making sure everything was variable.

So once you had that, the ParticleSystem mostly housed useful functions for determining random numbers, and it had the actual functions that spawned particles using for-loops. There was a header file for the ParticleSystem, which defined what it was and what variables it needed to call, and then the Particlesystem.cpp actually did so, and added variations for all of those attributes we defined in the particle header. The main seemed to mostly define the game’s window itself and then call/draw the ParticleSystem and particle so it would actually appear in the game itself.

Unity was different, because it has a built-in engine for particles, so we didn’t have to code at all. We downloaded a bunch of free textures off the Unity Asset store and then grabbed an in-house item called a ParticleSystem from the repository. It came with all the settings caked right into a giant HUD, and you fiddled with them to get the shapes, sizes and behaviors you wanted. The way you string multiple pieces of the particle system together (i.e. explosion->shock wave->smoke) is by setting time delays on the last two so they don’t start playing until after the one beforehand finishes.

The way you made the shockwave was by creating a single particle, set to position 0,0 and speed 0, given a ring material and set to increase slowly in size. I spent way too long trying to make a circle of particles behave properly until Ahmet just told me the right answer to that one.

On C++, Unity, and things I’m actually good at

This quarter has been going great in some ways, not so great in others. On one hand, it’s going great in the ways that are actually important, but on the other hand…I guess I’ll get into that.

One of the classes, Procedural Generation, is kicking my ass. The first assignment is to make a particle system in C++. I have no fucking clue how to do that. Three different students have been helping me, but I’m literally just sitting there doing whatever they tell me, I just can’t make the mental links myself. Even after over five years of trying to learn how to program, I feel just as clueless as when I first tried to make that checkers game in September 2012. I know the adage is that you get better at something the more you do it, and the only way to fail is by giving up, but I have five years of blog posts showing just how terrible a programmer I still am after many, many different attempts to tackle that hurdle.

Said first assignment was actually due Wednesday, the professor gave me an extension. The second assignment, making a smoke effect in Unity, is due today, and I can’t figure out how to do that one either. Apparently it “doesn’t require any coding” and is done entirely in the Inspector, but that’s not doing me a hell of a lot of good because I can’t seem to get the inspector to do anything. Once again, other students had to walk me through opening the Inspector, spawning objects, applying textures to those objects, fiddling with those objects’ settings, and now I’m at the point where I need to spawn a new object that represents the explosion before the smoke. I don’t even know how I’m supposed to transition between these objects; is there a ‘timeline’ object that lets me disable the smoke effect until the explosion effect happened? I guess I should ask somebody but everybody else already went home for the night. I’ve been working on actual useful shit like marketing Major League Magic.

Yeah, Magebrawl got renamed, and I wasn’t super jazzed with the new name until I started writing it everywhere. People seem to really like it, and it’s made marketing honestly a lot easier. Right now I’m scripting out a 20-second promotional video, and I’m also in talks with Mixer, the Microsoft-founded Twitch competitor, to get a developer’s account, which will stick us on their front page whenever we stream. That’ll be huge for exposure. It frustrates me how I’m actually enjoying this marketing element, and I’m good at this marketing element, and yet I’m forced to keep sitting here feeling like a moron as Unity and C++ duly refuse to do anything I want from them. I don’t know what else I need to prove that I’m just not cut out for programming.

Am I sabotaging myself by mentally giving up? Probably, but for fucks sake, five years and I can’t even spawn a goddamn object without getting help. I have over a dozen completed Unity projects, you’d think I’d know how to do something in the engine by now. I paid $75 for PlayMaker, whose reviews wouldn’t stop crowing about how it makes Unity a billion times easier to use. Perhaps it is, but a billion times zero is still zero.