Giter VIP home page Giter VIP logo

high_impact's Introduction

██╗  ██╗██╗ ██████╗ ██╗  ██╗        ██╗███╗   ███╗██████╗  █████╗  ██████╗████████╗
▓▓║  ▓▓║▓▓║▓▓╔════╝ ▓▓║  ▓▓║        ▓▓║▓▓▓▓╗ ▓▓▓▓║▓▓╔══▓▓╗▓▓╔══▓▓╗▓▓╔════╝╚══▓▓╔══╝
▒▒▒▒▒▒▒║▒▒║▒▒║  ▒▒▒╗▒▒▒▒▒▒▒║        ▒▒║▒▒╔▒▒▒▒╔▒▒║▒▒▒▒▒▒╔╝▒▒▒▒▒▒▒║▒▒║        ▒▒║
░░╔══░░║░░║░░║   ░░║░░╔══░░║        ░░║░░║╚░░╔╝░░║░░╔═══╝ ░░╔══░░║░░║        ░░║
░░║  ░░║░░║╚░░░░░░╔╝░░║  ░░║░░░░░░░╗░░║░░║ ╚═╝ ░░║░░║     ░░║  ░░║╚░░░░░░╗   ░░║
╚═╝  ╚═╝╚═╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝╚═╝     ╚═╝╚═╝     ╚═╝  ╚═╝ ╚═════╝   ╚═╝

░░░░▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓██████████████████████████████▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒░░░░╗
╚═════════════════════════════════════════════════════════════════════════════════╝

high_impact is a C game engine for creating 2d action games. It's well suited for jump'n'runs, twin stick shooters, top-down dungeon crawlers and others with a focus on pixel art.

This is NOT a general purpose game engine akin to Godot, Unreal or Unity. At this stage, it is also quite experimental and lacking documentation. Expect problems.

high_impact is more a framework than it is a library, meaning that you have to adhere to a structure, in code and file layout, that is prescribed by the engine. You do not call high_impact, high_impact calls you.

Games made with high_impact can be compiled for Linux, macOS, Windows (through the usual hoops) and for the web with WASM. There are currently two "platform backends": SDL2 & Sokol and two different renderers: OpenGL and a rudimentary software renderer.

Please read the accompanying blog post Porting my JavaScript Game Engine to C for no reason for some insights into the decisions made here.

Examples

  • Biolab Disaster: A jump'n'gun platformer, displaying many of high_impacts capabilities.
  • Drop: A minimal arcade game with randomly generated levels

Compiling

No Makefile is provided here as high_impact must be compiled together with your game. It can not be compiled as a standalone library.

It's best to start your development with one of the examples above as the basis. These examples come with a Makefile that should _just work_™

Documentation

There's not much at the moment. Most of high_impact's functionality is documented in the header files with this README giving a general overview. It's best to read the blog post for an overview and the source for all the details: It's just ~4000 lines of code.

Assets

At this time, high_impact can only load images in QOI format and sounds & music in QOA format. The tools to convert PNG to QOI and WAV to QOA are bundled in this repository and can be integrated in your build step. See the example games for a suitable Makefile.

Game levels can be loaded from .json files. A tile editor to create these levels is part of high_impact: weltmeister.html which can be launched with a simple double click from your local copy.

Libraries used

Except for SDL2, all libraries are bundled here (see the libs/ directory).

License

All high_impact code is MIT Licensed, though some of the libraries (libs/) come with their own (permissive) license. Check the header files.

high_impact's People

Contributors

phoboslab avatar nikhilitis avatar

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.