Skip to main content
Filip
Vencelides
ABOUT
PORTFOLIO
SKILLS
Search
Home
Projects
Projects
Cryogenesis
May 14, 2026
Cryogenesis
A first-person rail shooter currently in the prototyping stage, developed as part of the Game Development course at Masaryk University in a team of three together with Mikuláš Šťastný, Adam Renčo. The initial prototype was co-developed also with Jo Hyorim. The game is set in an alternative 1990s setting with sci-fi elements, where the player fights monsters infected by a cryogenic parasite. The atmosphere focuses on cold, darkness, and confined spaces, with a sense of isolation. The player progresses through a scientific facility and eventually attempts to destroy the ice core that empowers the hostile creatures. Game demo The project originally started as a four-week prototype and was later expanded over the course of one semester. I was primarily responsible for implementing the camera system, including the event scheduling system that drives gameplay events along the camera path. I also led most of the art direction, with a primary focus on level design and environment art, including 3D modeling of environments and props, as well as texture authoring. ⛶ ⛶ ⛶ ⛶ ⛶ ‹ › Cryogenesis ‹ › The video below showcases a demo level developed in Unity over the course of one semester. Compared to the original prototype, the visual direction evolved toward a different – yet still retro – aesthetic, with a blend of modern lighting and high-fidelity visual effects. Game demo developed in Unity over one semester Environment art A selection of environment art created for the project. ⛶ ⛶ ⛶ ⛶ ⛶ ‹ › Cryogenesis ‹ › Game prototype ⛶ ⛶ ⛶ ⛶ ⛶ ‹ › Cryogenesis ‹ › The video below shows a prototype developed in Unity over the course of four weeks, featuring core gameplay mechanics and simple custom visuals, which aim to evoke a retro, PS1-style aesthetic. Game prototype developed in Unity over four weeks
3D model – Moora
November 29, 2025
3D model – Moora
A 3D model based on my original concept, created as the final project for the 3D Modeling course at Masaryk University. Moora is a sci-fi robot inspired by nature, designed to help restore ecosystems affected by long-term ecological decline. Set in a world where once-healthy landscapes have turned into fragile moorlands, its purpose is to monitor environmental conditions and support the recovery of natural balance. Results ⛶ ⛶ ⛶ ‹ › 3D model – Moora ‹ › Design Moora combines organic elements with functional elements: Moth-like body shape High-visibility caution coloring (inspired by nature) Soil-contact sensor – measures moisture, pH, and nutrient levels Optical system – proximity scanning and infrared imaging (leaf health, water stress) Watering module – integrated nozzle and storage tank Wing-mounted sensors – solar energy collection and environmental data gathering GPS antennas – navigation Moora – viewport Third-Party Assets All third-party assets are licensed under CC0. Textures (via AmbientCG): Metal059C PaintedMetal004 Metal004 SolarPanel002 Ground048 HDRIs (via Poly Haven): Spaichingen Hill Adams Place Bridge
Tearaparthian
November 16, 2025
Tearaparthian
A simple shoot ’em up game inspired by Tyrian, developed as part of a Game Development course at Masaryk University. The player controls a spaceship, destroying meteors and fighting enemy ships while earning score and credits. Between levels, credits can be spent on upgrades such as triple gun, faster projectiles, or better armor. Each enemy features a different attack pattern and behavior, such as side-to-side movement vs. straight movement and straight-line projectiles vs. homing projectiles. ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ‹ › Tearaparthian ‹ › The game features three levels: Level 1: meteors Level 2: enemy ships Level 3: mixed meteors + ships with a final boss The game was developed for both desktop and mobile platforms. Gameplay footage from the final game
Lightmap Generator
April 14, 2025
Lightmap Generator
A lightmap baking tool I developed as part of my Bachelor’s thesis, focused on precomputed global illumination in 3D scenes. It supports interactive scene visualization, light setup, and lightmap baking, with global illumination computed using a CPU-based path tracer. Results are generated progressively and can be inspected during the bake. The thesis goes beyond the implementation, it documents both the underlying theory and the complete lightmapping pipeline, making it a practical reference for understanding how these systems work. Results To demonstrate the capabilities of the tool, a test scene inspired by The Baking Lab (Neubelt, Pettineo) was used, as it provides a controlled setup for evaluating different lightmapping approaches. The scene is designed to highlight different lighting effects and the strengths of individual lightmap representations. Indirect lighting is achieved through light bouncing off differently colored walls Shadowing is demonstrated using small occluding objects Transparency is showcased using a partially transmissive mesh (a fence above the scene) Directional lightmaps enable lighting reconstruction on normal-mapped surfaces The lighting setup consists of a spot light above the scene and a point light inside it. Lightmaps are generated with 64 samples per texel and up to 4 light bounces, and are intended for use with bicubic filtering. Precomputed global illumination (3rd-order SH); albedo + normal mapping. ⛶ Precomputed global illumination (3rd-order SH); albedo + normal mapping. Precomputed global illumination (3rd-order SH); lighting only, normal mapping. ⛶ Precomputed global illumination (3rd-order SH); lighting only, normal mapping. Precomputed global illumination (non-directional); albedo. ⛶ Precomputed global illumination (non-directional); albedo. Precomputed global illumination (non-directional); lighting only. ⛶ Precomputed global illumination (non-directional); lighting only. Precomputed direct lighting (3rd-order SH); lighting only, normal mapping. ⛶ Precomputed direct lighting (3rd-order SH); lighting only, normal mapping. Dynamic direct lighting (no shadows); albedo + normal mapping. ⛶ Dynamic direct lighting (no shadows); albedo + normal mapping. Dynamic direct lighting only (no shadows); normal mapping. ⛶ Dynamic direct lighting only (no shadows); normal mapping. Dynamic direct lighting only (no shadows); face normals. ⛶ Dynamic direct lighting only (no shadows); face normals. ‹ › Lightmap Generator ‹ › Core Approach Global illumination is computed using a custom CPU-based path tracer, progressively accumulating samples for each lightmap texel. The integration is based on quasi-Monte Carlo methods, using low-discrepancy sequences to improve convergence compared to purely random sampling. A denoising step is applied during postprocessing to reduce Monte Carlo noise. The implementation is limited to diffuse global illumination, assuming a Lambertian BRDF and using cosine-weighted hemisphere sampling for indirect bounces. Scenes can be lit using analytical (infinitesimal, zero-area) light sources – directional, point, and spot lights. It also supports transparency, allowing rays to pass through partially transmissive surfaces. Computed lighting is stored in HDR lightmaps, with optional directional encoding using 3rd-order spherical harmonics to support normal mapping. The tool uses a custom, lightweight OpenGL-based engine for visualization, with an ImGui-based UI for interaction. In addition to lit scene rendering, it provides debug views for lightmap charts and texel density directly on surfaces. Lightmap generation process in the tool ⛶ Lightmap generation process in the tool Visualization of surface-to-chart assignment within the lightmap atlas ⛶ Visualization of surface-to-chart assignment within the lightmap atlas Texel density visualization, color-coded by texel-to-surface size ratio: blue = insufficient, green = optimal, red = excessive ⛶ Texel density visualization, color-coded by texel-to-surface size ratio: blue = insufficient, green = optimal, red = excessive Progressively generated lightmap (without denoising) ⛶ Progressively generated lightmap (without denoising) Progressively generated lightmap (with denoising) ⛶ Progressively generated lightmap (with denoising) Final generated lightmap texture ⛶ Final generated lightmap texture ‹ › Lightmap Generator ‹ › View full thesis (Czech only) Lightmap atlas & UV parametrization The lightmap atlas is generated using xatlas, which segments geometry into charts – typically contiguous surface regions with similar face normals – and packs them into a non-overlapping UV layout. To support both bilinear and bicubic filtering, the atlas includes a three-texel padding (gutter), preventing light leaking between neighboring charts during texture sampling. Acceleration structures The tool uses two complementary acceleration structures: A BVH (Intel Embree) built from the scene snapshot, used to accelerate ray intersection queries during path tracing. A uniform 3D grid for light culling, where each cell stores the lights affecting its volume. Since lights are modeled with bounded influence (finite falloff), this allows efficient evaluation of only relevant light sources during path tracing. Preprocessing Preprocessing establishes the mapping between lightmap texels and surface geometry and generates sampling points for lighting evaluation. Instead of sampling only at texel centers, each texel is populated with 64 samples using a Hammersley low-discrepancy sequence. A so-called dilation map is also generated to handle padding texels. For texels within a two-texel radius of chart boundaries, the tool precomputes mappings between fill targets and valid source texels. Lighting computation Global illumination is computed using a CPU-based path tracer with multi-threaded execution, where each thread processes a subset of texels. The computation is progressive, allowing intermediate results to be visualized during baking. Primary rays are sampled using a Halton low-discrepancy sequence over the hemisphere. Secondary bounces use cosine-weighted sampling, assuming a Lambertian BRDF. The system supports transparency, allowing rays to pass through partially transmissive surfaces. Postprocessing Firstly, texel dilation is performed on the GPU via a compute shader, using the precomputed dilation map. Secondly, as Monte Carlo integration naturally produces noisy results, a denoising step is applied using Intel Open Image Denoise (OIDN), running on either CPU or GPU depending on hardware availability. Lightmap representation The system supports two lightmap formats: Directional lightmaps, storing lighting using 3rd-order spherical harmonics (9 coefficients per texel / 9 textures), enabling reconstruction based on surface normals (suitable for normal mapping) Non-directional lightmaps, storing irradiance per texel (single texture) Lightmap coefficients are stored in HDR using RGBM encoding (range ⟨0, 5⟩ in gamma space), allowing them to be saved in standard PNG format while preserving dynamic range. Limitations While the tool is capable of producing visually convincing results, achieving high-quality output often requires iterative tuning of parameters. As a result, effective use of the tool assumes a basic understanding of lightmapping principles and their impact on the final solution. The most significant limitation, is the absence of a dedicated solution for smoothing lighting discontinuities at chart seams. Since adjacent charts are computed independently, visible seams can appear due to differences in computed lighting coefficients. This artifact is most noticeable at lower lightmap resolutions and becomes less pronounced as resolution increases, but without explicit seam correction, it cannot be fully eliminated. Artifact: Lighting discontinuities at chart seams.Left: chart segmentation (color-coded). Right: generated lightmap. Discontinuities appear along chart boundaries. Tech stack C++20 OpenGL 4.6 – rendering and GPU-based computation xatlas – lightmap atlas generation and UV parametrization Intel Embree – BVH construction and ray intersection acceleration Intel Open Image Denoise (OIDN) – denoising of path-traced lightmaps ImGui – user interface
Animation – English Breakfast
June 14, 2024
Animation – English Breakfast
A short animation created as the final project for the Computer Graphics and Virtual Reality course at College of Polytechnics, Jihlava. The animation depicts the preparation of a traditional English breakfast, from raw ingredients through washing, cutting, cooking, and final serving. For the animation, I created simple custom 3D models with solid-color materials. ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ‹ › Animation – English Breakfast ‹ › Final animation
Blender Ptero Tools
November 9, 2021
Blender Ptero Tools
A Blender addon adding full support for Vietcong / Vietcong 2 (Ptero-Engine-II / Ptero-Engine-III) 3D formats which enables creation of custom 3D assets for both games. While official tools existed, they were limited to outdated versions of 3ds Max (7/8) and lacked support for advanced workflows such as character creation, skeletal animation, and vehicle assets. In addition, the dependency on licensed software and plugins incompatible with modern versions made them impractical to use. To overcome these limitations, I developed a complete Blender-based toolchain, enabling modern and more efficient asset workflows. The project involved extensive reverse engineering of proprietary file formats. The addon supports complete import/export of engine formats, including skeletal meshes, animations, facial expressions, and equipment placement, while also exposing engine-specific configuration and material settings. An animated equipped character imported into Blender ⛶ An animated equipped character imported into Blender A character 3D model imported into Blender ⛶ A character 3D model imported into Blender A character 3D model imported into Blender ⛶ A character 3D model imported into Blender A character 3D model imported into Blender ⛶ A character 3D model imported into Blender A building 3D model imported into Blender ⛶ A building 3D model imported into Blender The standard Suzanne test mesh from Blender, exported using the tool and imported into Ptero-Engine-II ⛶ The standard Suzanne test mesh from Blender, exported using the tool and imported into Ptero-Engine-II ‹ › Blender Ptero Tools ‹ › Even before full animation support was implemented, I used an early version of the addon to create Koppa (2020), likely the first map created entirely in Blender for Vietcong. The tools were developed for personal use and were never publicly released. Key features Engine-specific object configuration and asset properties Support for skeletons, skeletal animation, and shape keys Full support for Ptero-Engine-II/III materials BES (3D model) import/export STG (skeletal animation) import/export MANM (model animation) import/export EQP (equipment placement) import/export XDT (facial expression sets) import/export Showcase MAT 49 weapon ported from Vietcong 2 to Vietcong 1, shown in Blender ⛶ MAT 49 weapon ported from Vietcong 2 to Vietcong 1, shown in Blender MAT 49 weapon ported from Vietcong 2 to Vietcong 1, shown in-game ⛶ MAT 49 weapon ported from Vietcong 2 to Vietcong 1, shown in-game Custom first-person hand animation; player hands ported from Vietcong 2 ⛶ Custom first-person hand animation; player hands ported from Vietcong 2 Captain Boone ported from Vietcong 2 to Vietcong 1; player hands ported from Vietcong 2 ⛶ Captain Boone ported from Vietcong 2 to Vietcong 1; player hands ported from Vietcong 2 Custom character used for in-game skeleton visualization (octahedral debug representation) ⛶ Custom character used for in-game skeleton visualization (octahedral debug representation) Tommy (Mafia: The City of Lost Heaven) ported into Vietcong 1 ⛶ Tommy (Mafia: The City of Lost Heaven) ported into Vietcong 1 CS:GO character ported into Vietcong 1 ⛶ CS:GO character ported into Vietcong 1 Customized animal 3D model (cow/buffalo) ⛶ Customized animal 3D model (cow/buffalo) ‹ › Blender Ptero Tools ‹ › A character walk animation imported into Blender A first-person hand animation imported into Blender (slowed down) Tech stack Python Blender Python API NumPy
Lutsip LS3D Editor
November 17, 2020
Lutsip LS3D Editor
A custom level editor for Hidden & Dangerous 2, powered by my own C# OpenGL-based 3D engine, developed as part of my high school capstone project. The project required an in-depth analysis and partial reimplementation of the original game engine, as no official modding tools or documentation were available. Over the course of a year, I reverse engineered most relevant file formats and built an editor for creating and complete editing of game levels. While some tools already existed, they lacked a 3D view and supported only a limited subset of features, making it effectively impossible to create new levels or significantly modify existing ones. The editor significantly improves the modding workflow, allowing creators to design levels in a more intuitive and efficient way. Its release marked a new era for Hidden & Dangerous 2 modding. ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ‹ › Lutsip LS3D Editor ‹ › View release page Technical insight Working on Lutsip provided practical experience with real-time rendering techniques used in older game engines, such as the LS3D Engine. The project involved implementing and understanding core concepts such as: Scene graph Gouraud/Phong shading View frustum culling Sector/portal/occluder occlusion culling Uniform spatial grids for collision detection Lightmapping Morph target animation Many modern rendering systems still rely on these techniques, often in evolved forms. Key features Full scene editing (models, lights, sounds, particle effects and other objects) Assigning 25+ actor types (characters, vehicles and other interactive objects) AI navigation waypoint grid editing Colliders creation Special graphics effects configuration (animated water, volumetric lighting, vegetation, etc.) Characters’ inventory editing Animation path editing (for cameras/aircrafts) Tech stack C# OpenGL – real-time rendering OpenTK – OpenGL bindings for C# Windows Forms – UI with mostly custom-drawn components using GDI+
Blender LS3D Tools
November 16, 2020
Blender LS3D Tools
A Blender addon developed as a companion tool to the Lutsip LS3D Editor, enabling the Hidden & Dangerous 2 modding community to create custom 3D assets for the game. The addon adds support for the 4DS format, allowing users to import, create, and export all supported object types. It provides full control over LS3D-specific object types and materials, including engine-specific settings. The tool was built as one of my first Blender addons, so the internal codebase could be improved. However, it remains fully functional and is still actively used by modders to create custom levels, weapons, and other assets for the game. The la_spitfire.4ds 3D model imported into Blender ⛶ The la_spitfire.4ds 3D model imported into Blender The la_Jeepsas.4ds 3D model imported into Blender ⛶ The la_Jeepsas.4ds 3D model imported into Blender The Czech1 mission scene.4ds 3D model imported into Blender ⛶ The Czech1 mission scene.4ds 3D model imported into Blender The standard Suzanne test mesh from Blender, exported using the tool and imported into the LS3D engine ⛶ The standard Suzanne test mesh from Blender, exported using the tool and imported into the LS3D engine ‹ › Blender LS3D Tools ‹ › View on GitHub Showcase Video showing the tools in use, by Sasha. Video showcasing custom armory created using the tools, by Sasha. Video showcasing custom vehicle created using the tools, by Sasha. Limitations No support for skeletal meshes or morph targets (shape keys), making character creation impossible Missing export support for flat shading normals (all meshes are implicitly exported as smooth shaded) Key features 4DS import/export Engine-specific object configuration Standard mesh, billboard mesh creation Sectors, portals, occluder creation Lens flares creation Complete LS3D material settings support Complete LS3D object settings support Tech stack Python Blender Python API
Vietcong: Hell in the Jungle
August 12, 2020
Vietcong: Hell in the Jungle
An example of a more advanced singleplayer mission script I wrote for Vietcong. This mission was created as part of the fan-made add-on Hell in the Jungle, in collaboration with modder Melber, the main author of the add-on. The level is based on the original Hanging Bridge level from the Fist Alpha expansion pack, but the mission progression is original and played from the perspective of Vietcong soldiers. I implemented the entire mission script, including dialogue sequences and gameplay logic, while Melber was responsible for the level itself. ⛶ ⛶ ⛶ ⛶ ‹ › Vietcong: Hell in the Jungle ‹ › View on ModDB Although the add-on has not yet been released, a playthrough of the mission's opening can be seen in the video below. Video of the mission opening, by Melber.
Seek mode
May 15, 2020
Seek mode
A custom multiplayer game mode script I originally wrote for a Vietcong jump map Cave_Jump created by Die. Authors of jump maps traditionally include secret rooms in their maps that players explore and discover. This mode builds on that concept by introducing a dedicated system for tracking which rooms each player has already found. Each secret room can be claimed by capturing a flag, and the mode tracks player progress throughout the map. The total number of rooms is visible to everyone, and players can see each other’s progress and compare how far they have gotten. ⛶ ⛶ ⛶ ⛶ ‹ › Seek mode ‹ › View on GitHub View maps using this mode
Koppa
April 14, 2020
Koppa
This is my latest original map and likely my most successful one, having been regularly played and forked twice into derivative versions. The map is set in a Vietcong’s jungle encampment enclosed by rocky cliffs. It offers limited traversal across the surrounding rocks, as well as a small cave location. Despite the green jungle setting, I aimed to maintain strong readability and clear navigation. The map is relatively compact, reflecting the declining player base over time, and was primarily designed for DM and COOP modes. In practice, however, it found success mainly as a COOP experience and remains part of the regular map rotation on the vietcong.tk server. ⛶ ⛶ ⛶ ‹ › Koppa ‹ › View on Vietcong1.eu
Dreamland
December 21, 2017
Dreamland
An original map with a self-explanatory name, directly inspired by my own dreams. The level follows a highly stylized artistic direction with psychedelic elements. It’s a smaller map, largely enveloped in darkness, creating a playful and surreal environment. In retrospect, however, some of these design choices negatively impact gameplay comfort in certain aspects. The map was primarily designed for DM. ⛶ ⛶ ⛶ ⛶ ‹ › Dreamland ‹ › View on Vietcong1.eu
Desert_Action
December 18, 2017
Desert_Action
My original desert map set in an open environment with an oasis. The level features mostly open space with minimal cover, which I later recognized as a less effective design choice. It was created for the VC_COOP mode, aiming to provide a challenging experience rather than a realistic tactical scenario. ⛶ ⛶ ‹ › Desert_Action ‹ › View on Vietcong1.eu
Junglebase
December 18, 2017
Junglebase
This map is a port of the Airstrip map from the Counter-Strike series. While it doesn’t introduce new level design elements, the focus was on adapting the visuals to fit a US basecamp near the jungle and align with Vietcong’s original maps aesthetic. The map was primarily designed for DM, CTF and VC_COOP modes. ⛶ ⛶ ⛶ ‹ › Junglebase ‹ › View on Vietcong1.eu
MYRSEX
December 18, 2017
MYRSEX
This map features a distinctive visual style, achieved through edge highlighting and 8-bit-like textures. Player skins were also modified to solid yellow and blue, which reinforces both visual clarity and stylistic consistency. The core layout is not original, largely based on and partially adapted from the unofficial Complex map from Vietcong 2. However, the placement of obstacles and the overall artistic direction are my own. The map is primarily designed for CTF and ATG modes. ⛶ ⛶ ⛶ ‹ › MYRSEX ‹ › View on Vietcong1.eu
EnTe
December 23, 2016
EnTe
The first map I fully modeled myself – Enemy Territory. It is set in a remote facility complex with an underground garage and surrounding passages. The map aims to capture the atmosphere of New Mexico, evoking a sense of isolation and abandonment. It was primarily designed for DM and COOP modes. ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ‹ › EnTe ‹ › View on Vietcong1.eu
Depot
December 22, 2016
Depot
This map is essentially a port of the well-known Depot map from Vietcong 2, so I don’t take much creative credit for its design. My main contribution was adapting it to Vietcong 1, including thoughtful placement of the available weapons. At the time of release, the map was quite popular and offered fast-paced gameplay (especially in DM), keeping players constantly engaged. There are several ports of this map for Vietcong 1, but I believe this version is the most faithful and best preserves the original gameplay pacing. It’s a map I enjoy playing to this day. ⛶ ⛶ ⛶ ‹ › Depot ‹ › View on Vietcong1.eu
SectorThirteen
December 12, 2015
SectorThirteen
I consider this map a successful expansion of the original NVA Base map. It extends the gameplay by introducing new paths, additional cover opportunities, and an entirely new area beyond the original map boundaries. The map makes use of external 3D assets, which were retextured to better match the overall visual style of the original map. ⛶ ⛶ ⛶ ‹ › SectorThirteen ‹ › View on Vietcong1.eu
WinterValley
November 25, 2015
WinterValley
This is essentially a retextured version of the original Arroyo map, adapted to create a winter atmosphere – and for those who prefer something other than the green jungle hell :). While the core layout remains unchanged, the map offers a noticeably different experience through higher contrast and a distinct visual atmosphere. ⛶ ‹ › WinterValley ‹ › View on Vietcong1.eu
Limerick
November 6, 2015
Limerick
One of my early maps, loosely inspired by the Irish city of Limerick, which I was particularly interested in at the time. The goal was to capture the feel of a fight taking place in the streets of a small town with an adjacent park. The geometry is very simple, essentially a layout of straight streets. At that stage, I wasn’t creating my own 3D models yet, so the level was built using external 3D assets and textured box-based structures of varying sizes. But It was definitely a step forward toward creating my original creations. ⛶ ⛶ ⛶ ‹ › Limerick ‹ › View on Vietcong1.eu
HalongForBetterPlaying
October 22, 2015
HalongForBetterPlaying
This was my very first published Vietcong map. It’s not a groundbreaking piece but rather a simple extension of the original Halong Port map, adding access to mountains that were previously unreachable using elevated platforms. The environment design is worse than basic, as this was my first project. For me, the project is mainly a nostalgic milestone. During its development, I managed to bring four of my closest classmates into the game. We initially played the map locally over LAN, and I iterated on it based on their playtesting feedback, eventually reaching version 11. Their support motivated me to set up my first public server, where I released the map. This experience taught me the importance of playtesting before release, as well as continuing to update a project afterward when friction points appear. The map was primarily designed for DM mode. As of 2026, the map can still occasionally be spotted on some active servers. ⛶ ⛶ ‹ › HalongForBetterPlaying ‹ › View on Vietcong1.eu
Projects