WELCOME

Welcome! my name is John Welter, an Independent game developer. This is my Hobby and Portfolio site where you can find what projects I’ve worked on, my own projects, and keep up with projects to come.

I am currently looking for positions in the game industry, and if you like what you see, check out the About tab for resume and contact info.

Thanks for visiting!


Published Titles

Life is Strange: True Colors

My first published title I worked on when I started my career at Deck Nine Games in 2020. I was brought on to take ownership of the player locomotion system, working with animation programming in Unreal for the first time. This included working with a proprietary motion matching system and look-at system, maintaining and expanding on a custom animation state machine in C++, and working with animators to make sure we had the assets setup and exported correctly to match technical needs.

Details of work on Life is Strange: True Colors

The Expanse: A Telltale Series

My second title under Deck Nine, and my first that I was able to see from pre-production through post-production and DLC. I designed and programmed the entirety of player control, including animation systems, different locomotion types (walking, mag boots, and zero G flight), the camera rig, custom collisions, and custom IK, for two different characters with drastically different locomotion needs. I also created systems for player VFX, a small DLC puzzlebox, and worked a lot on improving our systems for blending between cinematics and gameplay.

Details of work on The Expanse: A Telltale Series

Life is Strange: Double Exposure

After the Expanse, I was thrust again into a mid production LiS game. This entailed a full refactor of the player’s and NPCs’ animation handling, handled mostly through Unreal’s built in solution of animation state machines and control rigs. There was a new challenge in getting stairs animations to work, as well as stopping Max’s messenger bag from clipping during animation blending. I had a lot more of a hand in finding and squashing cinematics bugs, as well as helping to modify the seamless transition solutions to work in a new architecture.

Details of work on Life is Strange: Double Exposure

Ascent of Ashes

As my first venture in contract work, I was brought on to help bring this game to early access within a tight schedule. I learned how to use Godot on the fly, and learned a lot about XML data driven architecture. I worked on refactoring the animation system to utilize XML and generate animation trees from scratch at runtime, created a wall-cutaway and room ID system, built the foundations for combat handling, and worked on many rendering effects. I learned how to track performance and optimization using tools like dotTrace, dotMemory, and RenderDoc.

Life is Strange: Reunion

My last project at Deck Nine, I worked on bringing some of the cinematics technology I owned on previous projects into our new timeline-based system. I also explored new systems for locomotion handling and real-time conversations. The locomotion, camera, and seamless transition systems in the final release are the cumulative products of my work and legacy at Deck Nine.


Current Projects

PictoPuzzler – NES Homebrew game

A personal project/experiment in NES development, tools/audio programming, and resource restriction. Programmed entirely in 6502 assembly, and playable on original hardware utilizing the MMC1 mapper for memory bank swapping and save files. PictoPuzzler is a nonogram anthology, similar to Picross. Here are links to the development blog, the source code and assets for the game, as well as links to the two tools for content generation, a nonogram creation tool and an NES 2A03 emulator and song writing tool (both works in progress)

QTE RPG – Unreal Experiment

An experiment in implementing some of my favorite RPG mechanics and technology in Unreal Engine 5. The main focus is on making turn-based combat more of an active experience by creating my own version of action commands, QTEs, and dodge/parry systems of games like Paper Mario and Clair Obscur. Follow along for updates with the development blog!

MOTHER Forever- Procedural Generation

An experiment in creating a web-compatible, procedurally generated MOTHER map for infinite exploration of one of my favorite games of all time. Follow along for updates with the development blog!


Blog Posts


Nonogram Dev Log #12: Quality of Life fixes

Finally sat down and worked out most of the quality of life updates I wanted to get working on this – mainly dealing with the menu system. The pause menu in puzzles has a new look, with extra steps and options- a puzzle can now be completely reset if needed, and it all still works nicely within the save system. Leaving a puzzle now takes you back to the puzzle menu where you left off, instead of going all the way back to the bank selection. Puzzles can now be continued directly from their option in the puzzle list, not…

Keep reading

Mother Forever Devlog #3: A Revelation About Parcels

I originally thought that while wave function collapse might be a good way to handle paths and rivers in this project, it wasn’t going to be at all useful in generating everything else in the game. I decided to check how true that actually was by taking a full version of the game map I found online, and check what happens when you split the map into 64×64 pixel chunks. I was correct that rivers and paths are made up of prefab tiles, but I saw that basically, so was everything else! I’ve reworked the world generation system to accommodate…

Keep reading

QTE RPG Devlog #2: QTE system basis

The main goal behind this project is to try and make my own version of RPG combat with what Paper Mario called “Action Commands” – additional actions and inputs a player can make during a character’s attack in turn based combat that could boost attack power, chain a combo, or other benefits. During an enemy’s attack, action commands can be used to reduce damage or parry to reverse the damage back to the enemy. Games that implement this kind of combat system usually have a mix of implicit commands where a player must time inputs without a prompt, or explicit…

Keep reading

Mother Forever Devlog #2: Architecture and Custom Editor Programming

Is it.. exactly? Like I wanted? No. I WANTED to use UI tookit to make buttons that displayed the color and HEX code, and when pressed, open up a small palette picker window. For some reason, making custom stuff like that that requires binding to serialized properties is NOT possible – or at least, not EASY – in the editor. HOWEVER, making a custom Palette attribute and a property drawer works in a similar way. using a single integer value, the palette attribute splits it into a luminosity value (left, 0-3) and a hue value (right, 0-15) that match up…

Keep reading

Mother Forever Devlog #1: Mother… Forever

My brain has a problem of thinking of fun technical ideas and fixating on them till I’ve solved them for myself… at the expense of all the OTHER technical ideas that I kinda got to a good stopping point and just… stopped. At least, if it’s any consolation to my QTE system exploration, it’s still KINDA related! I’ve decided to start looking into what it would take to procedural generate a large (and/or infinite!) MOTHER map. I’m not sure what the end goal will be for gameplay, if any, but the main challenge for myself is to capture the feeling…

Keep reading

Something went wrong. Please refresh the page and/or try again.