Current Software projects

For more information of the game or projects or hear about other projects, please, don't hesitate to contact me.
All code is private, but got/code can be shown/shared upon request.

Microservice Architecture

O'Desh's Dwadle Dashing

Problem:

The project revolves around implementing a Full-Stack Microservice architecture to manage data, visualize results, and facilitate communication via REST API. Data retrieval occurs from a MongoDB NoSQL server, sourcing information from a Unity Game Project. Presently, the project comprises a Front-End Angular service displaying game scores, multiple Node.js services (utilizing Express.js & Mongoose) for handling connections (APIs for database interaction and data transfer between services), a service for verifying game data integrity, ensuring its legitimacy and adherence to rules, and a service for identifying data, ensuring all received data is collected and preserved while maintaining anonymity (as all game data and scores are inherently anonymous).


Method:

The next step involves incorporating an ASP.Net service utilizing GraphQL for more structured internal/external data transmission and specifications, alongside implementing RabbitMQ for general internal data communication. A Front-End user interface webpage using .Net Blazor is also planned. Docker-Compose manages all services, each having individual Docker files. Communication occurs via Nginx, with hosting handled by an Ubuntu server. Future plans include integrating Kubernetes for improved scalability and implementing better CI/CD practices.

The game, Odesh's Dwadle Dashing, is a personal project employing C#, the Unity Game Engine, a MongoDB client, and REST API. Future plans involve creating and utilizing a PostgreSQL database to store user-specific data while the MongoDB continues to handle anonymous game data and scores. For further details on the game, inquiries are welcome, although all code remains private, with sharing available upon request.


Result:

The implementation of the Full-Stack Microservice architecture facilitates efficient handling of data, visualization of results, and communication via REST API. The system ensures data integrity, anonymity, and adherence to rules, crucial for maintaining the integrity of the gaming environment. With services managed through Docker-Compose and communication streamlined via Nginx, the project exhibits scalability and robustness. Future enhancements, including the integration of Kubernetes and improved CI/CD practices, promise further scalability and efficiency gains. Overall, the project serves as a comprehensive solution for managing game data and facilitating seamless user experiences.

IMessageObsever

Problem:

The project aims to implement a .Net Observer Pattern (IMessageObserver) based on the Microsoft "iMessage Interface," extending beyond MVVM/class structures. This initiative addresses issues with iMessage's suboptimal performance when used directly in Component Code Behind, particularly in Blazor MVVM setups. Additionally, it seeks to establish a loosely coupled relationship between classes in Unity projects, catering to both individual backend functionality and game object-oriented functionality.


Method:

The IMessageObserver is designed with scalability in mind, mirroring the logic of iMessage to minimize confusion during usage and code implementation. Each message within IMessageObserver can be precisely defined, offering flexibility ranging from simple message structures to message-specific functionalities like error handling and data manipulation. Furthermore, IMessageObserver incorporates State Pattern functionality and streamlined management to eliminate unnecessary if/switch statements, accommodating expanded data inputs, nullable data, and sync/async functions.

Observers within IMessageObserver can either pass data simply or execute extra specified functions for customized manipulation, based on the origin of the notification message. Importantly, subscribers and publishers operate independently, communicating solely via messages without requiring mutual awareness. Each subscriber is identified by the class in which it is instantiated. Unlike iMessage, IMessageObserver enables targeting specific types, such as notifying services or components exclusively or both, in Blazor environments.

Additionally, disposing of observers can be targeted, applying to all observers or a specific one identified by its class or component, further enhancing flexibility and resource management within the system.


Result:

The implementation of IMessageObserver offers a robust solution for establishing efficient communication channels between front-end components and back-end ViewModels in Blazor MVVM setups and fostering loosely coupled relationships between classes in Unity projects. Its flexible message structure, State Pattern functionality, and streamlined management facilitate seamless integration and scalability while enabling precise targeting of message recipients. Ultimately, IMessageObserver enhances code maintainability and extensibility while optimizing performance in diverse .NET application scenarios.

O'Desh's Dwadle Dashing

Problem:

Odesh's Dwadle Dashing, a Unity Game Project, relies on a REST API and MongoDB client for external database communication, specifically interacting with a MongoDB NoSQL database. The game encompasses various aspects such as homemade code, model and Unity object creation, level design, and custom-made music. Central to the game's concept is the speedrunning mentality, manifesting through three levels, each featuring unique gimmicks, level-specific physics, and either puzzle, riddle, or time-based challenges. Scores achieved in the game are recorded and anonymously displayed on a website, accessible for personal score tracking and statistical analysis. Players can pursue scores by completing mini-games or level-specific tasks, or aim for the best possible completion time. Additionally, the game offers three difficulty levels, with higher difficulties providing greater score multipliers.


Method:

Implementation of Odesh's Dwadle Dashing involves integrating a REST API and MongoDB client to facilitate communication with an external database, ensuring seamless data management. The game's core components, including code development, model creation, and level design, are custom-crafted to align with the speedrunning theme and provide engaging gameplay experiences. Each level's unique features and challenges are meticulously designed to offer diverse gameplay experiences, catering to puzzle-solving enthusiasts, riddle enthusiasts, and those seeking shorter, action-packed challenges.

Scores achieved by players are meticulously recorded and presented anonymously on a dedicated website, providing transparency and fostering a competitive environment. Players have the option to retrieve their scores for personal tracking and statistical analysis. The inclusion of multiple difficulty levels enhances replay value, with higher difficulties offering increased score multipliers, encouraging players to master the game and achieve higher scores.


Result:

Odesh's Dwadle Dashing presents an immersive gaming experience built on Unity, enriched by custom-made elements such as code, models, and music. The integration of a REST API and MongoDB client ensures seamless external database communication, while the game's speedrunning-focused design provides engaging challenges across three distinct levels. The inclusion of various gameplay mechanics, challenges, and difficulty levels caters to a diverse audience, encouraging replayability and competition among players. The transparent scoring system, coupled with the option for personal score tracking, enhances player engagement and fosters a sense of community. Overall, Odesh's Dwadle Dashing offers a compelling gaming experience that combines creativity, challenge, and competition.