Recent Posts

Pages: 1 2 [3] 4
Announcements / RRPGE goes live!
« Last post by Jubatian on April 01, 2014, 09:42:42 AM »
So that's it, this very day, after a long journey I pressed the big red "Publish" button on the project.

In the last weeks there were many new things to work myself around, such as I never ever used a version control system before, and now, here comes Git. My knowledge on web technologies also faded more or less away, so it was and is a chore to get everything in line here, new things to learn all around.

So please be patient until I organize myself. I can't imagine what kind of reception this project will encounter, but due to it's sheer size alone, even with minimal reception I might easily tip over. There are many things to settle, many things to learn and re-learn, and now I also have to figure out the effective means of managing the thing with the involvement of the public.

But hopefully things will get along all right, and the dragon may rise to the skies!
Licensing model / The enforceability of the RRPGE model
« Last post by Jubatian on April 23, 2014, 02:47:54 PM »
It may be interesting whether this mess of licenses are actually enforceable in this form.

My conclusion is that although not very strongly, but yes. If for nothing else, the RRPGE specification contains a set of important data which, if used (by implementations, by applications), will clearly enforce the licensing terms. Otherwise as of now there is no other implementation than mine, covered by the RRPGE License. The relation between the emulator and applications can be understood as a relation between a library and the users of the library on which term GPL is also in effect.

Of course these relations are not exactly strong, they are even risky if someone with a strong support would try to circumvent them. To make things more robust, three additional measures may be relied upon:

  • The correct use of the RRPGE Logo (currently under trademark registration). No dragon, it is not RRPGE, get lost.
  • The use of the RRPGE License. This license applied on RRPGE applications and code fragments will keep those for us to use.
  • Walled garden products may not allow for a generic RRPGE host. Be first, and be the best in providing a compile-together (the application and a specialized host) solution for those, of course under the RRPGE License.

For the future however I plan a fallback if it is necessary to keep RRPGE consistent. This would mean by owning the copyright for those murky sections of the RRPGE specification which weakly enforce this trail of licensing, I might lift the strong copyleft on those, but only those parts by issuing them separately for example under Lesser GPL. The specification itself of course remains as-is, under the RRPGE License. But until this will really be necessary, I would left it this way to give us at least a head-start.
Licensing model / The RRPGE License
« Last post by Jubatian on April 23, 2014, 02:46:01 PM »
The intentions and goals of the RRPGE License

The RRPGE License is meant to be used on all critical RRPGE components, and also optionally on any other related project.

The license is crafted as an extension to version 3 of General Public License, as allowed by that license (in section 7). The purposes of this decision are as follows:
  • To have it GPL compatible, so the open source world can interface and use it without hassle. For this purpose it also includes some additional permissions so it can be relicensed and so combined in most GPL packages.
  • To base the license on a well established strong copyleft. This ensures that the RRPGE system stays free.
  • The path for making more or less closed RRPGE applications is crafted in this license as a permissive extension. This way no alternative licenses are required, so neither copyright assignment is necessary to make those possible later.
  • Since no copyright assignment is necessary, everyone contributing to RRPGE will "own" part of it. This makes the free state of the system more robust as there is no single person who could change the license to proprietary.

Plans and work on the RRPGE license may be followed here.
Licensing model / (Obsolete) The RRPGE Developer Agreement overall picture
« Last post by Jubatian on April 23, 2014, 02:44:05 PM »
Important (2014.10.19)! This topic is obsolete as new license plans don't involve the necessity of a Developer Agreement. For those interested it may be worth reading though, to see some intentions on how I planned the operation of the RRPGE ecosystem.

So what will be the RRPGE Developer Agreement?

The licensing model of RRPGE is based on GNU General Public License, version 3, also allowing GPL version 2 projects. The license truly is an extension to GPLv3 as allowed by that license, most notably allowing you to use everything as if it was licensed under Lesser GPL if you accept the Agreement. So basically you either produce free software or accept it to get the right to go more or less closed.

First: Why the closed path?

So why even allow closed (as in non-GPL) projects? It is simple. Open source won't normally feed you, and if you do some serious work of art, you should have the right to sell it if you want. The problem with software is that in one aspect it is art, in an another, it is just a bunch of tools and industry. The tools should be open, given to everyone, so they can make art with it. Art, however may well belong to the author.

Here using the Agreement I aim to realize a model where the tools are open, but you can use them to make, and possibly even sell art.

The basic intended goals of the Agreement

  • To give you the rights to use the works in your (closed) art we produce under the RRPGE license (this is how I call the extension set to GPLv3 the project uses). The more such works we have, the better.
  • To eliminate the software patent system's effects as best as possible. Those who accept the Agreement would be required to open up their patent portfolio (if any) so everyone can use them. Patents have no place here, let's have a healthy competition.
  • You as developer also has responsibilities. The Agreement will be set up so once something is made, preferably it can not be unmade. History shall be preserved for everyone's good.
  • The Agreement will also require a share of sales, for those who get to be able to sell their works. More on this below. (Depending on how things proceed later, this part may be dropped, replaced with a voluntary model)

The preservation of history

I plan to craft the Agreement so it can automatically enforce the preservation of history in a legal manner. This will likely involve constraints on how applications may be sold, most likely requiring them to be distributed through a central application store (the share of sales probably also makes this necessary).

To avoid leaving abandoned software in a murky legal situation, and to make it preferably impossible to "unmake" an application, the Agreement may require passing over distribution rights under the most restricted (CC BY-NC-ND) Creative Commons license to me (by this I mean any organization what later preferably will be founded for working on RRPGE), which rights may be exercised under well-defined circumstances (like one year after the termination of the Agreement for any reason, or one year after the author became unreachable, or something along the lines of this).

The use of the shares

Well, I definitely would have a humble little home on a nice little tropical island with sea view from all four towers, having a pool in the middle would also be nice. Eh, nothing like that (although it would be nice if I once could move out from these mouldy lodgings...).

These shares could be employed for many things making both RRPGE and any systems around it better. Such as:

  • Funding porting RRPGE to many more devices, so your games and applications can reach more people.
  • Supporting the development of tools, probably even simple no-programming-required game crafting IDEs, so they can be realized, and stay GPL, free for all who want to start making games.
  • Creating better sites, providing hosting for your games, probably even servers for use with the networking features of RRPGE.
  • Supporting those tools which help and helped RRPGE becoming a reality. So we can make the open software community a bit stronger, in turn making you have more or better free tools and environments to help with your art.
  • Since RRPGE has little system requirements, it is viable to spread it even in lesser developed countries. This is nice for a passive support, but with the money, we could probably even get more active with these goals as well.

So it definitely has a good place, it won't just go down the drain. With this concept those who succeed will indirectly not only help newcomers to their success, but also raise their own potential.

Note that depending on how things proceed in the farther future, I am open to replace the requirement of shares with a seperate voluntary model (it may even be necessary if later a non-profit organization should be established over RRPGE).

Roughly these are the ideas behind the Agreement.
Licensing details / Acceptable licenses for applications
« Last post by Jubatian on April 23, 2014, 02:36:51 PM »
What license should I use for my application?

Currently RRPGE progresses under the Temporary RRPGE License (see this topic for details). With this license, you have the following options:

  • Use GPL version 2 or GPL version 3 for your project. If you want to work by this established solution for free software, it is fine.
  • Use the Temporary RRPGE License. This license contains a clause for allowing to upgrade later to the finalized version of it, with it, you can make it clear you want to work by this path.
  • Other licenses are not really possible now, but later (after finalizing the RRPGE license), they may be.

If you don't want to release under GPL's variants, check out the plans on RRPGE License version 3. While currently it won't help you a lot, you may feed back, and make it possible to finalize the RRPGE License allowing other licenses.

At the time of writing, the published binaries are still derived from a version licensed under version 2 of the RRPGE License. While this allows other licenses than GPL, it is discouraged to utilize that, since that RRPGE version will soon be obsoleted.
Minimal library & Host / Design goals of the library
« Last post by Jubatian on April 23, 2014, 02:29:13 PM »
The RRPGE Minimal library aims to meet the following goals:

  • Minimal in the term that it aims for emulating the slowest RRPGE system allowed by the specification. This means that an application working all right on this emulator will likely work right on other implementations, too.
  • Minimal in the term that it takes the least amount of resources as reasonably possible meeting the library's other goals.
  • Freestanding. It does not even rely on the standard C library. This way the library may be used anywhere where a C compiler is available.

These goals ensure the greatest utility of this library: It is good for application developers since it reproduces the specification reasonably well. It is good for users since it will likely work even on their old junk, provided that the host is also reasonably well written. It is good for host developer, that is people who want to port RRPGE to some device: it only needs a minimal environment to start working.

The latter may even be interesting for embedded targets or authors of hobbyist operating systems: the RRPGE system's basic features may be brought up with relatively little effort, so things may start to get interesting very soon.
Minimal library & Host / Minimal system requirements
« Last post by Jubatian on April 23, 2014, 02:27:14 PM »
The minimal system requirements of the library as of now.

I did some tests on an old Pentium MMX 233MHz (that's a "high end" P1) with the CPU part. When pumping instructions at peak rate (that is not calling the kernel's delay function or stalling RRPGE otherwise) barely, but the system could budge. Meanwhile by the design of course a single display layer was continuously rendered, but not displayed.

By this experiment I am pretty sure that with some polishing and using plain VGA output (so the least amount of slow Video RAM transfers are required) this system will be capable to run RRPGE reasonably well. So that's about the extreme minimum as currently visible.

(Later with x86 assembly tweaking it may be pumped up if such special need ever arises: there are possibilities for creative assembly which could help the emulator greatly)
Specification / Works on the specification, 16th April, 2014
« Last post by Jubatian on April 16, 2014, 02:10:25 PM »
While I am experimenting with the 2D capabilities of the system creating some generic graphics libraries to pave the path for some initial game mock ups, I also got to outline some new concepts which will be introduced in the next version of the specification.

  • Probably the most important is console support, which is one of the major features necessary to make RRPGE capable of producing simple tools (so people interested in the system don't need to create platform-specific tools for themselves unless they want), and will greatly help debugging with implementations not having any specific debug support (which will likely stay this way for long).
  • The file system interface (except the application binary load feature) will change to support arbitrary file load / save from a pool provided by the host. This is also quite important for designing tools (and probably even simple game editors within RRPGE itself). With this the nonvolatile save feature will pass away, which also means an update to the RRPGE license (it refers to the NV saves), so in overall the system is going to become simpler with the change.
  • The controller interface undergoes some major changes streamlining the component, also making it capable to interface a keyboard properly. This again helps a lot in directing RRPGE towards becoming an old style computer rather than a game console, helping the design of tools.
  • Minor tweaks on the RRPGE Incremental palette as I experiment with game designs.

In overall major changes are in my TODO pool, but ones which likely make the system even simpler and way more powerful. The primary realization driving me towards this path is that to actually get games complete, one needs tools. Tools face the same problems on today's technologies like games, probably even more if one just hacks them together. They may easily bit rot away long before one wouldn't need it any more encumbering actual game development. Then just why not make these possible as well, if the support for these is just within reach?
Specification / Expanding the specification
« Last post by Jubatian on April 23, 2014, 02:23:41 PM »
The specification although is fairly complete by functionality (it is an another matter how various functionalities are implemented, currently a lot on this field is still work in progress), it might call for some expansions later.

Some guides for this matter are here, representing my intentions with the system:

  • First and most important: No extension shall get through which could make viruses possible. That is applications shall have no means for affecting other applications or parts of the system except when explicitly allowed by the user. Some compromises may be made, but in overall the system should operate with full functionality even if the offending features are restricted.
  • No complex algorithms: an RRPGE implementation should remain small and simple, that's one of the greatest benefits of this system.
  • No convenience features (kernel calls) except if there is a very good reason to have them. The user library later however may provide such.
  • In general the extension must serve a reasonable purpose. Either something needed by most applications, or something without which something is simply impossible (mostly I think about certain types of input devices here).

Developer convenience issues will be addressed by a later developed User Library, some rough concepts on this may be read here. I have a good set of functionality already in my mind, but first some planning and architecture design is obviously necessary.

Regarding viruses the only possibility built into the RRPGE system to realize such is the File I/O interface. It is however designed in a manner that the application can indicate what type of file I/O it requires to operate, so normally the host may appropriately constrain it (or may even provide such an abstraction which does not even map to the real file system of the host).
Organization / Basic principles of the organization
« Last post by Jubatian on April 23, 2014, 02:16:45 PM »
Founding an organization for RRPGE is still a long way to go, however the intentions with it are here to be clear.

The roles of the organization would be roughly the followings:

  • Maintaining the RRPGE specification, standardizing the broader environment, so raising the interoperability of RRPGE implementations.
  • Developing software to support RRPGE: libraries, hosts (emulators), and tools (such as from assemblers to high level game makers).
  • Developing hardware solutions (if ever).
  • Providing web surfaces for publishing RRPGE applications, such as an RRPGE application store.
  • Supporting third-party RRPGE related projects (including general open source), and RRPGE application development.
  • If such need should ever arise, to take legal actions against violators.

The construction of it should be brought up according to the non-profit principles, with meeting all the financial and organizational transparency requirements a proper non-profit organization meets. To determine what would be the best will need (probably a lot) further research, something I am unlikely to be able to do (due to my lack of knowledge and experience on these fields).
Pages: 1 2 [3] 4