jfmherokiller / brux-gdk

Free runtime and development kit using SDL and Squirrel

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Brux Game Engine

 

License

All code is available under the GNU General Public License v3.

Introduction

Brux (formerly known as XYG) is an open-source, cross-platform, runtime-based game development kit using the Squirrel language. The aim is to make development both easy and versatile, allowing games to be written by hand in a simple text editor or made in an IDE similar to Game Maker, and to allow games to be ported with little to no modification to the code, offering a "build once, run everywhere" development process.

Developers using Brux may freely make games without any need for paid license or royalties. Anyone willing to donate may visit my Patreon or my Ko-Fi.

Nightly Build

http://kelvinshadewing.net/dl/brux-nightly.zip

Dependencies

  • SDL2
  • SDL2_image
  • SDL2_mixer
  • SDL2_net
  • SDL2_gfx
  • Squirrel

To Do (Runtime)

  • Sprite loading and rendering
  • Sound loading and playing
  • Bitmap monospace text
  • Keyboard and mouse input
  • Table saving/loading as JSON file
  • Bitmap dynamic text
  • FPS management
  • Gamepad input
  • JSON map loading and rendering
  • Collision geometry (Currently implemented in Squirrel)
  • Chipmunk physics engine
  • Create compiled format to contain multiple source files in one (will also be included in squake)

Fixes needed:

  • Sprites do not pivot correctly when scaled and rotated at the same time

To Do (Editor)

  • Everything (I haven't planned everything needed yet. I'll wait until the RE grows some more.)

Change Log

  • 0.0.10

    • Added sprite alpha blending (Why did this take so long?)
    • Removed unnecessary argument from newSprite()
    • Fixed FPS limiter for real this time
  • 0.0.9

    • Added functions to get current display dimensions
    • Fixed FPS limiter
    • Added chint(), which gets an ascii character from an integer
    • Added getFrames(), which returns the number of frames since the game began
    • Added spriteW/H(), which returns the dimensions of a sprite
    • Fixed wrap()
  • 0.0.8

    • Embed actors.nut into runtime, now feature complete
    • Added polygon-polygon hit detection
  • 0.0.7

    • Added lendirX/Y, equivalent to Game Maker's lengthdir_x/y.
    • Added graphical tilemap per layer rendering
  • 0.0.6

    • Add functions to stop, pause, and check music status
    • Remove TinyXML, using cJSON instead
  • 0.0.5

    • Update wrap() to support floats
    • Created std library folder
    • Fixed findSprite(), segfault no longer occurs
  • 0.0.4

    • Added basic joystick support
    • Added Xinput mapping for Linux
    • Fixed getdir() on Windows
    • test.nut features keyboard/mouse (F1) and gamepad (F2) testing modes
    • Added basic geometry rendering
    • Divided reference docs into multiple files
    • Started writing tutorials
  • 0.0.3

    • Added monospace bitmap font support
    • Added support for importing/exporting tables as JSON files
  • 0.0.2

    • Finished framerate cap (framerates between 30 and 300 are distinctly different!)
    • Fixed audio bug where loadMusic() would return a sound index instead of music
  • 0.0.1

    • Added change log
    • Features existing before change log:
      • Keyboard and mouse input
      • Sprite loading and rendering
      • Sound and music
      • Run games by associating .nut and .sq files with Brux
      • Text rendering

About

Free runtime and development kit using SDL and Squirrel

License:GNU Affero General Public License v3.0


Languages

Language:C++ 42.6%Language:C 28.4%Language:Squirrel 19.9%Language:CMake 8.4%Language:Makefile 0.6%Language:Shell 0.1%