Categories

Archives

Using the Raspberry Pi as a Server for the Home Network – Part 1

I recently acquired a Raspberry PI 2B (the latest model) to play with it and see if there was any real use besides learning and experimenting. In fact, in the past, I read some good articles on possible applications on the LJ magazine, not to mention the various projects that one can find on the WEB.

RPi2BNeedless to say, I ended up finding the RPi a very capable piece of technology. Although it doesn’t have the computing power to do some heavy lifting, it is still a very good system that can be successfully used for several non-demanding applications, to the point that I decided to use it for most of the servers in my home network. Applications like DNS, WEB, Proxy and DLNA servers work very well with a Raspberry Pi 2B in a home environment, where the only users are the family members. In addition, the RPi uses very little electric energy and switching to one or two of these little devices from a power hungry 4-core I7 system (the one I used for the home network necessities) provides a lot of savings on the electric bill.

In the next several weeks I will present some articles to describe what I did in my home network. I hope you will find them very interesting. Also, if you have also played with the RPi and used it for some other projects, I would like to hear from you about that and, maybe, we could co-write an article together on that topic.

DZgameEngine and Distribution Licenses

When I started the DZgameEngine project I wanted it to be open source, so that anybody could freely use it to experiment with game development and accelerate the learning stage for understanding the insides of a game engine, from drawing to the screen to generating sounds.

Soon I realized that I needed to provide some sort of distribution license. Not doing so would have put my code in the position of being indirectly copyrighted and no one could really use it to eventually publish his/her own game. As usually things go, I didn’t put much thought on it, so I ended up using the same license used by the Linux Kernel. I thought: “if it works for Linus Torvalds, it can work for me too”.

But, recently, I started thinking on that a little more, and I started doing some research. I came to understand that the GPLv2 license ultimately could constitute a barrier for people to use my game engine. In fact, with such a license, people would be forced to make their own game totally open source. And if they wanted to get some money out of it, they probably couldn’t. A game is not a product on which you can easily charge for maintenance contract or other services. Once in the hands of a gamer, it gets used as is, and later discarded. Nobody is going to pay anything for it.

I needed something that could give the developer a choice, which seemed more fair than forcing him/her to open source the game.

I needed something that a developer could use to either release his/her game completely open source, or completely in binary form, for a fee. At the same time, I needed something I could use to ask the developer to release to the open source whatever change was made to my own code, the game engine itself.

And finally I realized the Lesser GPL does exactly that: what ever someone makes changes to the DZgameEngine library, it has to release the code changes so I can keep improving the library. But, at the same time, the developers can keep their own code closed, so that they could sell the product of their brain, if so they please.

So, at the end, that’s what I did, I changed the distribution license for my DZgameEngine library, making it more available to developers the way they want it fit for their own purposes.

Was this the right decision? Will it ever DZgameEngine be something that other people will use? Will people be more willing to use it now that I have changed the license to something that I think is more appealing? I think so, but really only time can tell. And if you out there have any thought, one way or another, would you be willing to post a comment and let me know?

 

DZgameEngine Project Update: More Classes Added To The Project

This is the list of classes I added so far:

  • Data Handling Classes, listed in the previous post.
  • DZengine
  • DZinputHandler
  • DZjoystick
  • DZkeyboard
  • DZlayer
  • DZlevel
  • DZmouse
  • DZobject
  • DZparams
  • DZstate
  • DZstateMachine
  • DZtextureManager
  • DZxmlParser

All the code is available on GitHub. I also plan to write some documentation to those classes, which I will put in this blog.