Portfolio Lukas Salewsky
"DoodlerEngine"
Private project (06.2024 – today)
Re-write / extention of „Game Engine Elective“-engine
Based on SFML (C++)
Important Learnings:
Applying learnings of elective and book „Game Engine Architecture“
Implement robust and abstract features
Documentation
Improvement of C++
Smart pointers
Templates
Delegates (callbacks)
Multithreading basics
Casting
…
CMake basics
Description:
Since most of our semester projects turned out to be Unity projects in C#, and I realized the importance of C++ in the gaming industry, I decided to dive deeper into engine programming. I analyzed the engine provided by our lecturer, Valentin Klink, in the „Game Engine Elective„ course and rewrote it to fully understand every part of it. I then started adding additional systems and features. This project is ongoing, and whenever I find time, I work on new features or develop a game for it. It has significantly helped me understand how C++ can be used in game development.
"Footgun: Underground"
Parttime-job (08.2023 – 06.2024)
Official steam-released Indie-title
Role: gameplay programmer (C#)
Engine: Unity
Important Learnings:
Working on a complete game
Well thought-through architecture
Solid team member knowledge, many cool discussions
Lots of AI-behaviour
GamesCom booth
Stress before release
Debugging
Description:
I had the great opportunity to work for the German indie studio Turtle Knight Games on an official game, which financed my studies for nearly a year. When it was released, it received many positive feedback from players on Steam.
I contributed by implementing various mechanics, including special ball types, characters, items, enemy behaviors, and much more. I was even given the chance to design three of the ten bosses in the game.
Our team consisted of four programmers, one pixel artist, one sound designer, and the publisher CobraTekku, who handled marketing.
"World Generator"
4th semester (04.2024 – 07.2024)
„Procedural World Construction“ elective submission
Language: C++
Engine: own 2D engine (SFML-based)
Important Learnings:
C++
Cellular Automata algorithm
De-/serialization of bitmaps
Multithreading basics
Brush-tool to manipulate map
Undo-function
Description:
The 2D World Generator creates bitmaps that can be used for games similar to the classic Worms series. It generates random noise patterns, which are then processed using a Cellular Automata algorithm to form tunnel-like structures.
The generated bitmap can be modified in real time using the brush tool, and any unwanted changes can be reverted.
"American Cooking Simulator"
5th semester team project
(10.2024 – 02.2025, will be extended into 6th semester)Role: main programmer (C#)
Engine: Unity
Important Learnings:
Planning most of code architecture beforehand
Content-driven systems
Inheritance hirarchies
Interfaces
Focus on S.O.L.I.D principles
First person player controller
AI NavMesh
Description:
Cooking with guns! Shoot ingredients around the kitchen, get them on the stove, get them in the burger-boxes, deliver them. You are the employee in a American fast food chain! All ingredients are physics-based. The game was released on Steam and was well recived! I concentrated primarly on gameplay programming.
"QuadTree Implementation"
3rd semester (10.2023 – 02.2024)
„Game Engine Elective“ submission
Language: C++
Engine: engine developed during elective by lecturer Valentin Klink
Important Learnings:
Understanding engine fundamentals
First hands on a C++ project
Implemeting a low level system
Benchmarking performance
Quadtree works, but only usefull after a certain threshold of compared colliders
Description:
In this elective, I learned the fundamental aspects of modern game engine architecture, specifically focusing on the Entity Component System (ECS). Together with our lecturer, we built our own SFML-based 2D engine. He also provided a Tank vs. Tank game, where two players compete to hit each other with ricocheting bullets. These bullets not only have the ability to hit the tanks but can also collide with each other.
To enhance the game’s performance, I implemented a quadtree (a spatial partitioning structure) to reduce the number of collision checks performed each frame, improving the overall efficiency.
"DepthOfUnity Elective Submission"
5th semester (10.2024 – 02.2025)
Submission of deeper Unity topics
SaveSystem
Extension methods
Editor scripting
Helper components
Language: C#
Important Learnings:
Tool-Development
How Unity Editor works
Generating package-files
Description:
This elective taught me a lot about Unity and C#. Our lecturer highlighted the benefits of custom tools for non-programmers, such as creating an event system. One of the projects involved programming a tool using the ChatGPT API that allowed users to manipulate an existing scene simply by typing a prompt in an editor text field, among many other useful features. The submission required us to develop one custom tool, several extension methods, editor scripting, and helper components.
"The Bond We Share"
3rd semester team project
(10.2023 – 02.2024)Role: general programmer (C#)
Engine: Unity
Important Learnings:
Git managment
Physics-driven rope connects two physics-driven players (combining three dynamic forces to work together)
Developing tool for lighting artist
2.5D character controller (e.g. ledge grab, ladder climb etc.)
Description:
„The Bond We Share“ is a couch-coop 2.5D puzzle game in which the players are connected through a rope. If they cut the rope, everything around them changes to nightmare-world, but they can move individually. I did all programming.
"Hologram Shader"
3rd semester (10.2023 – 02.2024)
„Shader Elective“ submission
Languages: HLSL and C#
Engine: Unity
Important Learnings:
Shader programming basics
Render pipeline
Vertex Shader
Fragment Shader
Unity Shader Lab framework
Unity Built-In Render Pipeline
Performance differences between written shaders and Unity ShaderGraph
Description:
In the „Shader Elective“ submission I tryed to replicate the „Star Wars: The Clone Wars“ hologram shader as close as possible. It uses several passes and Unity-script controlable vertex displacement, which simulates signal interferences.
"D(e)ad Care"
2nd semester team project
(04.2023 – 07.2023)Role: general programmer (C#)
Engine: Unity
Important Learnings:
Git management
AI NavMesh pathfinding with dynamic obstacles
Pathfinding real-time interruptions
Align character animations with objects of interest