Blitz3D open sourced!

Blitz3D Forums/Blitz3D Programming/Blitz3D open sourced!

marksibly_v2(Posted 2014) [#1]
Hi,

Blitz3D is now free and open source!

You download the final release version of Blitz3D from this site for free - use the registration code 'FREEBLITZ3D' when creating an account, or add it to your existing account. Visit the Account -> Product updates page to download.

Source code is available here:

https://github.com/blitz-research/blitz3d

It's a MSVC 6.0 project (which I have installed on a version of XP running in vmware) but it should be possible to upgrade the non-MFC projects (ie: everything except IDE and Debugger ) to later versions of MSVC.

The only major difference between this one and the commercial version is that the commercial version has fmod 'baked' in - the open source version uses fmod via DLL instead.


dynaman(Posted 2014) [#2]
Thank you! Since I already own Blitz3D I'm hoping this will allow some brave soul to update the 3D for DX9/11 or to improve the code in MiniB3d.


Kryzon(Posted 2014) [#3]
This is unexpected but very appreciated.
A Direct3D renderer for MiniB3D is a much more real possibility now.


Guy Fawkes(Posted 2014) [#4]
OMG! THANK YOU MARK! :D


therevills(Posted 2014) [#5]
Woah! I thought this was a fake post (due to the user name v2)...


MarkG(Posted 2014) [#6]
I pulled up the site tonight to purchase BlitzMax, and I notice Blitz3D is now free and open source! Wow!

Man, I love using Blitz3D. I don't know if it matters at this point but here comes another Blitz purchase (Max)...

Thanks, Mark.


Hotcakes(Posted 2014) [#7]
Woah! I thought this was a fake post (due to the user name v2)...

Yeah, how curious. That interests me more. :p


dna(Posted 2014) [#8]
It miht be a good move with the right advertising since the competition has some form of free version of their product


Yue(Posted 2014) [#9]
:) Nice!!


Guy Fawkes(Posted 2014) [#10]
Uh, Yue.. You might want to make your own thread for that. :) Unless this has something to do with the new release of the source for Blitz3D. ^_^

Thank You!

Sincerely,

~GF


SLotman(Posted 2014) [#11]
Mark, you're the man!


Yasha(Posted 2014) [#12]
Wow, this one too! Well, thank you some more! Fun times ahead.


Yue(Posted 2014) [#13]
I have a question, that's good for Blitz3D, or bad?


Guy Fawkes(Posted 2014) [#14]
It's good, Yue! :) That means that Blitz3D is now Open Source! :D


Yue(Posted 2014) [#15]
It is something that worries me, ie that doing this is way too old? and you will not see the future, because it was not better to give a boost, improving the code and sell it, I do not already useless, at least that's what I think.


Guy Fawkes(Posted 2014) [#16]
Wrong, Yue. You are SO wrong. Just because Mark released the source doesn't mean that your program will go unnoticed! Have more faith in yourself man!


MarkG(Posted 2014) [#17]
I have a question, that's good for Blitz3D, or bad?

I'm not savvy enough to understand the implications. With the community/fan efforts, will this help B3D remain usable with upcoming Windows, or will this help BlitzMax become more 3D user-friendly like Blitz3D? Or both?

I'll continue using Blitz3D for my retro flight sim, while I've just added BlitzMax to my toolset if just to support Blitz Research and to have my bases covered learning a little BlitzMax on the side.


Matty(Posted 2014) [#18]
I suppose it means there are no more bug fixes by brl ... its reached end of life I guess.


Yasha(Posted 2014) [#19]
I'm not savvy enough to understand the implications. With the community/fan efforts, will this help B3D remain usable with upcoming Windows, or will this help BlitzMax become more 3D user-friendly like Blitz3D? Or both?


Open source is what you make of it. With the code now out there, anyone who wants to port it to Max can now do so. Anyone who wants to update Blitz3D with a more up-to-date backend can now do so. So those things are objective good points.

For anything to come of that, there has to be community engagement, both ways. You have to either be able to rely on some people actually making the improvements, or make them yourself; and someone (doesn't have to be Mark) needs to host the "live" version of the code to accept community improvements so that there's a central hub for development, or the code will not improve. (One joy of GitHub: click the "Fork me!" button at the top of the page and congratulations!, you now have your own version of the code with full control over accepted patches, so anyone who wants to can do this job without Mark needing to manage it.)

A problem the Blitz community has had in the past is that people have on both sides of the commit-line tended to sit around doing nothing, neither submitting nor accepting patches and waiting for "the community" to step up and work magic, which isn't a thing that actually happens. Avoid this pitfall and the project will live. (Basically you have to "pay" for what you get either way: before, we paid with money; from here on people must pay with "involvement".)


The other thing it does is open up the way for people to work on their own "versions" of Blitz Basic and release separate compilers and engines under a common name (the same way Apple, GNU etc. have their own C++ compilers). So even if dense DirectX7 VC6 code is too difficult for people to hack their way through (I can't see myself modding that any time soon), we can also build our own from scratch or on top of other engines - like GMan's iB3D - and call them "implementations of" Blitz3D, now. (This is what I'm doing with BlitzPlus.)


Ploppy(Posted 2014) [#20]
Crikey o'reilly - I didn't think this day would come quite yet. Great stuff , though I do think you are burning your bridges a bit. In any case, a big thankyou - this will definately help me with the developement of HW...


Hardcoal(Posted 2014) [#21]
Here's what I would like to see happening in an Improved B3d

A) If possible its essential to turn it to an Object Oriented language
B) Add Native Physics as in Xors3D

Improving the graphics is in my least of priorities as i believe a good
Artist can do a lot even under DX7.

Lets see what will come out of this.

I also reccomand that Ideal Editor will somehow be continued in developing.
someone should contact the creator and ask him to make it open source ass well.

Cheers


Ploppy(Posted 2014) [#22]
marksibly_v2 ? Is someone releasing all this on Mark's behalf? Hope all is okay...


therevills(Posted 2014) [#23]
Is someone releasing all this on Mark's behalf? Hope all is okay...

He posted in this thread around the same time this morning:

http://www.monkey-x.com/Community/posts.php?topic=8833


Hotcakes(Posted 2014) [#24]
He also has two Markesque comments in a thread about BMax 1.50 running on Ubunutu 12.04.


Yue(Posted 2014) [#25]
http://marksibly.blogspot.com/ here not free notice Blitz3D, mmmmmm, v2...


angros47(Posted 2014) [#26]
Wow! Thank you, Mark!

Maybe the code can be merged with BlitzPlus, to have GUI and 3d commands in one?


JanDK(Posted 2014) [#27]
Wow, this is great news, thanks alot, Mark! - hopefully open source will/could blow some life into the product and mabye some exciting new updates and improvements.


RemiD(Posted 2014) [#28]
For me this is a bad news, it means no more bug fixes for future versions of Windows.

I hope that a skilled coder will provide fixes/updates for free or for some money because personally i don't want to do it.

We will see how it goes. I hope the result will be better than with max3d...


Derron(Posted 2014) [#29]
I doubt there will be much "exciting updates and improvements" - some of the members might try to "clean up" things, maybe add some small parts here and there - but no further input of the rest of the community will come and at the end development on the forks will stall.

There is just not enough "pitch" for the things to really kick off. You at least need the maintainer to work on things so potential helpers are "dragged into" development (this is what Yasha described in a similar way). People are often afraid of big projects - so they do not do "big workloads" (replacing engines etc.). But they do small patches - until they feel brave enough for bigger experiments. People starting right with big experiments will often stop development before it is even finished.

In our case this means: the development of the product already stalled, so the real maintainer (Mark) is not actively developing things with it. So there is no "patch submitter who evolves into a main contributor" because it at first needs a new main contributor/main developer. This will be the hard part because nobody can guarantee that there will be helpers doing codes within a given time period of x months.


The main advantage is now: if you are still developing with B3D - you can now find more "teammates" because you save on the licences... Just compile the final product with your "non-free"-B3D and get fmod inbuilt.


bye
Ron


Yue(Posted 2014) [#30]
Many celebrate the code Blitz3D is released but I doubt many of these are programmers c + + and directX 7 to give hope for updates and on that basis I got to ask the creator of Fastlibs thought about it and answered me "It's great ... but it's useless", ie very few of us really are programmers and I doubt anyone quiea save us, but thanks to Blitz3D I learned a lot, not done any game but it has been worth it, and I several options in mind, Unity or Otorque.


degac(Posted 2014) [#31]
First of all, thanks for Blitz3d (the first programming language I bought!)
Secondly, thanks for releasing the source code as open source... I believe someone will 'grab' it and create something interesting... a Blitz3dx will arise someday.

I would like to know how things are now (search for new job, MonkeyX sales, free time ... more or less beer!) and what are next move(s)... just for a little free 'hype'

And what do you think about Brucey's efforts?!? Any 'stimulus' about Max?

Anyway, have a nice day!


andy_mc(Posted 2014) [#32]
Excellent news! Thank you Mark. Blitz3D has been a wonderful product over the last 15 years and has brought many new developers into games programming.


steve_ancell(Posted 2014) [#33]
Now that Blitz3D is free and opensource, does the EULA allow it to be used in schools, afterschool clubs, usergroups etc, without the need to purchase a special-case license?.


simonh(Posted 2014) [#34]
Yes it's free for all users and organisations.


Guy Fawkes(Posted 2014) [#35]
^ What he said :D


Blitzplotter(Posted 2014) [#36]
blitz3D is now free and opensource - that has come as a bit of a shock.

Blitz3D is free and opensource, does the EULA allow it to be used in schools, afterschool clubs, usergroups etc, without the need to purchase a special-case license


Blitz 3D was the 2nd language I bought, the first was Blitz Basic 2.1. I'll still be using Blitz3D for sometime yet ;)

The fact that schools, afterschool clubs and groups now have free access is encouraging.


Jason W.(Posted 2014) [#37]
Awesome! Thanks.

Jason


Ploppy(Posted 2014) [#38]
Some good code here, some I understand or thereabouts. Mark's coding makes mine seem so long-winded... He really has a good optimised structure going there, especially with the amount of classes he has programmed. Very neat indeed, I will take inspiration (especially the maths stuff) from some of his code for my own leap into dx9/dx11.

Many thanks Mark, it's like christmas come early for me....


JoshK(Posted 2014) [#39]
Thanks for making Blitz3D. It had a big influence on the Leadwerks API:
http://www.leadwerks.com/werkspace/page/documentation/_/command-reference/surface/

And look at the Entity movement commands:
http://www.leadwerks.com/werkspace/page/documentation/_/command-reference/entity/

One of the things people tell me is they really like the entity API because it doesn't require any tricky math. I knew how useful that was from using it in B3D, so my work was a direct result of that.


Who was John Galt?(Posted 2014) [#40]
THANKS MAC!

To whoever asked if this is a good thing, my take would be that it is. If Blitz3D was being actively updated and extended, open source could be the death knell for that. As it wasn't being enhanced, I think this is a good thing. I could see the community giving it some fixes, tweaks and minor updates. Some of the code could provide inspiration for other Blitz related 3D engine projects.

As for major updates, (and this is only one man's opinion) you would be foolish to attempt it. Much better to base that sort of thing around something more future proof and less tightly bound to the graphics API like Monkey's 'trans' engine.


steve_ancell(Posted 2014) [#41]
simonh:
Yes it's free for all users and organisations.


Thanx for the info Simon. ;)


virtlands(Posted 2014) [#42]
So,...

Blitz3d is open sourced .
BlitzPlus is open sourced .
Monkey is open sourced .
CodeLight is open sourced .

Thanks to marksibly_v2 .

https://github.com/blitz-research


Derron(Posted 2014) [#43]
CodeLight is open sourced .


Ahh .. and the author is... ?


bye
Ron


dawlane(Posted 2014) [#44]
Monkey is open sourced .
Not quite. If you want to develop games for platforms other than Desktop and HTML5 then you have to pay. The Mojo module is still proprietary.


therevills(Posted 2014) [#45]
MonkeyX the language is open source.

It is the Mojo target modules you are paying for, but you can create your own target if you wanted ;)


virtlands(Posted 2014) [#46]
Oh, my mistake, CodeLight is created by a different team, (and probably Mark S is not related to it),

© 2014 by SmartKoders, All rights reserved.


Leon Drake(Posted 2014) [#47]
O.O


Rick Nasher(Posted 2014) [#48]
Nice move, purchased Blitz3d only couple months a go though.. cough. :-)
Nice move nevertheless, would be great tool for schools to have indeed and for people like Ploppy who is working hard to bring us into the brave new world of DX11.

@VirtLands
Off topic: CodeLight seems like a nice IDE, very configurable.
Question: Can it be used for coding with Blitz3d? And if so how easy is it to configure it for that?

I'm especially interested cos I'm having some eye troubles and can only stand to watch light colored items on screen for so long. which is hard to get rid of, even in iDeal(unconfigurable border colors). This one seems up to that task though.


Tom(Posted 2014) [#49]
Note! VC 6 Standard edition doesn't come with the ability to compile the MFC stuff (it's missing some libs...), you'll need Enterprise or Pro (is there a Pro? Just guessing lol)

You'll also need the DX7 SDK which is, luckily, still available here: http://www.steve-oh.com/blog/index.php/directx-70a-sdk-download/

Unzip it somewhere.

To add it to VC 6 ent. go to Tool > Options, select the Directories tab, here you need to make 2 entries, select 'Include Files' from the 'Show Directories for' drop down menu, and make a new entry. Click the 3 dots (...) to browse to your <DX7SDK>\INCLUDE folder and click ok.

Now from the same drop down menu select 'Library Files', make a new entry, click the ... button, browse to your <DX7SDK>\LIB folder and click ok.

IMPORTANT! For each of the two new DX7 entries you made, in their respective 'Directories' list, select it and move it to the top (use the up & down buttons net to the red X), otherwise you'll get some compiler errors because it won't see the SDK.

Other than that, it compiles fine!

Should have done this years ago, thanks Mark.


@Leon Drake: LOL yup! :)


Guy Fawkes(Posted 2014) [#50]
Does anyone have a tutorial for this to be imported into Code :: Blocks?


skidracer(Posted 2014) [#51]
Nice link Tom!

I have started work on a b3D BlitzMax module that will use the runtime source released by Mark and the docs and examples I did for the SDK.

I hope to have first release ready this weekend.


Dip(Posted 2014) [#52]
First off, thanks Mark! Big fan and purchaser of every product since Blitz Basic :)

Second, I'm really hoping someone out there takes this ball and runs with it. It seems open source projects are hit-and-miss as to whether or not they thrive. I'm hoping like others to see either improvements for newer versions of DirectX, or improved BlitzMax b3d-esque modules so I can either take my existing code into the future, or port it to Max successfully.

@skidracer, looking forward to it!


kiami(Posted 2014) [#53]
Great news, thanks!


KronosUK(Posted 2014) [#54]
hmm I wonder whether fastextensions will work with this.


Steve Elliott(Posted 2014) [#55]
This took me by surprise. Very generous. But I guess Blitz3D is long in the tooth, and is struggling to run on the latest versions of Windows - let alone any other systems. A time to let peeps here have a shot at updating Mark's best piece of software, while he concentrates on Monkey.

End of an era, which is always sad. Having seen Blitz3D for the first time I was wide eyed and so impressed. Personally the old skool BASIC syntax I hated, so never took to it. But the fact you could write a few lines of code and get some 3D goodness running was inspiring. So thank you Mr Sibly.


Pakz(Posted 2014) [#56]
Maybe the next version of windows will not work with b+ and b3d. I think I will have to start using something else then. I fear that these two languages will not be updated anymore. For me it is to much time to learn how to update/fix b3d\b3d with windows 9 and later.
I bought b3d again a few months ago. It has been a good time with the languages.


skidracer(Posted 2014) [#57]
Pakz, the best thing you can do in Blitz3D is write a game in it. Little else matters.


Hardcoal(Posted 2014) [#58]
games are nice!


RGR(Posted 2014) [#59]
@KronosUK
That was my first thought, too.
I wonder if Michael (I think he's the maker behind fast extension) finds the reason, in case he looks into the code, why those lib not found on some and MAV on some other OSs appear.


Hardcoal(Posted 2014) [#60]
can an open source be declared again as private?
as silly as it may sound. i decided to ask.


xlsior(Posted 2014) [#61]
can an open source be declared again as private?
as silly as it may sound. i decided to ask.


Yes, but only by the original copyright holder(s).

Of course, once they make it private again, that will NOT revoke the open source license of the previously released version, so anyone else is still free to grab a copy and either continue to distribute, or "fork" it and make their own changes to it... But those 3rd parties do not have the right to assign it a different license.

The original creators can give it whatever license they want to, with some caveats: if they accept modifications that are contributed by others, they either need to have those submitters agree to transfer the copyrights to the main program developer/maintainer, or they would need to get the explicit permission of the contributor to be able to change the license of the main product after the fact if it contains those contributions...

Several of the large open source programs require submissions to be declared public domain, which would give the maintainers the ability to easily change licenses after the fact.

some programs are even dual licensed: both under a permissive open source license, as well as commercial or other license that allow them to set different rules for large companies that are willing to pay them a bunch of money. Everyone wins.


Yasha(Posted 2014) [#62]
Actually the entire point of permissive MIT-style licences like the one B3D is now under is that anyone can make them private again. This is to encourage people to not be afraid to go out and write commercial code with them. The licence doesn't demand that users share the source or any of their changes, so you can distribute compiled, closed binaries just the same as you could before.

It's the other family of open-source licences, the GPL and its cousins, that prohibits closing an open-source distribution again because it has the different goal of encouraging collaboration and freedom to change other people's work. This is unrelated to what B3D is doing.

In any case, when either you or the original copyright holder "relicense" something, it's effectively as though you'd created a new version for the new licence. The version with the previous licence doesn't stop existing or being available legitimately.


Derron(Posted 2014) [#63]
This also means that you cannot revoke a GPL-licence for "later versions of the original author2.

Why? It would mean, that the portions being GPLed would be used in a closed source project - which violates the rule.

So with GPL I assume you cannot go "back".
BUT ... of course all of this only applies if such licences are valid in your country (like the discussion of "Public Domain"ing Code: this is not possible in Germany, only giving everyone every right to use it for whatever you want).


bye
Ron


Schnuff(Posted 2014) [#64]
You can offer code under GPL and, as long as you are the only person writing on it (or have permission of all contributors), you can change that license back to what ever you wish.

There are numerous projects out there that have a GPL version for free but you can buy the right to "disable" this GPL (get the code under MIT-Liecense for example).

So GPL has no negative effects for the owner, other than that the software would probably not be altered/integrated in new foreign products.


Hardcoal(Posted 2014) [#65]
Then GPL is for me schnuff


Hardcoal(Posted 2014) [#66]
I want to Upload my Editor since im not touching it ATM so other can assess it And Edit. but I want to Reserve rights.
How can I do that?

Any one who will help will have the rights to use it in the future.


ShadowTurtle(Posted 2014) [#67]
Blitz3D had a big influence on the S3D GameLibrary in 2003, too. :-)

I had the hope Mark would implement access to the DirectX 7 software rendering facilities before opensource-release. DirectX is supporting rendering >without use the speed of hardware< and can therfore forced to do so.

Now i can not publish new commercial products made with b3d since it is opensource. In some lands i can use only the last gathered commercial version.

Is there a idea to get a real update with this one simple requirement? Blitz3D would then compatible with the next DX Generation. (aside from the fact dx7 is old and no more supported)


andy_mc(Posted 2014) [#68]
@Shadowturtle, if I understand you correctly (I assume English is not your first language?). You wish for Blitz3D to be updated to use directX 11, this is something people are working on now t he source has been made available.
I would expect someone to release something soon to at least give the commands of Blitz3D using DirectX 11, then later add on new features for shadows, lighting, sound, bump mapping, and other directx 11 features. It would also be nice to see an openGL version too, but then by this point you may as well learn something new like BlitzMax. but for a free language it's pretty awesome.


BlitzSupport(Posted 2014) [#69]

Now i can not publish new commercial products made with b3d since it is opensource


That's not true at all -- you can. The open source license applies only to Blitz3D, not works produced with it. Just read the info on the Github page:


Blitz3d is released under the zlib/libpng license.

The zlib/libpng License

Copyright (c) 2013 Blitz Research Ltd

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.



That's the open-sourced Blitz3D distribution license in full.


DrakeX(Posted 2014) [#70]
I really wish more software companies would open-source their stuff at end-of-life. There's so much that can be learned even from old software like this. Look at how many people got their start in game programming by modding the Doom and Quake source!

It's funny; last year, thinking B3D was all but abandoned, I had a crack at disassembling the runtime DLL with IDA. I was able to figure out how the runtime works (the Runtime class defined in bbruntime_dll/bbruntime_dll.h). I managed to dynamically link to the B3D runtime from a totally different host language and had a small B3D program running entirely without the Blitz compiler!

And then a week later a mistaken git command erased that test program from existence. Sigh.

I still have the IDA file though, and it's fun to see what I got right and wrong. Now with the source it'll be way easier to get the B3D runtime binding working again.

Despite having moved on to more powerful languages, I still love the simplicity and organization of the B3D engine, and for writing quick one-off graphical programs it's still my go-to :) Being able to use the engine from my favorite languages will be great!

Thanks for the years of fun and learning. I can't believe it's been as long as it has.


zoqfotpik(Posted 2014) [#71]
Wow, this is interesting.

Perhaps this release will allow someone to add some modern features to the graphics engine. Or OO. *cough* Yasha?

I guess it goes without saying that it would be easily possible to write good-selling games in B3D. You would want to go for markets that are non-hardcore, like Big Fish Games, or find ways of stylizing your graphics so that they avoid showing the age of the engine, things like cartoon style graphics or extremely stylized graphics, Minecraft is an example of an absurdly rudimentary graphics style. What has Notch made total now, 40 million? And he wrote that in Java GL of all things. It's all down to originality. And marketing.


Who was John Galt?(Posted 2014) [#72]
Perhaps this release will allow someone to add some modern features to the graphics engine. Or OO. *cough* Yasha?
Yasha's far too sensible to try getting there from here. Much smarter to port the 3D code to Max as a module.

Here's the pony you should be betting on:
I have started work on a b3D BlitzMax module that will use the runtime source released by Mark and the docs and examples I did for the SDK.
How's this going, Skid? The prospect of this coupled with Brucey's respin of BlitzMax is quite an exciting development, I must say.


Yasha(Posted 2014) [#73]
Don't know why you guys are looking at me, Ploppy's the person you want for this. I already tried my hand at a 3D engine; you can use it with B3D right now (don't get your hopes up).

I do have some ideas for extending the base language (not the 3D), to bring it more into line with modern expectations while also retaining a distinct character from the direction Max took. But I work slowly, this could take some time. Look to Brucey if you care about results.


zoqfotpik(Posted 2014) [#74]
Yasha's far too sensible to try getting there from here. Much smarter to port the 3D code to Max as a module.

I had thought about that as well. Maybe in doing so it would be possible to add some modern features to the engine.

One point: Yasha isn't too sensible to create a complex of OO features for B3D, something I think proves he is completely insane...

And I typed that last line before I even knew about BOGL. Why, Yasha? Why!?


Kryzon(Posted 2014) [#75]
I'm curious if one could port MiniB3D to Haxe by means of the NME GL library.
https://github.com/haxenme/nme/tree/master/nme/gl

According to nme/project/src/windows/simpleframe.cpp, the Windows platform uses an OpenGL profile compatible with 2.1, so porting the fixed-function MiniB3D as it is should be relatively easy.

Edit: after some more research, it would seem that porting mB3D with Haxe OpenFL would be better: http://www.joshuagranick.com/blog/2013/06/13/how-openfl-works/#comment-939918208


Who was John Galt?(Posted 2014) [#76]
Yasha isn't too sensible to create a complex of OO features for B3D, something I think proves he is completely insane...
I wasn't aware of that. You are correct. I mean I knew he had been skirting on the precipice of insanity for some time... ;)


rio29(Posted 2014) [#77]
This is like a dream come true making Blitz3d open source thanks a million


Hardcoal(Posted 2014) [#78]
lets see what good will come out of this and then ill be glad.

also someone need to chat with IDeal code editor programmer
to make it open source as well..


angros47(Posted 2014) [#79]
Yasha already made an attempt to add OOP features:

http://www.blitzbasic.com/Community/posts.php?topic=87642

maybe, the simplest solution is to integrate it in the compiler


Yasha(Posted 2014) [#80]
Ugh, please nobody look at that and think that's how you should begin to write a compiler. I literally did not understand parsing at that time and was trying to precompile code by matching on flat sequences... eww.

Personally I don't think true OO is a good fit for B3D. (You've got Max for that.) A lower-grade object-based kind of thing, powered up with lots of cool shortcuts like vectorized operations, variant types etc. would be more in-character and take it in a powerful new direction without too much overlap with what's been done before.


Who was John Galt?(Posted 2014) [#81]
One thing I always thought B3D could use was built in support for optional multiple lists rather than the automatic 'one per type'.


zoqfotpik(Posted 2014) [#82]
Why would you want to write something in B3D? Obviously it has benefits other than just the graphics engine? And more importantly how do you encapsulate and modularize it? Do you write everything in pools? I have nothing against the language, I don't know enough about it to form any opinion, just wondering. It seems like a VERY old BASIC dialect, with functions and structs but without any other feature since the mid 1980s!

I realize I'm showing my ignorance here, obviously experienced people here would not use it if it was terrible.


RemiD(Posted 2014) [#83]
Why would you want to complicate the syntax if you can manage to do what you want simply and quickly ?


Ploppy(Posted 2014) [#84]
Blitz IS old in structure, but it doesn't at all mean you should put it to pasture. Each command is optimised, reliable and fast. Basics in general (and I would personally class b3d and b+ in the basic category) are much less easy to crash and at the same time easier to debug than a lower level language. You can have a very professional look to a b3d compiled game, all you need in my humble opinion is time and imagination. And with b3d and b+ you have the added benefit of being able to add commands if needed using userlibs. But you already have a wide choice of commands.

I am still as loyal as ever to b3d for these reasons. It doesn't matter about age, it's still as reliable as ever. The only thing these languages are missing is portability really. You can only program for windows. BMax and Monkey bridge that gap.


zoqfotpik(Posted 2014) [#85]
I actually love Blitzmax. The problem with B3D is that it's not object oriented and things like inheritance are indispensable for me.


Hardcoal(Posted 2014) [#86]
i know zoq! thats exactly the point.

you cant get real pro with blitz3D
and thats a shame

it was hard for me to move from blizt3d to blitzmax
but it was defenetly worth it.


RemiD(Posted 2014) [#87]

you cant get real pro with blitz3D


What does "real pro" means ? If the program works properly for the user, why would it be important that it was written with object oriented style or with procedural imperative style ? I don't understand the necessity to write a program with object oriented style. To me, it is just a matter of preference.


Kippykip(Posted 2014) [#88]
Yay!


Hardcoal(Posted 2014) [#89]
common RemiD you really dont get my point?

Some things just cannot be done in Blitz3D that I have done with Blitzmax
Like adding behaviors to an object.

Thats what made me stuck when I was building my Editor in Blitz3D


RemiD(Posted 2014) [#90]

common RemiD you really dont get my point?


No i don't. Some people have finished complex apps, games, systems with Blitz3d, so i consider it good enough to be a "real pro".
The only limit i see is if you want to work in a team where others people are more used to a different programming style.


TransDiv(Posted 2014) [#91]
> You'll also need the DX7 SDK which is, luckily, still available here:
> http://www.steve-oh.com/blog/index.php/directx-70a-sdk-download/
> Unzip it somewhere.

Hi

Anyone knows another mirror to download DirectX 7.0a SDK?; The above address gives 404 error.

Update : No problem, I found it.


Hardcoal(Posted 2014) [#92]
Ok RemiD
You miss the point..
Some stuff cannot be done in Blitz3d! (as i explained)

"real pro"! from the point of view of the Tool and not the User.


zoqfotpik(Posted 2014) [#93]
you cant get real pro with blitz3D
and thats a shame


I don't agree with that, you can do anything in any language. It's just a matter of how difficult it's going to be. For instance you can't do inheritance in B3D but there are types and even without types you can do whatever you want with hardcoded arrays. These are the "bad habits" of old style procedural programming that I constantly have to fight falling back into with Blitzmax.

You can even do a component architecture in old basic and that's a paradigm that people are moving back to instead of super-complex deep inheritance hierarchies.

In fact a lot of performance-critical stuff like pre-allocated pools (does B3D even have dynamic lists or is it just arrays?) is substantially faster.

But at the end of the day if performance is all you cared about you would code everything in assembly language. B3D is 13 years old now and in my opinion the language really shows its age in much more than the graphics, I don't really know all that much about gfx engines but I suspect you could get an engine looking really good in B3D especially for various sorts of stylized rendering.

Am I going to be programming anything in a language without inheritance? Before I say no I'm going to have to devote a little bit of time to learning the language well, I tend to like small short games and I use lots of procedural programming anyway so...

If you want to talk about "going pro" with a language, take a look at some of the things people did in 1985 with 6502 assembly on the Apple II, it will blow your mind. You can do anything with any language, it's just a matter of wanting it bad enough.

I do think it's going to be a lot easier to get modern-looking graphics with B3D than Blitzmax unless you are an OpenGL wizard.

Like adding behaviors to an object.

You use case statements for that sort of thing. It ends up being not all THAT much more work, but it does mean more code and that means more bugs.

In procedural languages, object properties used to be handled with a bit vector with each bit standing for whether or not the object has a property. Then you say "if fire_resistant_bit do such and such." And you do that for every property or behavior. In procedural programming you have to handle a lot more with your own organizational skills and that's one of many reasons OO languages can be a ton easier...

I'm just starting to code up a new engine and I could do it either in B3D or Blitzmax but I am sure not looking forward to going backward.


MathyDude(Posted 2014) [#94]
Half way HOORAY I CAN GET IT FREE
and halfway NOOO I spent 100 bucks and now its free


Yasha(Posted 2014) [#95]
In procedural languages, object properties used to be handled with a bit vector with each bit standing for whether or not the object has a property. Then you say "if fire_resistant_bit do such and such." And you do that for every property or behavior.


Well, you do that in B3D, because B3D is missing function pointers for some reason. In most procedural languages wrapping up a dynamic behaviour is as simple as encapsulating it in a function and storing that; the main thing you have to manage as opposed to OOP or FP is bundling the function and the data together somehow, whereas objects package the two implicitly.

It's actually no harder to implement a component system in purely procedural code than it is in object-oriented code (although in part this is probably because "Component-Oriented" really ought to be another kind of language-level thing that the compiler weaves in for you, and neither objects nor procedures are the real thing).


Hardcoal(Posted 2014) [#96]
LoL ok i give up.. whatever..

Maybe later when Ill feel like Ill give an example why Object Oriented is so Important.

Not that its Perfect but its better then none


MusicianKool(Posted 2014) [#97]
First, wow, open source!!! I might have to move away from java to c++ again. I loved blitz3d, and used it for prototyping on occasion. I cannot wait to see how a fallowing or organized group works on this. My head is already flooding with things I would like to do.

@Yasha: Oop cuts down on the number of lines you have to code per object. for instance: If you wanted a type 'foo' to have the same functionality as type 'bar' with greater features you would have to include all the functionality of bar into foo and double the amount of times you write the code. with oop all the functionality of bar can be injected into foo with typing a few additional statements. Regardless now that blitz3d is open source both can be done independently or within the same package. We just need to find the interpreter part of the code to make any changes.


Calibrator(Posted 2014) [#98]
For instance you can't do inheritance in B3D but there are types and even without types you can do whatever you want with hardcoded arrays. These are the "bad habits" of old style procedural programming that I constantly have to fight falling back into with Blitzmax.

I don't consider the stuff listed you listed "bad habits" but "available options".

You can even do a component architecture in old basic and that's a paradigm that people are moving back to instead of super-complex deep inheritance hierarchies.
In fact a lot of performance-critical stuff like pre-allocated pools (does B3D even have dynamic lists or is it just arrays?) is substantially faster.

Exactly - because OOP sometimes generates a massive performance hit.

But at the end of the day if performance is all you cared about you would code everything in assembly language.

In reality nobody does that except some crazy 3D demo coders and microcontroller programmers. Both are programming "on the metal" because they usually have size and/or performance constraints which weigh higher than development time constraints.

Granted, assembly code can be the fastest - if you are able to break down the problem at hand and optimize it accordingly (macros can help of course, but they don't solve everything and they can be counter-productive and blow up your code size) so good luck with writing a modern 3D engine completely in assembly...
Writing assembly code is also the slowest possible development option so your productivity goes down the drain and your chance to finish the product on time.

So what we need *today* is a trade-off between performance and productivity and this is why even speed critical stuff is begin coded in a higher language (perhaps C++) and only some tiny sections are coded in assembly (or a shader language): The sections that are performance critical. Added together they can be less than 0.1% of the whole code.
The trick is therefore to find these sections and for that people use performance analyzers for years now.
Then the code in these sections is optimized and, yes, sometimes translated to assembly language.

This also means that 99.9% of the program isn't speed critical and can therefore be comfortably (and quicker) written in a higher language.

And of course: If you code in one assembly language - say x86 code for Intel CPUs - your code won't translate as easily to other architectures, for example ARM or MIPS. You would have to write new subroutines for your time critical sections...

If you want to talk about "going pro" with a language, take a look at some of the things people did in 1985 with 6502 assembly on the Apple II, it will blow your mind.

That's true but remember that people back then simply had no other choice than using assembly language!
At the end of the seventies, early eighties there were *no* C compilers (not even speaking of OOP languages like C++ and everything that derived from it).
"Lesser programmers" even used BASIC (yes, the built-in stuff) or BASIC compilers as even PASCAL wasn't widespread (even though some classics like Wizardry were made with it).

Most commercial games programmers on 8-bit systems used assembly for anything that required speed, however, and in fact they still do (on/for 8-bit systems). On the Atari VCS2600 with a whopping 128 bytes of RAM and a few KB of ROM space you have very few options to get something done in a higher language...

But nowadays people of course use modern tools that enable them to produce more (assembly code & data) in less time.

Example: Look up the "Lawless Legends" project for the Apple II and other 6502 platforms: https://www.facebook.com/LawlessLegends
AFAIK they use level and graphics editors written in Java and a program flow editor powered by "Blockly" ( https://code.google.com/p/blockly/ ) that can spit out complete sections in assembly language.

You can do anything with any language, it's just a matter of wanting it bad enough.

Or having enough time...

I do think it's going to be a lot easier to get modern-looking graphics with B3D than Blitzmax unless you are an OpenGL wizard.

Stuff made with B3D is often enough NOT modern-looking, IMHO.

I'm just starting to code up a new engine and I could do it either in B3D or Blitzmax but I am sure not looking forward to going backward.

And I'm convinced you shouldn't look backward to go forward. ;-)


zoqfotpik(Posted 2014) [#99]
Are there some examples of great looking engines in B3D?


Hardcoal(Posted 2014) [#100]
"You can do anything with any language, it's just a matter of wanting it bad enough.
"

not true


andy_mc(Posted 2014) [#101]
Stuff made with B3D is often enough NOT modern-looking, IMHO.


This is more to do with the developer rather than the language.

Using a better graphics engine does not automatically make your games look professional.


dynaman(Posted 2014) [#102]
Yes and no. Using Straight B3D it is impossible to get modern looking results, you just can't do that with a DX7 engine. A nice looking "retro" game is quite possible. Tank Universal comes to mind as a good example.


Calibrator(Posted 2014) [#103]
> This is more to do with the developer rather than the language.

No - there is no "more" in this type of argument.
Either the language supports everything or it doesn't. In the case of Blitz3D it doesn't and you can't simply "program around it" if you are a more competent programmer.
If you as a clever programmer would add another, more modern 3D engine like you would in Bmax then you would have defeated the purpose of Blitz3D, wouldn't you?

> Using a better graphics engine does not automatically make your games look professional.

Nobody claimed that but using an outdated engine may make your game look less professional.


BlitzSupport(Posted 2014) [#104]
Reminds me of this...


Q. Why is this so clumsy?
A. The trick is to use Perl's strengths rather than its weaknesses.

-- Larry Wall in <8225@...;




Yue(Posted 2014) [#105]
The problem is not the language, it is the programmer, if you become an expert in a certain tool to manipulate the results are acceptable, regardless of the technology used. From my point of view it does a game engine or a language, computers or end development environments do not make creative decisions, it is the programmer who can not reach or achieve certain goals.

The drawback with Blitz3D, is that there are other tools that do not require much by the programmer, but rather design, click a button, and you have shadows, and appears click another special effects, but some of you this comes wonder as they have prototypes of next generation technology but you will never make a game these days unless you work in a small team. Just my opinion and I stress that I am not a programmer and all I used is Entidad3D, RealityFactory and Blitz3D.


DrakeX(Posted 2014) [#106]
Can you write anything in any language? Sure! Is every programming language equally suitable to writing every kind of program? Uh, no.

The B3D language is simple and kind of adorable, and even gives you the mechanisms to do simple dynamic dispatch (though with quite a bit more runtime overhead than you'd get in something like C++). But there are just some things that require way more work than in more powerful languages.

What if you want an associative array (dictionary/map)? What if you want a suite of generic array manipulation functions, like sorting, searching, and filtering? What if you want to organize your code into independent files/modules? What if you want to use callback functions, or functions which take predicate functions? What if you want to write a generic container, like a linked list or a tree, which can be instantiated to hold any kind of data?

Can you do these things in B3D? Some of them you can emulate. Some of them are straight up impossible, necessitating copypasting enormous amounts of code and just changing the names of things they operate on. This wastes time, is tedious and error-prone, and just does not scale. Wanna sort 100 arrays? You'll have 100 nearly-identical sorting functions that do the exact same thing, just with different array names hardcoded into them. Find a bug in your sorting algorithm? Guess you'll have to copy and paste the fix to all 100 functions! Don't mess it up ;)

CAN you make a full, finished game in the B3D language? Sure. Do you WANT to? Uh... maybe if you're a relic of the 80s and the language feels high-level to you, maybe. But if you've had a taste of how simple so many things are made with generics, first-class functions, proper namespacing/modules, first-class lists and maps, and so on, B3D feels like trying to build a house with nothing but a ball peen hammer.


steve_ancell(Posted 2014) [#107]
DrakeX:
Can you write anything in any language? Sure! Is every programming language equally suitable to writing every kind of program? Uh, no.

Blitz can shoot out numerical data into a file, which is technically binary, anyone that's advanced enough to know machine language could technically make stuff in that way. All that would be needed is a *.EXE kind of filename.

Ask me if I could do it?, short answer is no. I'm not that advanced, but I do know that binary is binary at the end of the day.


Yue(Posted 2014) [#108]
One thing I've noticed is that Blitz3D brings a lot of functions that refer to mathematics, in that case for me this is a disaster because until recently I'm finding it's a vector, however, certainly someone with the skills can make the best probecho language and not like me to use third party tools to do such a rag doll or simulate a slow car.

If so many in this forum are just users who want to make a game regardless if Blitz3D characteristics is poor compared to other languages, where classes, inheritance etc. are implemented Perhaps the only thing we look for excuses to meet our needs.


Calibrator(Posted 2014) [#109]
One thing I've noticed is that Blitz3D brings a lot of functions that refer to mathematics, in that case for me this is a disaster because until recently I'm finding it's a vector, however, certainly someone with the skills can make the best probecho language and not like me to use third party tools to do such a rag doll or simulate a slow car.

Probably can - but why invent the wheel new all the time?

If I were to program a 3D game I wouldn't even *dare* to invent a new 3D engine. I'd simply use something that's already there and live with the few shortcomings of my choice rather than developing a new 3D engine from scratch.
A physics engine is not something that you create on two weekends, either...


DrakeX(Posted 2014) [#110]
Blitz can shoot out numerical data into a file, which is technically binary, anyone that's advanced enough to know machine language could technically make stuff in that way. All that would be needed is a *.EXE kind of filename.


I want you to get a pair of binoculars. Go outside. Look up, and find the small dot sailing overhead. Look at it with your binoculars.

Do you know what that thing is?

The point I was making.


virtlands(Posted 2014) [#111]
DarkBasic Pro is also open-source now. { requires Visual Studio 2008 }

--> https://code.google.com/p/darkbasicpro/wiki/DownloadAndBuild

For those that are daring, you can absorb the contents of DB_Pro into the Blitz3D source,
and create a brand new hybrid (of both)

which is DARK Blitz3D, muahahahahaha ....


Blitzplotter(Posted 2014) [#112]
Like Ploppy said:

Blitz IS old in structure, but it doesn't at all mean you should put it to pasture. Each command is optimised, reliable and fast.


+1 for moi por favour ;)

@VirtLands, apparently there is a DARK net now as well, I'm not one for the DARK bandwagon, winters are long enuf in deppest dark Englandshire, pure old Blitz3D will do me thank you - sir/madam. AND my PC is poisoned with all sorts of VS bloatware through the eons, I'm sick of it I'll tell ya!

I confess, I haven't read the whole thread, but I love DrakeX's point of view:

The B3D language is simple and kind of adorable, and even gives you the mechanisms to do simple dynamic dispatch



Yue(Posted 2014) [#113]
"Object-oriented programming
Structured programming is very simple and intuitive. It simply
we have a problem and subdivided into smaller and smaller problems.
We use specialized functions to place areas of code or code that is
used constantly inside.
The structured paradigm is correct, but has some limitations and some
problems when the program to make it big. Some of these problems are
known as data corruption. Suppose we have a variable
and it is used in various parts of the program. A simple way to
to access the variable is to declare globally and throughout the program
known. By doing this anywhere in the program can not only read but
also modified. Due to this arrangement, a part of the program can
changed without further knowledge of this change and so errors in the information.
To avoid this it is possible to pass the variable as a parameter to whom the
needed, but this complicates administration.
Structured very large programs are also difficult to expand and maintain,
and performing a change can be costly. Generally, a change in a
the program produces changes in other parts that may not be related
directly. In general, structured programs are inflexible.
Structured programming is good for small programs and to
learn the basics of programming. However, the world today calls for the development
OO. As a recommendation, after this book, we can
learn object-oriented analysis and design and then continue learning
more C # with all object-oriented techniques. This is still a standard advancing
- Programming expert.
In object-oriented programming had a different idea in solving
problems. Instead of subdividing, what we do is to see which components are
or objects that make up the problem and the way they interact. we
and we will schedule these objects communicate with each other. when
objects do their work and communicate, the problem is solved."

In my learning process I am appreciating it lacks Blitz3D, small program, Great program.


steve_ancell(Posted 2014) [#114]
DrakeX:
I want you to get a pair of binoculars. Go outside. Look up, and find the small dot sailing overhead. Look at it with your binoculars.

Do you know what that thing is?

The point I was making.



And WTF does looking to the sky with binoculars have to do with the price of eggs?, all I was stating is that binary can be flobbed out of any programming language that can output data to a file. Don't talk to me like I'm some kind of lop-pot, there's no need for that now is there!.


DrakeX(Posted 2014) [#115]
And the point I was making was that it isn't a worthwhile use of programmer time and effort to do that. It's not a matter of "can it be done?" because of course it can! It's a matter of "do you really want to spend all your time doing that when it could just be done far, far easier with another language"


RemiD(Posted 2014) [#116]

Suppose we have a variable
and it is used in various parts of the program. A simple way to
to access the variable is to declare globally and throughout the program
known. By doing this anywhere in the program can not only read but
also modified. Due to this arrangement, a part of the program can
changed without further knowledge of this change and so errors in the information.


If you are bad and don't know how to debug your code, yes. Else there is no problem, you can always find the source of the error.


dynaman(Posted 2014) [#117]
Yue - I think your translation is bad, I'm hoping it is at any rate. You seem to be saying that structured programs are HARDER to maintain then non-structured.


steve_ancell(Posted 2014) [#118]
@DrakeX:

Well I too know bloomin' well that it's not worthwhile to use a simple language to pump out binary opcodes, I was just meerly pointing out that it could be done. Let's just both agree not to fan the flames anymore though OK! ;-)


Robert Cummings(Posted 2014) [#119]
Nice move Mark old chap. Can't believe that old logo I did for you is still being used as well!

There's some great optimised code in here.


Robert Cummings(Posted 2014) [#120]
.


GIB3D(Posted 2014) [#121]
Thanks for helping bring me into the world of programming! Blitz3D was my first programming language. I've learned a lot over the years and even though I've moved on to other languages, I'll always remember where I came from. *sniff sniff*

And to think... if I would've just waited 10 years I could've got it for free!


Robert Cummings(Posted 2014) [#122]
@Mark - Also if you're looking for some side-remote work from home I think Unity's hiring. Could put some of that greybeard expertise to good use :)


*(Posted 2014) [#123]
The major thing as I see it simply is not all languages work for every task as an example writing a os in blitz3d is near to impossible with the base blitz system, the same can be said for dbpro etc.

You have to use the right tool for the job


Yue(Posted 2014) [#124]
Any questions, you can modify the code to Blitz3D not structured programming, but it is OOP?


Ploppy(Posted 2014) [#125]
Isn't that pretty much blitzmax?


Ian Thompson(Posted 2014) [#126]
It would be nice to see this merge with OpenB3D, making it GL based, this would allow for a possibility of a cross-platform Blitz3D in the future.


grindalf(Posted 2014) [#127]
Just a quick question.
would a game made in blitz3D be marketable now a days or is it just to old, incompatible ect to get on steam or make any money?


Yasha(Posted 2014) [#128]
would a game made in blitz3D be marketable now a days or is it just to old, incompatible ect to get on steam or make any money?


As a general rule, the technology something is made with has absolutely no effect on marketability. The end users don't know (unless they ask) what it was written in, and if they do they don't care anyway.

The only question is whether it actually works. By all accounts it still works roughly as well as it did when it was released (ehh-sortof-OK need to workaround some features). You could do better, but it's still a lot less buggy than many of the game engines being used for Steam games at the moment. Not that that's a high bar.


xlsior(Posted 2014) [#129]
Speaking of which -- has anyone tried to run B3D and/or Blitzmax executables on the Windows 10 Preview yet?


JoshK(Posted 2014) [#130]
would a game made in blitz3D be marketable now a days or is it just to old, incompatible ect to get on steam or make any money?
Blitz3D makes 32-bit programs for Windows. So why would anyone care in the least about the inner workings, if they like the game?


_PJ_(Posted 2014) [#131]
The topic's drifted some but when asking a general question about Marketability, one should really also consider the sort of market they are dealing with, the relevant and saturation of competition, and the ambitions of the product.
It's unlikely something will outsell Duty Call: Modern Battlefield IX in terms of revenue per unit for example, but there's still potential for the next "Peggle" or "Minecraft" etc.

What's really lacking aside from the DirectX8+ shaders and such, and multithreading, and 64-bit processing (none of which are particularly essential for viable, popular and contemporary saleable games) is really the ability for multi-platform portability.
The advent of Android and other OS and their use in handheld devices along wit the ease of use/accessibility of such has lead to a huge shift in the videogames industry in terms of where development can head and where the next avenue for exploitation might open up.
Currently, even the micro-payment models are beginning to show some cracks but that's all another story.

At the end of the day, there's absolutely every chance that a well-coded and polished game made with 'vanilla' B3D should be perfectly capable of selling some units.

The main question is, just how many units is acceptable and realistic within what given time frame!


Blitzplotter(Posted 2014) [#132]
At the end of the day, there's absolutely every chance that a well-coded and polished game made with 'vanilla' B3D should be perfectly capable of selling some units.


I couldn't agree more.


_PJ_(Posted 2014) [#133]
I still love coding just with B3D, it's so simple and quick to code in.
Sure, it may not have the manageability of OO code, but it also doesn't take 10 lines and incorporate other libraries just to print "Hello World" ;)


RustyKristi(Posted 2014) [#134]
Hi all,

I'm having problems compiling the source. Anyone can help? Posted here:

http://www.blitzbasic.com/Community/posts.php?topic=103641

Thanks.


Ching(Posted 2014) [#135]
Thanks Mark.
I never expected this to happen.
Even as a paid up user I believe this s a great move.


Ching(Posted 2014) [#136]
Before the whole thing gets out of control please get assimilated and join my new FB page to discuss all things before proceeding.
Bliz Open Resource Group.
On FaceBook.


MikeHart(Posted 2014) [#137]
Why not discuss it here?


Who was John Galt?(Posted 2014) [#138]
Agreed Mike. Not everyone has Facebook for starters, and it's better to keep everything in one place. i.e. here.


Tom(Posted 2015) [#139]
The best line in the source code so far.

const Bone &bone=bones[v.bone_bones[n]]

More bones than a Time Team dig!


geekbasic(Posted 2015) [#140]
"You can grab the prebuilt free version of blitz3d from www.blitzbasic.com.
"
I am unable to find this version. Is it still available?


LineOf7s(Posted 2015) [#141]
It's under the 'Account' tab at the top of the screen, then 'Product Updates'.

The latest version is v1.108c.


geekbasic(Posted 2015) [#142]
Thank you, I see it now now.


Th3Professional(Posted 2015) [#143]
Is Who writ this post Mark Zuckerburg ??


virtlands(Posted 2015) [#144]
@Ploppy
Blitz IS old in structure, but it doesn't at all mean you should put it to pasture. Each command is optimised, reliable and fast.

Blitz3d is a high-level language, and a RAD language, (rapid app dev).

Attaching special DLLs (& Decls) to Blitz3D lets it behave like a low-level language.


Ploppy(Posted 2015) [#145]
Agreed


Rick Nasher(Posted 2015) [#146]
Got to love Blitz3d..


Ploppy(Posted 2015) [#147]
Also agreed.


videz(Posted 2015) [#148]

Is Who writ this post Mark Zuckerburg ??



yeah he makes blitz3d games when he's not running Facebook.. not


jfk EO-11110(Posted 2015) [#149]
Speaking of which -- has anyone tried to run B3D and/or Blitzmax executables on the Windows 10 Preview yet?

Windows 10? I wasn't even aware there is a Windows 9.

A bit like Rambo 1 2 3 4 5 ...738. Anyway.

Interesting move, making B3D freeware. Let's hope ppl don't underestimate it because of that.

For me it's still the handiest tool for spontanous tasks.


Guy Fawkes(Posted 2015) [#150]
9 was apparently SO bad, that they skipped right on to 10, from Windows 8.1.


LineOf7s(Posted 2015) [#151]
That's incorrect. Whatever gets you through the night, though.


virtlands(Posted 2015) [#152]
There's no way to close this Blitz3D source again, the cat has escaped from the bag.


Ploppy(Posted 2015) [#153]
I'm guessing Mark Sibly calculated this move well before and didn't just do it on a whim. I'm also guessing it is mainly because he's finished with it and will not revisit for a b3d v2 and at the same time b3d wasn't making any more sales. Mark wasn't obliged to release the source but he wished to share.

I say 'hats off to the man', and I personally have a lot of gratitude towards him. My own code is largely inspired by his code.


yaragad(Posted 2015) [#154]
Hi. I think this question wasn't answered jet.
We are making a commercial game which need a few more years to be finished. We are investing money, but until now we felt safe as Blitz Support Team were updating, fixing and making compatible Blitz3D with the new Windows.
So, are we going to have new Updates in our Accounts? Who is going to care about next Windows? What about libraries compatibility as FastImage and FastExt?
Is it safe to use Blitz3D in our project?


virtlands(Posted 2015) [#155]
I believe that marksibly_v2 (creator of Blitz programming) shall no longer update Blitz3D, and he has made it free & open-source.
Ploppy is probably the only one right now that is updating Blitz3D with various DirectX, ..math, ..etc.



MikeHart(Posted 2015) [#156]
If i would create a commercial game for years, i would not bet on 3rd partly solutions but create my own stuff. Chances are high that 3rd party tools are not supported anymore in that long time frame.
Blitz3d for sure isn't.


gaditanof8(Posted 2015) [#157]
si los que lo crearon hubieran saco partido a las nuevas tecnologías ,tarjetas graficas, procesadores, el blizt basic 3d hubiera echo la mina de oro. no hay lenguaje tan simple y mejor.


virtlands(Posted 2015) [#158]
According to translator http://www.spanishdict.com/translation ,
gaditanof8 did say, "
If those who created it would sack out of new technologies, processors, graphics cards,
the blizt3d would echo the gold mine. There is no language as simple and best.

"


kiami(Posted 2015) [#159]
What gaditanof8 is saying is true. Unfortunately, technology goes where profit goes not where what is good for humanity.

Trying examples in Blitz3D's sample folder and reading the codes of the samples tell us that OOP is not at all necessary to produce a good working software.

Also, this is part of the article about OOP in wikipedia:

"Luca Cardelli has claimed that OOP code is "intrinsically less efficient" than procedural code, that OOP can take longer to compile, and that OOP languages have "extremely poor modularity properties with respect to class extension and modification", and tend to be extremely complex.[32] The latter point is reiterated by Joe Armstrong, the principal inventor of Erlang, who is quoted as saying:[33]

The problem with object-oriented languages is they've got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

A study by Potok et al. has shown no significant difference in productivity between OOP and procedural approaches.[36]

Christopher J. Date stated that critical comparison of OOP to other technologies, relational in particular, is difficult because of lack of an agreed-upon and rigorous definition of OOP;[37] however, Date and Darwen have proposed a theoretical foundation on OOP that uses OOP as a kind of customizable type system to support RDBMS.[38]

In an article Lawrence Krubner claimed that compared to other languages (LISP dialects, functional languages, etc.) OOP languages have no unique strengths, and inflict a heavy burden of unneeded complexity.[39]

Alexander Stepanov compares object orientation unfavourably to multimethods:[34]

I find OOP technically unsound.. It attempts to decompose the world in terms of interfaces that vary on a single type. To deal with the real problems you need multisorted algebras — families of interfaces that span multiple types. I find OOP philosophically unsound. It claims that everything is an object. Even if it is true it is not very interesting — saying that everything is an object is saying nothing at all.

Paul Graham has suggested that OOP's popularity within large companies is due to "large (and frequently changing) groups of mediocre programmers." According to Graham, the discipline imposed by OOP prevents any one programmer from "doing too much damage."[40]

Steve Yegge noted that, as opposed to functional programming:[41]

Object Oriented Programming puts the Nouns first and foremost. Why would you go to such lengths to put one part of speech on a pedestal? Why should one kind of concept take precedence over another? It's not as if OOP has suddenly made verbs less important in the way we actually think. It's a strangely skewed perspective.

Rich Hickey, creator of Clojure, described object systems as overly simplistic models of the real world. He emphasized the inability of OOP to model time properly, which is getting increasingly problematic as software systems become more concurrent.[35]

Eric S. Raymond, a Unix programmer and open-source software advocate, has been critical of claims that present object-oriented programming as the "One True Solution," and has written that object-oriented programming languages tend to encourage thickly-layered programs that destroy transparency.[42] Raymond contrasts this to the approach taken with Unix and the C programming language.[42]"


Matty(Posted 2015) [#160]
I tend to agree in principle. Oop makes some tasks easier for the programmer to conceptualise but it does add a bit of overhead.


Yasha(Posted 2015) [#161]
The biggest problem with OOP is its momentum, which is a dual-edged sword. Newbie programmers are likely to have heard of OOP, because it's snowballed; unfortunately, this means a shockingly large majority of newbies develop the idea of structured < procedural < OOP as though programming disciplines follow some kind of pseudo-ancien-regime hierarchy thingy where OOP is the superior next step over procedural design.

Unfortunately this has an even worse side-effect: they then fall into the "little nuance is a dangerous thing" trap and assume that since OOP has flaws, clearly procedural programming really is all there is, and ignore the diversity of other disciplines out there. OOP has the amazing ability to kill off other disciplines in a student's mind without them ever actually trying them, by forging and fixing this very linear conception of programming styles. There are more than two, FFS!

The truth: procedural programming is OK, but kinda sucky overall (Blitz3D's API is adequate, not "good"); OOP is a bit better at certain tasks, but equally worse at many more; other disciplines are not procedural programming, and there is no "hierarchy"; you do not "go back to procedural" just because you didn't like OOP (e.g. Rich Hickey's quote in post #159 doesn't support procedural programming at all, very much the reverse).


Hardcoal(Posted 2015) [#162]
What flaws has the oop programing?
As I said before. There are some things
That cannot be done without oop.
That's why I moved to blitzmax.. From blitz3D

It's like moving from Kinder garden to high-school (I'm sure someone will quate that :)

The funny thing is that having oop in you language doesn't really force you to use it..

Up till now I'm not sure I'm using oop correctly since I never learnt it at school etc..

I just learnt how to use blitzmax by trail and error and examples..
So for me oop is still procedural programming just a little bit more complex..


Yasha(Posted 2015) [#163]
oop is still procedural programming just a little bit more complex..


No. This is wrong. Completely.

OOP has nothing to do with procedural programming. Nothing at all. They bear literally no resemblance to one another. The reason Max (and Java, and C++) seem "a little bit more complex" is because they are procedural programming languages with a very small window-dressing of OOP elements. No, having OOP in those languages doesn't force you to use it because they are not, by any reasonable definition, OOP languages (OK, Java is about 50/50); they are procedural. (The only 100% OO language I can think of offhand is Smalltalk, although I'm sure there are others.)

Of course, that almost all languages are >90% procedural with <10% OO - or 1% OO in Max's case - is the origin of the above illusion that OOP is in some way an improvement or refinement of procedural programming. Obviously "procedural with a couple of other things" makes for a larger language than "procedural without those other things".

Procedural programming is not the basis of programming. OOP is not the ultimate form of programming, nor is it in any way related to procedural programming (let alone evolved from it). They are but two different-but-equal technologies in a sea of ten thousand other different-but-equal technologies. but anything OOP can do FP can do better


Hardcoal(Posted 2015) [#164]
Tnx Yasha.
Obviously you know what your talking.
Honestly I was just shooting my lack of knowledge just to get some answers..

I went to look at a comparison between the two on Youtube..

Still I didnt Get it well..

Any way.. In my GameEngine I did what I cant do in Blitz3D for certain..
And its Attaching new behaviors to an Object..
I dont think OOP is the holy grail but its far better then Blitz3D.

Yours explanations are a bit abstract to me.. I have a lack of many Concepts that most programmers
are aware of..


Davros(Posted 2015) [#165]
Something that I'd really like to see, is for someone to add a function to the open source to add an entry to a defined array inside a user defined type. So you would just create your type as usual:

Type MyType
Field TheArray[0]
End Type

and use a function to add another element to the array (which would also work if the array was itself a user defined type.


Chaduke(Posted 2015) [#166]
Is there any way to get this to compile without having to dig up an old version of the DirectX SDK? I can't find a working link to it anywhere.


Ploppy(Posted 2015) [#167]
Hi Chaduke,
To my knowledge you need the DX7 SDK unless you change a lot of the original source, Blitz3d depends entirely upon DX7 for many of its functions. I have just uploaded a copy of the dx7 sdk to my site, just here. You will also need freeimage and fmod, see the readme included in the Blitz3d source root folder for more details. Also, compiling with a visual studio which is newer than Visual Studio 6 will require some recoding to meet with the newer frameworks' compiling protocols. For info, I created my own updated version of the B3D source that is compatible with Visual Studio 2010 if you're interested, more info in the original forum thread...


Chaduke(Posted 2015) [#168]
You rock man, thanks a lot. I have an XP machine with VS 6.0 installed but also have 2010 on my Win 7 box, so this is fantastic.


Ploppy(Posted 2015) [#169]
Sorry, I gave you the wrong link, this is the link to my own VS2010 conversion of the B3D source if this helps. The other one I sent you on my last post was for the B+ source.


Chaduke(Posted 2015) [#170]
No problem I found it on Github. Apparently you need the full version of 2010 and not the express, for the included MFC stuff.


Rroff(Posted 2015) [#171]
@Davros - if your asking what I think your asking i.e. thearray is a self containted dynamic sized list of child objects its possible to get that effect (not using arrays) using just types.


fox95871(Posted 2015) [#172]
I don't know about this... Blitz3d is still one of the most valuable things in my life. I started programming when I was about thirty, thinking I'd never be able to pick it up. But after about three months of studying just a few commands a day, I had a 3d scene, dropdown menus for crying out loud, and I think even true antialiased meshes by that point thanks to the help of someone on the forum. Then after about a year, I had fully mouse editable level meshes, and now after several years I've achieved so many other amazing things I never thought I'd be able to do by myself. Me, who always said, oh I'll just hire a programmer when I'm rich. That's why I say, free? When it's something so valuable? On the other hand, I have no intention of ever selling my game :)


gpete(Posted 2016) [#173]
Mark Sibley, will you please use Ploppy's VS10 attempt and correctly compile and distribute a ZIP file that will correctly install Blitz 3d on anyone's computer. It too complicated for us to do and you know the program better than any of us.

I would be happy to pay $50 - $100 for an updated version of Blitz3d with DX10 support. Blitz3d mean so much to all of us part time programmers- in the new world of crazy script based or Java based programming- I think I speak for all of us- we NEED Blitz3d!!!!!!!!!

Thanks!

Glenn


RustyKristi(Posted 2016) [#174]
@gpete

The latest version works correctly 1.108c. What problems are you having with it?

I would be happy to pay $50 - 00 for an updated version of Blitz3d with DX10 support. Blitz3d mean so much to all of us part time programmers- in the new world of crazy script based or Java based programming- I think I speak for all of us- we NEED Blitz3d!!!!!!!!!


Afaik Mark has moved onto other things and now working on Monkey2/Mojo2 http://marksibly.blogspot.com/ . your best option right now Ploppy's hardwired http://www.blitzbasic.com/logs/userlog.php?user=13255&log=1897 which does support DX10 but is flaky atm


RemiD(Posted 2016) [#175]
Would it be allowed to use the original source code of Blitz3d, remove some functionalities/functions, add new functionalities/functions, change the name of the program/logos, change the documentation/manual, then distribute the resulting program (ide/compiler) for free but under another name, but of course mention somewhere that this is built using Blitz3d source and that Mark Sibly is the original creator of Blitz3d ?


_PJ_(Posted 2016) [#176]


Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.


In your example : As you describe IS PERMITTED provided you plainly mark that the software is altered from the original version and make no claims that you wrote it.


RustyKristi(Posted 2016) [#177]
Basically all you mentioned is ok, here is the checklist for zlib/png which Blitz3D is under..


Blitz3d is released under the zlib/libpng license.

The zlib/libpng License

Copyright (c) 2013 Blitz Research Ltd


https://github.com/blitz-research/blitz3d/blob/master/LICENSE.TXT


x Disclose Source
ok License and Copyright Notice
x Must Attribute
x State Changes
ok Commercial Use
ok Distribution
x Endorsement by Source
ok Modification
ok Patent Grant
ok Private Use
x Copyleft
ok Sublicensing
x Hold Liable
? Use Trademark

You can read the whole thing here

http://termsandconundrums.com/html/licenses/zlib.html


AR(Posted 2016) [#178]
hello i am new to this where can i get blitz 3d so i can start coding


RustyKristi(Posted 2016) [#179]
Go here:

http://www.blitzbasic.com/Account/regprod.php

and enter FREEBLITZ3D as registration code. after registering just go to

http://www.blitzbasic.com/Account/produpdates.php

You should see the latest download installer for Blitz3D


digideath(Posted March) [#180]
Is this still up and open? Because I did exactly as said but it said the "FREEBLITZ3D" registration code is invalid


kfprimm(Posted March) [#181]
http://www.blitzbasic.com/Community/posts.php?topic=107434


digideath(Posted March) [#182]
Thank you for that. That was very much appreciated.


Ching(Posted April) [#183]
If Blitz was remade with some sort of auto threading for multi core CPUs and GPUs nothing would touch it as a programming language.
I still think nothing comes close anyway, I've been a fan since the days of the Atari and the Amiga. It's awesome.


Rick Nasher(Posted May) [#184]
Totally agree. Luv it since the Amiga days. Hence my idea/plead for a BlitzPlus3dMax 2.0 Wrapper on top of Monkey2.


Using Mark's Monkey2+3D engine(WIP) as the basis, one could write a wrapper(in Monkey2) for all the Blitz commands from Blit3D, Plus, Max combined(whatever works best) and new commands to make use of Monkey's additional advanced features.

That way the user has a choice of coding in the Monkey or Blitz way, but *with* all the benefits Monkey2, such as OOP, x64, shaders, multiplatform, physics to name a few.

I think this would make it an instant hit, for it basically would serve the needs/demands of everyone around, it being a hardcore vet who likes the cryptic low level syntaxis, or it being then BASIC lovers like myself.



Also has the benefit of not trying re-invent the wheel by upgrading the original Blitz3d the hard way in C++ and assembler. This could possibly save gazillions of work and time for anyone who wants to do it and makes it easily adjustable if a new Monkey comes out, making it future proof.

Could even be a community project: anybody who wants to wrap a command or a bunch of them could donate their effort. Hey even I with my limited skills could probably do a few simple ones.. :-)


Ching(Posted May) [#185]
Mr Silby. (Genius).
Do you tink you could do the same for Maplet?
The ability to carve through objects with other shapes would be a great addition to Bliz3D. The language is already half way there to being the best language for designing and printing 3D objects. Save as .STL would finish it off.


xlsior(Posted May) [#186]
Do you tink you could do the same for Maplet?


Nothing is going to happen with Maplet.

Here's a posting from 11 years back: https://www.blitzbasic.com/Community/post.php?topic=62671&post=703719

*#$*&! I lost the *#$&%ing source!

I have no idea how - I back up quite often etc. but somehow the Maplet source code just disappeared one day - and with it, an early version of BlitzPlus, and a freaking awesome BSP merge algorithm