<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>.simplicity &#187; Gaming</title>
	<atom:link href="http://www.dotsimplicity.net/category/gaming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dotsimplicity.net</link>
	<description>Simple, reliable, simplicity. A software discussion blog</description>
	<lastBuildDate>Sun, 04 Jul 2010 09:44:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Free Gaming Alliance &#8211; Continued</title>
		<link>http://www.dotsimplicity.net/2009/11/free-gaming-alliance-continued/</link>
		<comments>http://www.dotsimplicity.net/2009/11/free-gaming-alliance-continued/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:30:10 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Alliance]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=494</guid>
		<description><![CDATA[Some while ago I wrote an article about the Free Gaming Alliance, an organization that could help with the promotion and development of Free Open Source Games. At the time that I wrote that article I was not sure how well it would be received by the public. In the end the reactions turned out [...]]]></description>
			<content:encoded><![CDATA[<p>Some while ago I wrote an article about the <a href="http://www.dotsimplicity.net/2009/06/free-gaming-alliance/">Free Gaming Alliance</a>, an organization that could help with the promotion and development of Free Open Source Games. At the time that I wrote that article I was not sure how well it would be received by the public. In the end the reactions turned out to be fairly positive.</p>
<p>Lets start with a reply to the original article. Some while after the article was published on .simplicity Valentin Anastase from the non-profit organization <a href="http://www.freezingmoon.org/">Freezing Moon</a> replied. He provided a link to two sites, including Freezing Moon&#8217;s, dedicated to free gaming. Freezing Moon comes close to the idea that I sketched in the previous article, but it is not completely the same. Opposed to the Free Gaming Alliance, Freezing Moon actually develops games themselves. While I think that we should first deal with other issues concerning free gaming, I am happy to see an initiative like Freezing Moon and I encourage people to check it out.</p>
<p>Another interesting development can be found at <a href="http://www.opengameart.org/">OpenGameArt.org</a>. OpenGameArt.org is a website that hosts &#8220;free, legal art for open source game projects&#8221;. It started small, but the amount of art has been growing fast. And the art that is being hosted on OpenGameArt.org is certainly not bad; it looks very good. If you are looking for art for your Free Open Source Game or want to support free game art (OpenGameArt.org accepts donations), then definitely check OpenGameArt.org.</p>
<p>So, there are initiatives focused on Free Open Source Gaming, but what about me? Through Sirrf I am trying to improve the Free Open Source Gaming ecosystem. I am wondering if I can have an impact on it in other ways, though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/11/free-gaming-alliance-continued/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Old Games</title>
		<link>http://www.dotsimplicity.net/2009/10/old-games/</link>
		<comments>http://www.dotsimplicity.net/2009/10/old-games/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 11:34:00 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/2009/10/old-games/</guid>
		<description><![CDATA[I&#8217;m a Gamer, can&#8217;t help it. Lately I&#8217;ve been rediscovering my PSX, while my original is broken, I found a excellent emulator and a neat rom site. With those, I can re-live Medieval times in Medievil one and two, jump on pigs in Tomba, and these are really 2 great games! Why doesn&#8217;t Steam have [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a Gamer, can&#8217;t help it. Lately I&#8217;ve been rediscovering my PSX, while my original is broken, I found a excellent emulator and a neat rom site. With those, I can re-live Medieval times in Medievil one and two, jump on pigs in Tomba, and these are really 2 great games! Why doesn&#8217;t Steam have some sort of PSX emulator with (seperate) games for sale? That&#8217;d be great. <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Games wouldn&#8217;t be expensive and it&#8217;d be hours and hours of fun. So, if you can get a PS 1 or 2 and also the games noted earlier, go get them, you&#8217;re missing out for a few bucks. Also worth noting is Spyro The Dragon, I don&#8217;t recall having so much fun with dragons without brutally slaying them and yelling OOM.</p>
<p>Sorry for the long time no update, hope you are still watching. <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Some small updates after the break.<br />
<span id="more-488"></span></p>
<h2>Medievil</h2>
<p>The first game I decided to play on the emulator. It was decent fun, but the best part was really in the story. It&#8217;s not the depth, but it&#8217;s the humor. The green gargoyles keep mocking you in really funny ways and the text is just top notch. Medievil&#8217;s story telling is for games what Shakespeare&#8217;s was for drama, a thing to strive for.You play Sir Daniel Fortesque who is a hero from long long ago. He battled his way to the evil sorcerer Zarok&#8217;s castle and with his dying breath he killed Zarok. At least, that what&#8217;s the books say. What really happened? Get the game, I don&#8217;t want to spoil that for you. But keep in mind that this is a really funny game. Anyhow, several decades or so later you wake up from the dead because Zarok is at it again and it is up to you to stop the evil sorcerer.</p>
<p>The sound was good! Almost every level has it&#8217;s own theme and they all fit, plus the voice acting! I like it a lot. In the Hall Of Heroes, a bonus-shopping level, each hero has it&#8217;s own accent and funny lines. Good stuff.</p>
<p>The gameplay was decent. Replay value is none, which makes it a short game. My first and only run through the game took me 5 hours. Some annoying things are the jumps: Fortesque can&#8217;t jump that good and you fall to your death way too often. It&#8217;s frustrating, it adds unnecessary repetition to the game. The fighting is more button bashing (or when you have a turbo-button like me, button holding) than strategicly doing stuff. You run, you charge your special attack, you kill the monsters. None of the monsters are a real threat which in the end makes this play more like a platformer and since Sir Dan sucks at jumping and steering him while running isn&#8217;t with the accuracy of a modern day FPS the game doesn&#8217;t score high on gameplay. The game has some wicked weapons and even a shield system which is easy to master and use, but you&#8217;ll never find yourself using it because you&#8217;re invincible as long as you keep hitting attack. It&#8217;s a shame really, the fighting could have made this game a lot more special and fun.</p>
<p>In the end:</p>
<p style="padding-left: 30px;">+Good story!<br />
+Good sound!<br />
+Lots of humor</p>
<p style="padding-left: 30px;">-Plays like a platformer, and not a very fun one.<br />
-No replay value, short playthrough, combined making it a short game.</p>
<p style="padding-left: 30px;">Medievil&#8217;s good sides make up for the suckier parts. Medievil is definitely worth a look: 6 points.</p>
<p>Stay tuned for when I finish my next game! <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/10/old-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sirrf version 0.2.1 released!</title>
		<link>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-1-released/</link>
		<comments>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-1-released/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 13:00:59 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Irrlicht]]></category>
		<category><![CDATA[Sirrf]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=465</guid>
		<description><![CDATA[0.2.1 is here, 9 days later the simple irrlicht framework team re-emerges with a feature and bug release. Some bugs have been fixed and some new features introduced, the changes include : 

Script-side GameStates
It is now truely possible to derive from the GameState class (through CGameState) in scripts. A bug in previous versions prevented this, [...]]]></description>
			<content:encoded><![CDATA[<p>0.2.1 is here, 9 days later the simple irrlicht framework team re-emerges with a feature and bug release. Some bugs have been fixed and some new features introduced, the changes include : </p>
<ul>
<li><strong>Script-side GameStates</strong><br />
It is now truely possible to derive from the GameState class (through CGameState) in scripts. A bug in previous versions prevented this, but this bug has now been fixed. </li>
<p></p>
<li><strong>Script-side Components</strong><br />
EntityComponent can be derived from script-side (through CEntityComponent), classes in script can now create components and register them with entities from script or engine side. </li>
<p></p>
<li><strong>Script-side Events</strong><br />
The event system is now integrated into the script engine. Script-side classes can derive from IHasSlots and can register, connect and disconnect from slot events. </li>
<p></p>
<li><strong>Important Bug Fixes: </strong>
<ul>
<li>Construction of entity components with parent is now relatively safe. If you are not sure whether your component has a parent, check it after construction. If the component has no parent, destroy it as quickly as possible </li>
<li>AssetProcessors on windows were never loading assets unless the files were all lowercase, restrictions were irrlicht related but solved. </li>
<li>Minor bug fixes with script side things, Scolor fixes, asset groups on entities and much much more. </li>
</ul>
</ul>
<p></p>
<p><strong>Useful links</strong><br />
SourceForge.net page &#8211; <a href="http://sourceforge.net/projects/sirrf">http://sourceforge.net/projects/sirrf</a><br />
Downloads &#8211; <a href="http://sourceforge.net/projects/sirrf/files/">http://sourceforge.net/projects/sirrf/files/</a> | <a href="http://www.ohloh.net/p/sirrf/download?package=Sirrf">http://www.ohloh.net/p/sirrf/download?package=Sirrf </a><br />
Documentation &#8211; <a href="http://sirrf.sourceforge.net/docs/0.2.1/">API</a> | <a href="http://sourceforge.net/apps/trac/sirrf/wiki/Tutorials/v0.2.1">Tutorials</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-1-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sirrf version 0.2.0 released!</title>
		<link>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-0-released/</link>
		<comments>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-0-released/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 14:44:01 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Irrlicht]]></category>
		<category><![CDATA[Sirrf]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=454</guid>
		<description><![CDATA[The latest release of Sirrf, the Simple Irrlicht Framework, version 0.2.0, is now available for download. In the two months since the previous release a lot of changes have taken place. These changes range from small API changes to major feature additions. The most noticeable changes include:

Asset Management
The biggest new feature is asset management. Assets [...]]]></description>
			<content:encoded><![CDATA[<p>The latest release of Sirrf, the Simple Irrlicht Framework, version 0.2.0, is now available for download. In the two months since the previous release a lot of changes have taken place. These changes range from small API changes to major feature additions. The most noticeable changes include:</p>
<ul>
<li><strong>Asset Management</strong><br />
The biggest new feature is asset management. Assets are managed by the AssetManager class. This manager manages so-called asset groups, which represent a collection of assets (meshes, textures, etc). These assets are retrieved from a directory with the appropriate directory structure. In turn the found assets are processed by asset processors. And at the end of the road, the user can use these assets without having to deal with paths. Furthermore asset management makes it possible to reload all assets in realtime, with direct results on the current scene. Reloading assets is as simple as one function call.</li>
<li><strong>XML-based Entity files</strong><br />
It is now possible to load data concerning entities and their components from XML-files. This means that you can now define a scene through XML-files.</li>
<li><strong>Local Event System</strong><br />
As of version 0.2.0 a HasEvents class, which provides the base for a local event system, is available. The availability of local event systems makes the entire framework more performant. Currently the HasEvents class is used by entities and asset groups.</li>
<li><strong>Microsoft Visual C++ 2008 support</strong><br />
Version 0.2.0 is the first release that officialy supports Microsoft Visual C++ 2008. This should make it easier to set up Sirrf-based projects accros multiple platforms.</li>
</ul>
<p>See the change log for more information regarding the changes in Sirrf version 0.2.0.</p>
<p>This is not the end of Sirrf&#8217;s development, though. Sirrf&#8217;s development will continue and Sirrf will undoubtely become even better in the future. And you, as a Sirrf user, as a member of the Irrlicht community, can help us improve the framework. This can be done by contributing code to the project, but also by testing the framework. Either way, we hope that Sirrf will be of use.<br />
</p>
<p><strong>Useful links</strong><br />
SourceForge.net page &#8211; <a href="http://sourceforge.net/projects/sirrf">http://sourceforge.net/projects/sirrf</a><br />
Downloads &#8211; <a href="http://sourceforge.net/projects/sirrf/files/">http://sourceforge.net/projects/sirrf/files/</a> | <a href="http://www.ohloh.net/p/sirrf/download?package=Sirrf">http://www.ohloh.net/p/sirrf/download?package=Sirrf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Gaming Alliance</title>
		<link>http://www.dotsimplicity.net/2009/06/free-gaming-alliance/</link>
		<comments>http://www.dotsimplicity.net/2009/06/free-gaming-alliance/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 21:12:05 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Alliance]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=358</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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 (<a href="http://www.alientrap.org/nexuiz/">Nexuiz</a>, <a href="http://www.wesnoth.org/">Battle for Wesnoth</a>, 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.</p>
<h3>Introduction to the Alliance</h3>
<p>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.</p>
<h3>Organization</h3>
<p>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.<br />
Furthermore the alliance could also advice projects on topics such as deadlines and anything else related to organization.</p>
<h3>Development</h3>
<p>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 (<a href="http://irrlicht.sourceforge.net/">Irrlicht</a>, <a href="http://www.ogre3d.org/">Ogre</a>, <a href="http://www.crystalspace3d.org/">CrystalSpace</a>, <a href="http://www.horde3d.org/">Horde3d</a>). 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.</p>
<h3>Publication</h3>
<p>And last but not least: publication. There are already various hosts for FOSS: <a href="http://sourceforge.net/">SourceForge.net</a>, <a href="http://code.google.com">Google Code</a>, <a href="http://www.ohloh.net/">Ohloh</a>. 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).</p>
<h3>Conclusion</h3>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/06/free-gaming-alliance/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sirrf version 0.1.1 released!</title>
		<link>http://www.dotsimplicity.net/2009/06/sirrf-version-0-1-1-released/</link>
		<comments>http://www.dotsimplicity.net/2009/06/sirrf-version-0-1-1-released/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 15:38:14 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Irrlicht]]></category>
		<category><![CDATA[Sirrf]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=349</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p><strong>Useful links</strong><br />
SourceForge.net page &#8211; <a href="http://sourceforge.net/projects/sirrf">http://sourceforge.net/projects/sirrf</a><br />
Downloads &#8211; <a href="http://sourceforge.net/project/showfiles.php?group_id=260711">http://sourceforge.net/project/showfiles.php?group_id=260711</a> | <a href="http://www.ohloh.net/p/sirrf/download?package=Sirrf">http://www.ohloh.net/p/sirrf/download?package=Sirrf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/06/sirrf-version-0-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sirrf version 0.1.0 released!</title>
		<link>http://www.dotsimplicity.net/2009/06/sirrf-version-010-released/</link>
		<comments>http://www.dotsimplicity.net/2009/06/sirrf-version-010-released/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 17:25:09 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Irrlicht]]></category>
		<category><![CDATA[Sirrf]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=299</guid>
		<description><![CDATA[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&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>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&#8217;s also the reason why Sirrf has jumped directly from pre-alpha status to beta status.</p>
<p>But what can Sirrf do for you? In it&#8217;s current state Sirrf offers game logic, graphics, scripting and sound control. Some noticeable features are:</p>
<ul>
<li><strong>Data Store</strong><br />
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.</li>
<li><strong>Entity Management</strong><br />
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.</li>
<li><strong>Event Management</strong><br />
Sirrf&#8217;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).</li>
<li><strong>Game Management</strong><br />
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&#8217;s main function, though, is to control the flow of the game through game state management. This class provides various features to this end.</li>
<li><strong>Scripting</strong><br />
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&#8217;s easy to extend Sirrf&#8217;s AngelScript bindings even further.</li>
</ul>
<p>You might be wondering, though, if Sirrf is really something for you. It&#8217;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.</p>
<p>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.</p>
<p><strong>Useful links</strong><br />
Development Hub &#8211; <a href="http://sourceforge.net/projects/sirrf">http://sourceforge.net/projects/sirrf</a><br />
Downloads &#8211; <a href="https://sourceforge.net/project/showfiles.php?group_id=260711">https://sourceforge.net/project/showfiles.php?group_id=260711</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/06/sirrf-version-010-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sirrf &#8211; Simple Irrlicht Framework (Help Wanted)</title>
		<link>http://www.dotsimplicity.net/2009/05/sirrf-simple-irrlicht-framework-help-wanted/</link>
		<comments>http://www.dotsimplicity.net/2009/05/sirrf-simple-irrlicht-framework-help-wanted/#comments</comments>
		<pubDate>Fri, 15 May 2009 15:19:49 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Irrlicht]]></category>
		<category><![CDATA[Sirrf]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=266</guid>
		<description><![CDATA[Team name
The Sirrf Project
Project name
Sirrf &#8211; 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, [...]]]></description>
			<content:encoded><![CDATA[<h3>Team name</h3>
<p>The Sirrf Project</p>
<h3>Project name</h3>
<p>Sirrf &#8211; Simple Irrlicht Framework</p>
<h3>Brief description</h3>
<p>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.</p>
<h3>Target aim</h3>
<p><em>Long term</em></p>
<p>Making a game isn&#8217;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.</p>
<p><em>Short term</em></p>
<p>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.</p>
<h3>Compensation</h3>
<p>Sirrf is open to donations, but this doesn&#8217;t guarantee regular financial compensation. So expect to work largely without financial compensation.</p>
<h3>Technology</h3>
<p>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:</p>
<p>Programming Language: C++<br />
Scripting Language: AngelScript<br />
Rendering: Irrlicht<br />
Sound: SFML-Audio</p>
<h3>Talent needed</h3>
<p><em>C++ Programmers</em></p>
<p>Sirrf is looking for additional programmers. Moderate knowledge of C++ is required. Knowledge of other components, such as AngelScript and Irrlicht, is preferred. You&#8217;ll work with other programmers over the SVN of Sirrf. As programmer you&#8217;ll be working on multiple different areas of the code, but it&#8217;s possible to specialize on one part of the code. Additional programmers on the following topics would be much appreciated:</p>
<p>- Core Development (graphics, scripting, I/O)<br />
- Physics</p>
<p><em>Windows and Mac OSX Maintainers</em></p>
<p>Sirrf is currently only supported on Linux; maintainers for Windows and Mac OSX are needed.</p>
<h3>Team structure</h3>
<p><em>Michael Bartsch</em></p>
<p>In the past I&#8217;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 <a href="http://code.google.com/p/aia-project/">Aia-project</a>, a project with the goal to create a small artificial intelligent robot. And before that I worked on <a href="http://sf.net/projects/ewrpg/">Entwined Worlds</a>, a 2D Action-RPG, that has never been released. Furthermore, I&#8217;m one of the editors of .simplicity.</p>
<h3>Contact Information</h3>
<p>Contact me via <a href="http://sourceforge.net/users/zccdark203/">SourceForge</a>.</p>
<h3>Additional Information</h3>
<p><em>Links</em></p>
<p>Development Hub &#8211; <a href="http://apps.sourceforge.net/trac/sirrf/">http://apps.sourceforge.net/trac/sirrf/</a><br />
SourceForge Project Page &#8211; <a href="http://sf.net/projects/sirrf/">http://sf.net/projects/sirrf/</a><br />
Subversion Repository &#8211; <a href="http://sirrf.svn.sourceforge.net/viewvc/sirrf/">http://sirrf.svn.sourceforge.net/viewvc/sirrf/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/05/sirrf-simple-irrlicht-framework-help-wanted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Component Oriented Entities</title>
		<link>http://www.dotsimplicity.net/2009/04/component-oriented-entities/</link>
		<comments>http://www.dotsimplicity.net/2009/04/component-oriented-entities/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 12:26:22 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software Idea]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Component]]></category>
		<category><![CDATA[Entities]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=181</guid>
		<description><![CDATA[Recently I started working at a game framework. The idea is to create a reusable framework that can be used across multiple platforms and libraries (I.e. Irrlicht, OGRE, SDL). Myself, I already have some experience with game programming (Entwined Worlds). However, all my previous game implementations were based upon the traditional deep hierarchy approach. At [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I started working at a game framework. The idea is to create a reusable framework that can be used across multiple platforms and libraries (I.e. Irrlicht, OGRE, SDL). Myself, I already have some experience with game programming (<a href="http://sf.net/projects/ewrpg/">Entwined Worlds</a>). However, all my previous game implementations were based upon the traditional deep hierarchy approach. At first sight this seems like a good idea, but I noticed that this approach always leads to very specialized entities. The true problem with this is that those entities often share various functionalities. And in order to prevent rewriting the same code over and over again, these functionalities are often put in a derived class from the base entity class. And the specialized entities then inherit from that class. The problem should become clear now: for every set of shared functionalities the programmer has to inherit from the base class (or maybe even an derived class). This can result in a gigantic unmaintainable tree of entities. Luckily, there is another approach called Component Oriented Entities.</p>
<p>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. An added advantage is the ability to describe these components (and thus the entities) in XML or a similar mark-up language.</p>
<p>Yesterday I actually had a discussion with Nick about Component Oriented Entities. Initially he disagreed with me as I had some trouble explaining the &#8220;dangers&#8221; of the blob anti-pattern (a huge single class with a large amount of complex functionality). Later on, he agreed with me, but he also pointed out some things to keep in mind. One of those things was the implementation. And I really agree with that as these kind of things stand or fall based upon the implementation. Which brings me to my own implementation of Component Oriented Entities. Please note that all of the following code has been placed in the public domain and that I&#8217;ll take no responsibility or liability of any kind for any use that you may make of this code.</p>
<p><span id="more-181"></span></p>
<p>Lets start with the Entity Manager.</p>
<p>EntityManager.h</p>
<pre class="brush: cpp;">
#ifndef __ENTITYMANAGER_H__
#define __ENTITYMANAGER_H__

// Include files
#include &quot;../dependencies.h&quot;
#include &quot;Entity.h&quot;

// Forward declarations
class Entity;

// EntityManager class
class EntityManager
{
public:

    // Initialisation and deinitialisation
    EntityManager();
    ~EntityManager();

    void init();
    void clear();

    // Methods
    bool addEntity(Entity *entity);
    Entity* createEntity(const std::string &amp;name);

    Entity* getEntity(const unsigned int id);
    Entity* getEntity(const std::string &amp;name);

    void removeAll();
    bool removeEntity(Entity *entity);
    bool removeEntity(const unsigned int id);
    bool removeEntity(const std::string &amp;name);

private:

    vector&lt;Entity*&gt; mEntities;
};

#endif
</pre>
<p>EntityManager.cpp</p>
<pre class="brush: cpp;">

// Include files
#include &quot;EntityManager.h&quot;

// EntityManager class
// EntityManager constructor.
EntityManager::EntityManager()
{
    init();
}

// EntityManager deconstructor.
EntityManager::~EntityManager()
{
    clear();
}

// Initialises the Entity Manager.
void EntityManager::init()
{
}

// Clears the Entity Manager.
void EntityManager::clear()
{
    // Clear entities.
    removeAll();
}

// Adds an entity to the Entity Manager.
bool EntityManager::addEntity(Entity *entity)
{
    // Did we get a valid pointer?
    if(entity == NULL)
      return false;

    // Look if a entity with given name doesn't already exist.
    if(getEntity(entity-&gt;getName()))
      return false;

    // Add the entity.
    mEntities.push_back(entity);

    return true;
}

// Creates an entity with the given name and adds it to the Entity Manager.
Entity* EntityManager::createEntity(const std::string &amp;name)
{
    // Look if a entity with given name doesn't already exist.
    if(getEntity(name))
      return NULL;

    // Add the entity.
    Entity *entity = new Entity(name);
    mEntities.push_back(entity);

    return entity;
}

// Gets the entity with the given ID.
Entity* EntityManager::getEntity(const unsigned int id)
{
    for(unsigned int i = 0; i &lt; mEntities.size(); i++)
    {
       if(mEntities[i]-&gt;getID() == id)
         return mEntities[i];
    }

    return NULL;
}

// Gets the entity with the given name.
Entity* EntityManager::getEntity(const std::string &amp;name)
{
    for(unsigned int i = 0; i &lt; mEntities.size(); i++)
    {
       if(mEntities[i]-&gt;getName() == name)
         return mEntities[i];
    }

    return NULL;
}

// Removes all entities.
void EntityManager::removeAll()
{
    for(unsigned int i = 0; i &lt; mEntities.size(); i++)
      delete mEntities[i];

    mEntities.clear();
}

// Removes the given entity.
bool EntityManager::removeEntity(Entity *entity)
{
    // Did we get a valid pointer?
    if(entity == NULL)
      return false;

    // Try to remove the entity.
    vector&lt;Entity*&gt;::iterator it;

    for(it = mEntities.begin(); it &lt; mEntities.end(); it++)
    {
        Entity *ent = *it;

        if(ent == entity)
        {
           delete ent;
           mEntities.erase(it);
           return true;
        }
    }

    // We couldn't find the entity and thus couldn't remove it.
    return false;
}

// Removes the entity with the given ID.
bool EntityManager::removeEntity(const unsigned int id)
{
    // Try to remove the entity.
    vector&lt;Entity*&gt;::iterator it;

    for(it = mEntities.begin(); it &lt; mEntities.end(); it++)
    {
        Entity *ent = *it;

        if(ent-&gt;getID() == id)
        {
           delete ent;
           mEntities.erase(it);
           return true;
        }
    }

    // We couldn't find the entity and thus couldn't remove it.
    return false;
}

// Removes the entity with the given name.
bool EntityManager::removeEntity(const std::string &amp;name)
{
    // Try to remove the entity.
    vector&lt;Entity*&gt;::iterator it;

    for(it = mEntities.begin(); it &lt; mEntities.end(); it++)
    {
        Entity *ent = *it;

        if(ent-&gt;getName() == name)
        {
           delete ent;
           mEntities.erase(it);
           return true;
        }
    }

    // We couldn't find the entity and thus couldn't remove it.
    return false;
}

// End of File
</pre>
<p>The Entity Manager takes care of organizing all entities. Through the Entity Manager it&#8217;s possible to create, add, get and remove entities. To this end the Entity Manager offers various methods.</p>
<p>Now lets look at the Entity class.</p>
<p>Entity.h</p>
<pre class="brush: cpp;">
#ifndef __ENTITY_H__
#define __ENTITY_H__

// Include files
#include &quot;../dependencies.h&quot;
#include &quot;EntityComponent.h&quot;

// Forward declarations
class EntityComponent;

// Entity class
class Entity
{
public:

    // Initialisation and deinitialisation
    Entity(const std::string &amp;name);
    ~Entity();

    void init();
    void clear();

    // Methods
    unsigned int getID() const;
    const std::string&amp; getName() const;

    bool addComponent(EntityComponent* component);

    EntityComponent* getComponent(const unsigned int id);
    EntityComponent* getComponent(const std::string &amp;name);

    void removeAll();
    bool removeComponent(EntityComponent *component);
    bool removeComponent(const unsigned int id);
    bool removeComponent(const std::string &amp;name);

private:

    // Static members
    static unsigned int mIDCount;

    // Normal members
    unsigned int mID;
    std::string mName;

    vector&lt;EntityComponent*&gt; mComponents;
};

#endif
</pre>
<p>Entity.cpp</p>
<pre class="brush: cpp;">

// Include files
#include &quot;Entity.h&quot;

// Entity class
// Static variables.
unsigned int Entity::mIDCount = 0;

// Entity constructor.
Entity::Entity(const std::string &amp;name)
: mName(name)
{
    mID = mIDCount++;

    init();
}

// Entity deconstructor.
Entity::~Entity()
{
    clear();
}

// Initialises the entity.
void Entity::init()
{
}

// Clears the entity.
void Entity::clear()
{
    // Remove all components.
    removeAll();
}

// Gets the ID of this entity.
unsigned int Entity::getID() const
{
    return mID;
}

// Gets the name of this entity.
const std::string&amp; Entity::getName() const
{
    return mName;
}

// Adds a component to the entity.
bool Entity::addComponent(EntityComponent *component)
{
    // Did we get a pointer to a component?
    if(component == NULL)
      return false;

    // Check if a component of the given type doesn't already exist.
    if(getComponent(component-&gt;getName()))
      return false;

    // Add new component.
    mComponents.push_back(component);

    return true;
}

// Gets the component with the given ID from this entity.
EntityComponent* Entity::getComponent(const unsigned int id)
{
    for(unsigned int i = 0; i &lt; mComponents.size(); i++)
    {
       if(mComponents[i]-&gt;getID() == id)
         return mComponents[i];
    }

    return NULL;
}

// Gets the component with the given name from this entity.
EntityComponent* Entity::getComponent(const std::string &amp;name)
{
    for(unsigned int i = 0; i &lt; mComponents.size(); i++)
    {
       if(mComponents[i]-&gt;getName() == name)
         return mComponents[i];
    }

    return NULL;
}

// Removes all components.
void Entity::removeAll()
{
    for(unsigned int i = 0; i &lt; mComponents.size(); i++)
       delete mComponents[i];

    mComponents.clear();
}

// Removes the given component.
bool Entity::removeComponent(EntityComponent *component)
{
    // Did we get a valid pointer?
    if(component == NULL)
      return false;

    // Try to remove the entity.
    vector&lt;EntityComponent*&gt;::iterator it;

    for(it = mComponents.begin(); it &lt; mComponents.end(); it++)
    {
        EntityComponent *comp = *it;

        if(comp == component)
        {
           delete comp;
           mComponents.erase(it);
           return true;
        }
    }

    // We couldn't find the entity and thus couldn't remove it.
    return false;
}

// Removes the component with the given ID.
bool Entity::removeComponent(const unsigned int id)
{
    // Try to remove the entity.
    vector&lt;EntityComponent*&gt;::iterator it;

    for(it = mComponents.begin(); it &lt; mComponents.end(); it++)
    {
        EntityComponent *comp = *it;

        if(comp-&gt;getID() == id)
        {
           delete comp;
           mComponents.erase(it);
           return true;
        }
    }

    // We couldn't find the entity and thus couldn't remove it.
    return false;
}

// Removes the component with the given name.
bool Entity::removeComponent(const std::string &amp;name)
{
    // Try to remove the entity.
    vector&lt;EntityComponent*&gt;::iterator it;

    for(it = mComponents.begin(); it &lt; mComponents.end(); it++)
    {
        EntityComponent *comp = *it;

        if(comp-&gt;getName() == name)
        {
           delete comp;
           mComponents.erase(it);
           return true;
        }
    }

    // We couldn't find the entity and thus couldn't remove it.
    return false;
}

// End of File
</pre>
<p>As you can see an entity is a collection of an ID, name and a vector of components. That means that an entity is largely defined by its components. These are in my implementation described by the EntityComponent class.</p>
<p>EntityComponent.h</p>
<pre class="brush: cpp;">

#ifndef __ENTITYCOMPONENT_H__
#define __ENTITYCOMPONENT_H__

// Include files
#include &quot;../dependencies.h&quot;
#include &quot;Entity.h&quot;

// Forward declarations
class Entity;

// EntityComponent class
class EntityComponent
{
public:

    // Initialisation and deinitialisation
    EntityComponent(Entity *parent);
    virtual ~EntityComponent();

    // Methods
    unsigned int getID() const;
    const std::string&amp; getName() const;

    const Entity* getParent();

protected:

    void setName(const std::string &amp;name);

private:

    // Static members
    static unsigned int mIDCount;

    // Normal members
    Entity *pParent;

    unsigned int mID;
    std::string mName;
};

#endif
</pre>
<p>EntityComponent.cpp</p>
<pre class="brush: cpp;">

// Include files
#include &quot;EntityComponent.h&quot;

// EntityComponent class
// Static variables.
unsigned int EntityComponent::mIDCount = 0;

// EntityComponent constructor.
EntityComponent::EntityComponent(Entity *parent)
: pParent(parent)
{
    // Get new unique ID.
    mID = mIDCount++;

    // Check if we got a valid pointer.
    if(parent == NULL)
      delete this;

    else parent-&gt;addComponent(this);
}

// EntityComponent deconstructor.
EntityComponent::~EntityComponent()
{
}

// Sets the name of the component.
void EntityComponent::setName(const std::string &amp;name)
{
    mName = name;
}

// Gets the ID of the component.
unsigned int EntityComponent::getID() const
{
    return mID;
}

// Gets the name of the component.
const std::string&amp; EntityComponent::getName() const
{
    return mName;
}

// Gets the parent of this component.
const Entity* EntityComponent::getParent()
{
    return pParent;
}

// End of File
</pre>
<p>And just as the Entity class, the EntityComponent is also fairly simple. You might be wondering, though, how these components communicate with each other and other parts of the framework. The truth is that I&#8217;ve build an Event Manager on top of this entity system that takes care of that. Unfortunately that Event Manager depends on a third-party library called <a href="http://sigslot.sf.net/">Sigslot</a> And I think that such thing is beyond the scope of this post. Partly, also because I&#8217;m still tweaking my Event Manager myself and don&#8217;t feel comfortable yet showing that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/04/component-oriented-entities/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Biggest problem in the modern game-industry (follow-up)</title>
		<link>http://www.dotsimplicity.net/2009/02/biggest-problem-in-the-modern-game-industry-follow-up/</link>
		<comments>http://www.dotsimplicity.net/2009/02/biggest-problem-in-the-modern-game-industry-follow-up/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 14:59:44 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Casuals]]></category>
		<category><![CDATA[Hardcores]]></category>
		<category><![CDATA[Nintendo]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=136</guid>
		<description><![CDATA[In a recent article I discussed the, in my opinion, biggest problem in the modern game-industry. The article focused on the segregation of the so-called casual and hardcore gamers. Especially the Nintendo Wii had a huge role in that article. In this follow-up article I would like to expand upon the previous article.
One of the [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://www.dotsimplicity.net/?p=112">recent article</a> I discussed the, in my opinion, biggest problem in the modern game-industry. The article focused on the segregation of the so-called casual and hardcore gamers. Especially the Nintendo Wii had a huge role in that article. In this follow-up article I would like to expand upon the previous article.</p>
<p>One of the things I mentioned in the previous article was Shigeru Miyamoto&#8217;s influence within Nintendo. I told that it would be interesting to see an antagonist of Miyamoto working within Nintendo. About two weeks after I had written that I read that Nintendo had teamed up with Masahiro Sakurai, the designer of Kirby and the well-known Super Smash Bros. series. But that wasn&#8217;t exactly what captured my interest. No, what I found interesting were this quotes by Nintendo&#8217;s CEO, Satoru Iwata:</p>
<blockquote><p><strong>“The thoughts of game designer Masahiro Sakurai and Nintendo have become one, and a new project has started. In order to expand what can be offered to the world through games, we will have Nintendo’s full cooperation and make something that Nintendo could not do on its own.”</strong></p>
<p><strong>“From our perspective, it’s not something that overlaps oddly with something that would come from Nintendo or those close to Nintendo. It’s something that can be made because Nintendo is backing you up, but is also something that Nintendo could not make.”</strong></p>
<p><strong>“If one were simply considering effective use of funding, we’d have went with a plan similar to Touch Generations. But that’s not I wanted. We want to make something that will be wanted even by the more hardcore game players, and something that offers new ideas.”</strong></p></blockquote>
<p><a href="http://www.andriasang.com/e/articles/2009/02/18/nintendo_sakurai_project_sora/">Link</a> (Andriasang.com)</p>
<p>These quotes don&#8217;t gaurantee success, but it&#8217;s clear that Nintendo is willing to look at the new ideas. The reason for this can be found in another recent publication. Apparently Nintendo has hired a company to figure out how to sell more games to Wii owners. Wii owners aren&#8217;t buying any games; they&#8217;re just playing Wii Sports. This seems to be in line with an earlier statement from Sega that the Wii is &#8220;the most expensive board game on Earth&#8221; (<a href="http://www.gamesindustry.biz/articles/darren-williams-part-one">link</a>). So, in that light Project Sora isn&#8217;t a complete surprise.</p>
<p style="margin-bottom: 0cm;" lang="en-US">According to Nintendo, Project Sora is bound to bring new ideas in the gaming world. What these ideas are nobody really knows, but I&#8217;m silently hoping that it will influence gaming as an art. Gaming went mainstream thanks to Nintendo&#8217;s efforts with the Nintendo DS and Nintendo Wii. It&#8217;s unfortunate to see people still consider games as a toy. Luckily it is no longer a toy only for children. But as many gamers know games are more than just toys. Myself I consider gaming as an artistic platform. It brings together visuals, music, narrative and interaction together in a very interesting way. Besides that games are also very suited for more serious applications such as education and simulation</p>
<p style="margin-bottom: 0cm;" lang="en-US">It&#8217;s unlikely, though, that Nintendo is going to tackle this issue alone. Nintendo might not even be the &#8220;right&#8221; company to deal with the problem. Some of the most interesting games have come from the smallest developers. But it should be clear that this isn&#8217;t really only Nintendo&#8217;s problem. This is an issue that is of interest to everyone in the industry. If we want to push gaming as the big next platform, then it&#8217;s time to work together on this. And then we can hopefully finally speak of gamers as everyone would use it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/02/biggest-problem-in-the-modern-game-industry-follow-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
