If last week was about establishing and researching core mechanics, this week was about starting to implement them on a base level, to make sure they actually work. As such, I continued to work on Project Nugget, and starting getting to work on the paint game.
For Project Nugget, I was supposed to get chickens to move as a group, to a point you direct them to in the map. The first thing I tackled was being able to click somewhere in the world. The thought of finding a point in the 3D world, from the 2D screen originally seemed daunting. However, doing this in Unreal turned out to be surprisingly easy with the Mouse Location to World Space node, and a line trace (ray cast). The real problem ended up being moving the chickens. I figured I’d have an easy time, thanks to the engine’s built in AI systems. I followed a tutorial to get everything set up, and it seemed like it should work. But it didn’t. After spending a while trying to make it do something, I decided to put it on hold. The other part was spacing the chickens out, which should have also been part of the AI system that wasn’t working. That was an easy (short term) quick-fix with placing individual chickens at a random point within an an area.
For the paint game, my artist spent a while wracking his brain over how we should be placing paint in the world, ultimately deciding on a complicated system with swapping textures. Then, I took him to meet my programming professor with me, to explain what we are trying to do. We received a lot of suggestions, including the use of decals. Decals were actually my artist’s original idea, but he was concerned that they’d eat up processing power fast with how many there’d be. However, along with the ability to dynamically batch them, it’s also the simplest option, by far. Which is where my favorite programming principle: KISS, “Keep it Simple, Stupid”, comes into play. There’s no need to over complicated, especially since we’re really just prototyping for now, and very pressed for time.
My work for the paint game was split in two parts. First, detect where the paint particles shooting out of the character’s feet were colliding with the world. Then, place our paint decals at those points. I think I sort of figured out particle detection, only to totally scrap it. The paint is coming out of the character’s feet, in a trail behind them. KISS. Just place the paint decals where the character is.
The big lessons I took out of this week were about communication. First, the fact that I should make an effort to get help from my professors, who inevitably know more than me, and are more than willing to offer help. Secondly, that keeping in constant communication with my teammates is incredibly important, especially when our work intersects. We both know things the others don’t, both in terms of things we can do well, and our own limitations.
Now, to get those chickens moving…