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.
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.
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.
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".
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