Hey there!
Joakim “Jo-Jo” Nordborg here and I’m here today to introduce myself and tell you all a bit more about what I’ll be doing during the Submarine Explorer Project.
So who am I? I’m the second programmer in the project alongside with Richard. But where Richard will be focusing on programming is to make tools and plugins for the designers to use, I’ll be working with the technical implementation of sound and music.
Before I started studying programming I studied music production for Games for three years so I’ve always been very interested in implementing sound and music for games to create immersive and dynamic sound worlds.
So during this project I’ll be focusing on producing, implementing and working with sound through external programs such as FMOD and Wwise for a VR project.
Current work :
Now working with sound and music is both interesting and important for an atmospheric game like Submarine Explorer. However, having a working prototype is a must before the implementation of sound and music can even be relevant. So for the first weeks I’ve been focusing on programming core mechanics to make the game reach its prototype stage as early as possible.
As such I’ve worked with the following things
Submarine 3D Model (Alpha)
Basic First Person Controller
Generic Button system
Generic creature system
“Photo” function
Submarine Model :
To get us started I created a very simple placeholder model for the submarine so we can get a better feel for what it will look like when we get the VR headset started. To make it easy on myself I just created a stretched out torus with half a sphere at each end to make it feel enclosed. Add some transparency to one of the spheres and you’ve got yourself a submarine.
Basic FPS controller :
A standard controller based around axises which allows the player to control their character using the keyboard and mouse made to be easily converted to use with a controller of different sorts.
Generic Button System :
Setup for player interaction with different buttons and objects in the world. Every button inherits from the generic button class which only contains a function made to be overwritten. This means that we can always interact with buttons as though they are a generic button without having to write specific interact functions for each button.
Generic Creature System:
Built with the same kind of logic as the generic button system. Since one of the main goals of the game is to photograph different fishes and sea creatures, we needed a way to extract information from them without having to write specific checks for each creature or fish. In this way we can photograph any creature that inherits from the Generic Creature class and extract information from it that identifies what kind of creature it is. This leads me into the photograph function.
Photograph function :
This was interesting to create since there are two approaches you can take in Unity (well there are more, i’ll just show the ones that I tried). Capturing the screen on windows isn’t hard at all since there are functions in Unity that allows access to Windows functions and as such we can use the Windows function for screen capturing which saves down a png file to the folder of your choosing.
This however creates a problem since it takes time for the file to get saved to the hard drive, either stalling your program for a few seconds or forcing you to write a coroutine. Another problem with this approach is that in order for the game to load the png and use it, we must wait until it’s been properly saved on the hard drive.
Taking a photo
If we instead take a different approach and read the pixel data from a rectangle on the screen, we can create a screenshot and save it as a texture, using it however we want in the game without having to save it to the hard drive until we absolutely need to. This removes the performance issue that the other option has.
Displaying the photo
The work ahead :
Now going forward with this project, my focus is going to change from developing the prototype to producing and implementing both sound and music as soon as there is level design and creatures to create it around. Hopefully that will come soon, until then I’ll be prototyping the heck of this game.
See you later!
//Jo-Jo
0 comments