Hello there.
I am Daniel, a game developer specializing in graphics programming and a math enthusiast who solves equations that create unimaginable environments. I am a team-oriented programmer who loves taking on challenging tasks, researching new technology to meet hardware and design requirements, and learning new things while simultaneously teaching others. I received my BSc degree from the Faculty of Electrical Engineering, Czech Technical University in Prague, and my MSc degree from the Faculty of Informatics, Masaryk University, both in computer science and game development.
Below, you will find a sample of the game titles I have worked on over the years. I am currently working on the next big thing, but if you are looking to bring your project to life or have any questions, feel free to contact me.
professional projects
Transport Tycoon Empire
Alda Games
Core Engineering
- Curve editor and path tools for Unity Engine
- Traffic system based on curves with various components such as semaphores, level crossings, bridges, highways, airports, etc.
- AI for planning and traffic simulation
- Collision detection and physics for vehicles (cars, trucks, trains, ships, planes, and helicopters)
- Core game system components
- Asset pipeline
- Memory management
Gameplay
- Various features such as cinematics, road and building builder, city economy with building area effects, player movement, crate opening, etc.
Rendering
- Post-processing pipeline with bloom, blur, and lens flares
- City rendering pass with custom shaders and mesh batching
- System for rendering hundreds of dynamic UI elements, which include 2D graphics and fonts
- Render pipeline optimization
Merge Master
Alda Games
Core Engineering
- Procedural level generation which includes arena graphics, enemies, statistics, and difficulty
- AI for battle simulation with command based system and state machines
- Core game system components
- Build and asset pipeline
- Memory management
- Player save system
- Anti-cheat with cryptography for memory and save file integrity
- Integrating third-party systems for analytics, advertisement, in-app purchases, user acquisition, etc.
Gameplay
- Various features such as game economy, merging, abilities, crate opening, level selection, etc.
Rendering
- Static mesh batching
- Uber shader with various features such as dissolve, damage indicator, freeze, poison, etc.
- Render pipeline optimization
personal projects
Real-time Snow Deformation
Terrain rendering using Compute Shaders
I have proposed a scalable real-time snow deformation technique implemented on the GPU using compute shaders and hardware tessellation. It is based on the approach used in Horizon Zero Dawn: The Frozen Wilds. The method was extended using snow elevation along the edges of the deformation.
The algorithm renders the snow-affecting objects using an orthographic frustum centered on the player from below into a depth buffer. The rendered depth is then used to determine if the deformation has to be applied. The deformation heightmap is accumulated in a persistent ping-pong buffer. The algorithm remaps the heightmap using a cubic function and filters the height using a separable Gaussian blur filter. The required texels are fetched into LDS using gather instructions, which gets the four texels that would be used for hardware bilinear interpolation. Finally, the normals are computed using the finite difference method based on the deformation heightmap.
The technique has a sliding window that moves the deformation heightmap with the player anywhere in the world, which allows this technique to be used in a massive open-world game.
2D Pixel Platformer
Programming in Unity Engine
It is time to dive into a dangerous world in a forgotten dimension. You are armed with a sword, bow, and gamepad. Can you survive? This game is inspired by Heart of Darkness (PS1), created by Amazing Studios. I worked on the game with my colleague Klára. My focus was mainly on artificial intelligence and graph algorithms to create challenging enemies that pushed the game to a whole new level. I also drew enemy animations and the environment that was used to create the levels.
Rendering of Biomolecular Datasets
Real-time Visualization
It was a university project focused on real-time visualization of biomolecular datasets with the use of deferred shading and outline rendering. I implemented a variant of Metaball rendering technique that filters the normals of the cell. The filtered result is then used for lighting calculations. Finally, the cell membrane is rendered using a semi-transparent pass with Fresnel effect. I created the application using C++ and OpenGL.
Photogrammetry Pipeline
Creating materials and assets for games
During my studies at Czech Technical University in Prague, teams from Center for Machine Perception implemented state-of-the-art algorithms used for reconstruction of 3D objects from images. The method is based on comparing multiple images taken from different positions to estimate object coordinates in 3D space. These techniques were also used in games such as Far Cry 5 and Star Wars: Battlefront to create realistic environments.
Based on their results and my experiments, I described a photogrammetry pipeline for creating game-ready PBR assets. It consists of multiple steps focusing on cleaning the data, efficient parameterization with proper UV density, and optimization. Below, you will find a sample of results that I achieved.
AK-47
Game ready PBR asset
One can define a function that will describe reflectance properties of a surface, but it is not always about programming. I also used to be a technical artist in my spare time to understand how the art department works. One of my created assets is AK-47 with a physically based material. I used 3ds Max for low-poly modeling, high-poly modeling, and 2D parameterization. Textures were made using Photoshop and Substance Painter.
contact me
Do you want to know more? I am currently based in Czech Republic (UTC+1). You can send me a message using the provided email, which can be found below. I will try my best to respond within a single day.
info@danielhanak.com