Figuring out Unreal

The title is a bit of a gotcha, but man it feels good to get something to work. Our project is centered around coding (using Unreal’s visual Blueprints) puzzles for a player character to solve. Actually making the puzzles reminded me of that grade school exercise some of you may have done, where you have to write instructions on how to make a peanut butter and jelly sandwich. There are so many steps we gloss over because we rely on our ability to interpret context (why write steps out for fetching a knife to apply peanut butter? Obviously we don’t need to say that), but as we all know, that sort of thinking doesn’t fly with machines.

Here at the end of the quarter, I’m happy to say that I was able to create a puzzle from scratch, without having to look up any guides or tutorials. It isn’t anything groundbreaking, and a lot of the functionality is built off of other things that have been built (the ability to pick up and hold an item, doors that open and close), but the fact remains the same – I did it.

The puzzle is relatively straightforward. It can be activated by bringing a specific statue from a previous puzzle into a sectioned off area of the attic level. Placing it on a pedestal pops open a drawer, with a few chess pieces (and eventually a note with a hint to be implemented later). The puzzle itself is pretty straightforward – just pattern matching on a chess board with a couple of twists to open up a series of drawers leading to a final code combination used to escape both the attic room which is locked, and the rest of the house. It was the first time I felt like I understand how event dispatchers can be used (sort of like a signaling method! The event is ‘dispatched’, but the dispatcher itself doesn’t really care about who is listening. Other actors can be set to ‘listen’ for this event), and it felt great to solidify what was once theoretical into a practical example.

With that final puzzle out of the way, the rest of my work will mostly be focused on polish. Some audio and visual cues will go a long way in making everything feel interactive, and I’m still trying to figure out a more tactile approach for picking up objects and placing them where intended, instead of lifting them with a physics handle and attaching that to a character model. I’m pretty happy with the work, but also recognize that what I’m doing is probably equivalent to baby’s first Python project. There aren’t a ton of moving pieces, and I don’t think it helps that my code is in Blueprints instead of in C++ (yes yes, it’s all code, but the tech and game industry are looking pretty brutal at the moment), so I guess I just have to take what I learned and continue to push forward with it.

It’s amazing to me just how time consuming it all is. My process for most puzzles has been

  • Design a puzzle and then block it out in physical space using static meshes
  • Sketch out interactions with other puzzles and what blueprint actors I’ll need to get the functionality
  • Attempt to create the functionality
  • Find out that the functionality I want isn’t possible / just isn’t working for some mysterious reason
  • Attempt to redesign the puzzle
  • Realize that the mysterious reason my functionality wasn’t working was because I forgot to manually set an actor / object reference
  • Spend 30 minutes trying to place an object juuuussssttt right and then spend another 30 minutes trying to shape a small spotlight on it to catch the player’s attention

That’s all to say, maybe I shouldn’t be too harsh on myself. 10 weeks to build a game in an engine and language I’ve never touched before? I suppose this will do.


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *