Game Creation Series





Here we will be creating a Story-driven Adventure Puzzle game using the Unreal Engine 4. Each Section will be listed below, and we will be uploading a new section each week.

I should mention, these videos are not intended as "Tutorials" but more like, "this is how I am doing it" and hopefully you can learn from my mistakes!.

By then end of this series I hope to create something that not only looks good but actually works.

This is also the first time I am using the Unreal Engine and thanks to their visual scripting system, "Blueprints", it's much easier to create various different game mechanics without knowing a single line of code.

I have always enjoyed story-driven games and the one that stands out to me is a game called 'MYST'. I played it a long time ago (it was one of the first games I played on the PC)


The Graphics (at the time) was excellent, the environments were varied and well designed. The puzzles were really good. The Story was interesting and I enjoyed it overall.

So at it's "core" I would like my game to be similar to Myst, being a Story-driven Adventure Puzzle Game. 


Another Game I admire is Bioshock. The whole franchise is amazing and I love everything about them. I could sit here and talk about every amazing thing about the game but I want to mention it's Style. 

Every Bioshock game looks amazing, they create environments that scream "otherworldly" or as though they could be alternate realities. 

Now of course, these games are superstars and I know I will not be able to create a game that's anywhere near as good as these, I would like to use them as inspiration for this project.

I have created an action plan of the things I want to achieve, and for the mechanics I want to add to the game.

So the idea is that by the end of the series, we will have a working game (though I could fail completely and that might be fun too).. 



So with that being said, let's get started!. 






Part 1 - Changing the Camera - 3rd Person to 1st Person  

 Watch the Video here

After creating a new project I would like to change the Camera from 3rd Person to 1st Person. There is a preset we could have chose at the beginning, that would have created a 1st person example. 

I decided to choose the 3rd Person Example because: It comes with a full mannequin (instead of just hands), we can also see the players shadow, legs and so on. 

We will be (much later...) changing the mannequin to our  Character. The 1st Person also comes with a Projectile and stuff we don't need.

Changing the camera is really easy. We just need to Parent the Camera to the Player, connect it to a Socket on the Player and then check a couple of settings. We then have a Working 1st Person Camera. 








Part 2 - Flashlight - Activation, Drain, Auto Off and Refill

Watch the Video here


Our character will sometimes find himself in need of some light and so the next thing I want to do is to create a Battery Powered Flashlight.

I want to Press the F key (though you could map it to any input you want), and turn on the Flashlight. 


When it's turned on, it will drain the battery. If the Battery hits 0, the light will turn off automatically and if the player tries to turn it on, we could add a prompt to collect more batteries. 

Then Finally we will be adding a Battery Pickup Item, so that the player can collect batteries and refill the Flashlight when ever they want.






Part 2 cont. - Battery Pickup - Download and import

Watch the Video here


In this video, I speed model a battery Mesh and then import it into Unreal. Since we did all the work in the last video it's pretty simple to swap the boring old sphere with an actual representation of a battery.

I had to tweak the materials (since it did not keep the Metallic or Roughness values), and I am not sure if there was something I could do to keep these values when Exporting (there was no clear or obvious option). So if anyone knows, how we can keep the Values when exporting be sure to let us know in the comments below. 


If you would like to download the Battery Mesh you can head over to Blendswap and download it for your own projects. You don't need to credit me, I just hope you find it useful. Alternatively, you can create your own and make it look much better. 







Part 3 - HUD and Prompt Widgets

Watch the Video here

In this video, I create a HUD Widget (heads up display), and display our players Flashlight battery, along with how many Battery Refills the Player has.  

We will be coming back to the HUD Widget in the Future as we build more Functions and Features into the Game. 

Implementing the Battery is pretty simple and it could be used for your Players Health, Stamina and anything else you might want to show/tell the player. 

I also create a Prompt Widget, which displays messages such as the "Press R to Refill" Message. I could have just placed these Prompts in the HUD but to keep things nice and tidy, the Prompt widget will do the trick. 

Much like the HUD, We will be revisiting this Prompt widget as time goes on to add new prompts for example when the player picks up a key, or if a Door is locked ect

If you want to use the Battery Icon or the "Master Keyboard Key" just follow the link and you can use them in your projects without needing to credit me. 

In the Part Four, we will be creating a Line Trace and an Interface which will enable us to interact with any objects we want. We can also change the Current Battery Pick up. Currently to pick up the Battery, the Player has to Overlap the object. With the Line Trace we can define a Key to interact with the Battery to pick it up. 



Part 4 : Line Trace / Interaction

Watch the Video here

In this video, we look at creating a Line Trace and an Interaction Interface so that the player can interact with objects. 

Since we have done all the hard work in a previous video, once the interaction has been set up we can apply that to our Battery Pickup BP. We can swap out the 'Event Overlap' with the new Interaction we just created.

Now we have a Line Trace and Interaction Interface, we can use it for anything we want to be Interacted with like doors and drawers and so on. 





Part 5 - Opening and Closing Doors, with Lock and Key


Watch the Video here

In this video, we will be creating the Door Blueprint which can be used for normal doors and also Sliding doors like Elevators and so on.

We also want the ability to have the door locked and that would require the player to have collected a key. If you would like to download the Key Mesh we used in this video you can find the download here. 


This blueprint is rather quite simple and can be modified to become Drawers. The player could open a Drawer and then pick up an item.

In the Next Part we will be focusing on objectives and the Objectives description, then we can move on to the Journal. 





Part 6 - Objectives / Missions / Quest System

Watch the Video here

In this video, we will be creating a basic Objective or Mission / Quest System. With this system we can push the Player to new Areas, Puzzles and other things that we want the player to do.

We can display the Players current objective and if you want you can also display the Objective description. Though I decided to only add the current objective to the HUD, I think adding a Description would be too much and it would be more appropriate to have the description inside the Player's Journal/ Notebook (coming in Part 7)




Part 7 - Journal / Notebook 

Watch the Video here

In this video we look at creating a Journal or Notebook which we can display certain information for the player, such as the Battery Percentage, Current Objectives, Keys and other items the player may pick up.

When the Player presses a key (the J Key), the Journal (or notebook) will fade in and out. We can then show the Mouse Cursor and click a button to flip the page.

We also add a couple of sound effects for the Page turn (you can download the SFX files here).

You can find various Paper Textures here.
Line Art and other images we used here.

 


Part 8 - Day / Night Cycle

Watch the Video here

In this video we will be setting up a very basic Day / Night Cycle using the Blueprint system.

By adding a Speed Variable in the Level Blueprint, we can choose how fast or slow to advance time.

In the future we can add things like, a clock or "Time". We could also add an "End Day" or "Sleep" function so that the player can advance time without having to wait.











Part 9 - Time (Display World Time)

Watch the Video here

In this video we will be creating the Time Variables such as the Seconds, Minuets and Hours (though the game is advancing so quickly, you might not want to display the seconds).

We can then either display the Time on the Players HUD or Journal (both are done the same way).

After I set up the Bindings and get it to work I then decided to use a Horizontal Box to align my text (you can see at the end of the video), but you can layout your Time Display how ever you want.

With the Time now set up, we could implement the "Date" for example, "Monday, 30th of December". It would be very much the same way (with only a few differences). If you want to see a video on that be sure to let me know in the comments below. 








Part 10 - Analogue / Real time Clock


Watch the Video here


In this video we will be looking at creating an Analogue / Real time Clock Blueprint.

Once you have imported your Clock Assets (if you want to download the one I used, be sure to check out our Blog), we can then create an Actor Blueprint for the Clock.

I wanted to keep it quite basic but we can speed up or slow down the clock to fit our needs.

You can download the Clock Mesh here, you can use it for practice or for what ever you want.
 



7 comments:

  1. And I thought I was the only one that liked Myst and Riven. Good to know there is at least 1 other. Keep up the great work on the game. Can't wait to see the finished product.

    ReplyDelete
    Replies
    1. Myst, I think was the first PC game I ever played. It was an awesome game and I think probably would hold up even today.. I really need to go back and play it lol..

      Delete
  2. It says the clock isn't available for download because of multiple uploads.

    ReplyDelete
    Replies
    1. I have just checked on a different computer and it allowed me to download with no problem.. I am not sure what that error could be?..

      Delete
    2. This comment has been removed by the author.

      Delete
    3. I can not download either. it says:
      This blend has been denyed for upload. The reason for denial is: The blend has been uploaded multiple times to Blend Swap

      Delete
  3. not able to download ! Error msg :

    Blend Denyed!
    This blend has been denyed for upload. The reason for denial is: The blend has been uploaded multiple times to Blend Swap

    ReplyDelete