# tariksavas ## Posts - [Misty Valley: A Cozy Fishing Tale](https://tariksavas.com/misty-valley-a-cozy-fishing-tale/): Misty Valley is my personal dream project, a cozy game that I develop with a small two-person team. I handle all development processes on my own, including core systems, mechanics, and architecture, while my teammate focuses on the art side of the game. Community feedback plays a key role in development. By gathering and analyzing player suggestions, I continuously add features and refine the game’s design to create a cohesive experience. Players fish, farm, and progress through the story while exploring various mechanics and systems, all designed to work in a highly modular and flexible way. I have prioritized modularity […] - [GoArt Metaverse](https://tariksavas.com/goart-metaverse/): GoArt is a Metaverse application that contains many portals and brings users together on portals. The application is also developed based on Web3. - [Roketsan Educational Project](https://tariksavas.com/roketsan-educational-project/): Technology : Unity, C#, MR, Socket Networking I developed a comprehensive MR training application for Roketsan, consisting of two interconnected components: a Windows PC server and an Oculus client. I handled the entire development process independently. The server manages all training data, including employee responses, scenario configurations, and question sets. Clients can only access the training when connected to the server, ensuring controlled participation. On the Oculus client, employees undergo an interactive rocket assembly training using hand tracking. The application periodically presents questions during the session, and employees’ responses are sent back to the server for tracking and evaluation. Each […] - [Tarnet - Socket Manager](https://tariksavas.com/tarnet-socket-manager/): In today’s world, network communication is a cornerstone of every software development process. Especially in games and real-time applications, a reliable and fast network infrastructure is a must. This is where Tarnet comes into play, offering developers a robust, secure, and high-performance network solution that can be easily integrated into their projects. What is Tarnet? Tarnet provides a dynamic and flexible solution for TCP and UDP communication in Unity projects. Its abstracted structure allows for easy integration and offers developers expandability. The customizable configuration system enables effortless network settings customization. With IP whitelist and blacklist support, secure connections are ensured. Additionally, the authentication mechanism secures data […] - [Tarsave - Save and Load System](https://tariksavas.com/tarsave-save-and-load-system/): Every game or application needs to securely save and load user data. Data loss can negatively impact the gaming experience and lead to user frustration. This is where Tarsave comes in. Saving and loading data securely ensures a seamless experience for users and provides developers with great ease. What is Tarsave? Tarsave provides a powerful system for handling save and load operations in your Unity projects. It enables you to securely save and load user progress, settings, and other important data. Whether you’re a beginner or an experienced developer, Tarsave is a highly useful and easy-to-integrate tool for your projects. […] - [Tarject - Dependency Injection Framework](https://tariksavas.com/tarject-dependency-injection-framework/): Game development is a complex and dynamic process. Developers need to create modular, flexible, and sustainable code structures to develop games more quickly and effectively. At this point, Dependency Injection (DI) techniques come into play. Tarject, developed as a DI framework for Unity, aims to simplify the management of dependencies while enhancing the maintainability and scalability of your application. In this article, we will explore the advantages of Tarject, its usage, and its contributions to your development processes in more detail. What is Tarject? Tarject is a open source framework designed to manage dependencies in the game development process. Based […] - [Dependency Injection and Service Locator Patterns](https://tariksavas.com/dependency-injection-and-service-locator-patterns/): In the software development process, managing components is crucial for the sustainability and testability of the application. In this article, we will discuss Dependency Injection (DI) and Service Locator patterns, explain both patterns with detailed examples, and highlight the differences between them. 1. Dependency Injection (DI) Dependency Injection is based on the principle of providing a class’s dependencies from the outside. This way, dependencies are clearly defined and managed. DI is typically implemented through constructor injection, setter injection, or interfaces. Example Scenario: E-Commerce Application Let’s consider an e-commerce application with a NotificationService class that handles user notifications. This class will […] - [Generic Structures](https://tariksavas.com/generic-structures/): Generic structures are used for any type that conforms to a particular pattern to avoid code duplication in classes, methods, or interfaces. With generic structures, type-independent methods and classes can be written, so projects can be managed more easily with less code. List, which we often use, is actually a Generic class. Whatever type you give to this class, you create a list of that type. If we did not use Generic structures in lists, we would have to create a list for each type such as IntList, FloatList, StringList. In this way, we prevent code duplication and simplify management. […] - [How To Write An Extension Method](https://tariksavas.com/how-to-write-an-extension-method/): Extension methods are extremely useful and structurally necessary methods. With extension methods, a lot of flexibility can be provided in the project. The Extension Method is written for the classes that we do not want to make any changes but want to expand and add. In this way, we write a method for that class without making any changes to the class. There are a few rules to consider when writing these methods: Let’s prove this with an example. In the example below, we wrote the Extension Method for the string class. The first method converts Turkish characters in a […] - [Differences Between Interface and Abstract Class](https://tariksavas.com/differences-between-interface-and-abstract-class/): In this article, I will be talking about the differences between Interface and Abstract Class. But firstly, let’s take a closer look at both terms, and then compare them. What is Abstraction? Objects cannot be created from classes created with the abstract keyword, they can only be inherited. Methods, events and properties created with the Abstract keyword can only be defined in Abstract classes and have no content. Its body is provided by inherited classes. Abstraction in Software is the process of showing some of the details while hiding some. It is one of the OOP (Object Oriented Programming) techniques […] - [VROTTO VR Video Player with TCP Networking](https://tariksavas.com/vrotto-vr-video-player-with-tcp-networking/): This application will be used for 3D cinema experience and there will be no interaction with VR headsets. The purpose of this project is to play the same videos in many VR headsets at the same time. For this purpose, a client application for VR headsets and a server application for the PC have been developed. This communication takes place on the local network and many clients can connect to the same server at the same time. It was developed with the TCP networking to prevent data loss in communication. The port value can be changed in the server application, […] - [Albaraka Clean Desk VR Application](https://tariksavas.com/albaraka-clean-desk-vr-application/): This project is a training application that Albaraka will apply to its employees. It measures how employees react to the situations they encounter. When actions lead to wrong results, the employee is trained to take correct action. The score is calculated based on the actions of employees and is reflected in the result of the training. The app is developed with Hand Tracking in Unity VR technology for a more efficient experience. In-app missions and guidance system has been developed for the user to perform all the steps correctly without skipping any steps. - [AKIB VR Activity Application](https://tariksavas.com/akib-vr-activity-application/): This project has been completed in 2 different applications. 1. Desktop Application The administrator manages the Database via the desktop application. After logging in as an administrator in this application, data can be exported according to the desired file type and the database can be cleaned. This Desktop Application also developed with Unity and C#. User data is controlled through Firebase SDK. 2. VR-Game The other application is VR-Game based and can be experienced by users. This application aims to promote Turkey’s fruits and vegetables at fairs. The project was gamified and a VR-Game was created. In the game, the […] - [Bosch Interactive Application](https://tariksavas.com/bosch-demo/): This demo is based on technical worker training. In the training, the problem is solved based on customer complaints and customer satisfaction is important. The app is developed with Hand Tracking in Unity VR technology for a more efficient experience. - [VR Psiko](https://tariksavas.com/vr-psiko/): This project, which was completed with a Clinical Psychologist, was made to be used in psychological counseling processes. With the scenarios in the application, the follow-up and treatment of the patients were targeted. Application interactions are developed with Hand Tracking in VR technology. A analytic system was developed for in-app authentication and analysis by establishing an application connection with the backend services. - [Urinary Catheterization Skill Control Project](https://tariksavas.com/urinary-catheterization-skill-control-project/): This project, which will be used in the field of education for Adana University Health Department, is intended for the student to complete the operation with certain directions. This operation, which takes place in a VR environment, plays a significant role in Urinary Catheterization training. The application was developed with Unity VR technology. In-app missions and guidance system has been developed for the user to perform all the steps correctly without skipping any steps. - [VRMars MMO Event](https://tariksavas.com/vrmars-mmo-event/): This game has been developed by targeting 1000 instant users in a single room. It is aimed to promote the brand by enabling users to participate in the in-game Christmas event. Technically, Firebase SDK was used for user data and configurations, Fishnet Networking SDK was used for multiplayer actions and messaging system. At the same time, the Twitch stream was live on the in-game screen. The server was run on AWS EC2. - [Durmazlar Holding Tramway Project](https://tariksavas.com/durmazlar-holding-tram-project/): In this project, which met with the users at the Berlin InnoTrans Fair, includes the introduction, arrangement and driving experience of trams. In this project developed using VR technology, the user starts at a station and chooses the tram they want to experience. Then the selected tram arrives at the stop and the user can make some optional adjustments on the tram. In the cockpit, you can experience driving by using the tram. - [Trabzonspor Project](https://tariksavas.com/trabzonspor-project/): In this project, which was made after Trabzonspor won the Super Cup, both the desktop management panel and the 360 ​​VR Video Player were developed. With the desktop management panel, all clients connected to the server are listed and the videos to be played can be selected. At the same time, a usage analytic is sent to the specified e-mail address at regular intervals by e-mail. Both the VR app and the desktop app are made with Unity. Firebase was used for communication and necessary configurations were carried out over Firebase. Mails that are sent automatically at certain intervals are […] - [TEDAS Digital Workshop System](https://tariksavas.com/tedas-digital-workshop-system/): This project has been completed in 2 different applications. 1. Tablet Application It contains nearly 250 scenarios in the tablet application. The scenarios are about learning electricity and electronics, doing experiments and solving problems. In addition, all scenarios on the Experiment System have been prepared based on existing electrical formulas. These elements can be viewed in both virtual and augmented reality environments. 2. Virtual Reality Application Virtual Reality Application contains nearly 185 scenarios. These scenarios are on education and include many scenarios such as electrical breakdown, replacement, maintenance and repair. - [Robotsan Education and Simulation Project](https://tariksavas.com/robotsan-education-and-simulation-project/): This project is made for the education of children. Motion and sensor flows created via Flowchart in the application can be experienced on the robot on the stage. At the same time, an o-bot belonging to Robotsan can connect to the application with the bluetooth module on it. All flows created via Flowchart can also be experienced on the o-bot together with the necessary sensors. - [Istanbul Cinema Museum Green Screen Application](https://tariksavas.com/istanbul-cinema-museum-green-screen-application/): There are many Yesilcam scenes in the application. It is ensured that the users are included in the scenes with the green screen in real time, and at the same time they can take photographs or video recordings and send these records to their own e-mail addresses. Project’s front-end is developed with Unity. In this front-end, the image taken from the camera is separated from the green color with the ChromaKey Shader. Users can participate in the scenarios they choose with their seperated image. A .net console application has been developed to run in the background for screen recording. The […] ## Pages - [Busra Icin Derlemeler](https://tariksavas.com/busra-icin-derlemeler/) - [My World](https://tariksavas.com/my-world/): In this short application that is integrated with ChatGPT, you can communicate and chat with an avatar that imitates me. By the way, the chat system is AI-based, so the avatar’s answers may not be consistent. - [About](https://tariksavas.com/about/): Hello, I’m Tarik, a Software Engineer with a focus on AR/VR applications and game development. My career in software development began in 2015 with C, followed by an in-depth exploration of object-oriented programming (OOP) with Java. Over time, I honed my skills in C# and Unity, and since 2019, I’ve been actively involved in developing projects in gaming, AR, and VR, with more than 30 projects completed to date. I am passionate about continuously expanding my knowledge of emerging technologies and applying them to create impactful, high-quality software solutions. My dedication to innovation and excellence drives me to consistently push […] - [Home](https://tariksavas.com/): TARIK SAVAS Software Engineer [comment]: # (Generated by Hostinger Tools Plugin)