(very) Confused about PureBasic license
Now lets take an RPG Maker example. Say you wanted to make a 2D RPG maker.
You would have to write it from scratch as there is no "make game" function in PureBasic. You would have to write the code for loading levels, you would have to write the tile system, you would have to write the inventory system, spell system, dialog system, you would have to write the AI to handle what the NPCs do, you would have to write the interface to handle input and control from the user. You would have to write the particle system, system for displaying and scrolling maps.
You would have to write the editor so people could customize the game and and save their customizations, which would run off of the engine you create.
Here is an example of a scripting system done in PB:
http://www.purebasic.fr/english/viewtopic.php?t=20312
Here is a RPG Game Engine (written in PB) that uses that scripting system:
http://www.purebasic.fr/english/viewtop ... ht=#137304
The above is basicly a scriptable RPG Maker.
This is not in violation of the PB license and is not illegal. You are not bypassing anything or providing PB functions to unlicensed users.
PB has sprite commands, but they are useless unless you write the code that says where to display the sprite, where to move the sprite, what to do if a sprite collides with another sprite, etc.
If you made something like this, you could allow users to customize it, etc via a point and click editor like RPG Maker or via a scriptable system like this guy does.
What would BE in violation of the PB license, is if basically used PBs commands to write a DLL based 2D engine for other programming languages that would just open a DX window, and use PB functions to load and display the sprite and play sounds etc. This would be a simple wrap of PB's 2D functions. Now you could use that simple DLL wrap of the 2D functions for your own stuff using another language, but you could not make that simple DLL available to other programmers.
In the RPG Maker example I described and in the example I linked to, you are not just wrapping a couple of PB functions, you are writing an entire game engine, and this is allowed.
Any program of any type you make in PB will be using PB's functions. That is how programming languages work. Fred wants you to use the functions in the program you write, he just doesn't want you to do like in the 2D engine DLL example above and make a simple wrapper so other people can use PB's 2D functions in another programming language.
You would have to write it from scratch as there is no "make game" function in PureBasic. You would have to write the code for loading levels, you would have to write the tile system, you would have to write the inventory system, spell system, dialog system, you would have to write the AI to handle what the NPCs do, you would have to write the interface to handle input and control from the user. You would have to write the particle system, system for displaying and scrolling maps.
You would have to write the editor so people could customize the game and and save their customizations, which would run off of the engine you create.
Here is an example of a scripting system done in PB:
http://www.purebasic.fr/english/viewtopic.php?t=20312
Here is a RPG Game Engine (written in PB) that uses that scripting system:
http://www.purebasic.fr/english/viewtop ... ht=#137304
The above is basicly a scriptable RPG Maker.
This is not in violation of the PB license and is not illegal. You are not bypassing anything or providing PB functions to unlicensed users.
PB has sprite commands, but they are useless unless you write the code that says where to display the sprite, where to move the sprite, what to do if a sprite collides with another sprite, etc.
If you made something like this, you could allow users to customize it, etc via a point and click editor like RPG Maker or via a scriptable system like this guy does.
What would BE in violation of the PB license, is if basically used PBs commands to write a DLL based 2D engine for other programming languages that would just open a DX window, and use PB functions to load and display the sprite and play sounds etc. This would be a simple wrap of PB's 2D functions. Now you could use that simple DLL wrap of the 2D functions for your own stuff using another language, but you could not make that simple DLL available to other programmers.
In the RPG Maker example I described and in the example I linked to, you are not just wrapping a couple of PB functions, you are writing an entire game engine, and this is allowed.
Any program of any type you make in PB will be using PB's functions. That is how programming languages work. Fred wants you to use the functions in the program you write, he just doesn't want you to do like in the 2D engine DLL example above and make a simple wrapper so other people can use PB's 2D functions in another programming language.
Confused...
Well as far as I understand:
1) you can use PB because it's a powerful language
2) what Fred says is law because it's the author of PB and that's fine (we're all programmers, I guess)
3) you can create whatever you want with PB but you canNOT create dlls for other users to use in other languages or just as wrappers of PB commands
4) in general you canNOT create something that might compete with PB, for example another programming language, game maker software (you canNOT use any part of PB for it)
Well number 4 looks not well documented in the license but it seems, as reported by Lyon that someone has done it.
1) you can use PB because it's a powerful language

2) what Fred says is law because it's the author of PB and that's fine (we're all programmers, I guess)
3) you can create whatever you want with PB but you canNOT create dlls for other users to use in other languages or just as wrappers of PB commands
4) in general you canNOT create something that might compete with PB, for example another programming language, game maker software (you canNOT use any part of PB for it)
Well number 4 looks not well documented in the license but it seems, as reported by Lyon that someone has done it.
Of course you can write something that will compete with purebasic! You could write your own compiler you know
(your language -> assembler -> linker -> exe file) and that would be perfectly legal (not an easy job though hehe)
and you CAN write dll's for others to use in other languages, for example an encryption algorithm.
because you use pb's sprite commands. i know it should be legal but as fred presents it he says that isnt .

and you CAN write dll's for others to use in other languages, for example an encryption algorithm.
as I understand it from what fred wrote, THAT IS ILLEGAL!PB has sprite commands, but they are useless unless you write the code that says where to display the sprite, where to move the sprite, what to do if a sprite collides with another sprite, etc.
If you made something like this, you could allow users to customize it, etc via a point and click editor like RPG Maker or via a scriptable system like this guy does.
because you use pb's sprite commands. i know it should be legal but as fred presents it he says that isnt .
Yes, but so is Fred is seems. By that statement of Fred's you could not use PB to make ANYTHING.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?
Any code you write you own, not Fred. Any code you write will naturally use PB functions (that is how all programming languages work). Fred just does NOT want you doing like in the simple 2D DLL example I made. Fred has no problem with you using PB to write a complete customizable game engine like in the examples I posted and linked to. Many people have done so.
If Fred does object to things like that RPG example I linked to, too bad, he doesn't have a legal leg to stand on and should shut down PB as it wraps Windows API, DX, OpenGL, and Ogre3D. But I am sure Fred doesn't object to things like the RPG example, as I have seen him post favorable praise in threads for things like that or even some of the programming languages made with PB.

It is not illegal. If that were true, then PB would be illegal since it is written in some form of C++ and wraps DX, OpenGL and Ogre3D.as I understand it from what fred wrote, THAT IS ILLEGAL!
because you use pb's sprite commands. i know it should be legal but as fred presents it he says that isnt .
You will use PB commands in ANY program you write, that is how ALL programming languages work and what programming languages exist for.
...
Hi Lyon
When I saw the first link, no exe was provided so I thought it was just source code you can legally share and part of a personal project. In the second link it was clear it was a 2D RPG MAKER.
ehm, when you write: "PB has sprite commands, but they are useless unless you write the code that says where to display the sprite, where to move the sprite, what to do if a sprite collides with another sprite, etc. "
I guess every command is useless useless you specify parameters, for example OpenWindow() but I dont want to make this topic go further and further
I also saw your last post: "Yes, but so is Fred is seems. By that statement of Fred's you could not use PB to make ANYTHING. " and as I said I would like someone from the PB team telling us officially that we can do.
I agree with you about that: "If Fred does object to things like that RPG example I linked to, too bad, he doesn't have a legal leg to stand on " but imho I always prefer to find a compromise and be the first to apologize than make objections.
Thanks,
Roberto
I saw the above links and thanks again. It looks clear to me, I hope someone from PB team officially tells me the same so there won't be any doubt.Lyon wrote:.... Say you wanted to make a 2D RPG maker....
http://www.purebasic.fr/english/viewtopic.php?t=20312
Here is a RPG Game Engine (written in PB) that uses that scripting system:
http://www.purebasic.fr/english/viewtop ... ht=#137304
....
When I saw the first link, no exe was provided so I thought it was just source code you can legally share and part of a personal project. In the second link it was clear it was a 2D RPG MAKER.
ehm, when you write: "PB has sprite commands, but they are useless unless you write the code that says where to display the sprite, where to move the sprite, what to do if a sprite collides with another sprite, etc. "
I guess every command is useless useless you specify parameters, for example OpenWindow() but I dont want to make this topic go further and further

I also saw your last post: "Yes, but so is Fred is seems. By that statement of Fred's you could not use PB to make ANYTHING. " and as I said I would like someone from the PB team telling us officially that we can do.
I agree with you about that: "If Fred does object to things like that RPG example I linked to, too bad, he doesn't have a legal leg to stand on " but imho I always prefer to find a compromise and be the first to apologize than make objections.
Thanks,
Roberto
PB is made in C and assembler. And its legal to wrap DX, opengl and ogre. And the C compiler was possibly open-source and it was legal to wrap some of it's commands too (though i dont see what there is to wrap other than api hehe)Lyon wrote:It is not illegal. If that were true, then PB would be illegal since it is written in some form of C++ and wraps DX, OpenGL and Ogre3D.as I understand it from what fred wrote, THAT IS ILLEGAL!
because you use pb's sprite commands. i know it should be legal but as fred presents it he says that isnt .
You will use PB commands in ANY program you write, that is how ALL programming languages work and what programming languages exist for.
Just as it is legal to use PB to write your own programs. It is impossible to write a program in PB (or any programming language) without using the programming language's commands.PB is made in C and assembler. And its legal to wrap DX, opengl and ogre. And the C compiler was possibly open-source and it was legal to wrap some of it's commands too (though i dont see what there is to wrap other than api hehe)

Last edited by Lyon on Wed Apr 19, 2006 10:42 pm, edited 1 time in total.
...
I'd like to add that some restrictions apply to other languages as well.
For example in PowerBASIC license (sorry to talk about it, but it's to support Fred's words
I read:
"You may not use the licensed software to create a programming tool which allows programming functionality of the licensed software to be used by a person who has not purchased a license from PowerBASIC, Inc."
and despite of the difficult and legal language used (I'm not English mothertongue) it seems to me that I could not use PowerBASIC to create an interpreter that use part of the original language functionality and for people that don't own PowerBASIC, but in their website there is a sample of a parser (I believe it's called BINT from Olmi) and in their forums I read messages about people asking how to create interpreter or provide scripting functionality (by using the original language commands) to their software...
I guess it is similar to the RPG MAKER link provided by Lyon
Roberto
For example in PowerBASIC license (sorry to talk about it, but it's to support Fred's words

"You may not use the licensed software to create a programming tool which allows programming functionality of the licensed software to be used by a person who has not purchased a license from PowerBASIC, Inc."
and despite of the difficult and legal language used (I'm not English mothertongue) it seems to me that I could not use PowerBASIC to create an interpreter that use part of the original language functionality and for people that don't own PowerBASIC, but in their website there is a sample of a parser (I believe it's called BINT from Olmi) and in their forums I read messages about people asking how to create interpreter or provide scripting functionality (by using the original language commands) to their software...
I guess it is similar to the RPG MAKER link provided by Lyon

Roberto
-
- Addict
- Posts: 1648
- Joined: Mon Sep 20, 2004 3:52 pm
- Contact:
Yea I dont get that response from Fred. Honestly the language states quite clearly in the license for pb that you cant make a wrapper dll whose PRIMARY (key word here) function is to wrap pb commands for another language. However you can create your own DLL just fine with PB commands and use it for whatever you want even if its say, using the LinkedList library internally.
Also I think the key here is don't make a competing product to PureBasic.... in PureBasic. Don't create a commandset wrapper for a competitor to Purebasic....in Purebasic.
Also I think the key here is don't make a competing product to PureBasic.... in PureBasic. Don't create a commandset wrapper for a competitor to Purebasic....in Purebasic.
argh
Argh!!!!!!
is there someone who speaks German? I need help!
well while looking for some examples in codersworkshop.com (for blitz basic users) I noticed a software: Scream3D 2.0.
http://www.codersworkshop.com/viewshowcase.php?id=235
Unfortunately I don't speak German but I tried my best to understand it. (http://www.scream3d.de)
It looks like a 3d editor, 3d engine, script editor (well that's easy to realize:D) but in its features please note: Purebasic Compatibly, Support Syntax Highlighting for Purebasic Code, Compile Purebasic Code
Well I don't know if you need PureBasic in order to run PureLight. Honestly I did not understand anything because of the language and I did not find any license agreement I could understand, but I found a dll called gamelib.dll in the Game Library folder with .decls (for those using Blitz Basic it's a userlib).
Clearly the dll has been made with PureBasic. Ehm I'm having some doubts...guess what...
Is there someone that wants to try the above software and confirm my doubts?
Thanks,
Roberto
is there someone who speaks German? I need help!

well while looking for some examples in codersworkshop.com (for blitz basic users) I noticed a software: Scream3D 2.0.
http://www.codersworkshop.com/viewshowcase.php?id=235
Unfortunately I don't speak German but I tried my best to understand it. (http://www.scream3d.de)
It looks like a 3d editor, 3d engine, script editor (well that's easy to realize:D) but in its features please note: Purebasic Compatibly, Support Syntax Highlighting for Purebasic Code, Compile Purebasic Code
Well I don't know if you need PureBasic in order to run PureLight. Honestly I did not understand anything because of the language and I did not find any license agreement I could understand, but I found a dll called gamelib.dll in the Game Library folder with .decls (for those using Blitz Basic it's a userlib).
Clearly the dll has been made with PureBasic. Ehm I'm having some doubts...guess what...
Is there someone that wants to try the above software and confirm my doubts?
Thanks,
Roberto
There is a difference between creating a program which uses the PB commandset (which is of course why PB is for) and writing a 'master' program which creates other programs which uses the PB commandset. That means than the customers of the this 'master' program will benefit of all the PB commandset for free, which is not acceptable for us.
Hi
Hi Fred,
thanks for your support.
Can you just tell us:
what about the 2D RPG MAKER example provided by Lyon? Are we allowed to create something like that and maybe use some scripting functionality? Any limit in the scripting functionality?
And, if you have time, any comment about http://www.scream3d.de and my post?
Thanks again,
Roberto
thanks for your support.
Can you just tell us:
what about the 2D RPG MAKER example provided by Lyon? Are we allowed to create something like that and maybe use some scripting functionality? Any limit in the scripting functionality?
And, if you have time, any comment about http://www.scream3d.de and my post?
Thanks again,
Roberto
You mean like how you use the commandset of C++ and third-party libs to create PB?That means than the customers of the this 'master' program will benefit of all the PB commandset for free, which is not acceptable for us.
Seriously, the PB commandset does nothing unless the user writes code telling the commands what to do.
How come you have never objected to the many, violations of this like Drac's recent game engine, several languages, scripting languages and game engines written in PB? Heck, you have praised some of them in threads.
Under your theory, even making a scriptable game in PB is wrong.
I guess you will be refunding the $$ for those of us who were led to believe we could actually make games with PB?
Last edited by Lyon on Thu Apr 20, 2006 12:05 am, edited 1 time in total.