Hey, nice to see you again, and welcome the newest entry in your favourite weekly update blog!
Last week had quite the development, not gonna lie.
There was a lot of brainstorming, modelling and coding. Needless to say that I got a lot of things to say, so let's get right to it!
First, I'm happy to say that all of my models have their LOD done! It's was quite the task, but I think it was really needed!
From that point on I got to remember to do these LOD on each model I'm creating. That way I don't need to stop everything redoes the modelling afterwards.
Another great improvement I made was with GPU Instancing.
Previously, some of my game objects got their mesh changed to fit certain situations. This was convenient and was overall really easy to do...
There were even some meshes that were procedurally generated altogether.
What I've missed, however, is that even if most meshes were the same, Unity was still considering them as different meshes altogether.
With that, I was missing out on dynamic batching and GPU instancing. While my shaders were properly configured the other prerequisite for GPU instancing was that each model is the same.
Because of this, I've decided to revise my model-changing workflow.
The gist was that I could generate and modify these meshes only once and simply reference those to all game objects.
With this, I was able to greatly reduce my lag by batching most of my meshes. Needless to say that this had quite the effect on my frames.
Plus I was able to rectify some of these procedurally generated meshes that quite honestly didn't feel quite right...
So, to rectify my really basic procedurally generated door meshes, I've decided to model out a more Vaporwave-ish door.
Here are the results:
While these surely had more poly in them they also got LOD from the get-go. I've got to say I like this design a lot. It really feels Vaporwave and looks a lot more detailed than previously.
Alt Routes and Alt Doors
While working on doors I've also decided to rectify alt routes.
For those who didn't know, alt routes are alternative routes that the player can take. Depending on the player's luck they could spawn or not... To get in, they need to pay with crystals.
To put it simply, the player will be twice as lucky while travelling on the alt route. Every loot will actually get a second luck roll if their first one failed.
One of the drawbacks of it is that there aren't any special rooms at all. It's really just a way to get objectively better loot to have better odds later on.
But anyways, to get in the player need to locate specially marked doors. Here's the design:
You can easily know this door is special with that nice linen barrier. I honestly also think that there should be a bouncer here too, just to cram in the idea that this is for VIPs only.
I'm also not sure if I should change the door's colour to make it even more obvious...
Breakin' the Law
Next up, I want to talk about the mall for a bit.
Basically, with all that LOD refactoring I've decided to split up my mall geometries and put them in different layers. This way I can easily control which light interacts with which geometries.
At the same time, I decided to add a functionality that I had in mind for quite a while: breaking the mall's windows.
The idea is that there would be items behind those windows. Normally they won't be buyable, but if the player breaks the window then they would get it. AND for free.
But, that's considered robbery so there will be consequences.
When those windows get busted, an alarm will go off. The light will also turn red-ish (or the colour of the sun to be more precise).
Now I'm not quite sure what else to put, but it's either that some cops will be placed at random on a level or that all malls will be closed from that point on, but I'm not sure.
I know Spelunky goes with the "vengeful owner" path, but I don't really know. I guess I need more brainstorming.
I'm also not sure what kind of items would be displayed. I had the idea that the more unlucky you are the rarer the items would be or something like that. That's another point worth brainstorming about.
Finally, let's talk about boost packs.
To put it simply, boost pack are one-time use items that give you some kind of advantage at the beginning of a run.
For example, there might be a booster pack that gives you an Attack bonus or even one that can give you a piece of equipment.
To buy these, the player must find a Super Shoppe. It's a kind of special rooms where the player can buy persistent items with their crystals. (think of it as an in-game shop of some sort).
That room isn't modelled-out yet, so there's no way to access them yet.
When the player buys a boost pack, it gets added to their collection and each savefile got their own collection.
When the player is about to start a run a boost pack can be selected in its collection. Once the run starts the boost pack gets used and is removed from the collection.
I've also started to add these late in the week, so there's only one kind of boost pack as of yet.
There's also no ways to apply these right now too (Missing GUI).
Anyways, most of these would take the shape of some kind of billboarding sticker-ish thing.
Take a look at these nice placeholders :
These are actually just stats-boosting boost packs. The smaller ones cost about 10 crystals and come in different sizes.
And, you guessed it, the size affects the cost and their bonuses.
I'm still working on them but the actual code is actually all written. I still need that GUI and that special room though...
Rectified the art style to be more "Low-poly-ish"
- Added those nice hard-edges and whatnot
Modified most of my weapons materials to be emissive
- Because, you know, UX and all
- Refactored most of my UI to remove those hungry layout and canvas components.
- Added a permanent money counter at the bottom of the screen.
Added a ＡＥＳＴＨＥＴＩＣ texture to my gun's grip
Optimized the light system of most of my special rooms.
- Changed most item LODs renderers to be on a better layer (Based on where they are spawned)
- Refactored my rooms classes to remove duplicated code
- Fixed bugs with alt rooms not being properly closed
Changed the catenary curve mesh generator to add highlights
Not gonna lie, I doubt that I would be able to make a demo by the end of the month, but I'm still prioritizing the most crucial functionalities as much as I can.
Next week I will continue with the Boost Pack. I will also probably continue with optimizations and profiling altogether.
Otherwise, I need to take a moment to brainstorm. We're at that crucial point where I need to focus on how can I ramp-up my gameplay. I also want to make much of my current actions as juicy as possible, just to get the game in a presentable state.
Afterwards, it's your usual suspects (God bless these may they never change😌).,,
There are also lights and also going through my meshes again and push for that low-poly redesign.
Needless to say, a lot of work is ahead of me...