The Witcher 3 (REDkit Mod)

Role:

Level/Mission Designer

Engine

REDkit

Game Type:

Third Person RPG

Project Type:

University Project

Team Size:

1 (Solo Project)

Project Goals

Level and Environment

(1) Crypt/Graveyard

(2) Raised Village

(3) Ruined Village

(4) Druid's Swamp

(5) Cart Ambush

(6) Castle Ruins

(7) Bandit Camp #2

Level Evolution

While creating the mission/map, I wanted to show the player that their actions have weight and meaning within the world. In this case, once the player has completed the main mission the environment and weather of the map will change from foggy and dark, to well lit and sunny, along with enemy types changing from monsters to animals and bandits, to match the change in environment. This change reflects the narritive of the mod.

Visual Landmarks (Weenies)

I have made use of three large visual landmarks to help guide the player through the fog and naturally entice them towards objectives of the main story. These three are:

  • The Raised Village – A village of raised stone sections, distinctive and viewable from all main locations.

  • Druid’s Swamp – A distinctly different biome from the rest of the map, clearly unique when viewed from above (from the other two landmarks)

  • The Ruined Castle – A castle with walls built into the mountainside. The tallest landmark in the map, with clear sightlines to and from the village and druid’s swamp.

Enemy Encounters

I built and balanced 4 story encounters, and 6 side encounters. I balanced these by conducting playtests of both experienced and non-experienced players, with variously equipped versions of Geralt (the main character).

I created and scripted the encounters using tools provided by the REDKit Engine (communities and spawn trees)

Planning and Documentation

Before creating the mod, I created level and mission design documentation and plans, for example the ‘flow/intensity’ chart shown in the image, to reduce time wasted in implementation and to give a strong initial idea on how the map and mission was to flow.

In this chart, I also plotted out intended story beats, and intended duration.

Technical Implementation

Quest Scripting

I created a main quest and a ‘treasure hunt’ sidequest, using the visual scripting tools provided by the REDkit engine. 

The core aspects of these quest scripts are:

  • Tracking and updating the current quest state/objectives.

  • Tracking killed enemies or found clues.

  • Updating objective markers and waypoints

  • Spawning NPCs and Encounters upon player approach

  • Adopting an open-world approach, with multiple potential start points and the ability to skip ahead, if the player stumbles upon objectives (a feature of the Witcher franchise).

  • Creating quest items and notes, readable by the player, ensuring correct project setup, to ensure the engine knows where to look for the files containing these items.

Cutscenes

I created multiple cutscenes, with scripted dialog, allowing player choice for how to tackle the main quest, and dialog checks for a player to seeking extra rewards.

  • The REDkit has a scene creation tool, requiring actors to be pre-selected, and a ‘timeline’ of actions, animations and sound to be created.

  • Player choice is enabled via a visually scripted dialog tree.

  • Player actions can be recording by being stored in a ‘factDB’ database table, which can be used and retrieved through visually scripted elements (allowing choices to be reflected in quest objectives, future dialog or monster spawns).

Encounter Logic

Encounters in the REDkit are visually scripted, with encounter ‘volumes’ existing in the world linked up with tags, allowing for separate spawn zones, ‘guarding’ areas (with additional AI logic), and boundaries for pursuing the player.

  • Encounters can be made dependent on player level, with loot tables being selected per encounter, or per monster.

  • Encounter spawning can be done conditionally (for example, requiring quest objectives to be complete)

  • Encounters can be created with an element of randomness, allowing one encounter type to be re-used, with still maintaing variety.

Shane Hall

Website Designed By -> Uzairkhan