Narrative Driven GPlay Mechanics

Greetings Unreal Community,

This is my first post on here so I’ll start off by introducing myself: My name is and I’m currently studying for a MEng degree in Computer Games Design at Staffordshire University.

In this thread I’m looking to share with you all my progress on one of my assignments in UE4.


The brief for the project was to create level / gplay mechanics for a MOBA level in UE4, with my chosen area of interest being narrative driven mechanics.
Free assets from the Starter Content and Mixamo Animation Pack have been used in this project.


The map I have created is a very basic MOBA-inspired layout using the Landscape tools.


Currently Implemented Mechanics:

  • Branching Narrative NPC Interaction

There is an NPC in the world that when approached from any angle, rotates to face the player and a dialogue box opens up. Each question has two responses the player can choose from, which either leads to a new question or ends the dialogue and rewards the player with a positive or negative boost to their Affiliation.

Demo Vid: - YouTube

NPC Components:

http://i1082.photobucket.com/albums/j380/obsidian-fracture/00NarrativeNPCComponents_zpsdd43761e.png

NPC Graph Part 1:

http://i1082.photobucket.com/albums/j380/obsidian-fracture/01StopPlayerRotateNPCVariableStoresDialogueStart_zpse8d5d8c1.png

NPC Graph Part 2:

http://i1082.photobucket.com/albums/j380/obsidian-fracture/02Questions_zps01c931bc.png

HUD Graph (Including Functions):

http://i1082.photobucket.com/albums/j380/obsidian-fracture/03NarrativeHUDGraph_zps6892ac3a.png

Question Structs:

http://i1082.photobucket.com/albums/j380/obsidian-fracture/04ConversationStructures_zpsb9276323.png

  • Affiliation Bar

In addition to printing string notifiers of a player’s affiliation shifts, an affiliation bar has been made to describe the value at all times.

*The bar can be seen in all further videos below.

  • Player Affiliation Dynamically Affecting Their Surroundings

Depending on whether the player is good or evil, the plants in the environment grow and shrivel… The radius / reach of a player’s influence, as well as the severity of the plant’s transformation, increases by how strong the player’s affiliation is.

Positive Affiliation Demo Vid: - YouTube
Negative Affiliation Demo Vid: - YouTube

Plant Components, Graph and Functions:

http://i1082.photobucket.com/albums/j380/obsidian-fracture/05PlantGraph_zps7c6c6d16.png

  • Objective Capture (Sensitive to Affiliation)

There is a flag / base on the opposite side of the map which can be captured by the player. Once the capture duration is complete, the flag will look up what the player’s affiliation is and become under the control of that affiliation.

Evil Flag Capture Demo Vid: - YouTube
Good Flag Capture Demo Vid: - YouTube
Neutralise Flag Demo Vid: - YouTube

Objective Components, Graph and Function:

http://i1082.photobucket.com/albums/j380/obsidian-fracture/06Objective_zps7ec4e7e8.png

  • Basic Enemy NPCs

The current enemy AI tracks the player, with a different behaviour per NPC type, Good NPC’s timidly approach the player over a short distance, Neutral NPCs watch the player but doesn’t move, and Evil NPCs dash toward the player over a greater distance.

Good NPC Demo Vid: - YouTube
Neutral NPC Demo Vid: - YouTube
Evil NPC Demo Vid: - YouTube

Good NPC Components, Graph and Function*:

http://i1082.photobucket.com/albums/j380/obsidian-fracture/07enemy_zps8d792e0f.png

*Neutral and Evil NPCs are the same but with different set values and meshes.


What’s Next?

  • Each enemy variant will respond differently to the player based on affiliation
  • More environmental features that change based on player affiliation
  • Environmental changes triggered by flag capture
  • Reward system for player when a certain affiliation captures the flag most often / first to reach a target
  • Different conversation trees based on player affiliation, whether the player has already spoken to the NPC, and whether the flag is captured

I look forward to any opinions / questions about my project.

Narrative Driven GPlay Mechanics in UE4: Assignment Completion Presentation Post

The purpose of the demo / prototype systems in this Unreal project is to weave narrative choices with gameplay features, Ludonarrative Consonance, which in a fully-fledged title, would invoke emergent narrative and deeper immersion.

The following is an explanation of what the player can expect to see in the project:


*When hitting play in the editor, the player is spawned in the world before the Narrative NPC, highlighted by a pulsing particle effect at it’s feet.

Upon approaching the NPC the player is engaged in multiple choice dialogue, where the choices you make lead to different additional questions and ultimately a response that will add or subtract from your Affiliation Meter.

The player’s affiliation, seen top centre of the screen, has an integer range of -2 < 0 < 2, which equates to evil < neutral < good.

Returning to the NPC, the player will notice that they receive different questions depending on their affiliation.*

There are three enemy characters / creeps in the world, one aligned to each affiliation. Each of these will respond differently to the player based on the player’s Affiliation. In this version of the prototype, this dictates the speed at which they MoveTowards the player (Friendly Approach, Notice-Only, Runs Towards, Charges Towards).

Enemy behaviours based on Player Affiliation Demo Video:

*The player’s affiliation can also be seen to directly influence the world around them, the range of influence determined by how strongly affiliated they are, and is shown by the size and spread of the particle effects that surround them.

In this version of the prototype, the strength and alignment of the player’s affiliation causes surrounding plants to grow and whither amidst their influence radius.*

GOOD Influence Radius Demo Video:

EVIL Influence Radius Demo Video:

*Finally the player’s affiliation reading dictates the team that they score points for during the session by capturing the Objective at the far side of the map.

Capturing the Objective grants +2 for the affiliated team.
Losing control of the Objective incurs a -1 penalty.

A play session, or Season, is a first to 5 set up.*

Team points for Objective Capture, Start Up and Victory Messages Demo Video:

Depending on which team the Objective is affiliated with / who controls the Objective, also has an impact on the narrative and the environment.

NPC conversations per Player Affiliation for each Objective capture state Demo Video:

Maximum spawns of each Creep type changes with each Objective capture state Demo Video:


How could this prototype become a real game that fulfils Ludonarrative Consonance?

Health and Simple Combat
More Audio Feedback
Competitive Multiplayer, which would then give birth to emergent narrative
Advanced AI for utilising creep allegiance
Transmedia strategies to track global statistics of which affiliations are winning more often and use that as stimulus for creating new narrative content for the game


I would be happy to discuss my blueprints with forum users if they would like to.

Happy New Year Unreal Development Community!