A virtual dollhouse simulator centered on creativity and immersion.
Players can extensively personalize characters by choosing from numerous options for each adjustable character part. In selected scenes, they can further express their creativity by decorating environments, painting walls and floors with a wide range of patterns and colors, and placing props from an extensive catalog as they see fit.
Examples of the work I have contributed include:
designing and implementing the character customization system and its semantics, including runtime logic applying player choices to characters, persistent data structure for on-disk representation and UI, ensuring robust integration between all layers;
building key portions of the game UI - character customization, builder mode and settings screen - with careful consideration of factors such as rounded screen corners, camera cutouts and notches;
developing a LUT-based shader for recoloring scene props and character parts, providing artists with WYSIWYG color control and reducing project size by eliminating the need for separate assets for each color combination;
implementing various gameplay elements to bring the vision of game designers and artists to life
An innovative game which fuses traditional RTS elements with elements inspired by They Are Billions.
Some of the work I have contributed included:
implementing new gameplay elements and adding features to existing ones, ensuring minimal performance impact in the process;
architecting and implementing a substantial portion of game's visual flow using Unity's UI Toolkit (formerly UI Elements), which involved:
implementing code responsible for UI behavior (UX) and layout management;
adhering to the reference UI design in Figma, exporting and modifying it as needed to align with game design;
fine-tuning USS styling and UXML layout code;
development of features which make use of shaders (HLSL, Unity Shader Graph) and the Scriptable Render Pipeline (SRP) API as well as features leveraging Unity's VFX Graph;
resolving reported issues and revising features in response to feedback and evolving design requirements
A survival game with a playful twist, presented from a first-person shooter perspective.
Here are some of the features I've implemented as part of this project:
utilized networking solution features to dynamically toggle networked objects based on player proximity with the aim of reducing resource usage (CPU, GPU, RAM);
implemented a world persistence solution from scratch designed with world streaming in mind with long-running operations (e.g. I/O tasks) spread over multiple frames; later integrated with previously existing game code
A 3D isometric RPG set in a distinctive, otherworldly realm.
Here is a selection of the work done on features in this project:
implemented altering gameplay mechanics, adjusting world appearance by manipulating material properties at runtime, and updating the user interface - all in response to an in-game trigger or player input;
an enemy inventory system, which allows random weapon selection and weapon unequipping based on changes in world state;
creating new and modifying existing enemy behavior trees;
integrating visual effects according to design requirements
A 3D isometric role-playing game which blends classic gameplay mechanics with innovative twists within a distinctive world.
Here are some of the features I've implemented while working on this project:
modular procedural level generation system using a simplified two-dimensional random walk algorithm, accompanied with editor UI to make preliminary result visualization easier;
mechanism which crossfades visual effect weight and defines which types of enemies get spawned based on player’s proximity to a certain in-game region;
a system which allows defining actions upon enemy death, such as dropping items and changing player stats
A science-fantasy survival first-person shooter set in a unique world.
My contributions to this project encompassed a wide range of tasks and responsibilities, including:
implementing a dependency tree which defined prerequisites before a certain building or item was unlocked - implemented both the rule definition code, usable by game designers, as well as gameplay experience and UI code;
reworking existing world persistence solution to improve performance, usability and store more gameplay parts to the disk;
implementing support for multiple game store platforms (primarily Steam and Steamworks) to allow for client- and server-side ownership validation;
work related to multiplayer networking:
porting the game from one networking solution to another (MLAPI to Photon Bolt), introducing server authority and client-side prediction for some gameplay features as part of the process;
implementing a custom network messaging system for interactable in-game vegetation to reduce network overhead incurred by synchronizing scene vegetation as individual network objects;
adapting a third-party character controller solution (Kinematic Character Controller) for a server-authoritative networking library (Photon Bolt) while taking care of previously implemented movement-reliant gameplay code which relied on it;
world streaming features such as:
using Unity Addressable Asset System API to load and unload game content based on player proximity;
splitting content scenes in cells, processing terrain objects to generate low polygon count equivalents, working with third-party assets (MicroSplat) to ensure matching appearance between the stand-in object and the original one as well as using network messaging to ensure both client and server have matching cell scenes loaded;
implementing rich CI/CD integration, which included:
Unity code which allows defining, customizing and building game presets from the editor;
GitLab builder scripting with support for building any of previously defined presets and their deployment to target Steam branch with no user intervention
I Hate Running Backwards is a never-ending adrenaline packed shoot'em down roguelite that puts the emphasis on destruction and fighting never ending waves of enemies while time traveling through procedurally generated worlds!
My involvement in this project spanned various tasks and responsibilities, including:
gameplay features like:
progression and statistics systems;
simulating destructible scenery props using cubes to fill mesh shape, ensuring that when a prop is destroyed, it breaks into previously created cubes;
procedural level generation features such as:
filtering and spawning objects based on biome;
randomly choosing between pickups or destructible scenery at a given spawn point
First-person shooter game where the protagonist is a cube trapped in a world dominated by cylinders. Player can collect items and organize them in the dedicated inventory interface.
Simple chat system which allows users to exchange text messages with files and GPS location optionally attached to them. Comprises a server and Android client component.