Author Topic: 7DRL Challenge 2014 participants are invited to use Necklace of the Eye!  (Read 8190 times)

chooseusername

  • High Priest
  • ****
  • Posts: 329
    • View Profile
    • Email
Re: 7DRL Challenge 2014 participants are invited to use Necklace of the Eye!
« Reply #15 on: February 24, 2014, 07:32:19 PM »
Thanks, now I know how copyleft works.

I think I'll just release my game into the public domain using curses as a library. A separate derivative game can borrow the PD code, link NotEye, and be released under the GPL (with prominent links to the original clean version). A horrible, ugly solution, but it'll do for this year.
The GPL does not require linking projects to also be licensed as GPL, it just enforces conditions on how you distribute source code and other resources needed to recreate the product you distribute.  If the derivative maker enhanced your game and continued to license the game code under public domain, you could remove the NotEye parts and bring back the changes to your original project.  If the derivative maker had relicensed the game code under GPL, then you couldn't take the changes back without adopting the GPL also.

If what is stopping you from using the NOTE is the thought you will also have to license your code as GPL, then feel free to use NOTE, because you definitely do not.  GPL is viral in terms of what it requires you to do, not in terms of how it requires you to specifically license.  Further below, Z as much as stated that you can still license your code with other licenses.  I've read the GPLv3 in detail, and I can confirm that he is correct.
Quote from: Z
... permissive licenses such as Apache 2.0 and the MIT License are compatible with GPLv3*, which means that a GPLv3 software can include parts licensed under a permissive license.
« Last Edit: February 24, 2014, 07:36:28 PM by chooseusername »

Z

  • Protector of the @
  • *****
  • Posts: 905
    • View Profile
    • Z's Roguelike Stuff
Re: 7DRL Challenge 2014 participants are invited to use Necklace of the Eye!
« Reply #16 on: February 24, 2014, 07:47:10 PM »
There are two ways of using NotEye:

1) As a "terminal emulator" with fancy features for roguelikes. This does not replace the Curses dynamic library (as Quendus presumes), it just works as a terminal emulator. In this case, the game is written using Curses or whatever language/library which outputs to a terminal, and the game script in Lua gives it a graphical interpretation. This does not require any changes to the underlying game (for example, NotEye simply works with DoomRL without any collaboration from DoomRL -- but there are some problems, for example DoomRL uses exactly the same character for medkits and bloody doors, theoretically the game script could invoke the "look" command to tell them apart, but this is not very practical -- if you are the author of the original game and you have full control on its output, this should not be a problem).

For smooth movement, just use the function applymoveshift(pic, id) -- "pic" is the sprite of the being, and "id" is its unique identifier. NotEye remembers the location of each "id", thus if it detects that it has moved, it moves it smoothly to the new location. If you have some reliable method of telling which monster is which (for example, each monster has a different character/color combination which is fixed) then smooth movement should be done easily.

2) The NotEye library interacts directly with the game (thus, for example, NotEye can ask the game about the ID of the monster at the given location, and use this info for smooth movement). For programming, this is convenient -- it is easier, more powerful, and less error-prone to just get the information from the game itself, instead of reading its screen. This is done in Hydra Slayer, PRIME, and ADOM. (Originally Hydra Slayer used method (1), but method (2) gives extra power, so it uses method (2) now, although NotEye should still work in a limited way with the "pure console" Hydra Slayer.)

To play the game via ssh: in (1) there is no problem, NotEye will not know that the game is run via ssh and happily interpret it. In (2), you could use the remote NotEye's Curses output on a remote machine, play it via ssh, and connect the local NotEye to this ssh -- but then the local NotEye would have no access to this special information. NotEye comes with its own streaming protocol, though, which solves the problem somewhat. You run the remote NotEye as a "server", and connect the local NotEye as a "client" (warning: there is no security for this yet). I think it should be possible to tunnel NotEye protocol via ssh, too -- tell the remote NotEye that you are playing via ssh and local NotEye, and it will communicate with the local NotEye via ssh using the NotEye protocol -- but this is not yet implemented (just a quick idea I had at the moment).

(All the C/Python/Java/Pascal samples use the NotEye library, export a "monsterids()" function to the Lua script to support smooth movement, and make sure that monsterids information is included when streaming using NotEye protocol.)

mushroom patch

  • Protector of the @
  • *****
  • Posts: 529
    • View Profile
Re: 7DRL Challenge 2014 participants are invited to use Necklace of the Eye!
« Reply #17 on: February 24, 2014, 10:09:48 PM »
Interesting. Have you considered offering an extended set of control characters for interaction with NotEye "terminals" to provide extra information about, e.g., smooth movement of sprites, text effects not available on a typical terminal, etc.? This along with an extended curses library to take advantage of the capabilities of NotEye terminals could be pretty nice. You could have a generic ssh client designed for roguelikes with all the niceties you offer locally and no need for extra scripts. Or maybe what you have already does something like that?

btw, such an "extended curses for roguelikes" library with the BSD license would nicely side step the licensing issues mentioned above.

Z

  • Protector of the @
  • *****
  • Posts: 905
    • View Profile
    • Z's Roguelike Stuff
Re: 7DRL Challenge 2014 participants are invited to use Necklace of the Eye!
« Reply #18 on: February 25, 2014, 07:18:09 PM »
Sounds very interesting indeed. Special extensions to the terminal could be done with a special $TERM setting... but no, Noteye does not work like that :) And a powerful "generic" game script which would let the game declare all the graphical information itself could be a good idea too, but this is not done yet.

locus

  • Acolyte
  • *
  • Posts: 1
    • View Profile
I'll echo the other people who have concerns about the GPL licensing.  GPL is a good license for making a political point, not so good for a toolkit you want to be useful to people.

chooseusername

  • High Priest
  • ****
  • Posts: 329
    • View Profile
    • Email
I'll echo the other people who have concerns about the GPL licensing.  GPL is a good license for making a political point, not so good for a toolkit you want to be useful to people.
This is my main problem with the GPL, the confusion it causes.

You're assuming that it is being used for a political point.  But if you go back, I believe it was stated that arrangements could be made with the author for alternative licensing.  Perhaps it is because the author wants to be rewarded for his efforts, by sharing in any commercial use of what he has put a lot of hard work into.  That's certainly not the fervent "software should be free" political point as I understand it.

Toolkits don't make themselves.  As for the source code being under the GPL, better to have it and not need it, than to need it and not have it.

Z

  • Protector of the @
  • *****
  • Posts: 905
    • View Profile
    • Z's Roguelike Stuff
I have released an update to NotEye: http://zenorogue.blogspot.com/2014/03/noteye-76.html -- the highlight is that the samples now use the DawnLike tileset.

I have also explained my licensing motivations at http://www.roguetemple.com/z/noteye-dev.php (this is not yet perfect, but I am too tired today).

Eben

  • High Priest
  • ****
  • Posts: 339
  • Controversializer
    • View Profile
    • SquidPony!
I have released an update to NotEye: http://zenorogue.blogspot.com/2014/03/noteye-76.html -- the highlight is that the samples now use the DawnLike tileset.

I have also explained my licensing motivations at http://www.roguetemple.com/z/noteye-dev.php (this is not yet perfect, but I am too tired today).

Your motivation makes total sense. I wish there was a way to basically have Creative Commons By Attribution Non-Commercial licensing on source code, but for some reason I'm not lawyer enough to understand It seems like that's not possible :(