I went down that road with Monkey!
Blitz Research
Creator of
Recent community posts
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.
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
Well, I've heard back from the FMOD author and the new licensing system apparently applies to anything released in future using FMOD, regardless of whether Blitz3D was purchased or not.
I strongly disagree with this interpretation, but I no longer have the contract from 20 years ago (not sure I ever did, I think Guildhall did all that) and it's conceivable the contract did have the famous 'no engines' clause in it and no one noticed, and I have neither the time, energy or money to argue it anyway, so I'm just gonna leave it at that.
But in light of this development, I have put together a version of Blitz3D that's Windows 95 compatible and that uses SoLoud instead of FMOD. More details here:
https://blitzresearch.itch.io/blitz3d/devlog/754345/blitz3dx95-v1109-for-windows...
I would love to hear how people get on with this, I've only been able to test it on an emulator and that's pretty ropey with *all* audio. But it is at least recognizable and the 3d stuff appears to be working.
Bye!
Mark
> How does this affect people who purchased Blitz3D? Can anything made with it be distributed commercially without issues?
I think people who bought Blitz3D back in the day would be okay (not sure if that includes 1.108 though, if you got it from here at itch probably not) because those versions don't need to ship fmod.dll which is what the license is all about I think. Instead, the audio code will have been statically linked into the exes.
But this is just a guess, I obviously suck at this stuff so have put the question forward to the FMOD guy and will let you know as soon as I get his reply.
Bye,
Mark
OK, so I submitted the entire zip to microsoft for malware analysis and there were too many files in it, so I resubmitted the binaries only and nothing was found. Note the submission was for testing with MS Defender for Windows 11, their submission process only allows you to test one tool at a time and I'm guessing the above screensheet is Windows11 .
So I guess until software signing becomes free or at least realistically affordable for indie/open source devs, we're just gonna have to put up with this bullshit.
Signing is apparently expensive because of the need for 'auditing' (which imagine would be another barrier for indie devs), yet 'LetsEncrypt' website signing is free and all you need for that is the server you plan to use. I guess proof that you have write access to the server is good enough proof of identity - or at least proves you're responsible for it - and there's no real equivalent in software development?
I do plan to start including hashes with my downloads in future though. Just as there's a chance Blitz3D-V1.113.zip contained malware when I uploaded it, there's also a chance the zip was infected somehow 'in transit', and hashes are a simple way of proving at least that (alomst certainly) hasn't happened.
I haven't found anyone interested in my 'double building' idea yet though, so you'll still have to trust the zip wasn't infected 'at source'.
OK, I looked into this further, and while the cost of code signing is slightly less than I thought, it's still more than Blitz3D is likely to make over the rest of it's entire lifetime so it's still impractical. In fact, it's likely to be impractical for a ton of open source software unless it becomes very cheap or free.
As far as I can work out, MS don't make any money out of the system (above board anyway) so it feels slightly less protection rackety to me now. Although, still, it feels kind of 'off' to me that signed software gets treated diffrently by virus checkers, like sneaking the bouncer a tenner to get in the door or something!
There are apparently moves afoot to offer free or at least cheap certificates for open source software (similar to how 'LetsEncrypt' offers free certificates for websites, like mine) so maybe one day signing could make sense for things like blitz3d, but not yet.
I do think my releases would benefit from adding a hash/checksum, as there's currently no way to tell if the download is being corrupted 'in transit' after it left my computer. And who knows, maybe this is already happening with some of the MS Defender alerts? I guess 'signed' software would at least get picked up if something tried to infect it, but blitz3d wouldn't.
No way is that practical for me - I hardly sell any b3d's, it's more just a hobby for me at this point.
Also, the whole thing sounds like a huge 'protection racket' to me. I assume Windows Defender qwill be more 'tolerant' towards signed releases, but is signed software really always free of viruses?
I already pay my Windows tax dutiful, do I really also need to pay a zip tax too now?!?
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...
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.
Apparently this has already been added:
https://github.com/blitz-research/blitz3d_msvc2017/pull/1
Try using texture flag 1024 to disable bilinear filtering.
Raylib has definitely helped inspire me to get back into things! But AFAIK it's pretty much 'direct mode' only and primarily 2D, whereas I wanted to go for a more 3d oriented scene graph approach.
I do dig raylib's 'DrawModel' command and briefly considered using a more direct approach like that, but it can't handle multiple passes for things like transparency so the user would end up having to write their own 'scene' system anyway. Besides, as you say, there's already Raylib! It runs on a ridiculous number of languages too, mainly thanks to 3rd party support, there're probably Fortran and COBOL versions out there somewhere!
I've never heard of sokol_gfx (will do) but I did take a look at bgfx and although it's very nicely done and apparently works very well, I was after something a bit more modern, and Webgpu is (apparently) modelled on the way modern gpu's work while offering a high-ish level interface so I went with that. Also, the fact it's a google thing means they're gonna make sure it works well on as wide a range of hardware as possible. I've been following development quite closely, and the people writing it go to a huge amount of effort to make sure the stuff they're adding really will work everywhere.
I actually think the use of 'native webgpu' drivers like dawn and gfx-rs (the rust version in firefox) could take off in a big way, as they turn behemoths like d3d12 and vulkan into a much more usable API: https://webgpu.rocks/reference/interface/gpudevice/#idl-gpudevice
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!
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!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