Log in with to leave a comment.

Hello guys! Thanks for the amazing program. It's what got me into game development and software engineering back in 2004-2005. Many years later I found myself struggling with unity's slow and heavy development cycle. Then I decided to return back to Blitz3D and I am glad I did so. I have been advancing this amazing piece of software to quite modern standards. But right now I am facing a problem with texture flags. Can anyone help me? I need some sort of a combined- or a special flag. Somebody mentioned a flag 49 for my case, but then the mesh disappears completely.. Let me explain. I want to create a low resolution cubemap, but it causes seam issues. I remember there was a edge seam fixup solution somewhere, but I don't remember if it was in Blitz3D or Unity. Anyhow, how to approach this problem? Do I have to modify the cubemap texture at runtime, or whats the complete set of texture flags? Thanks. And many thanks to you Mark, without your amazing program, my life would be completely different.
Note: my first project involved Tokamak physics and I have been working with physics ever since. I am mostly focused on realistic vehicle simulations. And I am once again playing around with tokamak and physx. Then I decided to upgrade the visuals to pbr standards, and this is where I got the edge seam problem. 

Here are some screenshots of my pbr solution. It's using Xors3D for shadowing only, everything else is directly portable to original B3D DX7.

The issue is not very visible, but at certain angles the edge seam is very harsh. Take a look on the second image, front left tire, it has a very sharp edge, while it should be blurred instead.

-Ravel. The author of MoDyEn physics extension for Unity3D

"Many years later I found myself struggling with unity's slow and heavy development cycle. Then I decided to return back to Blitz3D and I am glad I did so."

In my opinion, old Unity 5 was the most successful then it modern versions. Why you turn back to Blitz3D? It is interesting...

Wow, that looks fantastic!

I do remember the seamless cubemap texture problem, but only from the GL days. There was an extension to deal with it in GL...

...but according to a quick google, D3D didn't get a fix for this until D3D9-ish.

I can't think of a way you could fudge this by distorting cube faces either so sorry but I think you're stuck with it in B3D.

But it all looks pretty seamless from here anyway!

Hey, guys, I have a doubt in Blitz3D, how to disable the bilinear filtering in the textures, because I'm creating a 3D game in pixel art, and using the "ClearTextureFilters()" function is not having any effect, the texture is still "blurred", does anyone know how do this?, thanks for your attention.

Hi Plim, have you tried texture flag '1024'? According to this commit...

...this very useful feature was added in 2018 by someone called Dave Camp  - thanks Dave whoever you are!

(1 edit)

Hi Mark, it's an honor to talk to you, yes I used:

"Const tex_mipmap_OFF = 1024" 


ground_tex = LoadTexture( "imgs_Base/chadrez.png", tex_color + tex_alpha + tex_mipmap_OFF)

But does it only work in BlitzNG and not in "Blitz3DSetup1108" which is what I prefer to use, or does it work in "Blitz3DSetup1108" and I didn't know how to make it work?, thanks a lot for answering.

Hi, would you mind posting some runnable example code I can copy/paste into blitz3d 1108?

(2 edits)

Of course :)

Const tex_color = 1         ; Color texture 

Const tex_alpha = 2         ; Alpha texture (Include alpha channel data) 

Const tex_mask = 4          ; Masked texture (black is transparent) 

Const tex_mipmap = 8        ; Create texture mipmaps 

Const tex_clampu = 16       ; Restrict U texture coords from "bleeding over" 

Const tex_clampv = 32       ; Restrict V texture coords from "bleeding over" 

Const tex_envshpere = 64    ; Load texture as a spherical environment map 

Const tex_vram = 256        ; Force texture graphics to vram 

Const tex_highcolor = 512   ; Forces texture graphics to be 32-bits per pixel

Const tex_mipmap_OFF = 1024 ; Turn mipmap OFF

Graphics3D 800,600,0,2

SetBuffer BackBuffer()



RotateEntity light,45,45,0



tex1=CreateTexture(w,w, tex_color, tex_mipmap_OFF)

For i=0 To 10000

Color Rand(255),Rand(255),Rand(255)

Plot Rand(0,255),Rand(0,255)


EntityTexture cube, tex1

CopyRect 0, 0, 256, 256, 0, 0, BackBuffer(), TextureBuffer(tex1)


CameraRange camera,0.001,50

TranslateEntity camera,0,0,-1.4

While KeyHit(1)=0

TurnEntity cube,0,.1,0



Delay 10



(2 edits)

Hi, you need to use 'Or' to combine multiple flags together (which sounds very counter-intuitive!) For example, this works for me:

tex1=CreateTexture(w,w, tex_color Or tex_mipmap_OFF)

By using a comma here, you're actually creating a 1024 'frame' texture!

You can also use plain additon to combine flags, ie: '+', but then you have to be careful to only use each flag exactly once. Still, I think this is what most b3d coders used, and it makes a bit more logical sense I guess.

In retrospect, I think Blitz3D should have had '|' and '&' and maybe '~' operators too.



Hi Mark, wow, this is cool. If you knew this in 2000, you could have advertised it like "will provide free Updates for 23+ years". ^^

Still using Blitz3D frequently. There's too much bloatware around these days. I remember for a pretty long time Blitz3D used to fit on a 1.44 MB floppy. I used it recently for a terrain mesh generator that makes meshes for a WebGL engine. No way I'd have such a nice terrain in WebGL without Blitz3D.

All the best, Dieter

(2 edits) (+1)

Well, I did vaguely promise 'lifetime' updates!

I've been browsing the various incarnations of the Blitz websites lately (before the internet archive gets taken down...) and wow they were fun days - before all the 'monetization' bullshit crept into gaming. I should NEVER have got involved in the mobile scene, that sexy hardware was just too tempting though.

The 'mugshots' thread (from *22* years ago!) here especially bought back lots of warm fuzzy memories, possibly before even your time though?


(3 edits) (+1)

'monetization' is real bullshit...

What's about the 'lifetime' updates? When will Vulkan be included?  :)

Im joking... )

UPD: By the way, I looked at your sources and really find a Vulkan in one of the projects ...

Hi Mark! Sorry for responding so late. I was kind of roaming the prairie in spring time. I hope you're fine! Yes indeed those were great times. I must have been there already since a few years, I remember threads about the towers in the forum in 2001. I guess, like in all industries politics began to play important roles, in order to get crazy funding that would wipe any competition from the market. Like Unity, that cost 2 billions so far, but cashed in way less. Investors primarily wanted to monopolize, as that promised more control over a new medium. Anyway, in my view.

Being literally senior programmer by now, I tend to follow more of a Guru approach. I think it was Confucius who said "The wise man is sitting at the river shore, and the sooner or later the dead body of his enemy is floating by". Not that I had any enemies tho - I have authorities ^^ well you know me, always on the brink of a coup d'etat. 

Take care, yet have a wonderful time!


Hi all, I finally fixed the double spacing in the IDE issue and have uploaded a new Blitz3D 1.109 installer.

I built this on Windows10 so there *may* be issues if you're still on 7,  8 or 9, although I think I built the 1.108 installer on Windows10 too so who knows...

(1 edit)

This is nice news.

I would like Blitz3D be accessible for download as a zip archive. The antivirus protection system swears at the exe archive file. It was also not possible to unpack the exe file as an archive using 7 zip (sometimes this works with an exe file, but not in this case).

I would also like to know where i can download the latest 1.109 version of  B3D.dll ?

I've run into an issue today. When I try to open Blitz3d on my Win10, the icon shows in the taskbar, but no IDE screen appears, and the taskbar thumbnail preview is blank white.

When I right-click the task, there's the options: ide.exe, and the usual pin to taskbar & close window.
Clicking ide.exe the first time gave me an error saying the blitzpath environment variable wasn't found.
So I created that.

Now when I try to open Blitz3d, I get the same results.
But when I right-click the task icon and choose Ide.exe again, it opens another task pointing to C:\Program Files (x86)\Blitz3D\help\index.html. But that task doesn't show anything either.

I just tried downloading and installing the latest version here with no luck.

Anyone have any idea what is wrong?


Never mind! Just successfully uninstalled and reinstalled.


Has anyone tried using chat GPT to update the code and make it work with better graphics and DX12?

Very cool, but am I the only one who has problems with the IDE? It just changes the font when I type in something after opening a saved .bb file :/

It's normal, i think bc you copy-pasted something


The source code also given here. How nostalgic:) hope someone great will revive Blitz3D with modern features but still in BASIC


I boot this up from time to time for the nostalgia. I started learning how to program using B3D back in ~2003. I doubt I'd be coding as a career if I hadn't came across it. Nice to see it's still knocking about! :)

Hi Mark, and everyone else!

I'd be interested in hearing your thoughts on the strange behaviors outlined here:


(1 edit)

No idea sorry although I've just uploaded a new build so you might want to try that as it should be the latest/greatest version available.

Skimming through the comments to your posts, I'd recommend making sure the code isn't trying to set an 'exotic' graphics mode of some kind (eg: 16 bit color) in fact probably safest to try to get it running in windowed mode first.

Hi Mark,

Thanks, I'll look for the new build.  

I haven't gone back to the page I linked, to refresh my memory of what's been said, and it's also been a while since I was actively chasing this, so apologies if I either repeat myself or speak incorrectly.   I have yet to find a solution. 

If I recall correctly, the program does work correctly, even under Windows 10, if run under just the right circumstances -- "windowed, with the Debugger enabled,"  I think it was.  This suggests to me that maybe that particular combination causes the program to run in a sort of "controlled" or "captive" environment where Blitz3D has control and provides a DirectX (7  or 9 or whatever) environment  that got compiled/linked into Blitz3D itself when it was compiled, "back in the 90s" or whenever -- whereas running the program "full screen" and/or without the Debugger -- and especially as a standalone .exe!  --  makes the program dependent on the environment provided by the OS and its current DirectX (11?) environment.  That, then, places the blame squarely on "them" in that they seem to have broken, or at least changed in a fundamental way that breaks this program, something in DirectX itself.   Considering how few lines of Blitz Basic code are actually involved in The Part That Doesn't Work Any More (tm me), it ought to be fairly straightforward for someone (such as yourself, perhaps? -- who knows DirectX well enough to have created Blitz3D in the first place) to look at exactly what's going on and what's changed.  Feel like looking into it for me?  Pretty please?  :-)

If you or anyone else are able to investigate that and nail down the exact details, someone might be able to submit a bug report sufficiently specific to get attention.  I expect that reporting "this one specific feature of  program written in a language processor that was written in the 1990s, doesn't work on Windows 10," isn't going to get much traction.   I'd still report, it, though, if I knew where DirectX even comes from, and to whom to report it; is DirectX a Microsoft thing?  I can't believe I don't know.

Anyway, thanks again for the reply.  I'll pop back in here either if I have difficulty finding/installing/using the new build, or if it doesn't fix the problem.


Is the download right here on this page, the new release?  Or is it elsewhere?   

Hi, Mark. I would like to know why the sources of the Blitz3D SDK are not publicly available on Github?

For one thing I don't have a copy of it any more, for another it was 99% the same as the Blitz3D that *is* up on github so even if I did have a copy I probably wouldn't bother.

(3 edits)

Spread for your judgment, my experimental mini project:

The fact that I used Blitz3D in the title violates the copy rights? Another name would not make sense, since this project is associated with Blitz3D SDK. Do you give me permission to use this name?

This written for B3D.dll, I would like to add this DLL directly to the repository. It would be very convenient to use. But it probably violates copyright.

I don't like that the B3D.dll doesn't have network and file functions, it doesn't even have a random number generator... I would like everything to be included into the library, such as in Monodevelop for example.

Do I understand correctly that if you rename runtime.dll from Blitz3D to b3d.dll, then everything will work? I think there are fundamental differences in the work.

If you want to use Blitz3D runtime in your own projects, I would probably recommend statically linking with the 'bbruntime' static lib. Just building the blitz3d solution in msvc2022 produces a bbruntime.lib in bbruntime/Release which should be all you need. The bbruntime_dll project is a bit useless as-is, it's designed to be linked with blitzcc compiler output - it doesn't actually export any symbols - the blitzcc output code is 'injected' into the dll as a resource, and linking is actually performed at runtime.

You'll also need header files, which you can either include directly from the blitz3d project, or copy the headers from bbruntime (and any other required dirs) into a standalone 'include' dir. Either way you'll need to set up a buinch of include dirs so the compiler can find them.

(4 edits)

I can't handle it, I'm not that great of a programmer... \

And msvc2022 won't even fit on my PC. I usually use something compact like Dev C++ :)

Could I put the B3D.dll library on github? Or Blitz3D SDK is it still paid?

Of course, it would be cool to use the original editor and slip FASM instead of blitzcc when compiling. But it requires huge competencies.

For example if user open *.bb file run blitzcc, if user open *.asm file run FASM.

You didn't answer anything about the naming and copyrights.

If you have a copy of Blitz3D SDK, I don't really mind what you do with it (an acknowledgement would be nice). I only ever sold a handful of them many years ago. I thought it actually kind of sucked as a C++ SDK and my heart was never really in it. 

(4 edits) (+1)

Hi Mark! I am taking part in a game jam with a small dev community in Spain and will use Blitz3D and Maplet for it (it's a retro compo, most of us are using "legacy" technologies, and I like the idea of the game working on Win9x).

Do you happen to have the specs of the .maplet format by chance? I'd like to extract the information of the lights from it to use it in the game.


BTW, I love playing with Blitz again! I used it for a long time a couple of decades ago, used to visit BRL's forums under the nickname "Jedive".

Hi JaviCerva/Jedive!

Unfortunately, I managed to lose the source code to Maplet shortly after finishing it so I have no idea how it works any more.

Probably possible to hack the file format but unlikely to be easy. But knowing early 2000's me, it's likely to use an 'IFF' style file format, eg: chunktag/chunksize/chunkdata...etc etc, where chunk tag is a fourcc 'character code' like 'LIGT', 'PRIM' etc Just guessing really though!

Thanks for your reply, Mark!

Definitely, software version control systems were not very established back then lol.

Unfortunately, I have tried what you suggested, but there are not easily identifiable tags within the file except for "BB3D" and "_BSP" at the beginning of the file.

Since the amount of lights won't be very big (it's a small game for a compo), I think I'll just write their position, color and radius manually on a separate file and use that.

Great to see that you are active and I am really looking forward to see your future projects (although I assume they won't be related to Blitz/Monkey!).


Any classes how to use it?

I mean, I know basic is pretty simple as the name BASIC implies. Blitz Basic uses a different dialect like the language of Spanish is between Mexico and Spain. (And yes, that's a thing; they both speak Spanish, but use a different dialect.)

But I do need to ask 2-3 big questions.
1. Has ANY game recently been published using Blitz basic with a proper Polish and sold for any amount of $5 (USD) and above?

~Note: By Proper Polish, I mean bug's worked out, game operates correctly with a lack of bugs. ETC.

2. Is anyone building a game with it right now? Mind you, I know folks mostly get this to fool around with code or to teach their kids how to program games or simple programs, I get it.

3. Yeah, back to the beginning comment, any classes how to use it today? Like a general education to use and push it to the absolute limit. How to render something you made in Blender and throw it in there or how to make a 3D model in it? if the 3D Modeling tool's in Blitz suck, is there an alternative?

I'm asking out of pure curiosity. Mind you, I would like to know everyone's thought's about it.


You've probably heard of SCP: Containment Breach if you've heard of Blitz3D, or at least I'd hope. It's a pretty damn good game and made with yours truly, Blitz3D. No, it's not quite recent, but it's seen a Steam release of the multiplayer mod, and (not counting the latest version on Steam because it's become sort of a buggy mess, I'd recommend checking out the ModDb page here) is quite polished.

To answer your second question, I am, but I guess I don't have any real authority in the game world yet. I just like using older engines. I'm working on a minecraft-type clone in Blitz3D, which will be interesting to see if it works and fast enough to be enjoyable.

To answer your third question, I would say your experience with it depends on how complicated your normal programming adventures are. Honestly, I find the language very basic (ha, but it is BASIC so it is to be expected) and you can't do things like function dereferencing. Also, if you like writing nice and neat code, get ready to use your Tab button (or if you're a psychopath and use the spacebar) like crazy, there's no auto-indentation. For modelling, you can most certainly use Blender. It doesn't natively support .blend files, but it does support .3ds and one other file format for 3D models (something like that), which Blender supports. Hell, you can even write your own model file implementation, but I would not do that for a few reasons, mainly that's a lot of work and you'll have to do a lot of stuff in BASIC, which isn't exactly fun (at least, not for me).

Now, as for making games for modern day, just as with any programming language, it's not about the actual code, it's about the how. I believe that you can make a fully-fledged triple-A game (well, you most likely won't have hyper-monetization and thank god for that) in any programming language. Even brainfuck. Actually, that seems kinda fun now. A brainfuck CPU, with a... oh I'm going on a tangent again.

If you need me to clarify anything, please, let me know :)


Also, I love your metaphor of dialects. A very simple yet powerful way to put it!

I have used it back in the day to make my first games.
There are maybe some old forums around with some nice tutorials since that was a thing back then. is a german website with a lot of german blitz ressources, but I don't know about english equivalents.

I learned it by mostly looking at the examples and being active a lot in those forums.

While it's pretty outdated, the main difference to modern game engines is probably the lack of a world editor so for every bigger project you need to build you own. You literally have just your code and that's about it. It's great for building simple games tho or learning programming in general.


My Basic Programming Tutorial is still operational.

Besides teaching you how to program in BASIC (namely using BlitzBasic), there are multiple examples on there for some classic games and game types (Mario, Tetris, Asteroids, etc.).
It's still a work in progress, and always has been, but there's plenty of info on it as it is...
But anyways, check it out if you like.




scp containment breach was made on this