The driving focus of this week was to finish level design of the first area, start blocking out some of the rooms with the rough sketch level designs within Unity and begin working towards implementing additive load.
Programming
I spent a little bit of this week relaminarizing myself with Unity overall by implementing something simple that will build up to something more complex later and that was scene switching.
It ended up being a decently good refresher as it was something that reminded me about a lot of what Unity does for the creator and what the creator needs to do for Unity. The process behind the scene switching is relatively simple, the white bar in the video is a portal, it is the means of which the code to trigger the player to swap scenes happens. The portal has a collider with the "is Trigger" toggle ticked on it, this allows for Unity to check if something has collided with it but not actually take up space in the game world. I then gave the portal its own layer in the layer drop down of Unity for the sake of programming the check for collisions later.
This is a method in the player class that checks the collisions between the player and the portal, it uses an overlap circle to check if the player's collider overlaps with the portal's which is found on the portal layer, it does however let the player walk a bit before triggering the effect as I didn't want to have it happen at the slightest touch. Afterwards it checks if the collider is valid and uses an interface called IplayerTriggerable, it then performs a coroutine to engage the switch scene.
The variable scene to load is set within the editor to make things easier on ourselves. However I ran into one small issue, upon loading the next scene the player and the camera were destroyed as Unity destroys on load. I remedied this by creating a new object within Unity and naming it Essential Objects and I then put the player and the camera under it as child objects. Then I wrote a simple script to prevent the parent game object from being destroyed on load thus protecting the player from being destroyed.
There you have it, the code works and the player shifts between scenes no problem, this will then build up to the implementation of additive loading to reduce hardware strain.
Unity Extras
Some extra things I did in Unity was import a trial sprite sheet and implement Cinemachine camera. I also adjust the build order so that the levels I needed actually worked in scene switching.
Level Design
This week I really struggled and spent time thinking about how to make an interesting starting area that wasn't too hard but also still had some challenge.
I added some new notations to my sketches as I began to think about how the player might double back around to some locations from alternate entrances and marked out the path they might take with blue. The red is the primary path, the one expected with the minimal amount of upgrades at least for now. The objective this week was to finish the first area and I wasn't able to, though I am pretty close and there is considerably more rooms than last week.
This was our level design document last week.
This is our level design document this week a steady gain of rooms this week. However I did note a small problem none of the sketches are anywhere close to being decent size for the player to move around in the game, I found this out when I blocked out the spawn room in Unity. We knew this was going to happen as we didn't have exact measurements but at least I was hoping that it wouldn't be this huge of a disparity. It's going to mean a lot more playing around in Unity to get the sizes right.
Reflection
This week was hard for me, between school assignments, work and other responsibilities I had a hard time working this week. Overall I felt drained and didn't feel like I was able to do as much as I wanted to. I also felt pretty exhausted on level design in general, designing rooms over and over again and thinking about how they fit together and where to place enemies took a bit of toll on me. I am still proud at some of the rooms I created, I think there's some real solid ones there, it's just they took me far too long to make them than I would have liked. However on a brighter note I enjoyed programming a fair bit even if what I was doing was relatively simple and it really helped to keep my spirits up and reinvigorate myself for next week's goals of finishing touches on starting area and starting one of the secondary areas, most likely Hell's Ascent. I will also attempt to go further in implementing additive scene loading. Come back next week for more exciting updates!
Comments