Showing posts with label FLOSS. Show all posts
Showing posts with label FLOSS. Show all posts

Sunday, May 4, 2008

Spiking mxmlc

First, the ultimate retro project repository has just been updated and now contains a playable version of Classic Monster Hunt. I still haven't wrote the instructions and I still want to clean up the code a bit but it is fully playable at this point. That being said, I didn't spend that much time today working on it but instead spent my time playing with mxmlc.

For those of you who don't know what mxmlc is, it is the command line compiler that is included with the freely available Flex 3 SDK. While it is certainly much nicer to use Flash CS3 or FlexBuilder to create swf files, both those options cost money and since I want my open source releases to be usable without the requirement of expensive tools I wanted to see how much work it would be to create a game without the expensive tools. I have taken some baby steps by trying to keep my source code outside of my flash file. With 13 Spikes, however, I am creating the entire game using the command line compiler and a text editor. For those who are curious, I am using jEdit for my editor.

Using the command line compiler and debugger is not that difficult, so anybody who wants to create flash applications but don't have any money certainly could handle it. The thing that is not made as clear as it should be is the fact that you do not need to create a flex program to use mxmlc but can instead write your program entirely in ActionScript 3. In fact, if you do not need the flex library you might be better off without using mxml as there is a bit of an overhead for the flex libraries.

I can't say that my first few hours of only using a text editor and command line tools was not as productive as it should have been as I had a lot of problems getting my Spike sprite class to work properly. This was my first attempt at overriding the Sprite class as I normally use the MovieClip class but sprites are suppose to be much more efficient. My problem was that I was trying to set the width and height of the sprite. Why that would stop the sprite from drawing itself is beyond me, but once I removed the code that set the width and height of the sprite it started working fine. It appears that width and height are internally used, as once the sprite was drawing, printing out the sprites width and height came back with the size of the object that I was drawing.

Thursday, May 1, 2008

Open Screen Project

I am writing and posting this early so Blazing Games has not been updated yet though I will be doing that this evening. I am going to be delaying my Light Box strategy guide again as there has been a rather interesting announcement today from Adobe. The Open Screen Project ( http://www.adobe.com/openscreenproject/ ) is the continuation of Adobe's open sourcing of Flash. The biggest part of the announcement, at least to me, is the removal of restrictions on the use of the SWF specification. SWF is the binary format that Flash and Flex compile into. The specifications for this format have been available for a long time (since Flash 3 if my memory serves me correctly) but the licensing agreement in order to use this specification did not allow the licensor to create their own player. This meant that an open source player, such as Gnash, were not able to use the official specifications but instead had to create their players using reverse engineering techniques making the work take significantly longer and reducing compatibility.

The reason that I am using flash for a good number of my games, and once the Ultimate Retro project is finished will probably develop all of my client side games in Flash/Flex, is because it is currently the best solution for rich internet applications. My biggest concern with Flash has always been the fact that it was controlled by a single company. Now that the specifications no longer have restrictions, this is no longer a fear. I know that some people will argue that Microsoft Silverlight is technically superior, I really do not trust Microsoft with a cross-platform standard as they tend to want to force people to use their Windows operating system. Sure they are supporting Macs right now and not threatening the Moonlight project, but that could change if Silverlight no longer had viable competition.

By having the open specification for SWF, I no longer have to worry about Adobe abandoning Flash/Flex (not that it was that likely at this point) so can develop my games without having to worry too much about them suddenly not working in the future. My only complaint at this time is the lack of proper 3D hardware support in Flash. While projects like Papervision 3D are quite impressive with what they can do using software 3D, support for an open 3D standard like OpenGL ES would greatly increase the power of Flash. That, of course, is a different rant which I have made before.

I should also probably point out that in addition to removing the restrictions from the SWF format, the FLV format was also released as was the Flash Cast protocol and the AMF protocol. Finally, Adobe is going to be removing licensing fees in the next major release of Flash Player and Adobe AIR for devices meaning that Flash should be appearing on a lot more mobile platforms. From a Flash/Flex game developer's perspective, this is indeed great news today.

Thursday, March 20, 2008

The First Snow of Spring

Today is the first day of spring so you can imagine how I felt when I woke up and looked out the window only to see snow falling from the sky. The weird thing was that the temperature outside was above 0C so the snow was melting as it hit the ground. My lawn is still starting to green up so I suspect that I will have to be cutting the lawn in a week or two.

Of course, today I posted the open source version of my Evil Eggs Easter game, as it is Easter this weekend. I know that only a handful of people bother to download my open source offerings but I still feel that Open Source is important and plan on eventually releasing most of my games as open source. Still, I come from a background of treating code as royal jewels so I do like to hold onto the source of any new games for a while. The exception to this, of course, is my Ultimate Retro Project, in which I have been releasing the source code before I have even officially posted the games. I am thinking that with Dozen Days I might start releasing the source code the same day I release the game.

Tuesday, March 18, 2008

Arthur C. Clarke and Bruce Perens

First, some sad news. Arthur C. Clarke has died in Sri Lanka at the age of 90. He wrote such classic books as "Rendezvous with Rama" and the space elevator inspiring "Fountains of Paradise". The article about him is located here .

In other news, Bruce Perens from the Technocrat site, has asked his readers to sign a petition so that he can become a member of the OSI board. I think he would be a great board member as he has already done lots for Open Source. For that reason, I am posting his request below and urge anybody reading this to go to http://techp.org/p/7 and sign. My name is already on the list if anybody want to search for it.

"The Open Source Initiative, the organization that certifies Open Source software licenses, is holding an executive board election soon. I am standing for election. The board is self-electing, and I'm told I don't have a chance unless I can show community support for my candidacy. Please visit http://techp.org/p/7, read the message, and sign. Also, please publicize that link where you can. Thanks!" - Bruce Perens

Tuesday, February 26, 2008

50 FLOSS programs

While this is not game related, it is vaguely game development related. As anybody reading this knows already, I am a supporter of open source software. Today I stumbled upon a really interesting blog post: http://whdb.com/2008/the-top-50-proprietary-programs-that-drive-you-crazy-and-their-open-source-alternatives/

This is an interesting link at it contains a list of 50 commercial applications with each commercial application followed by an open source alternative. Most of the open source alternatives were available for multiple platforms, including Windows.

Wednesday, February 20, 2008

FOSS Primer

While this article ( http://www.softwarefreedom.org/resources/2008/foss-primer.html ) was apparently posted on February 14th, it just came to my attention today. It is an in depth look at the legal issues surrounding free and open source software. While it seems to be more US oriented, it does cover copyrights, licenses, patents, and trademarks so if you are involved in any open source project you should probably read it.

Monday, December 10, 2007

Apricot project started

While I normally only discus my own projects on this blog, after all it is the Blazing Games Development blog, today I am going to make a bit of an exception and point you to another project that while I am not involved in is one which I will be keeping an eye on. This project is none other than the Apricot project (http://apricot.blender.org/). This is an open source project that is attempting to develop a commercial quality game using just open source tools. In particular, they will be using Blender and the Crystal Space game engine.

Blender is a 3D modeling/animation program that is quite powerful if you can get past the atrocious user interface. That may not be a fair comment since it has been a while since I played with it so things may have gotten better. I just installed it on my Ubuntu machine though doubt I will have a chance to play around with it any time soon. There are also windows and OSX versions available. Still, if you want to create 3D movies, Blender is certainly more than powerful enough and considering it's price it may be the perfect choice.

Crystal Space is a 3D engine. If I recall correctly, it is portal based. I had considered it in the past and may yet use it for a future project. That is assuming I decide to develop a download only game which is probably something I should do since applet development is so restrictive. Sure there are some game engines designed to run on browsers, but their installed bases are small and system requirements are high so right now Flash and Java are the only real choices for web games.

What is really interesting about the project is that the goal of the project isn't the commercial quality game, but instead the goal is to develop a proper pipeline for developing games. This means that both Blender and Crystal Space will be improved to allow for better game development work flows.

Wednesday, September 12, 2007

FLOSS - The LGPL

My discussion about open source continues with a look at the LGPL license. When you are modifying large programs, the GPL is quite fair. In the cases of libraries, things are a bit different. A library is a collection of functions that are used to make writing new programs easier. The problem is that if you are using a GPL licensed library, you are using GPL code and have to release your project under the GPL. While one could argue that nothing but development time is forcing you to use that GPL library, some programmers feel that the library should be considered a separate entity from the main program and understand that some people don't want to release their source code. For those people there is the LGPL.

The Lesser General Public License was at one time known as the Library General Public License as the whole purpose of the license was to make it possible for library creators to allow other people to use their libraries in the project without forcing the project into the GPL. This license effectively treats the code within the library as a separate project from the main code. Any changes to the source code of the library are treated like changes to a GPL project. However, the project using the library can be released under any license or even kept as closed source.

The reason that the name was changed from Library to Lesser has to do with Richard Stallman's basic philosophy when it comes to open source software. Richard wants to see everything released under an open license, and as such the LGPL fails as it can be used as part of a closed source project. At the same time people who do use this license tend to do so because they want their source code to be usable by as many programmers as possible while still wanting the code they release to stay open. Some companies won't use GPL code but will use LGPL code so the LGPL programmers do have valid arguments. Likewise, certain types of projects really can benefit financially only if they are closed source so the LGPL allows those developers to at least contribute part of their work to the open source community which would be something they could not financially do if the GPL was their only choice.

Wednesday, September 5, 2007

FLOSS - The GPL

The GPL (General Public License) is one of the longer licenses though all this legalize is needed in order to enforce the one primary purpose of this license. This license is designed to force people to share the source code. If you use GPL code in one of your projects then unless you have permission from the original owner of that code you need to release your source code under the GPL. Why should you have to release your source code? That is the cost of using the GPL licensed code. If you don't want to release your code don't use GPL licensed code in your program. Very simple, I don't see any issues. After all, if you are building your program on top of potentially hundreds of thousands of hours worth of other people's time, you have no right to expect them to let you use their work without any compensation. The compensation for their time is that any changes get released to the community.

If you have no intentions of changing the source code, then you have no problem at all. If you are just tinkering with the code and have no plans to release your experiments then you also don't have to worry about the license. If you are a huge corporation who want source code but don't want to pay programmers to write that source code for you, then you are going to either have to release your source code or find some BSD-like licensed program and make your changes to that as then you can keep your improvements to yourself.

One of the arguments against the GPL that boggles my mind is that it is a viral license. While it is true that any source code I release under the GPL stays under the GPL until the copyrights expire, I am still the copyright holder of any code that I write. If I want to then use my code in a non GPL project I am certainly within my rights to do so and nothing in the GPL prevents me from doing so. In fact, if I own all the code within a GPL project, I can decide to change the license of the project for any future release. While the source code for the last release is still available and under the GPL and can be forked by other people who may not like the new license I am moving my project to, the official version would be under the new license. So the only time GPL is viral is when you are using other people's GPL code and if you are using other people's work you have no right to complain.

Wednesday, August 29, 2007

FLOSS - Richard Stallman

If you are even slightly involved with open source then you have heard about Richard M. Stallman, the founder of the Free Software Foundation and the creator of the GPL. Some people idolize him, others think he is too evangelistic. I personally am envious of his hair. It is not fair that someone over two decades older than me should have so much hair when mine is prematurely falling out.

According to the legend, and I have heard this story from countless sources, Richard saw the need for the FSF when in the early eighties the MIT labs that he was working in received a new laser printer. This printer, as with other printers in the lab, was a shared printer. This means that you would send off your job to be printed and then collect it later. The programmers had the source code to the other printers drivers so had modified this code to send a message to the computer that send the print job once the job was done. This new printer did not have the source code included with it so Richard was not able to add this feature which pissed him off. To throw fuel on the fire, some of his associates were working on third party projects and could not share their code with him due to non-disclosure agreements. Richard decided that he didn't want to live in a world where software was controlled by corporations instead of the programmers who wrote the code so started the free software foundation as a way of making sure that there would always be an alternative to closed source software.

As explained in earlier entries, this lead to a problem. Wanting to give away source code is fine, but in order to make sure that the source code remained free you couldn't just give away the source code. What was needed was some way of making sure that the source code always remained free. And the way Richard did this is with something called the GPL.

Monday, August 27, 2007

FLOSS - BSD Problems

In my last installment (yes, it has been a while) you may have noticed that I referred to the license as the new BSD license. Why the distinction? Older versions of the BSD license had an advertising clause that required people using the source code to include notices in their advertising if the ads mentioned a feature that was derived from BSD code. Of course, this clause was changed to reflect the organization that used the license, so if you used a lot of BSD code - likely in the form of function or class libraries - then your ads may have to contain dozens of notices. This flaw was removed from the license in 1999.

The big problem with the BSD license is that the source code does not need to be distributed. More importantly, changes to the code do not need to be distributed. This means that you can take a BDS licensed program and make improvements to it then distribute the enhanced program without source code. While people would still be able to find the original version of the source code if they searched hard enough, they would have to re-create the enhanced features from scratch.

While it is certainly possible to argue that you have no obligations to release your changes, the creators of the original code you are using were also not under any obligations. The fact that people could use BSD code without having to give anything back to the community is one of the reasons that other open source licenses were created and used, with the most prolific of these being the GPL. Of course, to properly understand the GPL, you first need to know a little bit about it's creator Richard Stallman.

Wednesday, August 8, 2007

FLOSS - New BSD License

There are many times when people don't care if other people make money off their work or not. All they really care about is that they are given credit for their work. This is especially true of students who quite often want their work spread as far as it can so that potential future employers can see their work. This is especially true in the software field. Copyrights prevent the easy spread of ones work, while releasing something to the public domain means that while other people can see your work, they are under no obligation to tell people about the fact that the work is freely available or that you were the person to create the work. They can (and often do) take full credit for the work for themselves.

This is where it would be nice to have a middle ground between copyright and public domain. Guess what? You can already do this. Copyrights allows you to dictate what rights you give a person. You do this by creating a license for your work. The interesting thing is that unless a person has a license to use a copyrighted work, they are not allowed to distribute that work. The creators of copyrighted materials give permission to people by licensing their work to them. Open source licenses work the same as other licenses, but are granted to anybody who wants to agree to the terms of the license. In fact, because copyrights forbid anybody from using the work without the owner's permission, unless the distributor of the copyrighted material agrees to the license being offered to them by the copyright holder, they can not distribute the material.

One of the simplest of the various open source licenses is the BSD license. BSD stands for Berkeley Software Distribution and was named after the Unix variation that the Berkeley University released. The simplicity of the license helped to make it a fairly popular license among open source developers due to the fact that it is a very short license that gets right to the point.

Copyright (c) ,
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Even non-lawyers should have no trouble understanding what that means. The license lets anybody distribute or change the software as long as the source code or documentation contains the license, which means that credit will be retained if the source code is distributed with the software.

Sunday, August 5, 2007

FLOSS - Public Domain Problems

Even though it is a long weekend in B.C., I haven't posted an entry in my FLOSS series for a while so figured that I would take the time to do so now.

Once you have made changes to a public domain item, those changes are copyrighted by you. This means that you can take existing public domain material and by just making a few minor changes to it create a copyrighted work. Disney is very good at doing this, with a huge number of their films being based on public domain material. While there is nothing to stop someone else from creating a Snow White from the original public domain sources, people automatically associate the work with Disney. Likewise, Disney lawyers don't like competition so if you do try to create your own version of Snow White, be careful not to take Disney created elements and use them in your version, even if they are logical extensions of the original work.

So, from a software standpoint, releasing your source code directly to the public domain is doable, but anybody who wants to can then take your source code, make a minor change, then start selling a product using your source code without compensating you. If the entity that is copyrighting your work is promoting their modified version you can end up with a situation where people are paying for work that you wanted them to have for free. In fact, if they promote their work enough, your original work may become an obscurity. They don't even have to mention the original work or who created it, so they may also be taking credit for your hard work.

Wednesday, July 25, 2007

FLOSS - The Public Domain

To understand what the public domain is, you first need to know a little bit about copyrights. The copyright system has changed quite a bit over the years, and seems to be more focused on corporate interests than on public interests. Basically, when you create something you automatically gain copyrights on the item that you created. You can not copyright ideas, just the particular implementation of an idea. Copyrights last a set period of time. The particular amount of time varies by country, with the US being the life of the creator plus 70 years but corporation owned copyrights last only 95 years from publication or 120 years from creation (whichever is shorter) due to the fact that corporations are legal entities that can theoretically live forever. For the duration of the copyright, the owner controls what can be done with the work, though there are some exceptions for educational use.

When the copyright term expires, the material enters something that is known as the Public Domain. This simply means that anyone who wants to can take the public domain material and do whatever they want with it. To be perfectly blunt, the vast majority of material that has reached public domain status is too old to be of any real use. this is one reason a lot of people want shorter copyright terms. I personally would like to see 10 year copyrights that can be perpetually renewed for another 10 years for a small fee and the renewal information would be publicly accessible so it would be easy to see if something was still under copyright. The advantage of such a system is that anybody would be able to keep their copyrights forever if they desired, but less valuable material would fall into the public domain sooner so that there would be a much greater chance that it would be useful to society.

While the vast majority of the public domain is so old that it is not relevant to modern society, there is still a lot of material that can be used. For instance, Shakespeare has stood up to the test of time quite well. While you can still pay for a printed copy of a Shakespeare play, many archive sites have free copies of the plays that you can download. If you want to put on a play, you don't have to pay any type of public performance fee for using the material. In fact, you can even modify the play however you like. And that is where the problem is.

Saturday, July 21, 2007

FLOSS - An Altruistic Movement

Most people have solutions to some of the world's problems. These solutions tend to be simple, and in an ideal world would work great. The problem is that these solutions don't take the world's greatest evil into account. This evil, which is inherent in human nature as it is also one of our most powerful survival traits, is greed. Greed can be seen every time an executive takes a million dollar bonus instead of giving a small wage increase to the workers who actually make the products. The end result of greed is destruction. Greed is counter-balanced by altruism. True altruism is rare today, as there is usually another motive for the apparent altruistic act. One of the most prevalent forms of altruism today is the Open Source movement.

The idea behind open source is quite simple. Instead of keeping the source code (the magic ingredient that makes software) a closely guarded secret, the source code is given away. The instant greed response is, “but then how do you make money.” Most open source companies, and there are many that have thrived, make their money from different means. Many open source companies give their software away and make money by selling support contracts. Others survive by sponsorship (such as advertising, which is why ad blocking software is inherently evil). Some survive by donations by the community of people who use the software. Yet others survive by having closed source packages that complement their open source offerings. I am sure there are other business models that I am missing, but the point is that there are ways of making money while still being somewhat altruistic.

Open source is different from public domain material as it is still copyrighted material. The permission to distribute the source code is part of the license agreement that comes with the source code. “But I never agreed to any license,” the greedy voice says. You don't have to in order to use the software. If you are planning on giving away, modifying, or selling the software then you have a problem, as copyrights forbid you from doing any of those things. The only thing that is allowing you to do any of the above things (and a bunch of other things that I won't get into here) is the license. If you don't want to agree to the license, you can't modify or distribute the software as that would be breaking the law! There, unfortunately, are a huge number of licenses out there, but the most prevalent one is the GPL or General Public License.

We will take a look at the different licenses later, but first let us explain why Open Source is even needed. Greed, of course, has a lot to do with this, as you will see in the next section.