Go to file
2020-07-10 19:00:36 -05:00
.vscode Lots of progress on rendering textures. 2020-06-05 23:49:45 -05:00
src More data safety checking, doesn't load spaces. 2020-07-10 19:00:36 -05:00
tests/SlatedGameToolkit.Framework.Tests Basic font rendering working. 2020-07-02 13:13:04 -05:00
.gitignore Updated gitignore to ignore .log files. 2020-05-27 10:24:47 -05:00
README.md Updated readme. 2020-07-06 14:30:18 -05:00

Slated Games Toolkit

A Simple Game Toolkit

A personal game toolkit built on top of SDL2 with the primary overarching goals of the framework being to implement a game state manager, a comprehensive scene graph system, and SoLoud as the full-fledged audio engine. This toolkit also provides a utility portion that assists in the creation of some file data structures such as texture maps, and 9patches.

Components

The toolkit is split into 2 main portions:

  • Utility
  • Framework

The Utility portion is a lightweight program that aids in producing some of the more commonly used file data structures by the framework. The framework itself is the part that provides the libraries and SDL2 implementation to allow for a smoother game development experience.

Design Objectives

Leave access to low level function calls, but have abstraction layers that makes common game development tasks simple. Ideally, this means that if a client decides to use this Toolkit to make a game that doesn't need to do unconventional things (for a game), they should be able to do so without ever really needing to interact with lower level code, and therefore, should have a fairly smooth, easy development experience. The opposite is also true however, as access to the inner libraries that SGTK was built upon are left open.

Design Model

The framework was designed with the concept of having an game engine at the center of the framework that handles the actual game loop and many of the properties of said game loop. The rest of the framework is utilized by the engine and the client using the toolkit.

The engine directly interacts with the state manager, which is an object that organizes the various possible states a game may have at any time. Individual states can be created by the client which provides a way for organizing and structuring their game.

Windows are organized and associated with an OpenGL context on creation, and managed by a Window Contexts Manager which keeps track of all the active windows, and the one that is currently being modified by the code.

Technologies Used

These are the libraries that make SGTK what it is and a special thanks goes to the people that created them:

  • OpenGL - To perform graphical interfacing and rendering.
  • SDL2 - acts as the interface between the hardware and the framework.
  • SoLoud - acts as the game framework's audio engine.
  • STBTrueTypeSharp - helps with rasterizing TrueType fonts.
  • STBImageSharp - helps with loading images of varying formats.