Undone

technical designer · gameplay programmer

Abner
Wilhelm

Specializing in gameplay programming, networked ability systems, AI state machines, systems design, and puzzle design.

View my work Get in touch
scroll

Selected work

Games

Who I am

About

I'm a technical designer studying at the Florida Interactive Entertainment Academy in Orlando, focused on gameplay programming, systems design, and the bridge between the two.

I gravitate toward systems-heavy design: modular, scalable architectures where every piece serves the larger loop. Recently that's meant networked GAS abilities in UE5, ScriptableObject-driven inventories and achievements in Unity, and state-driven AI that has to feel reactive without breaking under pressure.

Outside of code, I write orchestral-style game music. When a project lets me touch both the systems and the soundtrack, that's the sweet spot.

Engines & Tools

  • Unreal Engine 5 (Blueprints + C++)
  • Unity (C#)
  • Visual Studio · VS Code
  • Perforce · GitHub

Disciplines

  • Systems design & gameplay programming
  • AI · behavior trees · state machines
  • Networked abilities (UE5 GAS)
  • Orchestral music composition

Let's talk

Contact

Currently studying at FIEA in Orlando. Open to work: internships, collaborations, and conversations about technical design and gameplay programming.

Résumé / CV
PDF · Last updated June 2026
↓ Download
No banner image

Project

VeilWood

Chaos Cabin

Role
Lead Designer, Programmer, Composer
Duration
September 2024 – November 2025 (WIP)
Engine
Unity
Status
In Development

VeilWood is a First Person Survival and Farming Simulator in development with a team of 12. My contributions span programming core systems, designing and dressing the game world, and composing the original soundtrack.

Achievement System

//Designed and implemented a modular achievement system using Scriptable Objects. This allowed achievement assets to be dynamically registered and processed through the Achievement Manager. The system routes progression data to all relevant achievement objects, enabling each achievement object to independently evaluate completion conditions and notify the manager upon completion. Integrated the system with Steam achievements for platform support and unlock synchronization.

CatchAllBugs ScriptableObject — Unity inspector view of an achievement definition (ID, display name, description, max progress).
CatchAllBugs.cs — Custom AchievementObject that scans Codex bug entries on catch and adds progress for each one already unlocked.
Bug interaction handler — when a bug is caught, NotifyBugCatch fires before captured state is set so achievements can react.
AchievementManager.NotifyBugCatch — broadcasts the catch event to every achievement that isn't already unlocked.
AchievementManager.AddProgress — central progress tracker. Clamps the new value, unlocks at max, and reports to Steam.
AI State Management

[Describe the shared AI architecture used across enemies and NPCs.]

NPC State Management
This is the Destinations Array in the NPC Movement Manager. It stores all the transforms and data for each Destination and sublocation. 
This is an example of the Carpenter's Schedule. This image showcases that each Destination can have multiple actions taken at it, such as the Carpenter being at his own home at 8am, then moving to the shop in his home at 9am, then being idle at the tavern at 3pm.
Embedded ✓

- I created a scheduling system and location system for Town NPCs. This involved setting up:
//Destinations: the places NPCs could go //Schedules: A Time, A Place, and An Action
- Depending on the NPCs action (Working, At Home, Idle), they would go to different locations within a Destination.
- If working they would go to the working sublocation and alert the shop object that they are currently working and can set up shop.
- If at home, they will not take up occupancy at the home sublocation, allowing multiple NPCs to live in the house without causing issues. This works because the player cannot enter NPC homes.
- If idle, they will pick a random sublocation within the Destination and go there.

Enemy AI Management
Mistwalker AI

- This is the AI logic for the Mistwalker grunt enemy. 
- When the player is not around it will wander to random locations within 15m. 
- Occasionally it will find a crop or structure the player has placed and attempt to destroy it.
- When the player is around, it will lunge at the player from a certain distance and within close range do a basic attack

Embedded ✓
Crow AI

- This is the AI logic for the Mutated Crow, a flying creature
- The crow is scared of the player at first when approached, taking off into a flying mode
- Once in the air the crop will circle different points around it
- Each crow has two modes it switched between: Crop mode and Attack mode
- When in Crop mode the crow will circle and target crops
- When in Attack mode the crow will swoop above the player dealing damage
- The crow will switch often between these modes to confuse the player


Embedded ✓
Catacomb Puzzle System

The Catacomb Puzzle System in VeilWood is a way to test progression and knowledge. All puzzles rely on the game's other mechanics to function.

Bug Shrine Puzzle

Bug collecting is a large part of VeilWood. For the Bug Shrine Puzzle, the player must collect a certain amount of bugs to complete it. The player has 2 options:

1. Collect Bugs Manually
2. GAMBLE

Pachinko, Slots, and Blackjack were all implemented giving the player a way to earn more bugs

Embedded ✓
Bug Shrine — Pachinko

For Pachinko, the player must launch a bug into a certain hole. This system relies on predefined force values that grant the player success in their launch. Timing and launch power are both important due to the moving part of the machine. I did all the animations and logic for the machine.

Embedded ✓
Bug Shrine — Slot Machine

The Slot Machine has a 25% of outputting a "reward". As featured in this video, the reward is an exploding bug that damages you. Other rewards the machine can give is money, more bugs, seeds, or even shotgun ammo. I did all the animations and logic for the machine.

Embedded ✓
Bug Shrine — Blackjack

This game features a full recreation of Blackjack, allowing the player to bet their bugs against the robot dealer. I did the animations and logic for Blackjack.

Embedded ✓
Nutrient Puzzle

VeilWood has 3 nutrient types:

Gloamphage: Purple
Terrazyme: Green
Ichor: Red

Based on which nutrient type each crop consumes most of, the player will find braziers with that matching nutrient symbol. Players can test which nutrient is most consumed at the nutrient tested featured at the beginning of the video.

Embedded ✓
Rotating Pillar Puzzle

In order to do the rotating pillar puzzle, a player must acquire the crop to use as a key for the puzzle. After this they must sort the pillars in order of growth stage sprite.

Embedded ✓
Flower Puzzle

This puzzle gives a riddle as to which flower goes in each pot. Incorrect guesses lead to the player's flowers burning up.

Embedded ✓
Water Puzzle

The Water Puzzle is a progression check puzzle. It makes sure the player has the Water Gun, which allows them to shoot the tiles from a distance, which they wouldn't be able to do with their watering can.

Embedded ✓
Inventory System

I worked on the Inventory System using Scriptable Objects with IDs and a database to store all of these items. This included the UI Implementation of inventory interfaces and logic regarding stacking and moving items.

Save / Load System

I worked on a Save/Load system using a JSON file. This stored information relating to player inventory, the structures / crops on the players farm, and the players progression.

Catacombs

[Describe your overall design vision for the Catacombs — atmosphere, layout philosophy, how the space guides the player.]

[Continue — specific design decisions, puzzle placement, lighting, environmental storytelling.]

Town & Farm Set Dressing

[Describe the Town and Farm set dressing — mood, use of props and layout to make spaces feel lived-in.]

Cavern Wilderness Section

[Describe the Cavern Wilderness — design challenges, how you guided the player, visual language used.]

Music Composition

[Write a paragraph about your overall approach to the VeilWood soundtrack — instrumentation, emotional tone, how music shifts between day, night, and the catacombs, and what tools you used to compose.]

Paste URL or upload MP4
No video
Track 1 — Day Theme

[Mood, instrumentation, where it plays.]

Track 1 — Day Theme
No audio
Track 2 — Night Theme

[Describe this track.]

Track 2 — Night Theme
No audio
Track 3 — Catacombs

[Describe this track.]

Track 3 — Catacombs
No audio
Track 4 — Finale

[Describe this track.]

Track 4 — Finale
No audio
Track 5

[Describe this track.]

Track 5
No audio
Track 6

[Describe this track.]

Track 6
No audio
Track 7

[Describe this track.]

Track 7
No audio
Track 8

[Describe this track.]

Track 8
No audio
Track 9

[Describe this track.]

Track 9
No audio
Track 10

[Describe this track.]

Track 10
No audio
Reflection
[Write your reflection here — what did you learn across programming, level design, and composition? What challenges did you overcome, and what would you approach differently?]
Mode:
Fit:
Drag to select crop area
Insert block