Luna Broeke

C# Game/Software Developer

3 years experience with C# & Unity

About Me

Hi there! My name is Luna Broeke, I am an 19 year old college student from Amersfoort, The Netherlands. I have been studying Game Development at Grafisch Lyceum Utrecht for the past 3 years. These lessons have mostly been using C# & Unity. Even outside of school hours I have put in some practice.


Contact

LB@lunabroeke.dev

Transmission Control Protocol(TCP) Netcoding

Recently I had been taking an interest in Online Multiplayer, therefore I have been taking an interest in Netcoding with TCP.

Reefbot

Introducing Reefbot, an exceptional unofficial app meticulously crafted for Splatoon 3 on the Nintendo Switch. Designed to enhance your gameplay experience, Reefbot provides real-time access to crucial stage information, empowering players to stay informed and ahead of the competition.With Reefbot, you can effortlessly track the latest updates on game stages, ensuring you're always in sync with the dynamic battlefields of Splatoon 3. This app is dedicated to delivering up-to-the-minute details, allowing you to strategize effectively and adapt swiftly to changing conditions during gameplay.Reefbot is available for download on PC & Android, offering seamless access to its comprehensive features. Elevate your Splatoon 3 adventure with Reefbot – your ultimate companion for staying informed and dominating the turf!

Light Fusion

Light Fusion is a game developed as part of a group project at the conclusion of my second year in college.In this project, I was responsible for designing and implementing all light-based systems. This included the line rendering, the mathematical calculations for mirror reflections, and the detection of light interactions with objects, including determining the color of the light upon impact.For more details and to experience the game, you can download it from itch.io.

Robo-ball

Robo-ball is a game I developed as part of a project focused on creating a minimalist one-button experience. This endeavor provided a unique opportunity to explore the capabilities of the Unity Physics Engine while crafting a compelling gameplay experience.Despite its apparent simplicity, Robo-ball stands out as one of the most enjoyable projects in my portfolio. The game's mechanics are intuitively designed around a single-button control scheme, offering players a straightforward yet engaging challenge. Through meticulous design and iteration, I ensured that every interaction with the Unity Physics Engine contributed to the game's responsive and dynamic feel.For those interested in experiencing Robo-ball firsthand, the game is available for download on itch.io. Discover how minimalist design and precise physics interactions combine to create a captivating gameplay experience.

Discord Moderation Bot

My Discord bot specializes in efficient user management, automating tasks such as role assignment, user identification, and activity tracking to streamline server administration.

I developed a specialized application to retrieve real-time stage data from the popular online Nintendo Switch game "Splatoon 3," which launched on September 9th, 2022. Leveraging the publicly accessible APIs provided by splatoon3.ink, the app performs web requests to gather and display current stage information.The implementation involves a systematic process of making web requests and parsing the received data to extract pertinent details about ongoing game stages. Despite its repetitive nature, this approach ensures the app reliably delivers up-to-date information to users.By focusing on efficient data handling and API integration, I ensured the app's functionality remains robust and responsive. This project not only demonstrates my proficiency in web-based data retrieval and processing but also showcases my ability to leverage external APIs effectively to create a practical utility for Splatoon 3 enthusiasts.

This is a game I made at the end of my second school year. I collaborated with a talented team of three other developers and two artists to create an innovative game. Our project, centered around the concept of combining colored lights, was both challenging and rewarding. My primary responsibility was to develop and implement the main mechanics of the light system, which served as the core functionality of the game.Given that this was a school project, we are unable to make the GitHub repository public. However, I am pleased to share some of the key code snippets that demonstrate the functionality and sophistication of the light system mechanics I developed.Below is the main function that serves as the foundation of our game:

Origin Light

The above function is responsible for emitting the initial light, which serves as the catalyst for interactions with every other dynamic element in the game. This initial emission is critical, as it sets off a chain reaction of interactions and behaviors that define the core gameplay experience.Upon emission, the light interacts with various game elements, such as mirrors. Each interaction alters the light's properties, such as its direction, color, and intensity, creating a complex and engaging puzzle environment. This foundational function ensures that the light behaves consistently and predictably, providing players with a reliable and immersive experience.Moreover, this function is meticulously designed to handle various interactions seamlessly, ensuring that the game's mechanics remain robust and error-free. By managing the initial light emission and its subsequent interactions, this function plays a pivotal role in driving the game's dynamic and interactive nature.

Mirror System

The above function was likely the one I dedicated the most time and effort to perfecting. Its primary purpose is to mirror the origin light from the mirror object within the game. This required inverting the direction of the light, a task that involved careful calculation and precision.In addition to ensuring the accuracy of the light reflection, I faced the challenge of optimizing the function to prevent the creation of an infinite number of objects. Infinite object generation is highly problematic in game development, as engines like Unity (or any other game engine) cannot handle infinite objects and may crash or experience severe performance issues.To address this, I implemented safeguards and optimizations to manage object creation efficiently, ensuring the game runs smoothly and maintains high performance. This function's development was a complex and rewarding experience, showcasing my ability to solve intricate problems and optimize game mechanics effectively.

Color Seperator

In the above function, my primary task was to separate mixed colors, a process that might initially seem to require complex mathematical computations. However, I effectively utilized a more straightforward and efficient solution by employing a switch case statement. This approach allowed for clear and organized handling of different color combinations, streamlining the function's logic and improving overall performance.

Robo-ball is a game I developed for a project that required the creation of a one-button game. This project served as an excellent opportunity to delve into and experiment with the capabilities of the Unity Physics Engine. By focusing on simplicity in controls and leveraging advanced physics simulations, I was able to create an engaging and dynamic gameplay experience.

The following code constitutes the core controls and primary function of the game. It serves as the central hub for managing user inputs and orchestrating the game's main mechanics. This code is meticulously designed to ensure responsive and intuitive control, providing a seamless and engaging experience for the player.Within this function, various critical operations are handled, including interpreting user commands, updating the game state, and coordinating interactions between different game elements. The main controls section is responsible for capturing and processing input from the player, translating these actions into meaningful in-game responses. This ensures that the game responds accurately and promptly to user commands, enhancing the overall playability and immersion.Additionally, the primary function encompasses the essential logic that drives the game's core mechanics. This includes managing the physics calculations, updating object states, and handling collisions and interactions within the game environment. The code is optimized for performance, ensuring smooth and consistent gameplay even during complex sequences.Overall, this code represents the backbone of the game, integrating all necessary components to create a cohesive and enjoyable gaming experience.

This code snippet represents the function responsible for identifying the nearest available target. It plays a pivotal role in the application by efficiently determining and prioritizing the closest viable option from a set of possible targets. This functionality is crucial for optimizing decision-making processes within the application, ensuring that actions are directed towards the most immediate and relevant targets.

The following code snippet is dedicated to implementing a camera system that dynamically tracks the player's movements within the game environment. This functionality is essential for maintaining a clear and responsive view of the player's actions, enhancing the overall gaming experience by ensuring optimal visibility and perspective.

I developed a Discord bot tailored for efficient moderation within a school server environment. This bot was designed to streamline administrative tasks and ensure a safe and organized community space.Equipped with essential moderation commands, the bot facilitated tasks such as user management, message filtering, and server monitoring. It operated seamlessly to enforce server rules, maintain decorum, and promptly address any infractions.By automating routine moderation tasks, the bot not only enhanced operational efficiency but also contributed to a positive user experience by fostering a respectful and orderly community atmosphere.This project exemplifies my proficiency in leveraging Discord's API and programming skills to create practical solutions that meet specific organizational needs.

File System

For my Discord moderation bot, I've implemented a proprietary data management system tailored specifically to handle long-term storage needs effectively. This custom solution ensures robust and secure storage of critical information essential for moderation tasks within the server.Designed to accommodate various types of data such as user infractions, my system maintains a structured repository that supports efficient querying and retrieval. Timestamps and detailed metadata accompany each entry, providing comprehensive historical context and facilitating thorough audit trails.By leveraging this bespoke data management system, I have empowered the bot to maintain persistent records of user interactions and moderation actions over time. This capability not only enhances the bot's effectiveness in enforcing server policies but also enables proactive moderation strategies based on data-driven insights.Through continuous refinement and optimization, my custom data management system plays a pivotal role in ensuring the reliability, scalability, and integrity of moderation operations within Discord servers.

The first thing that gets caught during any event is checking if that user has a file dedicated to them. If not: create a new file.

When a user receives a warning within the moderation bot, the process involves meticulous data management to ensure comprehensive record-keeping and adherence to server policies. Here is an example of how the internal system handles a warning:- user: Represents the unique identifier of the Discord user who received the warning.
- userName: Display name or username of the user.
- warnings: An array containing details of each warning issued to the user.
[
- identification: Unique identifier for the warning event.
- time: Timestamp indicating when the warning was issued.
- reason: Brief description of the reason for the warning
- weight: Numeric value representing the severity or impact level of the warning.
- moderator: Username or identifier of the moderator who issued the warning.
]
This structured approach ensures that all warning incidents are systematically recorded and accessible for review and management purposes. By maintaining clear and organized records, the moderation bot supports transparency, accountability, and consistent enforcement of server guidelines.

TCP Server Netcoding

Prototype 1

Recently I have decided to start working with Online Multiplayer and netcoding as it seemed like a necessary skill to have.Let me run through how the prototype on the left side works.The server program starts with of course opening up the server itself. It opens up a TCPListener and with port forwarding properly set up, clients can connect to the server.Once a Client connects to the Server the Server starts creating a new thread to handle the Client and then immediately the server assigns the Client with its own Unique ID to be able to keep track of it.
That's when the server repeatedly sends over packets in the form of JSON strings with it's current ID, name, position, rotation and health.

Prototype 2

This is a much more fleshed out prototype featuring a server list and a login screen.When a client connects to a server the first thing the server does is ask for Login information and forcefully disconnects it after 5 failed attempts