Dissertation Diary: VR Arcade Retrowave Genesis [2/2]
Updated: Oct 25, 2020
Hello & welcome back to the dissertation blog!
It's now the end of week 3 of my first semester and the second post is here. It's not exactly ideal that the post number and the week I am in are mismatched by 1, but let's not worry so much about that. We have bigger fish to fry!
To start, I have successfully done some in-headset recordings of the various features that are currently in the project so that you can see everything in action. So now I can show you a much better perspective on how everything looks!
New Yet Old, Old Yet New
If you read the previous post regarding the dissertation, then most of what you are about to see should be self-explanatory. If you haven't, then go read it. Please. This site needs more network traffic so I can pop up higher on Google and get those sweet, sweet clicks in.
In any event, I'll give a brief summary of what you are seeing it each video in bulleted form, starting with the following:
The basic world setup
The basic guns & user interaction
The basic scoring UI (user interface)
The basic enemy spawn systems
Slightly more sophisticated enemies following a flight path
Enemies shooting lasers at the player
My first attempt at learning shaders & shader graphs in Unity
Now things are starting to get 𝓈𝑒𝓍𝓎 in here!
There is the obvious issue that the recordings are not in the typical 1920 x 1080 resolution (the usual rectangular shape you see a video play in). I found out that within the Oculus Quest headset, there are 3 'eyes' or main cameras that are used to help create the VR environment for us to see; a left eye, center eye, and right eye. The recordings are done by using the center eye, which discards some of the left and right eye data, giving us this odd video shape.
It seems there is a workaround to get the nicer resolution, but as I am more concerned about getting a new post on my blog page, I'll try doing this workaround for when I next have new things to show.
Those Magnificent Men in their Flying... Enemies?
As was shown last week, I created some slightly more advanced enemies that follow a flight path and will shoot at designated locations along this route. There are a couple of things I'd like to add for supplementary context with the video I provided.
First, the audio clip I used for the enemies when they fire is the same one used for when the player fires. This will of course be temporary and I will give these enemies a unique sound effect later in development.
Additionally, you may have noticed that it seems to play this sound twice when the prism enemy shoots. This is because the cube enemy shares the same fire locations with the prism one, so the second audio cue is actually the cube enemy firing. As explained last week, the cube enemy doesn't seem to actually fire at the player but instead somewhere off into the void. I still have yet to fully discern the reason, but it is on the watch list.
Something much more interesting you would have spotted is that these enemies explode into smaller cube fragments when we shoot at them! This is a possible death effect I am considering having for my project. As you have seen, I have variants of one of the space invaders in the game which have been made as 3D equivalents of the original sprites. I felt that making them explode into smaller cube fragments could be a cool way of having them die once the player shoots at them enough times, particularly since it fits the retrowave look and feel of the project very naturally.
With the way I have set it up, there is possibility to create some very cool enemy traits, like making smaller copies of a big enemy once you destroy a piece of them - much like how Asteroids works - so I'll toy around with it to see what could be done!
The Real Slim Shader
The final video shows my first attempt at creating a shader in Unity with shader graphs. To be frank, I don't yet fully understand the ins and outs of how shader graphs work, so I can't truly explain this in laymen's terms right now. What I can say is that by doing some visual scripting, you can achieve a diverse range of effects, from dissolving effects to portals.
The shader effect I am researching is dissolve shaders, which I think could definitely have their place within the game. I am considering using more professional models for my enemies as opposed to the more retro styled ones you have seen, which means that I would need a suitable way of destroying them in game. A dissolve shader I feel would pair naturally here, and could even be added so that it looks like the enemies are dissolving when they get past you if it doesn't get used as a death effect. We shall see!
The shader in the project isn't fully working as I wanted, the noticeable problem being that the sphere it is applied to goes from orange to black to orange, when it should be orange to transparent to orange. It also doesn't interact with anything in the game currently; the bullets fired simply pass through it, but I thought it'd be nice to show my readers everything that is in the game at this stage!
This pretty much concludes my coverage of everything that I have been working on thus far. My next steps will be to finish off some written documentation that goes with the proposal I did for this game idea, so I'll likely be working on that and not add too much into the Unity files this coming week. The document in question is about half-way done, but still needs quite a bit of writing added, so my focus will be on completing that over the coming days. Should I make any changes to the game files, I'll catalog it in next week's blog.
And so, with that, I thank you all for reading this once again, and I will see you in a week. Buh-bye! :)