Well, I had few ideas while sleeping so what a heck. I join.
Ek Bass
Recent community posts
A platformer example code https://github.com/EkBass/BazzBasic/discussions/23
There is also some other example codes at Show & Tell subforum
Thnks David.
When next version is released highly depends of my day job. There is few issues I can not affect and so, I am not sure when I can release 1.0 But in all means, plan is to release it before March turns to April.
And you are right about my passion towrds BazzBasic. I want to get it to the point where I can make a game or few with it myself.
There is some neat ray casting codes at GitHug discussions. https://github.com/EkBass/BazzBasic/discussions/categories/show-and-tell
BazzBasic as a name was the result of a lot of thought. I wanted something with a touch of the 80s, and I think BazzBasic is something that could have been around back then.
BazzBasic is also a little nod to another hobby I love, playing the bass guitar. https://www.youtube.com/@KristianVirtanen/videos
# BazzBasic 0.9 Released! 🎉
**BazzBasic 0.9** is now available as binary and source.
## What's New in 0.9
The latest update brings some additions aimed for game developers.
**New Math & Utility Functions:**
- `LERP(start, end, t)` — Linear interpolation between two values
- `DISTANCE()` — Calculate 2D or 3D distances with a single call
- `CLAMP(n, min, max)` — Keep values within bounds without verbose IF chains
- `BETWEEN(value, min, max)` — Quick range checking that returns TRUE/FALSE
- `EULER` — The mathematical constant *e* ≈ 2.718281828459045
- `TAU` and `QPI` — Convenient constants for 2π and π/4
**Graphics Enhancement:**
- `VSYNC(TRUE/FALSE)` — Control vertical sync for smooth rendering or uncapped frame rates
## Roadmap to 1.0
The next milestone will introduce some interesting things:
**HTTP Support** — Make GET and POST requests directly from BazzBasic. Fetch data from APIs, download files, or send data to web services.
**Sprite Sheets** — `LOADSHEET(filename, width, height)` will slice sprite sheet images into individual frames stored in an array, making 2D game animation easier.
**Under Consideration:**
- Joystick/gamepad support for game input
- Native JSON and XML parsing to and from arrays
## Get BazzBasic
- **Homepage:** https://ekbass.github.io/BazzBasic/
- **Source:** https://github.com/EkBass/BazzBasic/tree/main
- **Documentation:** https://ekbass.github.io/BazzBasic/manual/#/
- **Discussions:** https://ekbass.github.io/BazzBasic/communities.html
Hi David.
Im not sure, but most likely no. But it will be released way before summer which is the busiest time of year for me.
For 0.9, my plan is to fine-tune the code, add just few functions and fine-tune code even more. After that, ver. 1.0 is just more tested version and I get the console closed if not used. Now its there to show error messages.
For 1.1, I thought add json, yml and xml support (and maybe csv). But lets see how things moves on here.
Read at BazzBasic GitHub https://github.com/EkBass/BazzBasic/discussions/10
# BazzBasic version 0.8
Key issues, news and changes from 0.7
## NAudio to SDL2
This change has been done. It was actually easier to do what I expected.
Audio features works just as with version 0.7
## RAD & DEG
Added keywords **RAD** & **DEG**
## PI & HPI
**PI** returns a hard coded value of *3.141592653589793*
**HPI** returns a hard coded value of *1.5707963267948966*
These both are commonly and often used when playing with graphics. Hard coding them makes things much faster.
## Fast Trigonometry (Lookup Tables)
For graphics-intensive applications (games, raycasting, animations), BazzBasic provides fast trigonometric functions using pre-calculated lookup tables. These are significantly faster than standard `SIN`/`COS` functions but have 1-degree precision.
**Performance:** ~20x faster than `SIN(RAD(x))` for integer degree values.
**Memory:** Uses ~5.6 KB when enabled
### FastTrig(<param>)
Enables or disables fast trigonometry lookup tables.
**Parameters:**
- `TRUE` (or any non-zero value) - Creates lookup tables
- `FALSE` (or 0) - Destroys lookup tables and frees memory
### FastSin(angle)
Returns the sine of an angle (in degrees) using a lookup table.
**Parameters:**
- `angle` - Angle in degrees (automatically normalized to 0-359)
**Returns:** Sine value (-1.0 to 1.0)
**Precision:** 1 degree (sufficient for most games and graphics)
```vb
FastTrig(TRUE)
PRINT FastSin(0) ' Output: 0
PRINT FastSin(90) ' Output: 1
PRINT FastSin(180) ' Output: 0
PRINT FastSin(270) ' Output: -1
' Angles are automatically wrapped
PRINT FastSin(450) ' Same as FastSin(90) = 1
PRINT FastSin(-90) ' Same as FastSin(270) = -1
FastTrig(FALSE)
```
### FastCos(angle)
Returns the cosine of an angle (in degrees) using a lookup table.
**Parameters:**
- `angle` - Angle in degrees (automatically normalized to 0-359)
**Returns:** Cosine value (-1.0 to 1.0)
**Precision:** 1 degree (sufficient for most games and graphics)
```vb
FastTrig(TRUE)
PRINT FastCos(0) ' Output: 1
PRINT FastCos(90) ' Output: 0
PRINT FastCos(180) ' Output: -1
PRINT FastCos(270) ' Output: 0
' Use in raycasting
FOR angle$ = 0 TO 359
LET dx$ = FastCos(angle$)
LET dy$ = FastSin(angle$)
' Cast ray in direction (dx, dy)
NEXT
FastTrig(FALSE)
```
### FastRad(angle)
Converts degrees to radians using an optimized formula.
**Parameters:**
- `angle` - Angle in degrees (automatically normalized to 0-359)
**Returns:** Angle in radians
**Note:** This function doesn't require `FastTrig(TRUE)` but is included for consistency.
```vb
PRINT FastRad(90) ' Output: 1.5707963267948966 (HPI)
PRINT FastRad(180) ' Output: 3.141592653589793 (PI)
PRINT FastRad(360) ' Output: 6.283185307179586 (2*PI)
```
## Download
Source and Windows binaries https://ekbass.github.io/BazzBasic/
## Version 0.9
For version 0.9, I'm focusing on making sure that the metafiles etc. are in accordance with Windows and Avast reducing warnings when BazzBasic is run for the first time.
The easiest way would probably be to get an account in the Microsoft Store, but it costs money and I don't want to do that since it's a free open source project.
Most of the metafiles are already in order, but GitHub's own "release" method would help even more. However, I haven't had time to learn it yet.
Of course, bug hunting and fine-tuning are definitely expected with version 0.9.
*Kristian Virtanen*
*krisu.virtanen@gmail.com*
And here it is in simple 3D https://github.com/EkBass/BazzBasic/discussions/9
Simple demo how to use raycasting with BazzBasic https://github.com/EkBass/BazzBasic/blob/main/Examples/fov_demo_1.bas
News and changes
Jan 2026
18th Jan 2026
With all the previous add-ons, BazzBasic ver. 0.6 is now available as binary and source.
18th Jan 2026
Merging BazzBasic and basic code into a single executable file is now possible.
bazzbasic.exe -exe filename.bas produces the filename.exe file.
BazzBasic does not compile the BASIC code, but rather includes it as part of itself.
Read more https://ekbass.github.io/BazzBasic/manual/#/packaging
18th Jan 2026
Finished working with PNG and Alpha-color supports.
LOCATE in graphical screen now overdraws old text instead of just writing new top of it.
Supported Formats
Format: PNG
Transparency: Full alpha (0-255)
Recomended
Format: BMP
Transparency: None
Legacy support
18th Jan 2026
Generated a manual with Docify.
BazzBasic homepage now links to it.
Major idea is, that github wiki becomes a as development wiki and this docify as user wiki.
17th Jan 26
Fixed a bug that prevented to use custom resolution with SCREEN 0
Terminal now closes if no errors when running via IDE
Small gap between IDE line numbers and user code.
17th Jan 26
BazzBasic has now in-built simple IDE.
Start bazzbasic.exe with out params to open it.
If opened with params, the .bas file is interpreted normally.
After few new features, released as version 0.6
10th Jan 26
Generated vsix file to add BazzBasic syntaxes for VS Code.
See https://github.com/EkBass/BazzBasic/blob/main/extras/readme.md
9th Jan 26
Released first one, version 0.5