All code is available under the GNU Affero General Public License v3.
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.
Disclosure: The material in this {book/paper/blog/article} has not been reviewed, endorsed, or approved of by the Rust Foundation. For more information on the Rust Foundation Trademark Policy, click here.
http://kelvinshadewing.net/dl/brux-nightly.zip
SDL2
SDL2_image
SDL2_mixer
SDL2_net
SDL2_gfx
Qt5 (>=5.12)
K Frameworks 5 (>=5.78.0)
[X] Sprite loading and rendering
[X] Sound loading and playing
[X] Bitmap monospace text
[X] Keyboard and mouse input
[X] Table saving/loading as JSON file
[ ] Bitmap dynamic text
[X] FPS management
[X] Gamepad input
[X] JSON map loading and rendering
[ ] Collision geometry (Currently implemented in Squirrel)
[ ] Chipmunk physics engine
[ ] Networking (details TBD)
Fixes needed:
0.2.11
system()
calls (This appears to be built into Squirrel by default and could cause malicious code in game mods)binstr()
windowW()
and windowH()
setScaling()
jsonWrite()
choose()
int()
, float()
, str()
, char()
, and bool()
getDrawTarget()
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
replaceSprite()
0.2.5
toggleFullscreen()
inDistance2()
, which skips use of square root for faster distance checking0.2.3
min()
and max()
(Yes, Squirrel was missing these in my tests)0.2.2
pointAngle()
and lendirX/Y()
math0.2.1
playSoundChannel()
0.0.10
newSprite()
0.0.9
chint()
, which gets an ascii character from an integergetFrames()
, which returns the number of frames since the game beganspriteW/H()
, which returns the dimensions of a spritewrap()
0.0.8
0.0.7
0.0.6
0.0.5
wrap()
to support floatsfindSprite()
, segfault no longer occurs0.0.4
getdir()
on Windowstest.nut
features keyboard/mouse (F1) and gamepad (F2) testing modes0.0.3
0.0.2
0.0.1