Sign in to follow this  
  • entries
    3
  • comment
    1
  • views
    3539

Intro

Sign in to follow this  
Aressera

883 views

Hey! I decided that I need a place to write about everything that is going on in my software development. So here it is.

My current project: A set of easy-to-use cross-platform C++ libraries aimed at application development and game engines. These will be released open-source when they are complete.

Framework:
This is the base library for all of the other libraries. It contains a large number of classes that are often used in most applications, especially games. These include my own set of basic data structures, ASCII/Unicode template string class supporting all encoding types, abstractions for streaming I/O, and thread and synchronization classes. It includes a full-featured multi-dimensional math library with SIMD processing extensions (Altivec and SSE).
Currently working on - updating old code to the newest quality standards and documenting stuff

Sound:
This will eventually be a full-featured sound processing and I/O library. It will support a wide range of multichannel DSP effects, sound file formats, and expose a comprehensive cross-platform device driver interface. It will aim to be on-par with tools like FMOD and WWISE. In addition, it will be paired with a new integrated version of GSound, my real-time acoustic simulation engine (aimed at being fast enough for games).
Currently working on - streaming sound file I/O and various DSP effects.

Physics:
This library is a home-grown 3D physics engine supporting all standard collision primitive types and constraint types. It uses GJK/EPA for convex collision detection and a sequential-impulse based constraint solver. It will eventually support all commonly expected features and will compete with the Bullet physics library.
Currently working on - triangle mesh vs. primitive collision detection.

Graphics:
This is an extremely flexible graphics engine built on top of OpenGL. The main design goal was to maximize flexibility and usefulness while decreasing the required complexity. It uses an automatic shader attribute binding system that allows designers to set the semantic usage of shader inputs and have the engine automatically supply the necessary information to the shader. It is renderer-type agnostic - can be used to implement a deferred renderer or a forward renderer. The library is designed so that users can build complex efficient application-specific renderers with a generic material system with the least amount of code possible. It should take less than 500 lines of user code to write a complex data-driven renderer with dynamic lights and shadows.
Currently working on - adding support for shader uniform arrays and improving the material system.

My timeline to finish all of these libraries is the end of this year. Physics and Graphics are around 60% complete, Sound is around 30% complete, Framework is 85% complete. Hopefully these will be a great resource for the game development community when they are released!
Sign in to follow this  


1 Comment


Recommended Comments

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now