Ok so after dropping unity because it almost oofed my pc, i moved to Blitz3D. And i downloaded V1.116, is it made for windows 11 or not? Because im experiencing constant issues.
Blitz3D isn't 'made for Windows 11' (not sure anything is yet?) but I haven't had any reports of it not working on Windows 11 yet either. What are the issues you are experiencing?
But Blitz3D is getting pretty old by now, and it's pretty likely it wont be a 'comfortable' choice for users who are used to more modern tools. It seems to be mostly popular with people writing retro games these days.
The longevity of support on this is mind-blowing. Thank you!
I'm having trouble understanding the LoadTexture flags 2 and 4. Specifically, despite loading a PNG or TGA 32ARGB texture with flag 1+2 I get a flag 1+4 behaviour of 32RGB texture with alpha channel being ignored completely. Does B3D even support alpha channel textures in the "modern" way we understand it?
EDIT: figured things out, the problem was unrelated to the texture handling.
Textures with alpha channel used to work just fine in Blitz3d. (Haven’t tried it with the 2024 versions.) Back then, a common problem was that one would use 16-bit graphics mode, where there isn’t a lot of bits left for alpha info. This would make gradients feel like masked; it could be solved by also adding mode 512.
The real problem is the lack of Z-ordering of surfaces with alpha. We are reviving an old gaming project which went open source and try to modernise the graphics to reach some new audience. We wanted to switch from masked to alpha textures and we have a tough decision to make now.
I find the omission of alpha Z-ordering rather puzzling as it had to be implemented analogously for opaque surfaces before alpha surfaces were even considered. It probably wouldn't be difficult to add a flag enabling alpha Z-ordering directly in the Blitz source, and certainly easier than doing it in the Blitz code, as the Z-order needs to be updated per-mesh relative to active camera, in each frame.
Thank you so much, Mark Sibly. I started learning programming with Blitz3D, and it sparked my interest in software development, ultimately leading to my career as a software developer. Now, two decades later, as a senior developer, revisiting Blitz3D brings back memories and makes me a bit emotional. I often wonder what I would be doing now if I hadn't discovered Blitz3D back then. I once had a large collection of programming books on various languages, including one titled Game Programming with Blitz3D. This is the only book I've kept, and I probably will never sell or throw it away.
Woah, there are updates to Blitz3D? In 2024? And here I was about to tell myself to move on to another language. I mean, I echo the sentiments that it'd be one of my fondest dreams for Blitz3D to be fully modernized and with a few of the features you had in Monkey and such (like passable functions and references and whatnot) and IDE QoL updates, but the realistic part of me would be satisfied just from it being brought back to a functional state (putting a dagger in FMOD is a good chunk of the way there, but there's the dead network functions--yes, I used them--, some issues with the window not refreshing after it leaves the foreground until graphics are reset, and some weird performance issues with the IDE, though admittedly it's been a while since I checked for those and they might be addressed already). I wouldn't be surprised if there were huge improvements just from the recompile. I'll have to take it for a test drive.
I look forward to seeing what new life you can breathe into it with LibSGD. I think part of its success will depend on keeping things simple and in-line with basic language tradition, and having integrated documentation with examples like you did with Blitz3D. I'm sure it'd help non-programmers like myself if it was integrated into Blitz3D instead of having to deal with adding libraries and such; the nail-in-the-coffin on a number of my hobby projects has been that I couldn't get Blitz3D reconfigured correctly after a hard drive died. It's great to just be able to reinstall Blitz3D and have everything working again so vanilla is kinda my default these days, but maybe the zip download will change all that since I could just carry my favorite configuration around on a flash drive.
I know Blitz3D was made for games, and I did a bunch of that as a hobby, but it's also my go-to language for quickly pushing out little tools just to help me and my co-workers with repetitive tasks at the office. I'm not a programmer professionally, but Blitz3D is definitely part of my professional success. Opening Blitz3D is a dopamine rush, it's like getting my drug fix.
Wow! Amazing to hear Blitz3D is back! One thing that I would really love is a very simple serial comms built directly into Blitz3D. With an interest in using Arduinos and python cards to control 3D environments such as movement and rotations my 3D projects, I had to resort to external programs get the initial serial data and then send that data to Blitz3D using text files! Would be great if serial comms was supported like in other basic languages, e.g. open comms, read incoming bytes, done! See my 3D scanner, 3D digitizer and 3D VR headset linked below that all use Blitz3D for the 3D visualisations! https://sites.google.com/site/colinord
I tried a few different B3D serial comms userlibs over the years always hoping to get one working, but to no avail. I don't know why they didn't work, but they were always blocked in some way! Other languages I use such as VB6, LibertyBasic, Just Basic, Free Basic, Python, Processing usually get me started, Their serial comms libraries don't get blocked, but I always want to use Blitz3D for the great 3D stuff! Creating intermediate serial comms 'drivers', that suck in the serial data from Adruinos, and output the data to files in RAM disks, to be read back into Blitz3D is a real pain and very slow! How I wish serial comms was built into B3D to help with this. I really feel that would help open up your userbase to others wanting that hardware capability too!
Hey Mark, great to see you working on this again! I used Blitz3D for years, and it basically provided the bridge into the programming world for me. Much of my current knowledge of programming is still based around the Basic concepts I learned back then.
I've been working on an LLVM based compiler for Blitz2D, Blitz3D and BlitzPlus for about two months now (in total), and it's finally reached the point where it can turn most BlitzBasic code into an Abstract Syntax Tree, and even can now provide exact positions for warnings and errors.
I hope that I'll be able to use libSGD to fill in the gaps, as right now it doesn't provide anything that isn't just the Basic syntax itself.
It's great to see you again Mark! Thank you for providing us with one of the best 3D programming tools like Blitz3D, with which many of us have started in the world of programming and obtained really satisfactory results.
I hd a closer look at this today, and I'm 99.97% sure it's a false positive.
I had a look at it on the Virus Total website, which does report some of the exes and dlls contained in the zip to be suspicious, but only by a small number of virus checkers (it' s a 'meta' checker) and all weird ones I'd never header of, none of the 'big name' ones.
So I went and rebuilt the entire Blitz3D packge from scratch using slightly different compiler flags to see if that made a difference and checked it again, and it did! I got a totally different results with fewer false positives (still not 0 though). So it's almost tempting to 're-release' this version as a fix, but I wont be doing that as I don't want to have to be effectively 'randomizing' compiler settings for each release to suppress virus checkers, that's just nuts for a whole lotta reasons.
I guess there's a chance that my machine has been infected by something that infects exes I build using MSVC, but short of reinstalling the whole OS (and I'm not even sure that's enough any more) I don't know if there's anything I can do about that. My machine is regularly checked by MS Windows Defender and I recently checked everything with Bitkeeper for variety which did quarantine a few things I'd never heard of (and similarly have no way of knowing if they were 'real' problems or not) but otherwise said my machine was healthy.
Hi Apry24, I doubt your PC is infected as I have started getting the same warning from MS Defender for V1.112 too!
I have discovered through researching this that simply changing compiler settings or even just renaming functions are enough to cause positives where there were none before.
So I have just released Blitz3DV1.113 which is just V1.112 but rebuilt with the latest MSVC compilers and tools, and the final zip is not triggering MS Defender so please give this a try.
Hi I've been getting reports of my tools written in B3D running extremely slowly on some win11 devices(Around the 8fps mark) Any ideas on what that could be. They run fine on all win10s and most win11s
Nah its all good. Its a rare occurrence. I was just being hopeful :P Any chance of getting access to Controller triggers?(The L2/R2 slider keys) Ive not been able to get any response from them and nobody else I know that uses Blitz knows a way
Wow. This messageboard is quite active. Blitz3D is a very good tool and is still popular. Good job. I hope that the user base of Blitz3D will be enlarged significantly. Good luck.
By the way, I have added the link to the following webpage.
Does anyone know why Blitz3d.exe is shown as a virus? not the setup, but the main executable. I know it's probably a false positive but I want to be safe
En muchas ocasiones tienden a mirar al Blitz3D como a un perro muerto. Toda la saga de un juego como Tom Rayder se hizo en Blitz. ¿Qué? ¿Ya agotaron todas uds. todas las posibilidades del Blitz...
The best tool/language for programming 3D games that I have ever tried -- and I've tried many, many tools. Blitz3D beats Unity, Unreal, Leadwerks, S2, Tombstone/C4, and more that I can't even remember in one key area for me: productivity. I can just write some very simple commands out and get really great results very quickly.
Those other tools/frameworks are great for what they are able to do as well of course but right now my focus is on getting stuff to actually show on the screen as quickly as possible -- and Blitz3D lets me get whats in my head out on the screen the fastest of all of these.
It was so easy to build, basically no steps were required other than 1) check it out 2) press build solution. You end up with Blitz3D.exe in a _release subfolder, ready to go. It's possible I already had any dependencies installed but if so they can't be very hard to find. Give it a try if you're remotely able to work with C/C++!
Thank you, Mark! I love Blitz3D!
p.s. Some useful tools:
I recommend using Blender 2.79 in order to be able to produce .3ds files that can be read by Blitz3D.
You can also use fragMOTION for model editing and exporting to DirectX's .x format -- which includes all textures in one file.
I have had good results from Material Maker 1.3 for stylized textures, which lend themselves nicely to the Blitz3D renderer.
IIRC, the multiplayer networking functions were removed when Blitz3D was open sourced as the underlying DirectPlay API was not supported by MSVC2017 (Blitz3D was originally built using 'classic' MSVC 6). Plus, I think running a Blitz3D app that was built with DirectPlay support (ie *all* Blitz3D app's pre-open sourcing) caused an annoying 'do you want to install DirectPlay' popup on recent-er versions of Windows.
I've just checked and the source files are still in there so it may still be possible to build Blitz3D with multiplayer support again if you can get hold of the appropriate SDK files (static libs, headers etc) and they're compatible with the Windows SDK stuff used by MSVC.
But, to be honest, it's probably not worth trying as multiplayer in Blitz3D was never that great or even very well tested. I certainly don't remember any multiplayer Bltitz3D apps being released - please let me know if I'm wrong anyone!
Thanks for the detailed answer, I really appreciate it! I will just use an old version I found on archive.org.
I'm still very inexperienced with Blitz3D, but I'm trying to recreate an old multiplayer shooter game that I used to enjoy playing. It was definitely good enough for that and I don't remember any problems.
But of course, being P2P, it brings a lot of negatives.
I too had some users, not being able to run EXEs compiled with 1.9n-ish version, due to unsupported "legacy" directPlay, even if not used by the EXE.
BTW. did you ever encounter the excessively slow line drawing command issue?, (like here on win10, dx 12, amd radeon R3). I wrote a substitute, but there may be a speed issue with dx7 2D in dx12.
BTW2 I guess DirectPlay is not really required, as it can be substituted by TCP and UDP. Which I guess is what most people would do in the first place anyway.
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...
Yes, Sir, Unity 5.6 is great. It has all the features that you need. Most importantly I work offline, so Blitz3d is reliable, I can boot it up whenever I want to. Unity requires internet connection etc. to load the license and as soon as something changes in the services of your computer, it requires internet connection again. That is such a waste of talent... Secondly my technological knowhow is at a level where I can build my own world editors and integrated development environments. So I personally see Blitz3D more advanced. But it requires more effort. Thats the beauty of it.
Thanks for the answer. That is why I liked Unity 5, it is enough to download the installer (but the truth is that it required registration online, which is of course a minus) and then it complete to work. Without any installations of modules and other settings.
P.S. And of course C# captivates ... somehow it is closer to real development than BASIC. Although this is a matter of taste.
I do understand your point of view sir. I do like Unity 5 and I have been using it ever since it released.
My personal preference right now is b3d because it is way faster in terms of prototyping. In unity yo often get lost in the editor environment and forget about the actual coding. This causes a major setback and it obviously generates automated code that is not always as effective as intended.
In basic you have the option to write your own advanced interpreter actually, with object oriented programming in mind. There are several C# like interpreters for b3d allready. The advantage of native C# is that you get access to the system .NET classses, which is great indeed.
Also with unity you have a closed asset system which is not ideal for my case. I prefer to manage my own files the way I want. The build prints are also way smaller with b3d. A Unity project usualy weights around 1-5 gb because of all the meta data. With b3d it only depends on how many files you have and how much they weight.
hmm interesting. Thank you for the paper. I will take a look at it. But in the meantime I actually figured out a small workaround for it. Just need to figure out whats the fastest way to solve this issue. After all I am drawing just 6 textures, I can play around with them hehehe... I am planning to use nearby pixels approach. it should actually work...
Thanks! Camerazoom for edge seam fix? ...uhm, well right now I got a solution working with a baked static ambient cubemap. So it looks quite decent for static lighting. But have to figure out how to make the ambient cubemap smooth. Right now its just a 2x12 image with 2x2 sided cubemap. So the lower row is mostly black pixels and the upper row is the sky color. The front facing side is having brighter pixels to simulate the light direction. I used the ATI cubemap gen to generate the image from the skybox image. It works very good and it makes all the models look modern. I will post a small article about it, once I have finished some fun stuff with it.
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 howdo this?, thanks for your attention.
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, 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.
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?
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.
I come to the conclusion that any undertaking, enterprise or company can be destroyed with a lot of money. A lot of money attracts crooks and usually does not give a place for specialists.
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...
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.
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! :)
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.
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.
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.
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.
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.
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.
Thanks!
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".
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!
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!).
I was wondering about Maplet and saw this comment. What a weird coincidence. I am wondering if you remember what language you wrote it in, perhaps it can be ‘decompiled’. Though I won’t try it myself as I have little experience in programming, this info might be good for somebody.
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 :)
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. blitzforum.de 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.
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.
← Return to tool
Comments
Log in with itch.io to leave a comment.
we playing scpcbdc with this one
Ok so after dropping unity because it almost oofed my pc, i moved to Blitz3D. And i downloaded V1.116, is it made for windows 11 or not? Because im experiencing constant issues.
Blitz3D isn't 'made for Windows 11' (not sure anything is yet?) but I haven't had any reports of it not working on Windows 11 yet either. What are the issues you are experiencing?
But Blitz3D is getting pretty old by now, and it's pretty likely it wont be a 'comfortable' choice for users who are used to more modern tools. It seems to be mostly popular with people writing retro games these days.
The longevity of support on this is mind-blowing. Thank you!
I'm having trouble understanding the LoadTexture flags 2 and 4. Specifically, despite loading a PNG or TGA 32ARGB texture with flag 1+2 I get a flag 1+4 behaviour of 32RGB texture with alpha channel being ignored completely. Does B3D even support alpha channel textures in the "modern" way we understand it?
EDIT: figured things out, the problem was unrelated to the texture handling.
Textures with alpha channel used to work just fine in Blitz3d. (Haven’t tried it with the 2024 versions.) Back then, a common problem was that one would use 16-bit graphics mode, where there isn’t a lot of bits left for alpha info. This would make gradients feel like masked; it could be solved by also adding mode 512.
The real problem is the lack of Z-ordering of surfaces with alpha. We are reviving an old gaming project which went open source and try to modernise the graphics to reach some new audience. We wanted to switch from masked to alpha textures and we have a tough decision to make now.
I find the omission of alpha Z-ordering rather puzzling as it had to be implemented analogously for opaque surfaces before alpha surfaces were even considered. It probably wouldn't be difficult to add a flag enabling alpha Z-ordering directly in the Blitz source, and certainly easier than doing it in the Blitz code, as the Z-order needs to be updated per-mesh relative to active camera, in each frame.
Thank you so much, Mark Sibly. I started learning programming with Blitz3D, and it sparked my interest in software development, ultimately leading to my career as a software developer. Now, two decades later, as a senior developer, revisiting Blitz3D brings back memories and makes me a bit emotional. I often wonder what I would be doing now if I hadn't discovered Blitz3D back then. I once had a large collection of programming books on various languages, including one titled Game Programming with Blitz3D. This is the only book I've kept, and I probably will never sell or throw it away.
I just wanted to thank you, Mr. Sibly! :)
Thank you Mark Silby! Everything seems to be operating corectly!
Woah, there are updates to Blitz3D? In 2024? And here I was about to tell myself to move on to another language. I mean, I echo the sentiments that it'd be one of my fondest dreams for Blitz3D to be fully modernized and with a few of the features you had in Monkey and such (like passable functions and references and whatnot) and IDE QoL updates, but the realistic part of me would be satisfied just from it being brought back to a functional state (putting a dagger in FMOD is a good chunk of the way there, but there's the dead network functions--yes, I used them--, some issues with the window not refreshing after it leaves the foreground until graphics are reset, and some weird performance issues with the IDE, though admittedly it's been a while since I checked for those and they might be addressed already). I wouldn't be surprised if there were huge improvements just from the recompile. I'll have to take it for a test drive.
I look forward to seeing what new life you can breathe into it with LibSGD. I think part of its success will depend on keeping things simple and in-line with basic language tradition, and having integrated documentation with examples like you did with Blitz3D. I'm sure it'd help non-programmers like myself if it was integrated into Blitz3D instead of having to deal with adding libraries and such; the nail-in-the-coffin on a number of my hobby projects has been that I couldn't get Blitz3D reconfigured correctly after a hard drive died. It's great to just be able to reinstall Blitz3D and have everything working again so vanilla is kinda my default these days, but maybe the zip download will change all that since I could just carry my favorite configuration around on a flash drive.
I know Blitz3D was made for games, and I did a bunch of that as a hobby, but it's also my go-to language for quickly pushing out little tools just to help me and my co-workers with repetitive tasks at the office. I'm not a programmer professionally, but Blitz3D is definitely part of my professional success. Opening Blitz3D is a dopamine rush, it's like getting my drug fix.
Good to see you back, Mark!
Wow! Amazing to hear Blitz3D is back!
One thing that I would really love is a very simple serial comms built directly into Blitz3D. With an interest in using Arduinos and python cards to control 3D environments such as movement and rotations my 3D projects, I had to resort to external programs get the initial serial data and then send that data to Blitz3D using text files! Would be great if serial comms was supported like in other basic languages, e.g. open comms, read incoming bytes, done! See my 3D scanner, 3D digitizer and 3D VR headset linked below that all use Blitz3D for the 3D visualisations! https://sites.google.com/site/colinord
It should be possible to do this with a simple userlib. Here's a thread on the topic - 20 years old but it might be useful!
https://archive.blitzcoder.org/forums/b3d-programming/53540.html
I tried a few different B3D serial comms userlibs over the years always hoping to get one working, but to no avail. I don't know why they didn't work, but they were always blocked in some way! Other languages I use such as VB6, LibertyBasic, Just Basic, Free Basic, Python, Processing usually get me started, Their serial comms libraries don't get blocked, but I always want to use Blitz3D for the great 3D stuff! Creating intermediate serial comms 'drivers', that suck in the serial data from Adruinos, and output the data to files in RAM disks, to be read back into Blitz3D is a real pain and very slow! How I wish serial comms was built into B3D to help with this. I really feel that would help open up your userbase to others wanting that hardware capability too!
Hey Mark, great to see you working on this again! I used Blitz3D for years, and it basically provided the bridge into the programming world for me. Much of my current knowledge of programming is still based around the Basic concepts I learned back then.
I've been working on an LLVM based compiler for Blitz2D, Blitz3D and BlitzPlus for about two months now (in total), and it's finally reached the point where it can turn most BlitzBasic code into an Abstract Syntax Tree, and even can now provide exact positions for warnings and errors.
I hope that I'll be able to use libSGD to fill in the gaps, as right now it doesn't provide anything that isn't just the Basic syntax itself.
It's great to see you again Mark!
Thank you for providing us with one of the best 3D programming tools like Blitz3D, with which many of us have started in the world of programming and obtained really satisfactory results.
Thanks!
Hi i want to share my games using this game engine. First cube game 9x https://dtkraccoon.itch.io/cube-game-9x its a multiplayer game. Section https://dtkraccoon.itch.io/the-wasteland a prototype of a single player game. And last https://dtkraccoon.itch.io/the-wasteland/devlog/736608/we-have-a-wolf-ai our demo of wolf AI. All games are for free for the retro community we like blitz3d as the engine runs on win 95 to 11!
These look fantastic - I will give them a try this weekend!
Damned ! The blitzbasic3d 1.112 contains a virus ! It cannot work .
Would you correct it ?
I am getting no report of a virus with MS window Defender here, and I believe this to be a false positive.
Either way, I have no way to 'correct' this.
I can arrange a refund for your recent purchase if you would like.
Bye,
Mark
Thank you for your answer and your offer .
Don't worry . I'll pick it freely some times .
I hd a closer look at this today, and I'm 99.97% sure it's a false positive.
I had a look at it on the Virus Total website, which does report some of the exes and dlls contained in the zip to be suspicious, but only by a small number of virus checkers (it' s a 'meta' checker) and all weird ones I'd never header of, none of the 'big name' ones.
So I went and rebuilt the entire Blitz3D packge from scratch using slightly different compiler flags to see if that made a difference and checked it again, and it did! I got a totally different results with fewer false positives (still not 0 though). So it's almost tempting to 're-release' this version as a fix, but I wont be doing that as I don't want to have to be effectively 'randomizing' compiler settings for each release to suppress virus checkers, that's just nuts for a whole lotta reasons.
I guess there's a chance that my machine has been infected by something that infects exes I build using MSVC, but short of reinstalling the whole OS (and I'm not even sure that's enough any more) I don't know if there's anything I can do about that. My machine is regularly checked by MS Windows Defender and I recently checked everything with Bitkeeper for variety which did quarantine a few things I'd never heard of (and similarly have no way of knowing if they were 'real' problems or not) but otherwise said my machine was healthy.
Hello Blitz Research, ( and Mark Silby ? ) ,
and thank you for all this research and clarifications.
My pc must also be infected.
Maybe it comes from me.
It is often a "shop-home" Trojan.
And this time it was also a Trojan horse,
with another name that I forgot to write down.
I'm going to try to download BB3D again,
Because your Basic is great, fun, and easy.
I am happy that there is still a follow-up.
I would just like a stricter and more precise debugger.
Have a good week. Good luck.
BB3D is unique!
Hi Apry24, I doubt your PC is infected as I have started getting the same warning from MS Defender for V1.112 too!
I have discovered through researching this that simply changing compiler settings or even just renaming functions are enough to cause positives where there were none before.
So I have just released Blitz3DV1.113 which is just V1.112 but rebuilt with the latest MSVC compilers and tools, and the final zip is not triggering MS Defender so please give this a try.
See my latest dev-log post about this...
Cool ! A new remasterised version ? Without any bug ?
Thanks a lot to the developers .
I have bought the 1108C version (2008) , which is really good .
I will try this new one .
Para mí es el mejor motor de videojuegos... aunque quisiera que tuviese una opción para exportar en .apk ... bueno, Blitz3D está SUPER!
Great game engine!
Hi
I've been getting reports of my tools written in B3D running extremely slowly on some win11 devices(Around the 8fps mark) Any ideas on what that could be. They run fine on all win10s and most win11s
No idea sorry, maybe see if you can narrow down what the machines in question have in common - graphics card, virus checker etc?
You'd think by know I'd have a checklist of these sort of variables, but alas I don't...
Nah its all good. Its a rare occurrence. I was just being hopeful :P
Any chance of getting access to Controller triggers?(The L2/R2 slider keys)
Ive not been able to get any response from them and nobody else I know that uses Blitz knows a way
Nope, I use Glfw to do this in SGD, you could dig into that and find out how they do it.
how do i open .b3d files
hello you need a pluging to Open and modifed .b3d model in Blender here is the link
https://www.blitzcoder.org/forum/topic.php?id=116
Thx for keeping it alive. Love it for 20 years.
Hello,
Wow. This messageboard is quite active. Blitz3D is a very good tool and is still popular. Good job. I hope that the user base of Blitz3D will be enlarged significantly. Good luck.
By the way, I have added the link to the following webpage.
https://itch.io/jam/jam-for-all-basic-dialects-5
Does anyone know why Blitz3d.exe is shown as a virus? not the setup, but the main executable. I know it's probably a false positive but I want to be safe
It's a false positive. Windows has a history of false-flagging old software as viruses.
Yea, I added it to my McAfee realtime scanning exceptions list and it works now, thanks
Ya welcome!
A very cool program,but exist a forum? And,how i can get the x position of a entity?,thanks
Use Variable = EntityX([NameOfEntity]) to store the X location of an Entity in a variable
The forums are at https://www.blitzcoder.org/forum/
En muchas ocasiones tienden a mirar al Blitz3D como a un perro muerto. Toda la saga de un juego como Tom Rayder se hizo en Blitz. ¿Qué? ¿Ya agotaron todas uds. todas las posibilidades del Blitz...
The best tool/language for programming 3D games that I have ever tried -- and I've tried many, many tools. Blitz3D beats Unity, Unreal, Leadwerks, S2, Tombstone/C4, and more that I can't even remember in one key area for me: productivity. I can just write some very simple commands out and get really great results very quickly.
Those other tools/frameworks are great for what they are able to do as well of course but right now my focus is on getting stuff to actually show on the screen as quickly as possible -- and Blitz3D lets me get whats in my head out on the screen the fastest of all of these.
I am using a version built with Visual Studio 2022 based on this repo: https://github.com/blitz-research/blitz3d_msvc2017
It was so easy to build, basically no steps were required other than 1) check it out 2) press build solution. You end up with Blitz3D.exe in a _release subfolder, ready to go. It's possible I already had any dependencies installed but if so they can't be very hard to find. Give it a try if you're remotely able to work with C/C++!
Thank you, Mark! I love Blitz3D!
p.s. Some useful tools:
I recommend using Blender 2.79 in order to be able to produce .3ds files that can be read by Blitz3D.
You can also use fragMOTION for model editing and exporting to DirectX's .x format -- which includes all textures in one file.
I have had good results from Material Maker 1.3 for stylized textures, which lend themselves nicely to the Blitz3D renderer.
Thanks for the kind words!
Hi, just uploaded v1110 which fixes a crash caused by the use of textures with alpha but no color, for example, Adam Gore's 'grass' demo.
Thanks for the update!
In the latest version, networking functions such as "JoinNetGame" do not seem to work.
IIRC, the multiplayer networking functions were removed when Blitz3D was open sourced as the underlying DirectPlay API was not supported by MSVC2017 (Blitz3D was originally built using 'classic' MSVC 6). Plus, I think running a Blitz3D app that was built with DirectPlay support (ie *all* Blitz3D app's pre-open sourcing) caused an annoying 'do you want to install DirectPlay' popup on recent-er versions of Windows.
I've just checked and the source files are still in there so it may still be possible to build Blitz3D with multiplayer support again if you can get hold of the appropriate SDK files (static libs, headers etc) and they're compatible with the Windows SDK stuff used by MSVC.
But, to be honest, it's probably not worth trying as multiplayer in Blitz3D was never that great or even very well tested. I certainly don't remember any multiplayer Bltitz3D apps being released - please let me know if I'm wrong anyone!
Thanks for the detailed answer, I really appreciate it! I will just use an old version I found on archive.org.
I'm still very inexperienced with Blitz3D, but I'm trying to recreate an old multiplayer shooter game that I used to enjoy playing. It was definitely good enough for that and I don't remember any problems.
But of course, being P2P, it brings a lot of negatives.
I too had some users, not being able to run EXEs compiled with 1.9n-ish version, due to unsupported "legacy" directPlay, even if not used by the EXE.
BTW. did you ever encounter the excessively slow line drawing command issue?, (like here on win10, dx 12, amd radeon R3). I wrote a substitute, but there may be a speed issue with dx7 2D in dx12.
BTW2 I guess DirectPlay is not really required, as it can be substituted by TCP and UDP. Which I guess is what most people would do in the first place anyway.
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...
Yes, Sir, Unity 5.6 is great. It has all the features that you need. Most importantly I work offline, so Blitz3d is reliable, I can boot it up whenever I want to. Unity requires internet connection etc. to load the license and as soon as something changes in the services of your computer, it requires internet connection again. That is such a waste of talent... Secondly my technological knowhow is at a level where I can build my own world editors and integrated development environments. So I personally see Blitz3D more advanced. But it requires more effort. Thats the beauty of it.
Thanks for the answer. That is why I liked Unity 5, it is enough to download the installer (but the truth is that it required registration online, which is of course a minus) and then it complete to work. Without any installations of modules and other settings.
P.S. And of course C# captivates ... somehow it is closer to real development than BASIC. Although this is a matter of taste.
I do understand your point of view sir. I do like Unity 5 and I have been using it ever since it released.
My personal preference right now is b3d because it is way faster in terms of prototyping. In unity yo often get lost in the editor environment and forget about the actual coding. This causes a major setback and it obviously generates automated code that is not always as effective as intended.
In basic you have the option to write your own advanced interpreter actually, with object oriented programming in mind. There are several C# like interpreters for b3d allready. The advantage of native C# is that you get access to the system .NET classses, which is great indeed.
Also with unity you have a closed asset system which is not ideal for my case. I prefer to manage my own files the way I want. The build prints are also way smaller with b3d. A Unity project usualy weights around 1-5 gb because of all the meta data. With b3d it only depends on how many files you have and how much they weight.
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...
https://developer.download.nvidia.com/opengl/specs/GL_ARB_seamless_cubemap_per_t...
...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!hmm interesting. Thank you for the paper. I will take a look at it. But in the meantime I actually figured out a small workaround for it. Just need to figure out whats the fastest way to solve this issue. After all I am drawing just 6 textures, I can play around with them hehehe... I am planning to use nearby pixels approach. it should actually work...
Looks amazing! Did you try camerazoom?
Thanks! Camerazoom for edge seam fix? ...uhm, well right now I got a solution working with a baked static ambient cubemap. So it looks quite decent for static lighting. But have to figure out how to make the ambient cubemap smooth. Right now its just a 2x12 image with 2x2 sided cubemap. So the lower row is mostly black pixels and the upper row is the sky color. The front facing side is having brighter pixels to simulate the light direction. I used the ATI cubemap gen to generate the image from the skybox image. It works very good and it makes all the models look modern. I will post a small article about it, once I have finished some fun stuff with it.
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...
https://github.com/blitz-research/blitz3d_msvc2017/commit/0e48d376bd6075420b42da...
...this very useful feature was added in 2018 by someone called Dave Camp - thanks Dave whoever you are!
Hi Mark, it's an honor to talk to you, yes I used:
"Const tex_mipmap_OFF = 1024"
Ex:
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?
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()
ClearTextureFilters()
light=CreateLight()
RotateEntity light,45,45,0
cube=CreateCube()
w=256
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)
Next
EntityTexture cube, tex1
CopyRect 0, 0, 256, 256, 0, 0, BackBuffer(), TextureBuffer(tex1)
camera=CreateCamera()
CameraRange camera,0.001,50
TranslateEntity camera,0,0,-1.4
While KeyHit(1)=0
TurnEntity cube,0,.1,0
RenderWorld()
Flip
Delay 10
Wend
End
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.
Bye!
Mark
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
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?
https://web.archive.org/web/20011012145251/http://www.blitzbasic.co.nz/cgi-bin/s...
Bye!
Mark
'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!
Dieter
I come to the conclusion that any undertaking, enterprise or company can be destroyed with a lot of money. A lot of money attracts crooks and usually does not give a place for specialists.
Perhaps of course I'm wrong...
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...
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?
Thanks
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: https://itch.io/t/1985876/still-not-perfect-on-windows-10
Cheers,
Xet
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.
Chris
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.
Spread for your judgment, my experimental mini project:
https://github.com/Blitz3DFASM/Blitz3DFASMSDK
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.
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.
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.
Thanks!
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!).
Hello Mark/Blitz Research,
I was wondering about Maplet and saw this comment. What a weird coincidence. I am wondering if you remember what language you wrote it in, perhaps it can be ‘decompiled’. Though I won’t try it myself as I have little experience in programming, this info might be good for somebody.
Thank you for your reply in advance!
Sincerely a fan,
NetherFolkDev
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. blitzforum.de 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.
http://wolron.com/programmingtutorial
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.
juicy
hoooo
scp containment breach was made on this
true