Skip to content
View DiantArts's full-sized avatar

Highlights

  • Pro
Block or Report

Block or report DiantArts

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
DiantArts/README.md

Hi! Thank you for passing by.

I'm a passionate student learning C++ and graphical programming (as well as many other subjects, related to C++) through personal projects.

I am currently working on xrn3dPong, a linux only 3D multiplayer pong using vulkan and all the xrn projects described bellow, and xrnBoidsSim, a flock simulator (boids).

Some past and current projects:

  • MmoNetwork: A project that was initially a school project, I decided to push it forward to implement it in my future game engine. The goal of this (yet incomplete) project is to use Asio to handle a massive amount of connected clients. Once the base is set up, this project will slowly turn into a project optimized for game engines. I paused this project to learn graphical programming.
  • Akanya: This is the first iteration of my biggest personal project, a Game Engine. I discovered OpenGL with this one but made too many beginner mistakes, such as using the object oriented approach, which made me unable to move forward correctly. While I did not give up the idea of a Game Engine, I decided to step back a bit by starting the project all over again with an ECS approach EcsGameEngine.
  • EcsGameEngine: This project, which is still a game engine, uses an ECS architecture to correct the problems I had with the OOP in the Akanya project. Even though it was going well, I realised My ECS implementation was completly dependent on the actual project EcsGameEngine project, especially OpenGL. That is when I decided to move a step back once again and extract the ECS implementation into an external standalone library. This is how the xrnEcs library started.
  • xrnEcs: This project has had 2 iterations.
    • The first iteration was the extraction of the library from the EcsGameEngine as explained in the description of this project. While the implementation ended up quite stable (0.3 alpha version), it was hard to implement, use, and awful to update. For these reasons, and after trying to use EnTT from Skypjack, I thought about a better and simpler way to implement it, which gave birth to the second iteration.
    • The second iteration is still in developpement and has all external functionalitites extracted to external libraries. This iteration of the project is what gave birth to the xrn suit of projects.
  • VulkanSandbox: A sandbox to learn Vulkan. I have been following a really fantastic guide made by BrendanGalea on youtube while implementing an ECS approach to the turorial. This project is currently in standby while I finish the pong game.
  • The xrn suite:
    • xrnBlank: A repository template that uses cmake and simplifies dependency managment.
    • xrnCMake: A cmake library that xrnBlank uses to abstract details of CMake implementation and simplify the usage of external and internal(xrns) dependencies.
    • xrnLog: A Logger abstracting the spdlog from Gabime and fmt libraries to suit xrn projects needs.
    • xrnUtil: A simple library of utilities that can always be useful such as time management, ID abstraction, and an Optional Reference implementation.
    • xrnMeta: A template metaprogramming library that puts most of my reusable meta programming into a single library to avoid reimplementation. I mostly use the contraints but the rest may be useful as well.
    • xrnNetwork: A new iteration of the MmoNetwork project to simplify it by using the xrn suite and my new knowledge.
    • xrn3dPong; A multiplayer 3D pong using all the previous xrn projects to group them into an actual demonstrable game using VulkanSandbox as base.
    • xrnBoidsSim; A 3D flock simulator using all the xrn projects try out the boids concept.

All these projects were very challenging for multiple reasons. I learned a lot and will keep pushing them forward until I can finally combine them all into a game engine.

Some other projects I have in my head that I might start:

  • Create a sound library, using OpenAL or something else depending on what I find.
  • Finishing my coding style

Don't hesitate to let me know what you think of my work at: evan.loiseau@epitech.eu. I would be glad to have external insights.

Pinned

  1. xrn3dPong xrn3dPong Public

    3D pong using vulkan

    C++

  2. VulkanSandbox VulkanSandbox Public

    a starting game engine prototype using Vulkan instead of OpenGL

    C++ 2

  3. xrnNetwork xrnNetwork Public

    a small tcp and udp client/server to use on the vulkan game engine

    C++

  4. xrnEcs xrnEcs Public

    A Basic ecs library

    C++