Free Gaming Alliance

Free Open Source Software (FOSS) as a whole is thriving, but Free Gaming still remains a child in comparison to other FOSS fields. That does not mean that Free Gaming is a failure. There have been success stories about Free Gaming (Nexuiz, Battle for Wesnoth, etc), but there have been few of these stories. The goal of this article is to explore how the founding of a Free Gaming Alliance could help the development and promotion of Free Gaming.

Introduction to the Alliance

Games are a complicated beast. A Free Gaming Alliance could help free games during those steps that are crucial to making a successful game: organization, development and publication. And during all steps the goal of the alliance would be the same: to provide professional help to free games. Taking over projects should not be a first thought. Consultants of the alliance would work as external members of the development team. It is not completely unimaginable, though, that the alliance would take over a promising project with the consent of the development team. That way the alliance could allocate more people and money to the project. But again, this should not be the case with every project. Besides there would be also be cases funding would be possible without a project takeover.

Organization

In terms of organization the Free Gaming Alliance could help projects with finding a team. When it comes to the programming department, free games have few problems. However, when it comes to content creation there are more problems. If you have ever visited an amateur game development website you might have noticed that there are few artists (designers, modellers, composers, etc) in comparison to programmers. The solution would be quite simple, though. The alliance could host a website where artists and anybody else involved in game development could upload free content (models, music, pieces of code, etc). At the first place projects in development projects could get the content they need. And secondly anybody involved into free game development would have a place to show of their skills.
Furthermore the alliance could also advice projects on topics such as deadlines and anything else related to organization.

Development

With regard to development the Free Gaming Alliance would have a simple job. The general FOSS community has already produced various tools which can be used for game development: GIMP and Blender to name two. Also with regard to SDKs there are already many usable products. These SDKs range from low-level (OpenGL, OpenAL, etc) to high-level (Irrlicht, Ogre, CrystalSpace, Horde3d). But tools are only one (important) part of game development. Another part is the development of the game itself. This is something the project team will be responsible for them self, but the alliance could advice and actually commit content. Furthermore it is not completely unimaginable that the alliance would create their own tools, libraries and maybe even platforms for game development.

Publication

And last but not least: publication. There are already various hosts for FOSS: SourceForge.net, Google Code, Ohloh. However, these hosts are not game specific. It is quite possible that this scares potential gamers. The Free Gaming Alliance could fill in this gap. By doing this the alliance could also offer services to monetize on publication. These services could include marketing, merchandise, package publishing, etc. Of course this would not only benefit the alliance, but also the project (shared revenue).

Conclusion

Yet, the Free Gaming Alliance is still a dream. I would love to see a real-life implementation, but I realize that it would be quite an undertaking. Still, it is an interesting and I would not mind working for such alliance.

Sirrf version 0.1.1 released!

It is only two weeks ago since the first official version of Sirrf, the Simple Irrlicht Framework, was released. But now it is already time for the next release: 0.1.1. In comparison to the previous release, this new release adds few new features. Yet the new release can be considered as an important one. Sirrf 0.1.1 brings an improved scripting architecture; all AngelScript binding code has been moved into its own dedicated directory. Not only does this tidy up the code, but it also to remove scripting quite easily (if desired). This has become even easier with the addition of compilation flags which can be used to easily enable/disable certain features of the framework. Furthermore the have been various small bug fixes and other improvements. See the change log for more information.

Useful links
SourceForge.net page – http://sourceforge.net/projects/sirrf
Downloads – http://sourceforge.net/project/showfiles.php?group_id=260711 | http://www.ohloh.net/p/sirrf/download?package=Sirrf

Aia @ Science Congress Leiden 2009 (Event Coverage)

You might remember that the Aia project was nominated for participation at this year’s Science Congress of the University of Leiden. Well, at June 12th 2009, the congress finally took place. My team and five other teams each gave a ten-minute presentation about their “research”. These presentations were actually part of a competition in which the best, or rather the most favored, presentation was rewarded a price of €400,-. Unfortunately my team didn’t win. Quite possible because the Aia didn’t work completely during the presentation. Still, €200,- is very nice and luckily we still have the pictures.

Read the rest of this entry »

Sirrf version 0.1.0 released!

Today the first official version of Sirrf, the Simple Irrlicht Framework, has been released. After two months of steady development Sirrf has finally reached the initial goals of Sirrf 0.1.0: being an extensive, but simple open source framework to enable rapid game development. In its current state Sirrf is able to do exactly that. That’s also the reason why Sirrf has jumped directly from pre-alpha status to beta status.

But what can Sirrf do for you? In it’s current state Sirrf offers game logic, graphics, scripting and sound control. Some noticeable features are:

  • Data Store
    The Data Store allows you to store primitive value types such as integers, floats and doubles in a type-independent format. These variables can be accessed from anywhere within the framework, from both native and interpreted code, through the DataStore and DataStack classes.
  • Entity Management
    In Sirrf entities are component-oriented. The idea behind Component Oriented Entities is to make entities data-driven. In order to do this the functionalities are split in various individual components. As a result an entity is in fact nothing more than a collection of components. So, what an entity represents, is defined by its components. Sirrf currently offers various components in the fields of graphics and sound. Furthermore Sirrf also provides an Entity Manager which should be seen as the central interface point to all entity related issues.
  • Event Management
    Sirrf’s event management is build upon sigslot. This means that Sirrf follows an observer model where objects have to subscribe to an event if they want to react to that event. Currently observers can subscribe to game logic events, input events (passed from Irrlicht) and GUI events (again, passed from Irrlicht).
  • Game Management
    The Game Manager performs generic game initialization and deinitialization. It also provides functions to access sub-systems of the framework, such as the Event Manager and the Entity Manager. It’s main function, though, is to control the flow of the game through game state management. This class provides various features to this end.
  • Scripting
    Sirrf is almost completely accessible through AngelScript, a free and open source scripting language. AngelScript allows users to extend applications on run-time using scripts that follow a C/C++ like syntax. Furthermore it’s easy to extend Sirrf’s AngelScript bindings even further.

You might be wondering, though, if Sirrf is really something for you. It’s obvious that Sirrf is ideal for newcomers to Irrlicht and game development, but Sirrf should also be useful for experts. Especially now experts are more than welcome as Sirrf is still in beta status.

In the coming time focus will lie primarily at adding additional documentation. This will be an crucial step to make the framework more accessible to newcomers. And of course Sirrf will also be extended with new features.

Useful links
Development Hub – http://sourceforge.net/projects/sirrf
Downloads – https://sourceforge.net/project/showfiles.php?group_id=260711

Plug-ins: Scripts and Shared Libraries

In a heated discussion earlier this night, Michael and I battled our way through the chat about what we preferred for plug-ins, scripts or shared libraries. I fought for shared libraries since he’d taken the position of script defender already, and we came to a few points concerning the differences between scripts and shared libraries. More after the break.

Read the rest of this entry »

Sirrf – Simple Irrlicht Framework (Help Wanted)

Team name

The Sirrf Project

Project name

Sirrf – Simple Irrlicht Framework

Brief description

Sirrf, the Simple Irrlicht Framework, is an extensive, but open source and simple framework for rapid game development. Sirrf provides end-users a game skeleton which implements concepts such as states, component-based entities and a datastore. Newer hobbyist game developers will probably benefit most from the project, but hopefully Sirrf will also be useful for experienced developers.

Target aim

Long term

Making a game isn’t a simple task. The goal of the Sirrf project is to create an extensive, but simple framework to enable rapid game development. Furthermore, Sirrf is aimed for as broad of a target audience as possible. Sirrf hopes to accomplish this by maintaining a cross-platform nature and a lack of genre specialization. Additionally, the framework is not-for-profit and open source, licensed under the zlib/libpng license.

Short term

At the moment the main priority is to finish the core, which will form the base for future releases. The first release is expected after Irrlicht 1.6 and AngelScript 2.17.0 are released.

Compensation

Sirrf is open to donations, but this doesn’t guarantee regular financial compensation. So expect to work largely without financial compensation.

Technology

There are no requirements for developers to use specific tools; developers are free to choose their own tools. Please note that Sirrf currently uses the following languages and APIs:

Programming Language: C++
Scripting Language: AngelScript
Rendering: Irrlicht
Sound: SFML-Audio

Talent needed

C++ Programmers

Sirrf is looking for additional programmers. Moderate knowledge of C++ is required. Knowledge of other components, such as AngelScript and Irrlicht, is preferred. You’ll work with other programmers over the SVN of Sirrf. As programmer you’ll be working on multiple different areas of the code, but it’s possible to specialize on one part of the code. Additional programmers on the following topics would be much appreciated:

- Core Development (graphics, scripting, I/O)
- Physics

Windows and Mac OSX Maintainers

Sirrf is currently only supported on Linux; maintainers for Windows and Mac OSX are needed.

Team structure

Michael Bartsch

In the past I’ve worked on several projects. The smaller projects nearly always involved some implementation of Irrlicht. My bigger projects, however, are mostly unrelated to Irrlicht. My latest project was the Aia-project, a project with the goal to create a small artificial intelligent robot. And before that I worked on Entwined Worlds, a 2D Action-RPG, that has never been released. Furthermore, I’m one of the editors of .simplicity.

Contact Information

Contact me via SourceForge.

Additional Information

Links

Development Hub – http://apps.sourceforge.net/trac/sirrf/
SourceForge Project Page – http://sf.net/projects/sirrf/
Subversion Repository – http://sirrf.svn.sourceforge.net/viewvc/sirrf/

Aia @ Science Congress Leiden 2009

The Aia project has been nominated for participation at this year’s Science Congress of the University of Leiden. At June 12th 2009, me and my team, will hold a presentation about the Aia and its development. While it’s a Dutch event I figured it would be nice to share this information as it shows that the hard work behind the Aia project hasn’t gone unnoticed.

More information about the congress and participation can be found here.

Open Source Microsoft: The Good, the Bad and the Ugly

Microsoft has long been known for its anti-open-source. Most famous is maybe Microsoft’s CEO Steve Ballmer’s statement that “Linux is a cancer that attaches itself in an intellectual property sense to everything it touches”. But since November 2th 2006, with the controversial Microsoft-Novell agreement, Microsoft has been committing to open source development. At least, that’s what Microsoft says. Many people within the FOSS (Free Open Source Software) community are sceptical, though. And that isn’t particularly strange as Microsoft has been responsible for various actions which let you question their allegiance. The purpose of this article is to investigate Microsoft’s reputation as a wolf in sheep’s clothing.

The Good
Lets start with some recent news. Several days ago Microsoft released an open source alternative to Google’s BigTable. For those of you who don’t know what BigTable is. BigTable is a filesystem for storing large amounts of data distributed over a cluster of multiple computers. It’s one of the backbones of Google App Engine, which works quite well in my opinion. Still, Microsoft’s open source alternative is much welcome as BigTable is a proprietary database system. While this already pretty interesting, the most interesting part still has to come. Apparently, the development team of Kumo, Microsoft’s new search technology, looks at open source solutions by default, not proprietary software. And that’s quite something for a company which prefers to keep its code closed.

Now, lets look at some slightly older news. In July 2008 Microsoft announced that it would be joining and sponsoring the Apache Software Foundation. And when they joined the Apache Software Foundation they also submitted LGPL-licensed patches for ADOdb. Simultaneously they also announced that they would participate in the RubySpec project. A week later the could be heard, though. While I understand that Microsoft has only joined the Apache Software Foundation for its beneficial licensing conditions, I think we should first review their contributions before we judge them.

The Bad
An interesting Microsoft product is CodePlex. CodePlex is Microsoft’s answer to SourceForge. Just like SourceForge, CodePlex is an open source project hosting website. To promote shared development it offers various tools to developers such as wiki pages, SCMs, etc. Unfortunately, it looks like CodePlex isn’t exactly clean. According to The Register Microsoft taints open source CodePlex well, by using licenses and conditions that go against the very principles of open source.

But lets move to something more recent. You might have heard that Microsoft recently released Microsoft Office 2007 SP2 with ODF-support out of the box. It looks, however, like Microsoft has only achieved technical compliance but zero interoperability. Rob Weir is the chair for the OASIS ODF TC. I think it’s admirable that a chair of a committee actually spends time to check if everything works as it should. Maybe his checks aren’t as foolproof as that of a dedicated team, but it gives a good indication. To me it looks like Rob thinks that interoperability isn’t limited to the implementation of a standard. And that’s great news for end-users. Unfortunately, Microsoft doesn’t think so. Instead Microsoft calls Rob Weir biased and wants to remove him as chair for the OASIS ODF TC. I guess that Microsoft really wants to take over ODF, as it has tried before. It’s clear that only OOXML is on Microsoft’s mind. This list of the voting of the ODF 1.1 specification makes that also pretty clear: Microsoft didn’t vote, what a surprise. I rather have Rob Weir as chair, and the fact that he has ties with IBM makes me quite happy too. For those who don’t know, Big Blue is quite a big supporter of open source software.

The Ugly
You might remember this one. At the end of February Microsoft sued TomTom over Linux and various patent claims. After all of Microsoft’s claims that they’re committed to open source, they finally sued a company that used the world’s biggest open source project: Linux. They did that while they promised not to sue on FAT patents. About a month later TomTom and Microsoft settled, but to the FOSS community it was clear that Microsoft is not to be trusted. This also had some interesting consequences: The Open Invention Network announced that it would strike back at Microsoft with prior-art; A patch has been submitted to Linux to prevent creation of files with long filenames on FAT; People have begun to port software from Mono (based upon Microsoft technology) to other languages.

Finally, lets end with something from three days ago. Microsoft lobbyists are criticizing Amsterdam for moving to open source software. According to the article “Amsterdam wants to lead the way in the introduction of open source software”. Further in the article you can read that a Microsoft spokesperson has said “that the company is critical of governments that only want open source software”. That isn’t that strange if you consider the fact that unneeded software subscriptions can cost a municipality about €800.000,-.

All in all, Microsoft did things which were good for open source, but it’s still to early to tell whether Microsoft is really changing. Sometimes I get the idea that one part of Microsoft really wants to change, while another refuses to. I guess we should stay sceptical till Microsoft has figured how to deal with their split personality.

STF Utility (updated!)

The SSS STF (a cool new format for storing data with multiple levels but still > XML, more info here) parser is almost finished. I’m trying to simplify it up as we speak. C++ Templates sure can be frustrating! “/me twitches with his eyes.”

So the parser was working, but it didn’t utilize C++ all the way. I’m trying to reduce the code and thus ease further development and maintainability.

Some hours later…

It is finished! As far as I can tell anyway.  It has a nice example app with it, here’s a (now already dated) sneak peek:

    prettyprint("Welcome to the SSS example app");
cout
< < "This application shows how easy it is to use SSS.\n"
<< "STF is a \"new\" way to store leveled data, just as XML can do, for example.\n"
<< "The format looks like a C(++) struct, which we think is easier to read than XML.\n"
<< "Each :{ is a node, a node has other nodes and values. The first node is unnamed.\n"
<< endl;

So what are you waiting for? Grab the source with example app from the SourceForge page (either checkout from the SVN or select “Browse SVN” -> “Download GNU tarball” (all the way down) ), and use this neat alternative to XML! More information after the break.

Read the rest of this entry »

Component Oriented Entities – Updated (and some more…)

The code I posted in the article Component Oriented Entities has been updated. The code in that article contained some documentation mistakes. Thanks to Nick these mistakes have been corrected. Besides that I’ve also added some new methods (Entity::remove*) which were somehow forgotten in the first implementation. And of course the code has also been slightly improved. Unfortunately the Event Management part of the implementation still hasn’t been included. Still I would like to encourage people who are using the code or parts of it to update their own code.

Also, a sneak peek on what I’m currently working on.

Read the rest of this entry »