On top of being the environment lead on the project, I was also tasked with coming up with and implementing the game design for the experience using UEFN's (Unreal Editor For Fortnite) provided toolset.
Gameplay Ideas
Idea 1 - Open team base standard combat. Fortnite pvp with teams - deathmatch.
Notes - Could work, but the size of the environment, differing terrain, and non-destructible buildings, might not be desirable for a deathmatch game. If you don’t have enough players for a match, it could feel very stale and boring or downright unplayable.
Idea 2 - Collectables spread across the environment. Encourages exploration and moving in and around the space. Provide different movement tools to get around.
Notes - No real draw to return. It might be a neat experience one time, but might get repetitive and boring quickly. Different movement styles might be fun, but without a bigger draw than just collecting objects, not many people would want to play.
Idea 3 - Fly-through follow. Have an NPC Lil guide the player on a flythrough around the heap.
Notes - Not really practical as there is no real way to have the player fly. There are planes, helicopters, a spaceship and tubes, but none of these are really ideal for the desired outcome. Having a player be “on rails” is not a fun experience. No real draw for returning to the game after completing it once.
Idea 4 - The heap is overrun with “Nightmares” and you must travel through and clear each nightmare to save the heap.
Notes - Probably the best idea for use of such a large scale environment. It would provide a way to guide the player from location to location so they can explore the entire environment, while also providing some additional exploration should they so choose. Combat against NPC enemies means other players are not required to join you in the experience. Having a co-op up to 4 players mode would also be fun as you could fight the nightmare hordes with friends or random players.
Limitations - Size and memory limitations mean optimization has to be done to an extreme. Non-destructible buildings, limited textures and materials. Very optimized collisions on geo, as well as optimized meshes on geo. Nanite is forced, but still shouldn’t be relied on completely. Designing models and meshes in a performant way is desired. Mesh instancing is a must to reduce draw calls for both memory and size. Proper LOD setup is a must to ensure buildings stay visible and custom culling settings must be implemented to prevent disappearance of far geometry. Given that it is such a large scale, open environment, custom assets must be made instead of relying on provided Fortnite meshes as the culling settings for those are not changeable.
Combat - We were limited to the weapons and items available for UEFN at the time. To go with a more fantasy style gameplay and not really introduce guns to the heap, use of specific weapons and items is desired. Bows, crossbows, swords, hammers, shields, etc. The decision was made to avoid using any actual “gun” type weapon in the experience.
While there is rarity levels to certain weapons, not every weapon/item has them, and we cannot directly edit or change the stats on weapons/items for customization.
Working within these limitations, specific weapons and items were chosen for use throughout the experience. Limited by player progression, with no real way to edit player stats directly or during gameplay, relying on the small number of items available is required to make compelling gameplay. Initial player start is limited to “gray” items and enemies drop crystal shards as a form of currency that you can use to purchase new weapons, health items, and limited time upgrades for large fights. These currency crystals will also be hidden in chests around the Heap environment to encourage explorations.
Balancing difficulty is a must to make it challenging but not too challenging so that most players familiar with Fortnite should be able to beat the experience on the first try. Limiting the number of respawns will also help with this balance.
Custom code will be needed to increase difficulty based on the number of players. Since we cannot edit monster stats on the fly, the only real option is to increase monster spawn numbers for the big fighting events. This also works to our advantage to ensure there are enough crystals to go around for players to upgrade during multiplayer matches.
Given that we have a wholly unique environment in the Fortnite ecosystem, compelling and challenging gameplay, there is hope that this would be enough to entice players to return.
Greetings from Krampus is a VR game a friend and I built in our free time. We gave ourselves a year to come up with a VR game and make it. At the time VR was brand new, and we were both working for the same company making VR content professionally. Creating this personal project allowed us to really push ourselves to learn more about creating games in Unreal engine. I personally wanted to challenge myself with learning all I could about Unreal's Blueprinting system and to see if I could pull off making a game without having any C++ coding knowledge.
Not to toot my own horn too much, but I'm quite proud of the results, especially some of the game design elements I came up with and implemented. Below are some examples of the design elements of the game. My best beta testers for the game were my 6 year old niece, and mother. This allowed me to see rough spots in the design that might be too cumbersome or difficult to understand from perspective of people who don't play video games all that much.
Game Menu
The goal with this design, was to have a simple menu that you could bring up at any time during gameplay to take you to our three main locations, as well as overall quality settings for the game. Hovering over the options will light the string of lights around the button giving you a few second countdown to make sure it's really the option you want to pick. It's a neat little interactive design that fits well with the theme of our game.
Tool Selection
Tool selection is an integral part of the game. Given that there are quite a few different mechanics we offer to help decorate your snowman, we needed a solution for switching between tools on the fly, wherever you are, in a simple and easy way. We came up with a tool selection menu that would spring up from whichever hand you pressed the tool menu button with. Simply hovering over a tool will select the new one with a satisfying click.
Overall the design is a bit cluttered and could definitely be clearer, but it does fit well with our theme and game style. Once you get used to the system, it becomes pretty intuitive to use and you can switch tools like it's second nature.
Tool List
Decorator Tool - The main tool that is used to pick up and move objects around.
Snow Paint Tool - This tool lets you bring up a color pallet to actually paint on your snowman. It also has a secondary function of changing the color of some props, and the generated snowballs.
Snowball Generator Tool - This tool lets you generate snowballs in three different sizes for you to use on the main snowman, or create something else entirely.
Teleport Tool - This too lets you navigate around the play area using teleportation. It also has functionality to turn your player character in each direction.
Manipulator Tool - This tool lets you scale props and tables bigger or smaller, copy props, and delete props.
Prop Table System
Given that this is a snowman building VR game, one of the most important, if not the most important aspects of the game is to have a large selection of props for the player to use in decorating their snow man. There in lies the problem, what is a convenient way to provide many prop options without it being overwhelming or cumbersome?
My initial idea was to have a large red Santa sack that you would pull random props from every time you picked something out of it. This became clear very early on that it would be frustrating to always get something random, especially if you were trying to go for a specific look.
Another idea was to have shelves around the environment displaying the various props that you could use. This would let the player see every option and pick for themselves what they wanted to use. The problem here is that the environment would get extremely cluttered with shelves everywhere, especially when more and more props keep getting added to the game.
Enter, the prop table. This is a conveyor belt system that displays ten props at a time, and using the buttons on either end, will cycle endlessly through the various props of each category. This provided a perfect solution that would allow us to add as many props as we wanted to the game, while keeping the environment clean, and keeping the props easily accessible. The one downside of this design, is if you have a large number of props in a category, it can take a while to scroll to the right prop you are looking for. We didn't really get that far into adding hundreds or thousands of props, but if we had, we would probably have multiple prop tables you could choose from in an effort to keep things manageable.
One of my favorite aspects to this table is that you can use the manipulator tool to scale it up and down. It's really neat to make it a tiny little pocket sized table and still pull props of it to use.
Save System
This is one of the designs I'm most happy with. To save your various creations, you use the save table to select a save slot. You can pick an empty slot or choose to overwrite an already saved snowman. Once you hit save, a miniature version of your snowman appears on the table in the form of a snow globe. The neat thing is you can use the manipulator tool to scale this snow globe bigger or smaller. The snow globe is then saved inside your cabin attached to one of the three profiles. To load an already created snowman, you just need to go to your cabin, grab the snowman you want to load, and put it into the mirror.
I think it's a really creative solution compared to just having a traditional save slot menu. It's much more fun and interactive, and there is something really cool in seeing your full scale creation in miniature on display in a snow globe.
Please excuse the hideous sow man!
Snowman Painting System
This was a stretch goal of ours that turned out pretty neat, if not very buggy. With the paint tool you can bring up a paint palette various colors, brush sizes, and hardness levels to paint with on your snowman. This was a really difficult system to figure out on the technical side of things. It's still rather buggy in the game, mainly when trying to load an already painted snowman.
Outside of using it to paint on your snowman, you can also use it to change the color of some props, and the generated snowballs from the snowball tool.
Snowman Rotate System
This system was designed to let you rotate your snowman to either view it from all angles and admire your work, or spin it around to let you decorate all sides without having to teleport around it.
Day and Night Selection System - Lets you pick a day or night lighting scenario to decorate your snowman in.
Profile Selection and Saved Snowman Loading Systems - You have three profiles, and each profile has 10 save slots for created snowmen. To load a profile you pick up the corresponding snow globe and place it into the mirror. To load a saved snowman you do the same inside the cabin environment.
For this project I was in charge of coming up with the gameplay and prototypes for the Aquaman experience in Justice Leage VR. Initial prototyping was done in Unreal Engine using their blueprint system, but switched over to Unity 3D partway through development. All prototyping new and old was remade in C#. Once final design was determined a Unity developer was assigned to code the full experience, and I shifted gears to the environment art side of things.
Design goals changed throughout the project, but the target was always high end PCVR, to low end Google Cardboard and everything in-between. A tall order considering all levels of VR have very different qualities for input and performance. This became one of the more challenging aspects to design around as you want to make the gameplay as fun on high end devices as well as low end. The reality is, a ton of concessions must be made to keep the game-play seamless between the experiences. In the end, I am pretty proud of what the team achieved given how many times the scope shifted and how many limitations were added throughout the project.
We could retain controller and button input for the higher end devices, but for Google Cardboard we only had gaze based input. A fun challenge to design a game around, while also accounting for changes we could make to have the high end be more engaging. At the same time, you can't go crazy and have the design be wildly different between high and low end as you don't want the low end players to feel cheated in any way.
Gameplay Ideas
Underwater racing game where you would race through a series of underwater tubes collecting objects, avoiding obstacles, and breaking through barriers to reveal shortcuts.
Sea cave exploration where you would travel through different cave tubes, into larger open chambers with puzzle mechanics to unlock the next tunnel to explore. The end chamber would be a large open environment with a boss battle.
The third and final design which was decided to be the one to go with, was a chase style game where the player would have to hunt down a massive sea creature. This design was chosen due to time constraints, as well as being more interesting than a straight underwater race against yourself. The scope was definitely more achievable given project requirements.
Each design was prototyped by myself in both Unreal Engine and Unity 3D.
Final Design Gameplay
Chase and defeat a massive sea creature while swiftly swimming through a massive underwater rift at the bottom of the ocean. Higher end devices have inputs for using the trident to dash and strike glowing parts of the sea creature. Low end devices rely on gaze based timing events to navigate, dash, and attack the creature.
For this project, I was in charge of creating systems for hanging stockings, mechanics for plugging in Christmas lights, Christmas tree decorating, and the magazine system.
Out of all of these the magazine system was the most complex and challenging, but also most rewarding. The first three systems were a great way to get a handle on Unreal Engine's Blueprinting system, as I was brand new to it at the time. Figuring out how to build a functional magazine in VR was the challenge I needed to really get excited about Blueprints and design.
Tree Decorating Mechanics
I was tasked with creating the tree decorating mini game and mechanics. Pretty simple project, but it allowed me to get a better understanding of Unreal Blueprinting which I was extremely new to.
Plug in lights mechanic
Another task was to create a simple system for plugging in the lights near the mantle. I remember one of the challenging aspects of this was to get the dynamic spline system working correctly with the string of lights. It's still imperfect as the length of the string actually expands and contract, but the options for this kind of system were really limited in Unreal at the time, so I'm still quite happy with how it turned out. Simple, but effective.
Stocking Decoration Mechanics
Another task was to create a simple system for making the stockings interactive. Some of the challenges on this one were working with soft body simulation. I remember having to adjust my skinning quite a few times, and tweak the sim values to get something close to a soft body stocking without it folding in on itself or warping in some horrendous manner. Simple mechanic, but again I'm really pleased with how fluid the whole thing feels to play with.
Magazine Mechanics
Goals
A magazine the player could pick up, and turn the pages of in an intuitive way.
Make it as instinctual to operate as it is in real life.
Challenges
Individual pages are a no go, since there is no possible way you could have two sided paper thin geometry in a game and have it function properly.
How do you provide the ability to hold a magazine and turn pages in a VR environment?
How do you turn a page and have different images represented on each page on paper thin geometry?
What happens when you unturn a page to go to a previous section of the magazine?
How do you build a system that can accommodate a set number, or endless number of images/pages?
Final Design
In the end I came up with a 6 page design that would switch images on the internal pages once a certain threshold was met when turning the middle two pages. It was a pretty tricky system that involves shifting image textures per page once certain requirements were met. Is the player still holding a page? Are we 50% passed the threshold of turning a page. If we are under that when the player releases the page, don't turn the page.
In the end I wanted a more tactile approach that would let you physically turn a page like you would in real life, rather than have an interactive mini game of just clicking buttons to turn pages - which would have been a much easier system to design. But in the end, I really like the challenge this presented and my bosses were pretty happy with the end result as it could easily be implemented for other use cases as well. It's the perfect archival system for a tactile VR archive.
If I had the time, some long term stretch goals would have been to emulate the flop of a real magazine using blend shapes. As it stands now, the final result is a pretty stiff representation like it's a magazine made out of cardboard. Still really happy with the system and it was a really great challenge to work out.