Hello there again. Like I stated this Monday, I wanted to update you all as to the progress of my VR game I am currently developing. As I’m getting used to using all the tools in the Engine, things are starting to pick up and I’m making some progress!
After I was able to create the audio and match it to events with the blocks, I began experimenting with the plugin. Although it was placed on one object, I tried accessing other actors with it to see how far I could use it in the level. This worked out great and I was able to make a separate cube bounce and change to a random color to the beat.
Moving onto my next action item, I needed to find a way to add a ring of light that expands over the surface of the landscape giving a ripple effect. This was inspired by the ghost from Destiny. When you pull your ghost out, it lets out a faint ripple over the landscape like its scanning the environment. I needed this for my game, but it proved way more difficult than I imagined.
Figure 1: Video reference of what I was trying to make (NOTE: I did not create this)
To divide and conquer this problem, I wanted at first to be able to control the material of the landscape environment. By looking over many tutorials, I was able to get a grasp of how Unreal handles textures and finishes that apply to them. I’m excited with how much you can do with materials beyond what I was trying to do!
As a simple test, I changed the landscape to a random color with a click of the button. I did this by trying to use the “Dynamic Material Instance”, which basically lets you change the material during the game. This did not work and I realized that this feature does not work with landscapes for some reason (proved by testing it on a regular box and it working).
To fix that problem, I realized that the landscape needed to be reference by what’s called a “Material Parameter Collection”. This is where you can create scalars and vectors and then reference their values from within other objects to change them! In other words, I could change my landscape’s color! By applying this, the second piece of information was to apply something called a “Sphere Mask” on my material. This creates a sphere of material that differs from the original texture. For example, if I had a grass texture, with a sphere mask of marble, I would see a circular piece of marble in my landscape (at my predefined position).
I used this with the sine function to create a thin ring in my level. By using a timeline, I was able to have this ring expand over the entire map giving me my scanning effect. This texture was applied to the “Emissive” property on the material so it would glow and draw the player’s eye. With this tool created, I set it to the side to be used when I had other art assets complete.
The next part I moved onto was to solidify my story. At the point of my game, I had a general skeleton of my store with a couple of plot points, but didn’t have it all figured out yet. I had my fiancee, Carolyn, to help expand this idea a lot and we covered a lot of ground. I still have a way to go before I have solid levels created that match the story, but it was enough to go off of to keep creating some assets for my game.
Sorry I can’t go more in depth with the story; but then it wouldn’t be that fun of a game if you knew everything about it!
The last section I worked on today was to start building the first level of my game. I also watched a couple of tutorials of things here an there to get my bearings. After concentrating so hard on completing a milestone, concentrating on a brand new section of the game with the same focus is a little difficult at first.
Right before writing this blog post, I created my first enemy character purely with C++! Woo hoo! This felt really good because I had spent a lot of time learning the language, but did not have a chance to use it yet. The other milestones I created were based purely on blueprints because of how they were initially created. After starting the creation of the character and get past the Unreal lingo, writing the code felt like slipping back into a familiar shirt, so to speak.
For the future, I’m planning on working on finishing more enemy characters so I can have my player interact with something. This way I can test my gameplay mechanics before I get too in-depth with any art assets. At the moment, I don’t have the hardware I need to program the main character yet, but after Christmas, hopefully that will change! : )
Until then, I hope you all stay positive as we try to figure out what we’re doing on this rock flying through space. In the meantime I’ll try to create some experience for you to enjoy the ride and hopefully learn something about yourself in the process.