So this last sprint was crazy. I’d been noticing for a few sprints now that our art simply just wasnt where I believed it should be given the state of our game. Everytime I’d come into work on the project it felt like there’d been no changes or additions to the art of the game. So I decided, after contacting the rest of the art team, to do some quick overhauls of materials in order to make the game look more presentable.
After Clearing my intended changes with the art team, the first thing I did was implement Subsurface Scattering to all the materials that were made of, um, “flesh” and –since this is a game about being stuck inside a giant, planet sized space whale– that ended up being a lot. What this ended up doing was adding a lot more depth to the flesh of the walls and interiors of the spaces. That is part of the benifit of having an art style thats made up of gradient patterns; it creates an interesting clash between our low-poly, gradient artstyle and the more accurate lighting. Its almost comic-booky, or at least very stylized. Its one of my favorite parts of shader work, if you let the material do the work for you, you can ease up on some of the texturing side. (Actually this leads me to a side note where one of the art-styles I floated as a possibility was writing a custom fragment shader that would quantize shadows based off of a supplied LUT creating crosshatched shadowing on materials. This plan fell through when I realized that Unreal doesnt expose light vectors in its material editor– that and I didn’t know how to convert my GLSL knowledge to HLSL code)
Actually that picture brings me to the other big material-side change I implemented: Emmissives! I freaking love emmissives, they can add so much to a scene. The idea was that I would add pulsing emmissives on the mushroom spots and lighter parts of the “plant”. There was a bit of an issue: I didnt want the mushrooms all glowing in phase with each other; but both types of mushrooms shared a single texture. So I booted up photoshop and masked out each of the spots on the mushrooms to their own channels. from there I multiplied each of them by their own original spot color, times an emmissive Max. I then lerped in between those two values based off of the sine of current game time, giving us two different glowing mushrooms off of the same texturesheet, that pulse intermittently.
I also took advantage of the new subsurface scattering by adding in an area light to give the walls of the level a bit more of an ominous fleshy glow.
I also made a vfx for when the player Air-Slams (a move that knocks away most projectiles and launches physics objects). It was a pretty fun problem to solve. I knew I wanted a sort of ripple effect away from the player, so there had to be a refraction shader involved. What I ended up doing was taking a very low poly sphere, inverting the normals of the mesh to turn it inside out, and then built a refraction shader that could be manipulated with dynamic parameters. The result is pretty nifty:
I also did some standard coding stuff, fixes, and improved implementations but that’s not as fun to talk about
So, This week I had to catch up on my other classes. Last week I spent a considerable amount of time working on this project in order to get mechanics to a testable state. That left this week for me to take a lighter workload.
I didn’t really add much; the biggest thing was a fix that stopped bullets ignoring collisons and basically becoming unkillable monsters that just floated around the level for ever. It also handily stopped them from clump up on each other making a single deadly Murderball. I also did some minor health adjustments based on feedback.
Oh yeah. And I refined the turrets so they allow for more variation. I added a series of new projectile types, there are both homing projectiles and linear projectiles now; as well as variations that are immune to airslamming and explosions. In addition designers can now customise the order and timing of the spawning of the projectiles. I intend to add a bit more to this, and since I’ve basically entered mechanics freeze.
I’m going to sleep early tonight so I’m not going to elaborate much further this week. It was essentially a recovery and adjustment week for me. I had to revise a few things based on Team Feedback. Maybe I’ll upload a video or gifs later.
The combat system I’ve designed and started implementing for Belly of the Beast has its inspiration in bullet hell shoot-em ups. I like the idea of avoiding a huge number of projectiles that are moving in interesting ways being the focus of combat. The benefits of this design decision are several; It cuts back on the amount of AI coding I have to do in favor of more script-able “patterns”. The Focus on projectile avoidance plays into the existing movement mechanics as well, teleport dashing, and double jumping are helpful in avoiding these projectiles. Additionally Airslam now propels projectiles away from you.
As I was testing this new iteration I found that the grenade only exploding on impact made it very hard to deal with the sometimes worrisome number of bullets the turrets were spawning at me. So I built a mine function; left clicking now launches a remotely detonate-able bomb. Right now its just the same damage numbers as the regular grenade function.
Actually on the topic of Grenades, I finally got around to creating a grenade swapping system and better handling the Grenades in an easily extendable way; so new development will
On top of that I also began figuring how I was going to limit the players considerable firepower. In other words, a reloading system. Although technically its not really a loading system at all; its a charge system. Not charge as in Samus Charge beam (though that might be worth investigating); basically you have a certain amount of energy, and each grenade consumes a certain amount of that. You very slowly gain charge back naturally, but it also has a chance to spawn when you get hit and are below 50% health. If you are at absolute 0 you can reload one grenades worth of energy by slamming, as long as you currently have less than enough ammo to fire a grenade. This isn’t fully implemented yet, I hope to get it in this next sprint.
There are several significant bugs and the room that I set up for testing was poorly laid out; but despite these things the test went moderately well.
Thats it for this weeks update. Sorry It was so late
Since its October, and apparently #Blocktober, I wanna share a bit about how we’re designing levels for Belly Of The Beast (working title)
For This Showpiece Level, We started at the concept for the game: A First Person Metroidvania-like game set inside a giant space whale We Brainstormed how we should grey box this in a way that could also help convey the form of “inside an alien creature”
I’m absolutely in love with the concept art. Its fun and cartoony and dynamic and visually interesting and the color scheme is great. We took these images as inspiration for how to design our levels.
I created a metrics document to ensure that the rest of the design team were all building levels to the same specifications. (Boost Jump Height is 10 meters, Dash Distance is 7.5 meters, the minimum width for a standing platform is 6 meters, etc). From there the design team sketches out a overview of the level and diagram out the basic flow. (I Wish I took a picture of the whiteboard to show that bit of the process). After we all agree on the basic events and beats to a level, I begin primary blocking out. This time I had work to do for other classes which meant that my Level Designer, Ian Cotner completed the second half of the block out. When he was finished I reviewed the level and gave him notes, suggestions on how to improve the flow of the level and add more dynamic gameplay.
As this is our first time putting this level pipeline into practice, and as this is the very first level we’ve created for the game; it obviously has a lot of rough edges and is far more simple than what we have planned for the final product. But For a proof of concept I’m rather pleased to have it in the state that its in. The next phase is to have our enviroment artist, Tim Chartier do an art pass on it.
Next Devlog is going to be on the big question haunting this project since it was first greenlit.