Page 1 of 3
(very) Confused about PureBasic license
Posted: Wed Apr 19, 2006 2:33 pm
by roblos
Hi all,
this is my first post here and I would like some advice from someone about PureBasic license.
I have been in touch with Fred before posting my message here but something is still not clear to me so I would appreciate any help.
Well, let's start..I bought PureBasic a few days ago and what I do like, among the other things, is the support to a 3d engine included in the compiler.
My question is: Could I create a software like RPG Maker, The 3D GameCreator or FPS (by The Game Creators) with PureBasic? Would It be legal?
All I found is this:
"The PureBasic license explicitly forbids the creation of DLLs whose primary function is to serve as a 'wrapper' for PureBasic functions. "
from the manual
and the faq:
"Can I create commercial applications with PureBasic ?
Yes. Once you get PureBasic, you can do any kind of program (freeware, shareware and even commercial applications) without have to pay any extra costs to Fantaisie Software. An exception is made if you are using PureBasic libraries which requier a third party license (ie: MIDAS module library). Then you must probably pay licence fees to this third-party software publisher. "
"Is it allowed to use DLLs made with PureBasic in other projects ?
Generally yes. You can make DLLs including PureBasic commands for your own projects without any restrictions. But it's not allowed to release simple "wrapper" Dlls to include PureBasic commands in other programming languages."
so..in other words, according to you, what are the restrictions? I can do everything unless I create DLL using PB commands...am I right?
Thanks for your understanding and help,
Roberto
Posted: Wed Apr 19, 2006 2:40 pm
by va!n
hi and welcome to purebasic
as far as i understand it, you can do nearly everthing you want and what you are able to programm. the only restriction is, you are not allowed to use purebasic functions for your own and/or another programming language!? if you programm a complete owb sub routine for (les us say, drawing and scrollong all your objects on a screen) and call this as a dll, this should be allowed. Only wrapping PB functions for another programming languages are forbidden as i have understand it right.
Posted: Wed Apr 19, 2006 2:41 pm
by gnozal
Perhaps this helps :
http://www.purebasic.fr/english/viewtop ... postdays=0
Fred wrote:The main point of the this part of the license was to not encourage the use of the PureBasic commandset freely in another language and keep the PureBasic features for PureBasic coders. I don't see an easy way to explain clearly the difference between a basic wrapper and a 'real' code, so I will probably remove any limitation about this subject.
Re: (very) Confused about PureBasic license
Posted: Wed Apr 19, 2006 3:03 pm
by thefool
Hi and welcome

If the others didnt make it clear;
roblos wrote:
My question is: Could I create a software like RPG Maker, The 3D GameCreator or FPS (by The Game Creators) with PureBasic? Would It be legal?
YES! Perfectly. You can even sell it

(Of course if you use a 3rd party 3d engine you would have to follow that license!)
so..in other words, according to you, what are the restrictions? I can do everything unless I create DLL using PB commands...am I right?
Yes. You cant wrap the pb functions, but you can use them. If you for example write an encryption routine using purebasic functions and so on, you can do what you want with the dll! (you are, of course, allowed to wrap api commands and so on)
Confused...
Posted: Wed Apr 19, 2006 3:04 pm
by roblos
Hi and thanks for your replies:
from va!n: "Only wrapping PB functions for another programming languages are forbidden as i have understand it right."
sure, I agree 200% with that!
and from gnozal: "Perhaps this helps :
http://www.purebasic.fr/english/viewtop ... postdays=0"
I had a look at the previous post and I have questions:
"All components, libraries, and binaries are copyrighted by Fantaisie Software and can't be used in any form (static libraries, DLL and more) in another programming langage, except for PureBasic owners. This includes the simple DLL or static library wrapping of PureBasic commandset. "
but in my PureBasic version (4 beta 10) I can't see the same exact words!
I wrote them in my message and I also reported the words from the faq section of PureBasic website.
also it looks like the limitation is for creating dlls only, but Fred explained me through email: "...you can't reuse the
PB routine in another program which is used to create another
standalone program.." which does not consider dlls, but standalone programs.
I begin to understand I cannot use ANY dll made with PB in other languages if I just use ONE PB library command
"You can not use any library commands (except string and math, as
they are very core one) if you want to distribute in another langage
or creation tool which will call it. For example OpenWindow() can't be used in a DLL."
from Fred's email, thus according to me the restrictions are more than a simple wrapper, but in simple words, if I create a software called RPGMAKER.exe without any dll, where users create their own game with some scripting capabilities, and the game is not a standalone but a MYGAME.ZIP that uses RPGMAKERRUNTIME.exe (made with PB and distributed with RPGMAKER.exe)...am I allowed to do it?
Thanks again,
Roberto
Posted: Wed Apr 19, 2006 3:52 pm
by Dare2
Hi roblos,
This is my take on it (and I do not represent Fantasie Software, so this is just opinion):
You should be safe with most things, just so long as you don't "steal" purebasic commands. For example, wrap them to enhance another language or create your own. I believe that the licence attempts to prevent that sort of thing from happening.
An example would be, say, providing the database library to enhance a fictional CrippledBasic. Creating a dll that just mimiced each PureBasic command, eg:
Code: Select all
ProcedureDLL.l OpenDB(id,dbName.s,user.s, pw.s)
ProcedureReturn OpenDatabase(id, dbName, user, pw)
EndProcedure
and then providing this as a library for CrippledBasic is a no-no, it steals from PureBasic to enhance a rival product.
I guess it is an ethics or morality question to oneself: "Would I like to see this happen if I was the author of PureBasic?". If no, don't do. "Would I feel wronged if this was done using my compiler?" If yes, don't do.
Anyhow, that is how I see it and apply it.
(Anything too restrictive makes PureBasic too "introverted" or insular and reduces it's usefulness. I do not believe that is the goal of Fantasie Software. However giving "CrippledBasic" a boost is probably not a goal either

)
Posted: Wed Apr 19, 2006 5:07 pm
by thefool
roblos. You cant develop a prorgamming language that takes every windowopen() it finds in your script and performs OpenWindow().
you CAN use the api for that.
and i think its wrong you cant use openwindow() in a dll. If you create a special messagebox or requesters using openwindow and using that to show them, you CAN use them!
and of course listen to dare2 (even though he is a bit weird he sometimes says some good stuff

)

Less confused :)
Posted: Wed Apr 19, 2006 8:12 pm
by roblos
Hi again and thanks for helping me clearing my doubts.
I am slowly understanding how it works, what I can do and what I must not.
Well thanks to last messages from Dare2 and thefool.
Let's say I don't want to develop a programming language, because it's not my target and let's forget to create dlls for other languages, because I know we're not allowed, but I want to ask something else, please.
What about if I create a level editor in PureBasic for other languages (ie: DB Pro or B3D). Let's suppose my level is saved in an .ini file.
I guess that's ok, the problem comes if I also want my other language to read that level with some PB functions through a PB dll. Well I guess I cannot unless I use api, even for these simple tasks...am I right?
And the same is valid for any other high level PB command...but, just for example, let's say I don't want to create a dll, but ehm ...something like a server program that receives requests from other languages (ie: create a window, read a file ini, ...) and communicate with those languages. Well it's not a dll, but it uses some PB functionalities...if I'm not allowed to do it, could you help me to understand where in the faq or in the PB license it's written I cannot?
Thanks again,
Roberto
Posted: Wed Apr 19, 2006 8:40 pm
by dracflamloc
Well reading an INI just uses some file and string commands, I highly doubt they'd throw a fuss about it. But who knows...
I think the main goal of that clause is to keep people from taking the complicated libs like sprite and such and making them available in one of PBs competitors.
That said you could make your own commands with the exact same layout and features and functionality of PB's libs and do whatever you want with them.
To be honest though this is the kidn of question best left to private messages with the pb team.
[edit] i see fred already answered
Posted: Wed Apr 19, 2006 8:42 pm
by Fred
I already answered you via several mail today, and the answer was 'no'. Why do you ask here again then ? You want to sell a program to create games easily by using the commandset of PureBasic, and it's not allowed. If you want to do it, use full API or raw DirectX and you're done.
Posted: Wed Apr 19, 2006 9:14 pm
by Lyon
"The PureBasic license explicitly forbids the creation of DLLs whose primary function is to serve as a 'wrapper' for PureBasic functions. "
from the manual
Keep in mind that "software licenses" are usually illegal in most countries and are rarely upheld in court. They are generally provided post sale and often violate DMCA and other international copyright laws.
Legally, you can use PB to write whatever you want. PureBasic is a programming language. The syntax commands in PB are useless unless you write the code to make your program do what you want. Nobody can claim a copyright on the code you write.
To apply this twisted, draconian mentality,
1. Dark BASIC would be illegal because it was written in VC++ and it wraps DX.
2. Blitz3D would be illegal because it was written in VC++ and wraps DX.
3. PureBasic would be illegal because it was written in some variant of C++, plus it wraps DX, OpenGL and even wraps the Ogre3D engine.
4. Anything written using any programming language would be illegal because you are using the syntax commands provided by the language to create your program.
Not to mention most "commands/functions" in Pure Basic, Blitz Plus, IBasic are simply "wrappers" for Windows API or DX.
Any programming language or game creator has to be written in something and merely uses the syntax commands of the language it was written in.
People have used PB to write game makers, new programming languages and scriptable game engines.
If you are unhappy with PB, you can always contact your credit card company and request a charge back.
I suggest to put a smile on your face and be a happy PB user. It is the best language out there IMHO.
...
Posted: Wed Apr 19, 2006 9:27 pm
by roblos
Hi Fred, Lyon and all other users who replied me
well first of all I apologise if I wrote something that might have sound inappropriate to you or some other users of the forums.
I do appreciate (and I tell this in public) the fact you promptly replied all my emails.
I have some reasons why I started writing in this forum
1) I did not want to 'waste' your (Fred's) time by replying all my emails, because you must have noticed I really need things to be explained as you would explain them to a kid and that takes time

I consider your work as lead programmer much more important than answering ALL my emails when I still could not understand.
2) Honestly, imho, I still could not understand it and I provided quoted text from several source.
3) I searched the forums and I found some links with examples how to create third party commands or userlibs with PureBasic for other languages and it looks to me it was not clear if PB dlls could be distributed to other users (while it is clear in PB license).
and while writing this message I saw Lyon saying: "People have used PB to write game makers, new programming languages and scriptable game engines", so I wonder..are those softwares illegal? breaking the PureBasic license?
Well I'm definitely a happy (I said HAPPY) PureBasic user and I would recommend to other people despite of having bought it just a couple of days ago and there is always a project I can do with it in my mind. I just wanted to be be clarified some points...is it my fault? If so..well beg your pardon
Thanks,
Roberto
Posted: Wed Apr 19, 2006 9:48 pm
by Lyon
and while writing this message I saw Lyon saying: "People have used PB to write game makers, new programming languages and scriptable game engines", so I wonder..are those softwares illegal? breaking the PureBasic license?
No, they are not illegal or breaking the license.
Here is an example of what Fred does not want.
Blitz Plus, does not properly generate random numbers. Pure Basic does. I could write a simple DLL in PB that uses PB functions to generate random numbers. I could use this DLL in my Blitz Plus programs with no problem. Fred does not have a problem with that.
However, if I decided to make that DLL available to other Blitz Plus programmers so they could use it in their programs, that would be wrong and Fred would have a problem with that.
As Fred said long ago:
Fred wrote:
The main point of the this part of the license was to not encourage the use of the PureBasic commandset freely in another language and keep the PureBasic features for PureBasic coders. I don't see an easy way to explain clearly the difference between a basic wrapper and a 'real' code, so I will probably remove any limitation about this subject.
The license was modified a bit from what it used to be, but things do seem to get lost in the translation process.
I will post a more detailed example in another post.
thanks Lyon
Posted: Wed Apr 19, 2006 9:59 pm
by roblos
Hi Lyon,
thanks, because you are very clear in your last examples (also thanks to all).
I wrote:
"and while writing this message I saw Lyon saying: "People have used PB to write game makers, new programming languages and scriptable game engines", so I wonder..are those softwares illegal? breaking the PureBasic license?"
[quote="Lyon"
>No, they are not illegal or breaking the license.
[quote]
In his last email, Fred explained me:
"And the answer is definitely no, we own our code and you can't include some or any part of it in another product which will create new programs
(games or everything else)."
Am I missing something?
Thanks,
Roberto
Posted: Wed Apr 19, 2006 10:05 pm
by thefool
now I'M beginning to get confused as well
i see NO reason why, if you f.ex wrote a game language that used things like string lib and so on if you just wrote the graphics part yourself.. as well as the linked list lib to keep track of elements as long as you dont wrap it..
i mean if you create a high level language, that has a command, for example "RemoveObject object" and that command resulted in removing a thing from a linked list, wich is drawn on screen using your own drawing routines, then why is that not legal??
of course you cant use controlling mouse options using pb's mouse lib (unless its for the gui of your interface of course) but then you can use api for that..