<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Koonsolo Blog» Indie Games Blog of Koonsolo</title>
	
	<link>http://www.koonsolo.com/news</link>
	<description>Koonsolo helps you create your own games!</description>
	<lastBuildDate>Thu, 24 May 2012 06:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/koonsolo" /><feedburner:info uri="koonsolo" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/koonsolo" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fkoonsolo" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Koonsolo wakes up from hibernation</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/VLcy2HsO2XQ/</link>
		<comments>http://www.koonsolo.com/news/koonsolo-wakes-up-from-hibernation/#comments</comments>
		<pubDate>Wed, 23 May 2012 19:35:21 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Koonsolo]]></category>
		<category><![CDATA[Make RPG]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=300</guid>
		<description><![CDATA[It&#8217;s  been a very long time since I updated anything related to Koonsolo.  Having a demanding full-time job, 2 young kids and building a house,  doesn&#8217;t leave much time to work on spare time projects. But since the  kids are getting a bit more independent, and we finally moved into our [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>It&#8217;s  been a very long time since I updated anything related to Koonsolo.  Having a demanding full-time job, 2 young kids and building a house,  doesn&#8217;t leave much time to work on spare time projects. But since the  kids are getting a bit more independent, and we finally moved into our  new home, I managed to squeeze some Koonsolo time back into my schedule.  Oh yes, that&#8217;s right, you can expect more to come soon!</p>
<p>I  left off working on the RPG Editor, and I will pick up from there.  Although there is a slight shift in focus: It will be an online web RPG  that you can edit on the fly. This means that all editing and playing  will happen in your browser. And since I love my new android tablet, I will  also support easy RPG editing on tablets. More info on this will  definitely follow.</p>
<p>I&#8217;m glad to be back! <img src='http://www.koonsolo.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="shr-publisher-300"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=300" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/VLcy2HsO2XQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/koonsolo-wakes-up-from-hibernation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/koonsolo-wakes-up-from-hibernation/</feedburner:origLink></item>
		<item>
		<title>Use a design tool to make an RPG</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/YS1yLlMyst0/</link>
		<comments>http://www.koonsolo.com/news/use-a-design-tool-to-make-an-rpg/#comments</comments>
		<pubDate>Thu, 10 May 2012 07:38:29 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Koonsolo]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=281</guid>
		<description><![CDATA[2 years after my original article on How to create RPG&#8217;s, this is the final installment.
The  easiest way to create an RPG is by using an RPG creation tool. The most famous of these tools is RPG Maker, but there are some  alternatives:

RPG Toolkit
Hephaestus
RPG Designer

RPG creation tools already include most of the programming, [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><em>2 years after my original article on <a href="http://www.koonsolo.com/news/how-to-make-rpgs/">How to create RPG&#8217;s</a>, this is the final installment.</em></p>
<p>The  easiest way to create an RPG is by using an RPG creation tool. The most famous of these tools is <a href="http://www.rpgmakerweb.com/">RPG Maker</a>, but there are some  alternatives:</p>
<div id="attachment_314" class="wp-caption alignright" style="width: 330px"><img class="size-full wp-image-314" title="RPG Maker" src="http://www.koonsolo.com/news/wp-content/uploads/2012/05/rpgmaker.jpg" alt="RPG Maker" width="320" height="243" /><p class="wp-caption-text">RPG Maker</p></div>
<ul>
<li><a href="http://rpgtoolkit.net/home/about/">RPG Toolkit</a></li>
<li><a href="http://markdamonhughes.com/Hephaestus/">Hephaestus</a></li>
<li><a href="http://sourceforge.net/projects/rpgdesigner/">RPG Designer</a></li>
</ul>
<p>RPG creation tools already include most of the programming, artwork, sound and music for  you. So the main thing you do is design the levels and gameplay. For a game designer without much technical or artistic skills, it&#8217;s definitely possible to create a nice game. Most tools also allow you to script some custom functionality, and let you import custom artwork. So clever programmers and amazing pixel artists can still add their own expertise into their game.</p>
<p>RPG designer tools might seem like toys, but don&#8217;t be fooled. There are  some professional game developers who earn a full-time living by  creating their RPG&#8217;s using RPG Maker. <a href="http://www.amaranthia.com/">Amaranth Games</a> and <a href="http://www.aldorlea.org/">Aldorlea Games</a> are both great examples.</p>
<p><span id="more-281"></span></p>
<div id="attachment_315" class="wp-caption alignleft" style="width: 330px"><img class="size-full wp-image-315" title="Aveyond" src="http://www.koonsolo.com/news/wp-content/uploads/2012/05/aveyond.jpg" alt="Aveyond" width="320" height="246" /><p class="wp-caption-text">Aveyond</p></div>
<h2>Advantages</h2>
<ol>
<li>No programming required</li>
<li>No artistic skills required</li>
<li>You can have a game up and running in no time</li>
<li>RPG Maker has a huge community that can help you out with all kinds of problems.</li>
</ol>
<h2>Disadvantages</h2>
<ol>
<li>You have to live within the framework that is provided</li>
<li>You don&#8217;t have total control, so some features or animations might not be possible</li>
<li>You are restricted to the supported platforms</li>
</ol>
<h2>Tip 1: Search for custom free artwork</h2>
<p>RPG Maker has a huge community, and a lot of people created custom art (tilesets, animations, music, sounds, &#8230;) and made it available for you to use for free.</p>
<h2>Tip 2: Search for ready made scripts</h2>
<p>Same as with custom artwork, a lot of scripts can be found on the net that already support that feature you wanted. These scripts can also be a great way to learn on how to create your own.</p>
<div id="attachment_317" class="wp-caption alignright" style="width: 330px"><img class="size-full wp-image-317" title="Asguaard" src="http://www.koonsolo.com/news/wp-content/uploads/2012/05/asguaard.jpg" alt="Asguaard" width="320" height="241" /><p class="wp-caption-text">Asguaard</p></div>
<h2>Tip 3: Don&#8217;t work against the framework</h2>
<p>RPG creation tools are created with certain assumptions in mind. So don&#8217;t swim against the current, but use as much as possible of what&#8217;s provided to you. Scripts can be helpful to modify or extend certain functionality, but don&#8217;t go writing the entire thing yourself.</p>
<h2>Conclusion</h2>
<p>RPG designer tools, and especially RPG Maker, seem like a great way to create your own RPG&#8217;s. It&#8217;s currently the fastest and easiest way to get your game going, but at the cost of losing some fine tuned control.</p>
<div class="shr-publisher-281"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=281" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/YS1yLlMyst0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/use-a-design-tool-to-make-an-rpg/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/use-a-design-tool-to-make-an-rpg/</feedburner:origLink></item>
		<item>
		<title>Make an RPG with an existing framework and resources</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/BZogfeZqfQA/</link>
		<comments>http://www.koonsolo.com/news/make-an-rpg-with-an-existing-framework-and-resources/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 11:57:51 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Koonsolo]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=264</guid>
		<description><![CDATA[
In my previous article I talked about how to create an RPG all by yourself. In case I wasn&#8217;t clear enough: the conclusion is that you shouldn&#8217;t attempt to do everything by yourself, unless you seriously know what you&#8217;re doing.
It&#8217;s possible to speed things up by taking advantage of what other people already created. RPG&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="alignright" title="Stendhall game made with the Marauroa engine" src="http://stendhalgame.org/wiki/images/3/34/Stendhal_0_65_fuzzy.png" alt="" width="373" height="312" /></p>
<p>In <a href="http://www.koonsolo.com/news/make-rpg-by-yourself/">my previous article</a> I talked about how to create an RPG all by yourself. In case I wasn&#8217;t clear enough: the conclusion is that you shouldn&#8217;t attempt to do everything by yourself, unless you seriously know what you&#8217;re doing.</p>
<p>It&#8217;s possible to speed things up by taking advantage of what other people already created. RPG&#8217;s seem to be very popular for game development projects, and a lot of people have made their own frameworks or even art available. So why not see if one of them fits your needs?</p>
<p><span id="more-264"></span></p>
<h2>RPG Frameworks</h2>
<p>I&#8217;ve assembled a list of RPG frameworks, but there are plenty more. You can always google for more frameworks and specify what details you want. For example which programming language, features, etc&#8230; .</p>
<ul>
<li><a href="http://www.spheredev.org/wiki/Sphere">Sphere</a>: A cross platform, open source computer program designed primarily to make role-playing games</li>
<li><a href="http://www.vbgore.com/Main_Page">vbGore</a>: A powerful, open source, and free online RPG engine that concentrates on performance and features.</li>
<li><a href="http://www.netgore.com/">netGore</a>: A free, open-source cross-platform online RPG engine written in C# and SFML.</li>
<li><a href="http://stendhalgame.org/wiki/Marauroa">Marauroa</a>: An open source framework and engine to develop turn based and real time games.</li>
</ul>
<h2>RPG Graphics or Models</h2>
<p><img class="alignleft size-full wp-image-275" title="Lost Garden Tileset" src="http://www.koonsolo.com/news/wp-content/uploads/2010/09/tiletest.png" alt="Lost Garden Tileset" width="320" height="240" /></p>
<p>There is plenty of ready made artwork for you to use in your RPG. You just have to find it. Both free and paying options are available. But even if you have to pay for it, it will save you plenty of time. Here are some resources to get you started:</p>
<p><strong>2D Game Graphics:</strong></p>
<ul>
<li><a href="http://www.molotov.nu/?page=graphics">RPG Sprites</a></li>
<li><a href="http://lunar.lostgarden.com/labels/free%20game%20graphics.html">Lost Garden game graphics</a></li>
<li><a href="http://www.rpg-palace.com/artists/xpexterior.php">RPG Palace Tilesets</a></li>
<li><a href="http://untamed.wild-refuge.net/rmxpresources.php?characters">Sithjester RPG Resources</a></li>
</ul>
<p><strong>3D Game Assets:</strong></p>
<ul>
<li><a href="http://www.opengameart.org/">OpenGameArt.org</a></li>
<li><a href="http://www.turbosquid.com/">TurboSquid</a></li>
<li><a href="http://artist-3d.com/">Artist3D</a></li>
<li><a href="http://www.exchange3d.com/">Exchange 3D</a></li>
</ul>
<h2>Sound and Music</h2>
<p>The atmosphere of your game is highly determined by the sounds and especially the music. There are websites that offer you royalty-free sounds and music, where you can probably find something that fits your needs.</p>
<ul>
<li><a href="http://www.soundsnap.com/">Soundsnap</a></li>
<li><a href="http://www.freesound.org/">The Freesound Project</a></li>
<li><a href="http://www.sounddogs.com/">SoundDogs</a></li>
<li><a href="http://www.soundrangers.com/">Soundrangers</a></li>
<li><a href="http://www.shockwave-sound.com/">Shockwave Sound</a></li>
</ul>
<h2>Conclusion</h2>
<p>There are a lot of resources available if you want to make your own RPG. Just Google for it and see if there is a ready made solution for you. Here are the pros and cons of using RPG frameworks and resources:</p>
<p><strong>Advantages:</strong><br />
1. Speed up your development<br />
2. Learn something from other peoples code<br />
3. Choose the art you like</p>
<p><strong>Disadvantages:</strong><br />
1. Every framework is restricted in some way or another: programming language, platform, &#8230; .<br />
2. You might need to tweak the art so everything fits together.</p>
<h2>Tip 1: Check the license</h2>
<p>I can&#8217;t stress this enough: when using ready made frameworks or content, first check if the license is OK. Some are restrictive for use in commercial products, other just require you to mention them in the credits or your own license, and others are completely free to use. So make sure you&#8217;re not breaking any licenses.</p>
<h2>Tip 2: Work Backwards</h2>
<p>Instead of first designing your game, and then searching for frameworks and content, why not work the other way around. Find a framework you like, find content you like, and see if you can design a game around it.</p>
<h2>Tip 3: Don&#8217;t be fooled by bad art</h2>
<p>A lot of Role Playing Game Frameworks have sample games, but most of them look hideous. Don&#8217;t be fooled. Great art and great programming has nothing to do with each other. Check out the things that really matter in a framework, and search for your own art assets.</p>
<p>In our next post, I&#8217;ll take a look at how to make an RPG really fast, and without any programming.</p>
<div class="shr-publisher-264"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=264" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/BZogfeZqfQA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/make-an-rpg-with-an-existing-framework-and-resources/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/make-an-rpg-with-an-existing-framework-and-resources/</feedburner:origLink></item>
		<item>
		<title>How to make an RPG all by yourself</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/-AMiLr3ibk4/</link>
		<comments>http://www.koonsolo.com/news/make-rpg-by-yourself/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 05:02:19 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Make RPG]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=234</guid>
		<description><![CDATA[This post is a part of the How to make RPG&#8217;s series, which shows you the different ways on how to make Role Playing Video Games. 
Creating an RPG all by yourself is a huge undertaking. To finish such a project, a lot needs to be done, and that&#8217;s probably an understatement. Let&#8217;s go over [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div id="attachment_239" class="wp-caption alignright" style="width: 330px"><a href="http://basiliskgames.com/eschalon-book-ii"><img class="size-full wp-image-239 " title="EschalonBook2" src="http://www.koonsolo.com/news/wp-content/uploads/2010/09/EschalonBook2.jpg" alt="Eschalon Book II" width="320" height="247" /></a><p class="wp-caption-text">Eschalon Book II from Basilisk Games</p></div>
<p><em>This post is a part of the <a href="http://www.koonsolo.com/news/how-to-make-rpgs/">How to make RPG&#8217;s</a> series, which shows you the different ways on how to make Role Playing Video Games. </em></p>
<p>Creating an RPG all by yourself is a huge undertaking. To finish such a project, a lot needs to be done, and that&#8217;s probably an understatement. Let&#8217;s go over everything:</p>
<p><span id="more-234"></span></p>
<h2>Program the entire game</h2>
<p>You need to write your entire game from scratch. Of course you can use game engines, but the game itself needs to be programmed by you. And remember that programming the game doesn&#8217;t only include coding the game, but also coding the graphical user interface, resource management, loading and saving the game, etc.</p>
<h2>Create all the art</h2>
<p>When doing everything yourself, this also means you need to create customs art for your game: characters, environments, background art, &#8230; . Items like characters also need to be animated. And it doesn&#8217;t stop there, your game also needs music and sounds. And don&#8217;t forget the menu graphics!</p>
<h2>Design the game</h2>
<p>For game designers, this is the most fun part: make RPG Characters, think about the plot and narrative hook, write the dialogues etc. RPG&#8217;s really depend on this, so you need to put in some extra time to write everything down.</p>
<h2>Is that all?</h2>
<p>That should be it to create your game. But if you want others to play it, or even pay for it, you also need a website, marketing materials, contact game review sites, find beta testers, &#8230; .</p>
<h2>Reality Check</h2>
<div id="attachment_241" class="wp-caption alignleft" style="width: 330px"><a href="http://www.torchlightgame.com/"><img class="size-full wp-image-241" title="Torchlight" src="http://www.koonsolo.com/news/wp-content/uploads/2010/09/torchlight.jpg" alt="Torchlight from Runic Games" width="320" height="240" /></a><p class="wp-caption-text">Torchlight from Runic Games</p></div>
<p>Creating an RPG like this is a huge undertaking. Want to make it 3D, with multiplayer? Then forget that you will be able to pull this off all by yourself.</p>
<p>If you don&#8217;t know how to get started on creating an RPG, or if you don&#8217;t know which programming environment, game library or art tools to use, then forget it!<br />
Creating an RPG by yourself should not be attempted if you are new to game development. But lucky for you there are other options. Don&#8217;t know how to program? No problem, you can still create your own RPG. I will explain this in the last installment of our <a href="http://www.koonsolo.com/news/how-to-make-rpgs/">How to make RPG&#8217;s</a> series.</p>
<h2>Conclusion</h2>
<p>As you can see it takes a huge amount of work to create an entire RPG. But of course there are advantages by doing it this way.</p>
<div id="attachment_242" class="wp-caption alignright" style="width: 330px"><a href="http://www.avernum.com/avernum6/index.html"><img class="size-full wp-image-242" title="Avernum 6" src="http://www.koonsolo.com/news/wp-content/uploads/2010/09/Avernum6.jpg" alt="Avernum 6 from Spiderweb Software" width="320" height="240" /></a><p class="wp-caption-text">Avernum 6 from Spiderweb Software</p></div>
<p>Advantages:</p>
<ol>
<li>Total control over development environment and target platforms.</li>
<li>Total control over asset tools.</li>
<li>Total control over every detail in your game.</li>
</ol>
<p>Disadvantages:</p>
<ol>
<li>You have to be a good (or even great) programmer, with prior game development experience.</li>
<li>You have to be a good artist.</li>
<li>You got to have lots of time available.</li>
</ol>
<p>To finish your game, you will have to be extremely motivated. Here are some tips if you want to go down this route:</p>
<ol>
<li>Assemble a team so you don&#8217;t have to do it all by yourself.</li>
<li>Use an existing graphical engine so you don&#8217;t have to write that.</li>
<li>Use existing tools (for example a map editor).</li>
<li>Use an easy programming environment (Flash, Python, &#8230;).</li>
<li>Keep it small:
<ol>
<li>Do it in 2D.</li>
<li>Forget Multiplayer.</li>
</ol>
</li>
</ol>
<p>So, who is brave (or foolish) enough to go down this route?</p>
<div class="shr-publisher-234"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=234" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/-AMiLr3ibk4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/make-rpg-by-yourself/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/make-rpg-by-yourself/</feedburner:origLink></item>
		<item>
		<title>How to make RPG’s</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/Lkj4c827LiA/</link>
		<comments>http://www.koonsolo.com/news/how-to-make-rpgs/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 11:51:32 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Make RPG]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=226</guid>
		<description><![CDATA[Welcome to the ultimate guide on how to make your own RPG&#8217;s!

Most game developers I know have a game idea for a Role Playing Game. So I assume you do too. But making such a game is a huge task, plus, there are so many possible ways on how to make one. That&#8217;s why I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Welcome to the ultimate guide on how to make your own RPG&#8217;s!</p>
<p><a href="http://db.tigsource.com/games/guardian-of-paradise"><img class="alignright" title="Guardian Of Paradise" src="http://i853.photobucket.com/albums/ab93/whiterabbit03/Guardian%20of%20Paradise/guardian_of_paradise_02.png" alt="" /></a></p>
<p>Most game developers I know have a game idea for a Role Playing Game. So I assume you do too. But making such a game is a huge task, plus, there are so many possible ways on how to make one. That&#8217;s why I&#8217;m writing a series of blog posts about the different paths you can take to create an RPG. This way you know what your options are, and which of those fit best with your situation.</p>
<p>As I see it, there are 3 mayor paths you can take to make an RPG:</p>
<ol>
<li><a href="http://www.koonsolo.com/news/make-rpg-by-yourself/">Do it all by yourself</a>.</li>
<li><a href="http://www.koonsolo.com/news/make-an-rpg-with-an-existing-framework-and-resources/">Use an existing RPG framework and resources</a>.</li>
<li><a href="http://www.koonsolo.com/news/use-a-design-tool-to-make-an-rpg/">Use an easy to use RPG creation tool</a>.</li>
</ol>
<p>I will highlight each of them in a separate blog post, starting from next week. So make sure you keep an eye on this blog, or even better, <a href="http://feeds.feedburner.com/koonsolo">subscribe to our RSS feed</a>!</p>
<div class="shr-publisher-226"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=226" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/Lkj4c827LiA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/how-to-make-rpgs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/how-to-make-rpgs/</feedburner:origLink></item>
		<item>
		<title>First video of our RPG Editor, showing tilemap editing</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/5srdr4BMB_k/</link>
		<comments>http://www.koonsolo.com/news/first-video-of-our-rpg-editor-showing-tilemap-editing/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 09:02:43 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Koonsolo]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=99</guid>
		<description><![CDATA[Our RPG Editor features a tilemap editor with a cool innovative feature. I call it &#8220;Tilemap Auto Layering&#8221;, and it makes tilemap creation faster and easier. You can see it in action in the video below. I hope you don&#8217;t mind my Flemish accent  .

 ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Our RPG Editor features a tilemap editor with a cool innovative feature. I call it &#8220;Tilemap Auto Layering&#8221;, and it makes tilemap creation faster and easier. You can see it in action in the video below. I hope you don&#8217;t mind my Flemish accent <img src='http://www.koonsolo.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/fEWZtGm89xM?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/fEWZtGm89xM?fs=1&amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div class="shr-publisher-99"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=99" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/5srdr4BMB_k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/first-video-of-our-rpg-editor-showing-tilemap-editing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/first-video-of-our-rpg-editor-showing-tilemap-editing/</feedburner:origLink></item>
		<item>
		<title>Turn your workplace into an RPG</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/UAGkp31K2A4/</link>
		<comments>http://www.koonsolo.com/news/turn-your-workplace-into-an-rpg/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 19:19:57 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://dev.koonsolo.com/?p=222</guid>
		<description><![CDATA[Have you heard of EpicWin? It&#8217;s an application for the iPhone that turns your todo list into a real life RPG. For every task you complete, you gain XP. This is a brilliant concept! It turns your boring todo list into something fun. Just watch the video below to get the idea.


I was just thinking: [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Have you heard of <a href="http://www.epicwinapp.com/">EpicWin</a>? It&#8217;s an application for the iPhone that turns your todo list into a real life RPG. For every task you complete, you gain XP. This is a brilliant concept! It turns your boring todo list into something fun. Just watch the video below to get the idea.</p>
<p><span id="more-222"></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/AmKwF_Si734&amp;hl=en_US&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/AmKwF_Si734&amp;hl=en_US&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I was just thinking: If you can do this for your todo list, why not do it for your bug tracking system? And the more I thought about it, the more it made sense. Every decent developer team uses a bugtracker (such as Bugzilla or Trac): a tester opens a new bug, a developer fixes it, the tester checks if it&#8217;s fixed and closes the bug&#8230; BORING!</p>
<p>What if a tester (aka Bug Summoner) searches for bugs, and when he finds one, summons a new Bug into the RPG bugtracker system. The developer (aka Bug Slayer) checks if it&#8217;s a valid bug. And if it is, he sends back XP to the Bug Summoner (because he found a valid bug). The Bug Slayer then kills that nasty bug. The Bug Summoner checks if it&#8217;s really dead, and if it is, the Bug Slayer receives XP. If it&#8217;s not dead, the Bug Summoner revives the bug and someone has to slay it properly.</p>
<p>You can even take this further and let your whole workplace run on an RPG system! Lots of employees procrastinate by playing games on Facebook during work hours. So why not let them play the Workplace RPG? Productivity is aligned with RPG goals. Gaining an XP level can give you a better company car, an extra vacation day, a raise, etc. Instead of hating Monday&#8217;s, you can now look forward to receiving those last eXperience Points to increase your skills or level up, or becoming the company&#8217;s &#8220;Slayer of the month&#8221;.</p>
<p>For managers or company owners this also makes sense. Having clear metrics on how well each individual is performing is priceless. Of course you will have to align the RPG rules with the company business goals.</p>
<p>After a quick search on Google I noticed <a href="http://news.bbc.co.uk/2/hi/technology/7030234.stm">this other article</a> with the same general idea. So am I just dreaming or could this actually work in an IT workplace? And would you want to work in such an environment?</p>
<p><em>Koen Witters</em></p>
<p><a href="http://twitter.com/koonsolo"><em>Follow me on twitter</em></a></p>
<div class="shr-publisher-222"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=222" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/UAGkp31K2A4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/turn-your-workplace-into-an-rpg/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/turn-your-workplace-into-an-rpg/</feedburner:origLink></item>
		<item>
		<title>Glimpse of the Koonsolo RPG Editor</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/ZRNw1luIG3A/</link>
		<comments>http://www.koonsolo.com/news/glimpse-of-the-koonsolo-rpg-editor/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:49:51 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Koonsolo]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=92</guid>
		<description><![CDATA[
It&#8217;s been a while since I released any news on Koonsolo. That&#8217;s because the last few months I was completely focussed on developing our Koonsolo RPG Editor. It&#8217;s still far from finished, but currently I can play with some functionality and get some cool results. I will create a video showing off some of that [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class=" alignright" style="border: 0pt none;" src="http://www.koonsolo.com/rpgeditor/paladin01.jpg" alt="Koonsolo RPG Designer" width="150" height="236" /></p>
<p>It&#8217;s been a while since I released any news on Koonsolo. That&#8217;s because the last few months I was completely focussed on developing our Koonsolo RPG Editor. It&#8217;s still far from finished, but currently I can play with some functionality and get some cool results. I will create a video showing off some of that stuff in the near future, so stay tuned!</p>
<p>Last weekend I created a <a href="http://www.koonsolo.com/rpgeditor">&#8216;Koonsolo RPG Editor&#8217; web page</a>. That page should give you an idea of what the final program will be able to do. I&#8217;m not promoting this page just yet, but I wanted to show it to you anyway <img src='http://www.koonsolo.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . So go and take a look at <a href="http://www.koonsolo.com/rpgeditor">http://www.koonsolo.com/rpgeditor</a>! If you have questions or remarks, don&#8217;t hesitate to mail me at <a href="mailto:koen@koonsolo.com">koen@koonsolo.com</a>.</p>
<p>Next time you&#8217;ll see some functionality in action <img src='http://www.koonsolo.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ,</p>
<p>Koen.</p>
<div class="shr-publisher-92"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=92" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/ZRNw1luIG3A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/glimpse-of-the-koonsolo-rpg-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/glimpse-of-the-koonsolo-rpg-editor/</feedburner:origLink></item>
		<item>
		<title>Object Oriented Programming doesn't need Encapsulation</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/9698-MMyw9Y/</link>
		<comments>http://www.koonsolo.com/news/object-oriented-programming-doesnt-need-encapsulation/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 13:20:40 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://dev.koonsolo.com/?p=213</guid>
		<description><![CDATA[Note: I use the term &#8216;Encapsulation&#8217; as a language mechanism for restricting access to some of the object&#8217;s components. Others might call this &#8216;information hiding&#8217;. 
Traditional Object Oriented Programming
In every object orientend programming course or book that I know, you get introduced to a concept called encapsulation. Encapsulation is a technique that allows you to [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><em>Note: I use the term &#8216;Encapsulation&#8217; as a language mechanism for restricting access to some of the object&#8217;s components. Others might call this &#8216;information hiding&#8217;. </em></p>
<h3>Traditional Object Oriented Programming</h3>
<p>In every object orientend programming course or book that I know, you get introduced to a concept called encapsulation. Encapsulation is a technique that allows you to protect implementation details while exposing only the interface. The advantage is that the rest of the code can only use the interface, and therefore is not dependent on the hidden implementation.</p>
<p>The thought behind the whole idea of encapsulation is that when implementing a class, you protect it against misuse. You make sure that the user can&#8217;t break it. You have total control over your class, and the user can only use that what you allow him to use. Another advantage is that providing a stable interface will protect implementation details that are likely to change, and therefore limiting interdependencies between software components. That is, it forces the users to do so.</p>
<p>Most Object Oriented programmers totally agree with all of the above, and I used to too. But that was until I met python.<span id="more-213"></span></p>
<h3>OOP without Encapsulation?</h3>
<p>Python supports Object Oriented Programming, but it doesn&#8217;t support encapsulation. Now how is that possible? Various OO programmers asked the same question in the python user group, and the end conclusion is pretty simple: you don&#8217;t need encapsulation for OO. In python everything is public, you just put and underscore before members or methods that are not part of the interface. If the user is going to use them, it&#8217;s at their own risk. Python programmers refer to it as &#8220;encapsulation by convention rather than enforcement&#8221;. But essentially it&#8217;s not encapsulation or data hiding at all. If you ask yourself why this would be an improvement, you probably don&#8217;t know that in some rare cases, it is necessary to access the implementation. Let me explain below.</p>
<h3>Using the &#8216;computer&#8217; metaphor</h3>
<p>I have this computer on my desk, and it&#8217;s a nice piece of engineering. It has a public interface which is clean and simple; On the front it has 2 buttons &#8220;Power&#8221; and &#8220;Reset&#8221;, and a few leds to show if it&#8217;s on or if the hard disk is accessed. On the back it has connectors where I can plug in the power, network, keyboard, mouse, screen, etc. .</p>
<p>When it&#8217;s broken or I want to upgrade, I can just buy a new one and it will provide me with the same interface.</p>
<p>What my computer doesn&#8217;t use, is proper encapsulation. Remember that encapsulation is restricting access to some of the underlying components. But with my computer, I can pop open the hood and do anything I want. The hardware manufacturer didn&#8217;t restrict my access to the underlying components, and I&#8217;m glad he didn&#8217;t. The thing is, when I open the computer case, I know 2 things:</p>
<ol>
<li>I might break stuff</li>
<li>Components inside the computer will probably change when I buy a new one.</li>
</ol>
<p>This is exactly what encapsulation is trying to prevent. But you know what, I want to have a choice. I want to be able to put a new hard drive or silent fan in there, and yes, I know the risks, and know a new computer probably won&#8217;t support them anymore. But as a user, it&#8217;s my responsibility to make the correct decisions for solving my problems.</p>
<p>So what would happen when the hardware manufacturer did use encapsulation. Well, then he would make it extremely difficult for you to open the case, and anytime you want something changed you need to go back to the shop.</p>
<p>Encapsulation restricts access to implementation details. While I&#8217;m not saying you should access implementation details, sometimes it might be handy to do so. With hardware I&#8217;m glad they don&#8217;t restrict me opening up the hood, so why would I like it in software?</p>
<h3>Abstraction instead of Encapsulation</h3>
<p>One definition of abstraction states: &#8216;the act of considering something as a general quality or characteristic, apart from concrete realities, specific objects, or actual instances.&#8217;. In programming terms this means that you provide an interface on top of an implementation, but the user only needs to know the interface (abstraction), and not care about the implementation details.<br />
The difference with encapsulation is that when the user wants to, he can still access the underlying details.</p>
<p>Most hardware uses abstraction instead of encapsulation. They provide an interface that&#8217;s not likely to change, but still allow &#8220;power users&#8221; to pop open the hood and access the implementation.</p>
<p>When using abstraction instead of encapsulation, the user can clearly see the interface, and use it in the same manner as with encapsulation. Users are encouraged to use the public interface, but are not restricted to it. When only using the interface, abstraction has the same benefits of encapsulation. But when needed he can also access the implementation behind it. And because of the clear distinction between interface and implementation, he is aware of the risks involved (ie breaking things and future incompatibility).</p>
<h3>A real world programming example</h3>
<p>Let me show you how this might work in the real world of programming. Suppose I&#8217;m writing an application that uses a multiplatform GUI library. Multiplatform libraries are great because they make porting really easy. Their public interface is the same across platforms, and so the method calls don&#8217;t need to be adapted when switching platforms.</p>
<p>Now suppose the Windows users of our application are requesting a certain feature. That features is not supported by the GUI library, but it is available in the underlying Windows implementation of that library (because MFC supports it for example).</p>
<p>At that point you must take a decision: If you respect encapsulation, you are limited to the following things:</p>
<ol>
<li>Implement it yourself on top of the GUI library, but this could mean rewriting a whole GUI control yourself (duplicating both the code of the GUI control, and the code of the MFC feature you want).</li>
<li>Contact the GUI library vendor to make it available in their public interface, but this also means they have to implement it themselves on all non-Windows platforms. In other words, you won&#8217;t have it available soon.</li>
<li>Switch your windows code over to a Windows specific GUI library. This will cost you some serious time, money and headaces.</li>
</ol>
<p>What if you would drop encapsulation and use abstraction? Well, in that case you still have the options above, but also an extra one. You&#8217;re able to access implemenation details, but then you will have to consider the risks:</p>
<ul>
<li>Accessing it is risky for breaking other parts of the GUI Library</li>
<li>Updates of that library might change the way they use MFC, so you will have to double check it every time you upgrade</li>
<li>Probably no official support for that from the Library Vendor</li>
</ul>
<p>The thing is, by using abstraction instead of encapsulation, you do have a choice whether the benefits outweigh the risks. And in this case, that&#8217;s probably correct. But remember, I&#8217;m not encouraging anyone to use implementation details, but in specific cases, it might be the best solution.</p>
<h3>How I do it</h3>
<p>Because Python doesn&#8217;t support encapsulation, I don&#8217;t have to do anything specific to use abstraction instead of encapsulation. I follow the conventions of putting underscores in front of methods and members, to make the distinction clear between interface and implementation. My users should only use my public interfaces, but if they really need to, they can &#8216;pop open the hood&#8217; pretty easily.</p>
<p>In more traditional object oriented languages, I use &#8216;public&#8217; for my public interface, and &#8216;protected&#8217; for my implementation details. You probably know the following expression from the &#8216;Gang of Four&#8217;: &#8220;Because inheritance exposes a subclass to details of its parent&#8217;s implementation, it&#8217;s often said that &#8216;inheritance breaks encapsulation&#8217;&#8221;. That last part is exaclty what I need for my abstraction <img src='http://www.koonsolo.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . My users use the public interface, but if they really want to, they can access all implementation details by deriving their own version from it.<br />
This also speeds up my development, because I don&#8217;t have to break my head over whether I should use private, package-private, protected or public. I use public for my interface, and protected for implementation details. I love to <em>Keep It Stupid Simple</em>.</p>
<h3>Encapsulation is not Security</h3>
<p>Sometimes it <em>is</em> necessary to protect or hide some data from the user. But in this case we are talking about security, and the worst way to implement security is through Object Oriented encapsulation.</p>
<h3>Conclusion</h3>
<p>Depending on implementation details is a bad idea. Therefore you should only use the public interface of a class. But for specific or unforeseen needs, it might be useful to be able to access implementation details. It&#8217;s the responsibility of the class to be as useful as possible, and the responsibility of the user to use it in a professional manner. Don&#8217;t treat your users like idiots, but treat them like professionals who make use of your class the best way possible, to solve their specific problems. If they to need access the implementation details, they probably have a good reason to do so, because else they wouldn&#8217;t. So don&#8217;t treat them like idiots by using encapsulation.</p>
<p>Koen Witters</p>
<div class="shr-publisher-213"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=213" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/9698-MMyw9Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/object-oriented-programming-doesnt-need-encapsulation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/object-oriented-programming-doesnt-need-encapsulation/</feedburner:origLink></item>
		<item>
		<title>More info on Koonsolo’s game editor</title>
		<link>http://feedproxy.google.com/~r/koonsolo/~3/XhSOjcELNgY/</link>
		<comments>http://www.koonsolo.com/news/more-info-on-koonsolos-game-editor/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 18:54:26 +0000</pubDate>
		<dc:creator>Koen Witters</dc:creator>
				<category><![CDATA[Koonsolo]]></category>

		<guid isPermaLink="false">http://www.koonsolo.com/news/?p=88</guid>
		<description><![CDATA[First of all I want to thank everyone who emailed me and wished me luck with my new project. I received some very nice emails and appreciate it very much!
I didn&#8217;t provide much details last time, so I hope to clarify some things in this post. The game editor is going to be aimed at [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>First of all I want to thank everyone who emailed me and wished me luck with my new project. I received some very nice emails and appreciate it very much!</p>
<p>I didn&#8217;t provide much details last time, so I hope to clarify some things in this post. The game editor is going to be aimed at creating old school 2D RPG Games like Final Fantasy or Chrono Trigger. This RPG Editor will run on Windows, Mac OS X and Linux. It will be very user friendly, so that anyone is able to create games. You won&#8217;t have to know how to program or how to create graphics. But if you&#8217;re an artist, you can of course import your own graphics and use them.</p>
<p>Some people asked if the game editor is going to be Open Source, but it won&#8217;t. It will be a proprietary product.</p>
<p>The editor will create Flash games, and they will run in any web browser. As a normal user you just click &#8220;Play&#8221; and the game will be completely generated for you. But if you&#8217;re a programmer, you can go into the source code of that game and implement or change anything you want. The game source code will use our Koonsolo Game Library, and that library will be Open Source. I will use the liberal <a href="http://en.wikipedia.org/wiki/ISC_license">ISC License</a>, which allows you to adapt anything you want and release your games as both commercial or free products.</p>
<p>I&#8217;m working together on this with fellow indie game developer <a href="http://www.amaranthia.com/">Amaranth Games</a>, known for their successful game series <a href="http://en.wikipedia.org/wiki/Aveyond">Aveyond</a>. Since Amaranth Games creates old school RPG games, they are the ideal partner.</p>
<p>All technical aspects will be handled by Koonsolo, so the game editor and game engine will be programmed by me <img src='http://www.koonsolo.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>I wanted to share all this info so you know what Koonsolo is up to. Since there hasn&#8217;t been any official announcement yet, you are the first to know about the collaboration of Koonsolo with Amaranth Games, and about the details of our upcoming RPG game editor <img src='http://www.koonsolo.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Kind Regards,</p>
<p>Koen Witters.</p>
<div class="shr-publisher-88"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --> <img src="http://www.koonsolo.com/news/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=88" width="1" height="1" style="display: none;" /><img src="http://feeds.feedburner.com/~r/koonsolo/~4/XhSOjcELNgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.koonsolo.com/news/more-info-on-koonsolos-game-editor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.koonsolo.com/news/more-info-on-koonsolos-game-editor/</feedburner:origLink></item>
	</channel>
</rss>

