Git Product home page Git Product logo

akanya's Introduction

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: [email protected]. I would be glad to have external insights.

akanya's People

Contributors

diantarts avatar m-bdf avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

jjzhang166

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.