Lecturer | Game Programmer

Patrick Fischer


Who am I? 😱

Hi, I'm Patrick, a creative and professional programmer with over 7 years of experience. My primary focus is on network and tool development, where I find the perfect blend of challenge and reward.

more about me!

☝🏼HighLight💡 Projects

"Over the years i built plenty projects for learning as well in companies!"

Here are some of my highlights!👀

🎮Game Dev Tools🔨

"I also find my passion in creating some tools ⚙️So I started to sell some of them!" 💵

Because Tools can take your development process to the next level! 📈

Other Stuff🧐

"Next to my Projects, Game Jams are very welcome for me.

And there is so much more off side of game development what i am doing" 💪🏼

🎮Game Dev Wiki📄

"I wanna build up a simple wiki what i learned over the past years in the games Industrie. Take a look at!"

Start your own Journey! 👈🏼

Get in Touch and say Hi!👋🏼

Highlight Projects

Top Down Horde Shooter

Disco Gunner (WIP)



Multiplayer First Person Horde Shooter

Project CP




Professional Projects

Online Meet together for Gamescom 2020

Indie Arena Booth Online




SAE Game Jam - 2024

Wake Up

Global Game Jam - 2024

Bouncy Kingdom

SAE Game Jam - 2023

Travel Through Time

SAE Game Jam - 2022

MARkus Movers

Global Game Jam - 2019

Catch your memories

Dynamic Difficulty Adjustment Tool

Balance It (WIP)

Debug Logging Graphical Tool

Graph It (WIP)

Pooling Tool for Unity

Pool It

About me


Hey, I’m Patrick, an enthusiastic German game developer who loves to write clean and powerful code. Game programming is a huge adventure for me, where I’m constantly learning and taking on new challenges. This journey makes it exciting to see where the future of game development is headed.It is also important for me to help others get started in game development. That’s why I love teaching, organizing Game Jams, and sharing my knowledge in my wiki. It’s truly rewarding to support people in bringing their own projects to life.I also frequently attend events like gamescom, devcom, and the German Dev Days, as well as Game Dev Meetups. These events are great opportunities to network, exchange fresh ideas, and just be part of the community.

Skillset

over the years i learned alot and there is still so much to learn. But here are some skills, that i built up in the past:Languages:
C#, C++, Python, LUA
Version Control Software:
Unity Version Control (Plastic SCM), Github, SVN
Project Management Tools:
Trello, Jira, YouTrack
Software:
Jetbrains Rider, Visual Studio, FMOD Studio, TeamCity
Engine:
Unity, Unreal Engine 5

Badge

Working Experience

SAE Institute Frankfurt

Head Instructor Games Programming
Aug 2021 - today
Supervisior Games Programming
Nov. 2020 - Juli 2021
As Head Instructor for the Games Programming area, I lead the department, which is largely composed of organization, management, development of the program, teaching and technical support. A detailed list of duties is available below.Personal Highlights:
My first course, which I supervised from the beginning, won the first SAE Student Award in Frankfurt in 2022, for the best games programming project from all SAE sites.
Subject-related assignments with the student:
- Main lecturer for the practical classes at the Frankfurt campus.
- Lecturer for theoretical lessons GSA* wide
- Technical support for students
- Support on student projects
- Technical support for bachelor topics
- Performance evaluations of students
- Conducting workshops and seminars
- Technical support of project work
- Contact person for interested visitors at the Open Campus
Organization
- Planning of the course development of the department GSA* far
- Planning the schedule and content of practical classes
- Planning and organization of local events (Game Jam etc.)
Management
- Assignment of tasks to the departmental assistants
- Contact person for academic and subject-related questions
Administrative tasks
- Maintenance of student data
- Planning and expansion of social media activities
* (Germany, Switzerland, Austria)

SUPER CROWD ENTERTAINMENT GMBH

Unity Developer
Oct. 2020 - Sept. 2020
Products Working on:
Indie Arena Booth Online 2020
Course before the realease of the Indie Arena Booth 2020 for Gamescom, Supercrowd has been looking for support to get the project ready in time for Gamescom.

Responsibilies include:- Bug Fixing and Troubleshooting: Identified and resolved issues on the platform to ensure smooth event operations.- Functionality Testing: Conducted tests to verify that all features were functioning as intended.- Documentation: Provided detailed documentation of identified bugs, tests performed, and solutions implemented.

Schenker Deutschland AG

Unity Developer
Oct. 2019 - Sept. 2020
Products Working on:
- VR Kleinpack
- VR Großpack
- VR Casino

Responsibilies include:- Developing New Game Features: Implement and integrate new features into the game to enhance the overall player experience.- Collaborating with Game Artists: Work closely with Game Artists to ensure a seamless integration of visual and gameplay elements.- Expanding Internal Editor Tools (Kite): Enhance and optimize internal editor tools, particularly "Kite," to improve game flow and development efficiency.- Debugging and Problem Solving: Independently debug and fix issues to ensure smooth gameplay.- Creating and Documenting Bug Tickets: Identify bugs, create detailed bug tickets, and document the issues and their resolutions.- Level Content Creation: Design and populate game levels with engaging content to provide diverse and exciting player experiences.

Project CP



Project Type: Private

Role: Project Manager | Programmer

Teamsize: 2 Programmer | 1 Artist | 2 Audio

Duration: 6 month

Tools: FMOD, Jira

About

Project CP was developed in the third semester at SAE Institute. As the Project Manager, I was responsible for organizational tasks such as meetings, sprint planning, and maintaining tools like Jira. Additionally, I developed the core functionalities of the project, handled AI development, and managed network functionality. The project began with two programmers, and later, an audio creator and an artist for level design joined the team. Through this project, I gained extensive knowledge in network programming and cross-disciplinary communication.

01.

Project Management

In this project, I was responsible for project management. It was a unique experience, as it was my first time using Jira as a tool. In the past, I had primarily worked with Trello or similar applications.Engaging with Jira was very interesting, as I was able to discover its strengths. Although it took some time to understand and properly apply the essential and fundamental features, Jira ultimately helped me gain a clear overview of all departments, track the process, and implement agile project management more effectively. This included sprint planning, regular meetings, and sprint reviews.

02.

Gameplay

The game starts in a lobby, where you can assemble your equipment. When you're ready to start a round, you can either create your own lobby or join a random lobby via Quickplay.Once the game begins, your goal is to protect the Hangar Console. Enemies will spawn in waves and attempt to capture the console.If you are defeated by an enemy, your teammate can revive you. If your teammate defeats the wave, you will be automatically revived.There are two types of enemies: Soldiers and Drone Bombs. When you defeat these enemies, they drop their weapons, which you can pick up. They may also drop Healthpacks that you can collect.The game is won when all waves are defeated!

03.

Networking

The game should naturally include network functionality, as projects like these are incredibly beneficial for learning. In the past, I have already gained experience in developing network applications. For instance, I created a small network chat program using sockets and developed a small multiplayer shooter (authoritative) with Photon Bolt. However, we also wanted to explore the non-authoritative model, which is perfectly suitable for a coop shooter. Consequently, we delved into Photon Pun 2.

04.

AI Behaviour

For the Artificial Intelligence (AI), I decided to go with a simple Finite State Machine (FSM). Before starting the implementation, I planned the AI using Draw.io to visually represent the states and transitions. The resulting diagram shows how the FSM is structured and how it functions.One particularly interesting aspect was synchronizing the FSM in a multiplayer environment. The FSM itself runs only on the host machine, but the positions and animations of the AI characters are synchronized to ensure smooth gameplay on all clients.Challenges and Solutions in Synchronization
One challenge was keeping the AI running when a player leaves the game. One might think it's enough to sync the AI information once when someone exits, but with a sudden disconnect, it's not that simple.
In the event of an unexpected disconnect, no code can be executed to save or sync the current state. Therefore, it's crucial to ensure that the AI information is always up-to-date. This means the relevant data must be continuously and reliably transmitted throughout the game.

05.

Inventory System

The inventory system is very simple. The basic idea is that players can scroll through their inventory using the scroll wheel. This allows a player to hold a primary weapon (e.g., AK, Scar) as well as a secondary weapon, such as a pistol.For network synchronization, only the ID of the weapon currently held by the player needs to be synchronized. This means that whenever a player scrolls through their inventory or picks up a new weapon, a network synchronization must occur.Additionally, we do not destroy weapons when they are switched or picked up; instead, we simply deactivate them. The reason behind this is that instantiating and destroying objects is a resource-intensive process in Unity. By keeping the objects in memory and not deleting them, we can avoid this overhead.This approach applies to both the first-person and third-person models. The weapon held by Player 1 is created in their first-person model, not in the third-person model. However, for all other players, the weapon is created in the third-person model.It is also crucial that when a player joins the game later, the weapon ID of each player is synchronized to the new player so that they are also up-to-date.

06.

Recoil Pattern Tool

For our weapons, I developed a Recoil Pattern. To make this pattern more comprehensible, I created a tool that allows for precise visualization of how the weapons behave in a recoil pattern. I intentionally chose not to use a procedural spray pattern for this project, enabling quick and easy adjustments to the recoil pattern.UsageWith my tool, I can easily add new points, adjust tangents, or delete points. Each point can be moved afterward, except for the "Root" point. However, the tangents of each point can be individually adjusted.Technical DetailsThe tool is built on a custom spline system that allows me to move points via drag-and-drop. Tangents can be displayed to fine-tune the curve. The spline curve is then used to generate points necessary for the recoil during runtime.A key feature is the proper placement of tangent points when creating new points. To ensure consistent results, I align the tangent in the direction of the second tangent of the previous point.

07.

FMOD

Goals
The primary objective was to craft an immersive and reactive soundscape that fully immerses players in the game world. Repetitive and monotonous sounds can make a game feel very dull, so we implemented the following strategies:
Variety in sound effects: To avoid monotony and create a more dynamic and engaging audio environment, we used different sounds for the same effects.
Dynamic soundtrack creation: To enhance emotional impact, we developed a music system that adapts to the in-game situation, changing dynamically with the gameplay.
Randomized sound adjustments: To ensure that sounds do not become repetitive, we varied parameters such as pitch, volume, and filters each time a sound effect was played. This introduced a natural variation and made the audio experience feel more lifelike.
Results
By implementing FMOD, we were able to utilize its robust core functionalities without the need for extensive custom coding. This greatly simplified the workflow between audio production, FMOD integration, and development. The end result was a significantly more immersive and engaging player experience.

Impressum

Angaben gemäß § 5 DDGPatrick Fischer
Samlandweg 3
63069 Offenbach
Vertreten durch:
Patrick Fischer
Kontakt:
E-Mail: [email protected]
Haftungsausschluss:Haftung für InhalteDie Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 DDG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 DDG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.Haftung für LinksUnser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.UrheberrechtDie durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.DatenschutzDie Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.
Google AnalyticsDiese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. (''Google''). Google Analytics verwendet sog. ''Cookies'', Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglicht. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website (einschließlich Ihrer IP-Adresse) wird an einen Server von Google in den USA übertragen und dort gespeichert. Google wird diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten für die Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird Google diese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich vorgeschrieben oder soweit Dritte diese Daten im Auftrag von Google verarbeiten. Google wird in keinem Fall Ihre IP-Adresse mit anderen Daten der Google in Verbindung bringen. Sie können die Installation der Cookies durch eine entsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können. Durch die Nutzung dieser Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck einverstanden.Website Impressum erstellt durch impressum-generator.de von der Kanzlei Hasselbach