Skip to content

ssh-lvl/CShellEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CShellEngine

CShellEngine is a framework library designed to help set up the boilerplate for C-based terminal games and applications.

Features

  • 3D/2D grid system.
  • Rendering of grid system.
  • Keyboard input handling.
  • Random number generation.
  • Game loop handling.
  • Delta time for game loop system.
  • Datatypes such as: Vector2i, Vector3i, Vector2f, Vector3f.

Platforms

+ Linux: Tested, supported. - Windows: Untested, currently unsupported. ! macOS: Untested, expected to work (may require specific terminal settings/environment).

Usage

Simply include the headers you need in your C program.
And make sure to include all C source files in compilation.

Example

#include "Core.h" #include "Rendering.h" #include "Input.h" void game_loop() { printf("main method.\n"); Core___game_loop_quit_flag = true; } void render() { Rendering___render(NULL); } int main() { Vector3i grid_size_ = {3, 1, 2}; Core___initCore(&grid_size_, &game_loop, NULL); Rendering___init(NULL); Input___setInputMode(false, false); Rendering___setMapping(1, "Hello World!\n"); Core___grid[0][0][0] = 1; while (!Input___isKeyPressed('a')); // wait for 'a' key printf("\na pressed\n"); printf("%c pressed\n", Input___getKey()); // wait for and print pressed key Core___startGameLoop(&render); printf("\ndelta time: %f\nrender time: %f\n", Core___delta_time, Rendering___render_time); Rendering___cleanup(NULL); Core___cleanupCore(NULL); Input___setInputMode(true, true); return 0; }

About

A terminal based gamedev/application framework library. Made in C, the best programming language.

Topics

Resources

License

Stars

Watchers

Forks

Languages