Enemy Spawn Point for Stronghold - Unreal Engine 4

Detail:

Dialog/Quest System for Stronghold - Unreal Engine 4

Partial Detail:

To me, scripting and programming are like playing a great puzzle game.  I love the thrill of searching for solutions to problems, determining the optimal solution, and getting it to work.  I find the whole process incredibly fun, and often find myself playing with challenging scripting/coding ideas in my spare time.  In my work, I try to comment frequently and make my work as understandable as possible even for those not actively working on it.  As much as possible, I work to create reusable functions so each part of my work is represented in its simplest form, and (thanks to C++ programming classes) I also have a good eye towards optimization.  Since scripts made up of small reusable pieces aren't as good for showing off exactly what I can do, the samples included below are more complex blueprints that aren't as split up.

This spawn point needed to allow designers working in engine to toggle it easily between a box collider or a sphere collider.  When spawning enemies, it had to be able to loop or spawn a sequence of enemies and then stop.  It needed to check if certain quest conditions were met, be aware of how many enemies the player was currently dealing with, pause if the player ever got far enough out of range or conditions changed, be able to spawn any of the game's multiple enemy types, and run more optimally than every frame.  In addition to creating the original design for this spawner, I also did all the scripting.

This system was interesting due to our decision to build this game utilizing separate components that could be dropped onto any actor.  I designed and integrated this system as well as the game's quest system which allowed for designers to quickly and easily create their own quests and have them work from anything they wanted them given from in the game.  This Dialog/Interactions system had to check and find what components the player was trying to interact with, execute them in order of priority, and interact directly with the quest system without creating a dependency that could cause errors if the quest system changed.

For this tutorial, I wanted to give players a fun way to learn what they could do without too much hand-holding.  So I created a story setup in which the two main characters decide to have a duel, and world lore that involved having to show their different weapon types before they started.  This allowed them to play with mechanics in a fun, interactive space.  Tutorials would only show after a few seconds if the player's didn't try the skill they needed to.  I did all scripting for this sequence and did not use any of Unreal's matinee/level sequencer tools.

Technical Design

As a Technical Designer:

-I communicate between design and programming teams in verbage that both teams understand.
-I establish with programmers how gameplay related features are implemented and define what should be data driven and what shouldn't.
-I give feedback to lead designers on the actual complexity of a feature (from an implementation point of view).
-I create "bricks of gameplay" that level designers can drop in their levels with little to no tweaking.
-I extend existing functionality using the "tools" (scripting functions) made available by programmers.

For Psycho Princess, I created many designer friendly tools including enemy spawn points, level exits, base enemy classes & behavior trees, destructible objects, and checkpoints.

Tutorial Story Sequence for Stronghold - Unreal Engine 4