November 20, 2017
Getting Started with Google Blocks and Unreal Engine
Modeling in Blocks was the only hard requirement as it was the main focus of the project. I wanted to add a little complexity to it by bringing it all into Unreal together for interactions. It was such a great way for the team and I to mutually learn from each other and work together. At the end of the two weeks, I showcased my demo to the team with my results and findings, which involved compiling data such as what Blocks excelled at, things I wish to explore further, what I wished I took more advantage of, and a few other data points which you can explore below.
Unreal Engine 4 Experience
So, how did I get into this position, you may ask? After college I was part of a small indie team. We designed a small mobile game and released it to the App Store where it was well-received with over 100,000 downloads. For our first app, we were ecstatic! At the time, we were using Unreal Engine 3. The workflow was different, and not as easy as Unreal Engine 4, but still very artist-friendly.
Unfortunately, the team disbanded not too long after that while working on our next game. I moved on and went to work for Lockheed Martin as a Multimedia Design Engineer where I developed 3D models and environments for various forms of training from aeronautical and rotatory to nuclear power plants. Essentially I was still making games, but with different objectives.
During that time I kept making little prototypes and proof of concepts for game ideas, now using Unreal Engine 4, with a really good friend of mine, Brad Colson, who was also part of the original indie team. We were both very busy and working full time jobs, but loved exploring game ideas and eventually wanted to create our own original title as a two-man team.
At this point, I’ve lost count of how many projects we have started -- many to test mechanics that one or both of us have been interested in and a few that we have tucked away for potential larger projects when the time is right.
Throughout that time I’ve gathered a fairly strong understanding of Unreal Engine 4 and have used it as my engine of choice since before it was made public, getting to be part of the beta almost a year before release. I’ve had a lot of fun with the engine, including side projects like recreating Ash’s room in-engine as both a video and a VR experience, which you can see below.
In the near future I’d love to get some of the game ideas that we have been writing and collecting fleshed out into completed UE4-powered projects, but for now, I’d like to walk you through the art project I worked on for Google.
The Google Blocks Project
The project was simple: come up with a virtual reality project using Blocks within a timeframe of two weeks. A project like this usually entails making a cool environment that can then be shared with the community via the Blocks gallery, a video or still renders. Knowing that two weeks is a short amount of time, I wanted to take on the challenge of building the environment, but also bringing it into Unreal Engine 4 to add interactivity and take it from a purely visual to a short interactive experience.
Unreal Engine 4 has been my game engine preference for quite a long time now simply because of the power that it unleashes to artist. With minimal to no programming knowledge you can easily prototype just about any idea you can think of.
I also thought that it would be pretty to cool to use software from friendly rivals. Blocks was developed in Unity 5 so the majority of my models would be made in Unity while being realized and developed in Unreal Engine 4.
The Initial Ideas
For the initial idea I wanted to create three or four small environments, that as the player went through and solved simple puzzles, would move, come together or grow to make a single environment. I played with this idea for a bit and built a quick prototype in UE4 to test out the movement and simple mechanics. After some testing, I scrapped the idea. I really liked the thought of growing the world around you, which is something I want to explore further down the line, but mixing that with movable pieces in the scene would most likely lead to the user getting sick.
There were few other different concepts that I tried. As always in the beginning, they all sound fun and practical. Blocks quickly allowed me to build a mockup of each for testing. I didn’t have to spend too much time on them to get something that I could drop in the engine and test.
For one, I wanted to make little block worlds that the player can walk around and explore. They would somehow connect to reveal other parts of the level.
Concept 1 in Blocks
For another one I wanted to take the connecting aspect a little further and have it so when the player collected certain items in each block they would come together to form the Blocks logo. After some quick testing, a lot of the vertical and horizontal movement would make the player feel a bit uncomfortable so I ended up shelving that idea as well.
Concept 2 in Blocks
I decided to pivot. I increased the size of the scene and made it an interesting place to explore, somewhere that you cannot physically go to, something alien yet relatable. I went with a small tech-organic island.
Blocks Isle is an island that is much bigger than the previous mini block concepts, but without the elements that could get a player sick. The player can explore the island and try to discover what happened to their missing friend while solving a few puzzles. I had to remind myself a few times that I only had two weeks to get this done so the scope had to be limited.
From that concept the basic story of the experience was born.
It goes like this: Your friend Jasper went on another one of his crazy adventures. This time he decided to explore the mysterious Blocks Isle. It’s been weeks since you last heard from him so you go to his last known signal broadcast location.
This is where you begin. I ran through the prototype and it felt good. The entire experience is a short one at about 20 minutes.
Throughout the Isle you’ll find logs and notes left by your friend Jasper as he records his findings on the mysterious island. You can read or listen to them to help uncover information that may help you on your quest.
Here are some screenshots of the Isle in-engine and in Blocks
Blocks Isle in-engine
Blocks Isle in-engine
WIP of the Blocks Isle concept in Blocks
Modeling in Blocks is such a joy. I’ve stated before how freeing and creative the feeling is so I won’t go into it. I will say, if you have not tried it out yet, definitely do so. It’s been one of the most fun ways to create low poly models while also keeping a perfectly consistent look and visual language.
I will also mention that Blocks is an amazing tool for spatial prototyping. Before bringing into Unreal I found myself blowing the scene up to actual size, standing in it, and using a combination of the move grip and me moving my arms back and forth to simulate walking within the space. It helped me further understand how I wanted the player to navigate the space and where certain things may need to be placed. This saved me so much time.
Tag teaming both Blocks and Unreal Engine 4 worked very well! Blocks allowed me to visualize and be in the space during the modeling and conceptual phase. Unreal is like giving an artist magical powers. With it I am able to fully build a proof of concept and implement functionality without being a professional programmer.
Unreal Engine 4 Functions Prototype
I found myself spending part of the day in Blocks experimenting with concepts and the other creating basic functionality for those ideas within Unreal. This method allowed for really fast rapid prototyping and was later quite beneficial when populating the space with art assets.
Even though I am very proficient in traditional 3D modeling, I think the project would have taken me much longer to put together using traditional methods. Blocks helped me eliminate steps in the process. While traditionally I would model out the scene and throughout the process export some pieces, bring them in-engine, place them, and move around to get a sense of how the space feels, all that got combined inside Blocks. It was a big time saver. Oh, and not to mention color exploration. If I wanted to try out colors I would also have to create materials and place them on each asset during the in-engine test which takes more time. I can easily preview all of that in Blocks.
After all is said and done I had to take the geometry from Blocks and bring them into a 3D program for unwrapping and lightmap baking. So that part of the process is still there.
I kept a lot of the UI very simple for this, so simple in fact that’s there’s almost no UI at all. The only UI visible is the descriptions that you toggle on items and the tooltips that pop up on the controllers when you hover over interactive items.
Because the experience is usually short, there’s not a lot of time to train the player. As a result, one thing I noticed when testing was that people were missing or forgetting what some of the buttons did. To mitigate that I made the controller have context-sensitive tooltips that appear when you hover over an item. They also highlight the buttons associated with actions, and this dramatically helps the user. It saved me from having to include a longer tutorial session that the user would potentially forget.
UI is something I want to spend more time exploring in the near future but for this project, this method worked well.
One of the best pieces of advice I can give is to keep exploring and always stay hungry. Be on the lookout for new tools that can improve your process and do not be afraid of trying something new. If it doesn’t work out, it’s ok. We learn so much more from the challenges we take on than from the ones we do not face by walking the easy path.
There are some amazing low poly games and artists out there and I think they would truly benefit from making models in VR using Blocks. If I was able to put this small project together in two weeks, I can only imagine what a small team can do with more time. I, for one, really want to see that happen and am very confident that we will see it soon. Give it a try and don’t forget to post your creations online using the #MadeWithBlocks hashtag. Please reach out if you have any questions or just want to share some of your creations!
You can download the project for free though this Gumroad link.
EDITOR’S NOTE: This post originally appeared on Jarlan’s blog on Medium, which you can visit right here.