A 3D voxel game engine written in APL

sph2 pts0 comments

GitHub - namgyaaal/avoxelgame: Voxel Game written in Dyalog APL and SDL3 · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

namgyaaal

avoxelgame

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star<br>23

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>124 Commits<br>124 Commits

assets

assets

avg

avg

images

images

lse

lse

saves

saves

sdl3_consts

sdl3_consts

shaders

shaders

.gitattributes

.gitattributes

LICENSE

LICENSE

README.md

README.md

compile_shaders.sh

compile_shaders.sh

main.apls

main.apls

View all files

Repository files navigation

A Voxel Game

This started off as a bet with myself that APL notation would provide an easier way to make a voxel game.

This is highly experimental and buggy.

Controls

W-A-S-D to move

Space to jump

Mouse to move the camera

Q to quit

I to toggle render information

F for fast noclip mode

L to lock and unlock the mouse while in-game

1-5 to select different blocks to place

Requirements

Dyalog APL 20.0

A C Compiler

CMake

Vulkan, DirectX12 or Metal graphics are required. For more information, check here

sdl3, sdl3_ttf and sdl3_image (MacOS with brew)

Instructions

Running on MacOS or Linux

After installing dependencies and cloning, make sure you build and install LSE.<br>e.g.,

cd lse<br>mkdir build<br>cd build<br>cmake ..<br>make<br>make install

This should install libLSE.dylib on macOS and libLSE.so on Linux in ./libs/ alongside the relevant SDL3 library files.

After that you should be able to run with ./main.apls

Some Linux users may have dyalogscript located in a different directory. If that's the case, the shebang in main.apls should be replaced with the path specified by which dyalogscript

Running on Windows

Compiling everything on Windows is a bit more tricky and is best done with finding the SDL3 dev libraries provided on libsdl3 releases with cmake-gui.

.dlls are provided as a release here which can be placed in a folder ./libs on the directory this repository.

Afterwards, the game can be played through a Dyalog session like so:

]link.create # ./avg<br>Run<br>state.Play">]cd ROOT DIRECTORY><br>]link.create # ./avg<br>Run<br>state.Play

Compiling Shaders

Source code that gets compiled to different shader formats is in ./shaders/glsl

Shaders come bundled with this repo. However, if you want to modify them, edit the glsl shaders and run ./compile_shaders.sh

Note that this requires the DirectX Shader Compiler, glslc and spirv-cross.

Known Issues

There are significant performance regressions on Windows being worked on.

DirectX12 backend is currently not supported on Windows.

You currently can't play multiple times in the same session.

Known to syserror 999 !

There's probably memory leaks somewhere !

Credits

Textures by Madeline Vergani (@RubenVerg)

About

Voxel Game written in Dyalog APL and SDL3

Topics

voxel

apl

voxel-game

dyalog-apl

sdl3

Resources

Readme

License

MIT license

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

23<br>stars

Watchers

watching

Forks

fork

Report repository

Releases

AVG win32-x64 .dlls

Latest

May 25, 2026

Packages

Uh oh!

There was an error while loading. Please reload this page.

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

APL<br>83.3%

11.4%

GLSL<br>2.4%

Shell<br>1.7%

CMake<br>1.2%

You can’t perform that action at this time.

game voxel sdl3 reload shaders dyalog

Related Articles