top of page

Experiments

POSITION

Developer

DESCRIPTION

A collection of smaller projects where each project is a mindful step on my path to becoming more proficient and versatile as a developer. 

YEAR

2018-2023

GENRE

---

PLATFORM

PC

Project Lead

Daniel Gleich

Programming

Daniel Gleich

Fantasy Arena

Fantasy Arena is a testament to my C++ skills and represents my second major project in the language. This endeavor presented a unique challenge: to develop a fully functional game in an environment not inherently suited for game development. Taking inspiration from the famous "Pirates Outlaws", Fantasy Arena was born, a roguelike, turn-based card game designed to engage players in exciting waves of strategic combat. The main objective? Survival and conquest against relentless hordes of opponents, while strategically upgrading your deck with new cards.

Main achievements:

  1. Database integration in C++: Skillful integration of database functions into the project, demonstrating the ability to manage data within the C++ framework.

  2. Implementation of the singleton pattern: Use of the singleton pattern to ensure the creation of a single, globally accessible instance of key game elements, improving efficiency and maintainability.

  3. Application of the Model-View-Controller (MVC) pattern: Use of the MVC pattern to create a well-structured and modular code base that facilitates scalability and maintainability during development.

  4. Savestate management: Implementing robust savestate management mechanisms that allow players to seamlessly continue their progress and maintain the integrity of the game state across multiple sessions.

Cookie Clickers

Cookie Clickers is a game where players click on a cookie to collect money, which can then be used to purchase upgrades, increasing future earnings. In my implementation of the game, I focused on maintaining simplicity while ensuring an engaging user experience. The focus was on concise, readable code to simplify maintenance and future upgrades.

Main achievements:

  1. Object-Oriented Code Design: Central to my approach was adherence to object-oriented principles that allowed for seamless integration of new store upgrades with minimal code changes. By prioritizing modularity and extensibility, I ensured that the project could be adapted to changing requirements.

  2. Mastery of web technologies: During the development process, I deepened my knowledge of HTML, CSS and JavaScript and used these languages to bring the game to life. This project provided me with invaluable opportunities to deepen my understanding of interpreter languages and asynchronous functions, and to improve my knowledge of web development.

  3. Focus on clean code: A commitment to writing clean, maintainable code was at the forefront of my mind throughout the project. By adhering to best practices and applying consistent coding conventions, I have ve

Conway's Game of Life

When I set out to develop my first "game" project, I came across Conway's Game of Life - a fascinating simulation known for its complexity. Despite its initial complexity, the fascinating interplay of cells in this simulation captured my attention, so I set myself the challenge of recreating it myself. This endeavor not only honed my technical skills, but also underscored my unwavering determination to tackle complex projects head-on.

Conway's Game of Life unfolds on a grid of white and black cells that symbolize different states of life - white represents death and black represents life. As the "player", you have the ability to manipulate the state of the cells and make them either alive or dead. Each iteration represents a generation of cells, with transitions controlled by a series of four rules that determine the fate of each cell. These rules intricately control the evolution of the simulation, breathing life into the dynamic interplay of cellular existence.

Main achievements:

  1. Knowledge of C++ with Qt: I used my basic C++ skills along with the Qt framework to carefully design the simulation and ensure seamless integration of user interfaces and complicated functions.

  2. User interface design: With great attention to detail, I designed intuitive user interfaces that facilitate user interaction and engagement and enhance the overall simulation experience.

  3. Implementing unit tests: As robustness and reliability were particularly important to me, I meticulously implemented unit tests to verify the functionality of critical components and ensure the accuracy and stability of the simulation.

  4. Mastering paint events: I orchestrated the visual representation of cell dynamics using paint events to breathe life into the simulation and immerse users in its captivating development.

Arctica

Driven by a desire to expand my expertise, I embarked on my second Unity project. Inspired by a documentary film about the graceful movements of Arctic foxes moving through the snow, I was particularly fascinated by their unique digging technique. This fascination served as the catalyst for designing a game centered around this characteristic mechanic.

The Unity project Arctica, currently in the prototype phase, offers players an immersive experience where they can mimic the nimble movements of Arctic foxes. At the heart of the gameplay is the ability to dig in a parabolic trajectory reminiscent of the graceful movements of foxes through snow-covered landscapes. In addition, players can perform jumps through thin walls, adding depth and excitement to the game dynamics.

 

Main achievements:

  1. Implementing unique player movements: Through careful experimentation and iteration, I have introduced innovative player movement mechanics that authentically mimic the nimble and graceful movements of Arctic foxes. This endeavor has expanded my understanding of movement mechanics in game development and improved the depth and immersion of the game experience.

  2. Using the Line Renderer in Unity: In pursuit of visual fidelity and gameplay refinement, I utilized the Unity Line Renderer to enhance the visual representation of player actions. 

For the calculation of the parabolic lines, I used an asset of GitHub user ditzel (https://gist.github.com/ditzel/68be36987d8e7c83d48f497294c66e08).

Lahmacun Lottery

Inspired by the weekly tradition of lahmacun betting with my classmates at the kebab shop near our vocational school, I saw an opportunity to make our ritual more exciting and fair. To modernize and streamline our weekly tradition, I designed and developed a custom tool. Since access to computers is limited during lunch breaks, I optimized the tool for smartphone compatibility through web development to ensure accessibility and convenience.

 

 

The Lahmacun Lottery is changing our weekly tradition by bringing an exciting and impartial element to the selection process. The intuitive user interface and seamless functionality increase the efficiency and enjoyment of our cherished ritual, fostering camaraderie and anticipation among participants.

 

Key Process Highlights:

  1. Participant Management: The tool facilitates the inclusion and management of participants, fostering a sense of community and engagement throughout the selection process.

  2. Random Number Generation: Participants specify a range of numbers, igniting anticipation as the tool generates random numbers to be assigned to each individual.

  3. Participant Selection: Engaging participants in the selection process adds an element of thrill and anticipation, heightening the excitement leading up to the reveal.

  4. Determination of Payment Obligation: The tool's algorithmic evaluation of discrepancies between chosen and assigned numbers adds a thrilling twist, culminating in the designation of the lahmacun contributor.

 

Earned Knowledge:

  1. Advanced Proficiency in CSS: Mastery of advanced CSS techniques enables the creation of visually captivating interfaces, enhancing user engagement and excitement.

  2. Responsive Design Implementation: Implementing responsive design principles ensures seamless adaptability across devices, guaranteeing accessibility and convenience for all participants.

Endless Runner

In 2023, I embarked on the ambitious Endless Runner project, a project that aimed to develop a game tailored to vehicular computer systems. Recognizing the unique technical requirements of this task, I decided that developing the game as a web application would provide the necessary versatility and accessibility. To realize this vision, I began by mastering the JavaScript framework Three.js, a crucial step in developing immersive 3D experiences optimized for in-vehicle computing environments.

The Endless Runner immerses players in a dynamic journey through an endless path where they must collect points by avoiding obstacles and collisions. At the center of the game experience is the procedural generation of the road, which consists of three tracks with dynamically generated obstacles. While initial deployment on car computer systems was hampered by performance limitations, optimization work is currently underway to ensure seamless functionality in the near future.

 

Earned knowledge:

 

  1.  Programming with Three.js Framework: Using the Three.js framework allowed me to develop a 3D environment optimized for car computer systems.

  2.  Implementation of the adapter programming model: The integration of the adapter programming model facilitated seamless processing of inputs, improved compatibility with car computer interfaces and simplified user interaction.

  3.  Procedural generation: My first foray into procedural terrain generation, enabling dynamic environment creation.

bottom of page