[NARRATOR] Welcome to the Prototype Series,
a group of videos in which we explore creating small projects,
combining different Unity features.
In this episode, we'll give you an overview on how we created
this 2.5D Platformer with puzzle elements
and some extra advice from a professional indie developer.
We will separate the creation process
by talking about the Assets that were used
as a base to start prototyping,
how we took advantage of Unity's official visual scripting tool
in our collaboration with David Wehle,
creator of the game
to enhance the project's visuals. Let's get into it.
When starting a new Project in Unity,
it's always nice to have a set of Assets that you can use
in order to prototype your main game mechanic.
The Asset Store is a great place to look for props and characters.
For this particular Project, we downloaded
the 3D Beginner Resources to start building up our prototype.
We also created the Project using the High Definition Render Pipeline.
Since the 3D beginner Assets have a cartoonish look to it,
we wanted to try out and see how much of this pipeline
would allow us to improve some lighting effects
and create a more realistic look for the game.
The main setup for this Project is that the character
has a Rigidbody for movement
and interaction with other physical objects.
But of course, in order to control our character,
we needed to add some behavior to it.
Normally, you would do this by creating a C# script.
But now, Unity has an official visual scripting tool
that's free for everyone called Bolt.
With Bolt, it is possible to create gameplay mechanics
and interactive systems without writing a single line of code.
Within our character main scripting graph,
we update the character's Rigidbody velocity
by getting the information of the keyboard horizontal axis input
and multiplying it by a speed variable.
We also use these parameters to set the current state
of the character's animation.
For the jump behavior, we use the Button Input node
to add force to the Rigidbody in the y-axis.
To make sure the character only jumps when grounded,
we use the SphereCast node
as our condition for the jump to happen.
We also wanted to add small triggers
that would open doors to add a puzzle element to the game.
For this, we created a new scripting graph
and used the On Collision Stay node
to detect when there were objects on top of it,
activating a bullion called isPressed.
Then for the door object itself we created another graph
and made a reference to the isPressed pool
from the trigger object that would determine
the interpolation value of the object's rotation.
Now, in order to enhance the Project's visuals,
we figured it would be a great idea to have some advice
from a professional indie developer.
And for this, we've collaborated with David Wehle,
creator of the game,
There are three visual principles we can emphasize
if we want to create striking graphics:
color theory, lighting contrast, and depth via parallaxing.
For our first principle, since our character is a bright yellow,
a pleasing color combo would be blue.
That's due to it being on the opposite side of the color wheel,
making it complementary.
I adjusted the global fog and light settings
to give the whole environment a blue atmospheric haze.
Next, contrast or negative space
can help the subject stand out in a crowded environment.
We want people to easily see an outline of our character,
so I made big windows to let light in
and to outline our character as he runs past them.
I didn't want the yellow to get lost in the shadows,
so I added a white point light that follows our player.
Cinematographers call this "painting with light,"
and you should treat your game the same way.
Finally, we can add the illusion of depth by creating parallaxing.
I added chairs and candlesticks closest to the camera,
and a simple Unity terrain with rolling hills in the background.
A depth of field effect also draws the eye towards our character.
Silhouetted houses on the hills complete the illusion
that there's a wide, spooky world outside the window.
As you can see, with a few adjustments in the HDRP workflow,
we were able to give our prototype a completely different look
and create a more engaging world to explore.
I hope these tips helped, and if you're looking for more videos
on striking game art, check out Game Dev Unlocked on YouTube.
[NARRATOR] Prototyping this Project was extremely fun
given the visual weight of quickly assembling our code
with the use of Bolt.
It was also great to collaborate with David Wehle,
and we would like to encourage everyone to check out his game,
The First Tree,
which you can find links for in the description of this video.
And that's all for today's video.
This was just a quick overview of the tools we used
to build this prototype.
But if you're interested in diving deeper
and learning more about the features used to build this demo,
we have a link in the description for a longer training session
on Unity Learn. Not only that, but you can also download
the full Project to play around with it.
Thanks for watching.
♪ [MUSIC] ♪