<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5918907373348806734</atom:id><lastBuildDate>Wed, 16 Sep 2015 18:15:07 +0000</lastBuildDate><category>code</category><category>mornomia</category><category>programming</category><category>galaxy stations</category><category>productivity</category><category>project</category><category>IDE</category><category>brawl</category><category>contest</category><category>eee</category><category>engine</category><category>gaming</category><category>google</category><category>mingw32</category><category>mmo</category><category>multiplayer</category><category>opengl</category><category>pissed off</category><category>sdl</category><category>server</category><category>subversion</category><category>wii</category><category>achieveit</category><category>addiction</category><category>baltix</category><category>blog</category><category>browser</category><category>browsergame</category><category>combat</category><category>command line</category><category>compiz</category><category>concept</category><category>doxygen</category><category>duels</category><category>era of eidolon</category><category>fight system</category><category>game</category><category>game design</category><category>gladiatus</category><category>homebrew</category><category>internet</category><category>j2me</category><category>libwiisprite</category><category>linux</category><category>lotgd</category><category>mapeditor</category><category>mario galaxy</category><category>metaknight</category><category>mmorpg</category><category>mobile</category><category>motivation</category><category>nintendo</category><category>notepad</category><category>notepad++</category><category>numpad</category><category>ogame</category><category>old wish</category><category>phone</category><category>ruby</category><category>runescape</category><category>shadow of legend</category><category>sidescroller</category><category>skills</category><category>slavehack</category><category>snake</category><category>sphere</category><category>sprites</category><category>style</category><category>svn</category><category>symbian</category><category>tetris attack</category><category>tibia</category><category>tibiame</category><category>time</category><category>travian</category><category>ubucon</category><category>ubuntu</category><category>webcpp</category><category>windows mobile</category><category>xandros</category><title>Chaosteil&#39;s Blog</title><description>gaming and coding</description><link>http://chaosteil.blogspot.com/</link><managingEditor>noreply@blogger.com (Chaosteil)</managingEditor><generator>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-5873799620208622903</guid><pubDate>Sat, 30 May 2009 12:21:00 +0000</pubDate><atom:updated>2009-05-30T15:27:32.499+03:00</atom:updated><title>AwesomeScript</title><description>I have been working on a special project several months ago, which was really fun to develop and apparently &lt;a href=&quot;http://og5.net/christoph/&quot;&gt;the guy&lt;/a&gt; I&#39;ve been doing it for loves it, so I present you proudly:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;AwesomeScript&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;But first, a story for ya: We were working on a project which needed scripting support for users, but not harm the system or data. The available sandboxing php script was very unhandy and no other options were around. We first thought about implementing other scripting languages (Lua, python), but realized that integrating them as php extension would be a lot of work. So we sat around and developed a specification for a custom language, which we thought was a some awesome way to do this, we gave it the name AwesomeScript :)&lt;br /&gt;&lt;br /&gt;Now, AwS (as we started to call it) is designed to be very similar to JavaScript, and blocks all invalid function calls to an undefined or not allowed function. It currently doesn&#39;t have any class support, but that is open for the future. We might also publish the specification to AWS if you are interested enough. The test file in the repository has everything you need to know about it, but feel free to contact me if you have additional questions.&lt;br /&gt;&lt;br /&gt;The repository is available at github:&lt;br /&gt;&lt;a href=&quot;http://github.com/Chaosteil/AwesomeScript/&quot;&gt;http://github.com/Chaosteil/AwesomeScript/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have fun and feel free to fork me on github!&lt;br /&gt;&lt;br /&gt;PS: There are no released projects available, but I&#39;m working with &lt;a href=&quot;http://og5.net/christoph/&quot;&gt;Cpojer&lt;/a&gt; on several, so stay tuned!</description><link>http://chaosteil.blogspot.com/2009/05/awesomescript.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-6663714741679054039</guid><pubDate>Sun, 15 Mar 2009 14:43:00 +0000</pubDate><atom:updated>2009-03-15T22:21:37.528+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">ruby</category><title>Lempel-Ziv-Welch algorithm in ruby</title><description>Here is a small script I wrote for the fun of it. Originally I wanted to put it on twitter, but it got a bit too large for it. This made the code very compact, but also quite unreadable. However, I just made a blog post on it, and don&#39;t plan to expand or modify it any further. Pretty simple being, it converts a string to a Lempel-Ziv-Welch (LZW) encoded (semi-human-readable) string. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;ruby&quot;&gt;&lt;pre&gt;&lt;span class=&quot;comment&quot;&gt;# Variable initialization&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;to be or not to be. &lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;number&quot;&gt;100&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;d&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;[&#39;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&#39;]&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;c&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;l&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;false&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;# Algorithm&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;each_byte&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;|&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;ident&quot;&gt;l&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;true&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;chr&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;keyword&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;include?&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt; &lt;br /&gt;  &lt;span class=&quot;ident&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;push&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;ident&quot;&gt;c&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;chop&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;to_s&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;chr&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;ident&quot;&gt;t&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;ident&quot;&gt;l&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;false&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;l&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;true&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;ident&quot;&gt;c&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;to_s&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;# Output&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;original: &lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;to_s&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;compressed: &lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&#39;&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;to_s&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ident&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;c&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;The benefit of this &#39;compression&#39; isn&#39;t high, but it&#39;s something. For example, &quot;to be or not to be. &quot; is converted from 20 to 27 &quot;compressed&quot; characters. However, the same phrase, but used 100 times in succession (as in the example) gets compressed from 2000 to 846 characters.</description><link>http://chaosteil.blogspot.com/2009/03/lempel-ziv-welch-algorithm-in-ruby.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-7174597899506279487</guid><pubDate>Fri, 05 Sep 2008 17:52:00 +0000</pubDate><atom:updated>2008-09-05T22:13:10.662+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">homebrew</category><category domain="http://www.blogger.com/atom/ns#">libwiisprite</category><category domain="http://www.blogger.com/atom/ns#">tetris attack</category><category domain="http://www.blogger.com/atom/ns#">wii</category><title>libwiisprite</title><description>Oh well, I&#39;ve been doing it lately, but I didn&#39;t write about it at all in my Blog.&lt;br /&gt;&lt;br /&gt;A few months ago I started to get interested into Wii homebrew development. Homebrew means that you are running code that is not signed by Nintendo and not done with any help of them at all (as for example source code and documentations). The kickstart actually was made by the &lt;a href=&quot;http://hbc.hackmii.com/&quot;&gt;homebrew channel&lt;/a&gt;, which is just a really good piece of sofware I recommend to anyone who has a Wii. In fact, some of the developers even helped with some source code snippets, for wich I am really thankful.&lt;br /&gt;&lt;br /&gt;So I&#39;ve been getting into this whole scene, which was really fun. There was something magical involved to develop on a completely different platform. You had to learn lots of new stuff, most of which was undocumented and any kind of information was only barely available. So here I went, started to do stuff here and there, and as &lt;a href=&quot;http://chaosteil.blogspot.com/2007/11/vroom-vroom.html&quot;&gt;we know me&lt;/a&gt;, I started to work on a Tetris Attack clone. The basic went off pretty quickly, as I already had one done for my mobile phone, and in a very close timeline I made some blocks moving upward. I was quite proud of myself to do such feat, and I sat about 2 hours just designing the tiles.&lt;br /&gt;I was happy until I saw what the rendering library had done to my images.&lt;br /&gt;&lt;br /&gt;First you had to run it through the images some converting program to do your bidding, and then you had a stripped down version of it, with too-bright colors and such. This was maybe done to save some memory, but in my opinion the Wii has enough memory for some simple homebrew developer needs in 2D, so that decision was made irresponsibly and resulted, in fact, in lots of crappy games. There was a point in the homebrew scene where most of the best developers said just &quot;no&quot; to that rendering library and told everyone else to not use it. The main reason for this abandoning was, that it did not use the graphic processor of the Wii, but just one processor, which resulted in slower games than usual.&lt;br /&gt;&lt;br /&gt;So there was I, with a half-assed start for Tetris Attack clone and no rendering library I could use anymore to successfully launch that game. Since I was still always thinking about Galaxy Stations, and just somehow liked the Java Mobile game rendering library, and thought I could even improve on it. So I found some guy who just finished a game with the rendering library now everyone learned to hate. So I was here with feesh, and we started somehow from scratch writing that rendering/game library. Since I love OOP more than my right foot, it was coded in C++, and the first version was done and released in about a week, if not less. We called it libwiisprite, since that was essentially what it was. Quality was the main thing we had in mind for the library, so we had an extensive documentation ready from the first day.&lt;br /&gt;&lt;br /&gt;But that was not our main feature. Our library ran on the graphics processor for rendering actions. We had extensive options on how to display different images differently with zoom, rotation, and clipping. Our library featured even the ability to load any 32bit png if it was in the correct dimensions. That meant even the alpha layer got displayed correctly on the pngs. The object oriented design also allowed to develop games blazing fast, and our demo game was made in just a few hours. A video of the first version can be seen here:&lt;br /&gt;&lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/rTphJHQI_Mo&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/rTphJHQI_Mo&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;(note that this version is really outdated)&lt;br /&gt;&lt;br /&gt;Now libwiisprite supports lots of other features, for example transparency or special alpha blending for particles, stretching, and loads even loads 24bit and 16bit pngs. It has grown up, but it&#39;s still growing. A fun fact is, that it allowed for the first physics-based homebrew games on the Wii. As you may see, I&#39;m quite proud of it. The last versions for example fixed a lot of bugs in memory handling, and is now considered memory-leak-free, which was accomplished with the help of a lot of people, to which I am really thankful.&lt;br /&gt;&lt;br /&gt;You can check out the current version of libwiisprite (0.3.0b) on the &lt;a href=&quot;http://wiibrew.org/wiki/libwiisprite&quot;&gt;wiibrew wiki.&lt;/a&gt; Please notice that libwiisprite is not even a release candidate yet, but simply some library to play with. Polish is very important to this library, so before the 1.0.0 release there will be many revisions. This is however a base which will probably stay the same throughout the life of libwiisprite. &lt;a href=&quot;http://feesh.braingravy.co.uk/libwiisprite/&quot;&gt;The documentation&lt;/a&gt; is still on feesh&#39;s page, even though he is not developing the library anymore. In fact, even I can&#39;t sit so much on the sources anymore, since I have a job now, and I&#39;m studying software engineering at our university here in Vilnius. And I still somehow manage to find some time for my girlfriend and my friends... And some game development here and there.&lt;br /&gt;&lt;br /&gt;Note that libwiisprite is not the only one rendering library available, but it&#39;s just a very good one. Libwiisprite actually spawned some kind of competition. The old library for example, which used to be really bad, had a version update, and now also uses the graphics processor. It is however, C based, and game development is only easy and easy to maintain if the game is really small. It is still an alternative, which shouldn&#39;t be avoided, it all should depend on the needs of the game.&lt;br /&gt;&lt;br /&gt;So yep, that&#39;s what I was doing these few months. It was a really fun time, and I really learned a lot by doing this project. So to anyone who would like to have a specific program for anything: just program it. You learn a lot by even doing simple stuff. If you&#39;re working together in a team, you are also able to teach others your knowledge, as others are able to teach you. Working in teams is really nice for any kind of project, so let&#39;s that be my &quot;hidden&quot; message in this blog post.</description><link>http://chaosteil.blogspot.com/2008/09/libwiisprite.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-827610575606909171</guid><pubDate>Fri, 22 Aug 2008 21:11:00 +0000</pubDate><atom:updated>2008-08-23T03:15:02.664+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">addiction</category><category domain="http://www.blogger.com/atom/ns#">browser</category><category domain="http://www.blogger.com/atom/ns#">browsergame</category><category domain="http://www.blogger.com/atom/ns#">duels</category><category domain="http://www.blogger.com/atom/ns#">game</category><category domain="http://www.blogger.com/atom/ns#">game design</category><category domain="http://www.blogger.com/atom/ns#">gaming</category><category domain="http://www.blogger.com/atom/ns#">gladiatus</category><category domain="http://www.blogger.com/atom/ns#">lotgd</category><category domain="http://www.blogger.com/atom/ns#">ogame</category><category domain="http://www.blogger.com/atom/ns#">runescape</category><category domain="http://www.blogger.com/atom/ns#">slavehack</category><category domain="http://www.blogger.com/atom/ns#">travian</category><title>What makes browsergames so addictive?</title><description>Everyone knows them, some of them play them. Who starts to play, can&#39;t stop. It happens with every one of them. Browsergames. Since I&#39;m a freetime game developer, one thing that has been stuck in my eye is the sheer addictiveness of these browsergames. This is one of my few articles which will analyze gameplay and provide a simple reference for those who need it. I will go into detail why browsergames offer this kind of strange bond between the player and the browser and what can one do to improve upon it.&lt;br /&gt;&lt;br /&gt;First of all.. What are browsergames? They are most often some text-based games with some images you can play straight from your browser. There are some games like &lt;a href=&quot;http://www.travian.com/&quot;&gt;Travian&lt;/a&gt; (I will reference this game later, so check at least the screenshots out), &lt;a href=&quot;http://www.ogame.org/&quot;&gt;OGame&lt;/a&gt;, or to name a completely different one: &lt;a href=&quot;http://www.runescape.com/&quot;&gt;Runescape&lt;/a&gt;. You can play all these games in your browser, which qualify them for being a browsergame. Most of these games don&#39;t require any plugins, as for example Runescape does (it&#39;s still a Java applet), so I will discuss these, which just require the integrated browser renderer.&lt;br /&gt;&lt;br /&gt;As most of the guys of &quot;the scene&quot; know, there are a lot of strategy games. In fact, you really have to search to get to play an RPG or any other type. The main reason might be that the strategy games do not only prove to be very easy to create (think about it: some units, some map system, and voila, it&#39;s playable), but they also are somehow the king of addictiveness. My girlfriend for example tried several RPG browsergames until she just stuck to Travian, as it&#39;s much more immersive as the former. I&#39;d say she even got lucky to see the RPG games first, as now she will be probably lost in the whole mix of strategy games. To get yourself started: &lt;a href=&quot;http://lotgd.net/home.php?&quot;&gt;Legend of the Green Dragon&lt;/a&gt;, &lt;a href=&quot;http://www.duels.com/&quot;&gt;Duels&lt;/a&gt; and &lt;a href=&quot;http://www.gladiatus.com/&quot;&gt;Gladiatus&lt;/a&gt;. This is kinda sad for myself, as I&#39;m a huge fan of RPGs. One thing though is, that most of the strategy games are in outer space for some reason, which is awesome, so I&#39;d say touche. (I won&#39;t go into much detail to these, as they are there en masse.)&lt;br /&gt;There are also games like football, basketball managers, or stock investing games. I have not so much experience with those, but maybe some day. My favorite of the nonstandard bunch is &lt;a href=&quot;http://www.slavehack.com/&quot;&gt;Slavehack&lt;/a&gt;. Make sure you check it out.&lt;br /&gt;&lt;br /&gt;Having played lots of different games and analyzed them, I can provide a small list of what makes games addictive and what makes them just plain good. I made this list with help from some friends, so it&#39;s not purely my own opinion. Keep in mind, that these points are meant for game developers, or probably those who want to start developing these kind of games.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is addictive?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;1. &lt;b&gt;The simulated passiveness.&lt;/b&gt;&lt;/i&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;If you are a vivid player of these games, you may see that all these pages are saying that you can play when you want and how often you want, so you can play it just when you are hungry for some quick game. Together with some ridiculous build times for buildings and units if you compare with realtime strategy games (Warcraft 3 ~1min, Travian ~30min, other games go even as far as to caculate build times in days), you have a truly passive game. However, as you may notice, there are only few players who actually play it this passive way. Most of the people I know just sit around all day pressing F5 or start integrating themselves into a community. Your just plain passive game gets absolutely active. Once somebody else is say, attacking your base, from a simple 20min building plan you may start to use these resources to add some more soldiers. After the fight you start to build again. If you haven&#39;t got the logic behind it: A player may wait 20 minutes, but he checks every 5 minutes if he should change his plans to something more defensive or not.&lt;br /&gt;&lt;br /&gt;Now you have the completely unintentional effect of your browsergame being actually active. And here lies the trick: The user thinks he can play where and when he wants, but in reality he is constantly thinking about how to defend himself on a possible attack and integrate into the guild more to get a good defense shield, whatsoever. This is of course only an example, but it already tells how far a game can go.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;2. &lt;b&gt;PvP and Social Networking&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Most of the browsergames include some kind of PvP system. This is most of the time even the essential part of getting forward, even playing the game. Strategy games emphasize creating guilds and raid other guilds and their bases, and even RPG games these day must include some form of PvP. The kinda addictive game Duels mentioned earlier is on a complete PvP basis, as there are only a few bots to fight against, and the rest are players to get your experience from. This creates, contradictive to the name &quot;Player versus Player&quot;, a stronger bond in the community, and you have a sense of progress and may get a ridiculous amount of self-esteem. However, PvP does not only mean fighting against each other. There are a lot of forms of PvP.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Trade. A good trade system can make the difference between sucky game and good game. As far as trades go, they have to be easily accessible (maybe only with an upgrade to mark the status of entering the community?), and easily understood. Some games seem to implement a trade fee to stop swapping items back and forth, but this just hinders the gameplay, and you just often see in those games that the trade system does not flourish as good as it could have. A suggestion of mine is to make user created items of high value to keep everyone interested, but more to that later.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Leaderboards/Highscores. This is probably the oldest form of PvP. Who doesn&#39;t remember the unbeatable highscore in the arcades from yesteryear? This concept got in the fast few years more popular, as it was lost for some time, but came back with huge success. People love leaderboards, and the more you have the better. Have a overall leaderboard. Have a leaderboard for all classes/races you have in your game. Have a leaderboard for your guild. People love them. Give them what they want. Just make sure it&#39;s really not just one, as a big leaderboard with 100.000+ users can simply scare people away.&lt;/li&gt;&lt;li&gt;Ego. There is always the factor of &quot;my stuff is better than yours&quot;, and the more diversive your items are, the harder the good items can be obtained, the better this effect is. However, they should still be obtainable, we don&#39;t want implement a hard scripted AI fight, just to have everyone get their army killed there. There is also something, which can be easily implemented into any game, and can even make lots of fun to do: Ranks. Say if you have enough experience you gain the rank &quot;soldier&quot;, or if you complete a special event you gain the rank &quot;walrus&quot;. It can be completely nonsense, but if you have a player asking another player how to get that rank and if he actually starts questing for that rank, the game designer wins.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fight. This was already discussed, but it&#39;s for most people understood as the primary form of PvP, if not the single one, which is kinda sad.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;PvP can be very diversive, but PvP is nothing without something like a cooperative mode. Group play can often be a huge reason to play a game, and game developers should often encourage group playing, as for example give away bonuses for large groups or something like that. People will get together, stick together, and most importantly: the player can make friends, and get even more addicted to the game. Everybody wins! Group play should be a main focus for lots of the games, but most seem to miss this one. If you are a browsergame developer, please make sure you don&#39;t forget this point next time when you&#39;re imlpementing a new feature. It can catapult your game from a playable state to sheer awesomeness.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;3. &lt;b&gt;Clever backstory, but...&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Most of the games have a quite complex and interesting story behind them, but lets be honest. Who reads that stuff? You can do that when you&#39;re waiting to get some buildings done, but even then you won&#39;t spend more than 5 minutes on a nice, but several tome long story. Luckily, most games seem to understand this and offer a nice alternative: Have a story, but don&#39;t force the player to know it, or even understand it. Gameplay first, and the story should just support it. Give the player the choice to read/understand the story, or just play the game. We want something addictive, not something that needs to be read first. RPGs can get a bit deeper than strategy games for example, but that&#39;s only because of their storytelling-like nature. In the end of the day the game with the easiest to pick on gameplay wins, so don&#39;t pay a writing team if you can get some additional programmers to make your game even better.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;4. &lt;b&gt;Customization, or just standing out of the crowd&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;When you play a game, do you want to be like a sheep, the one which is just like all the others with some different hair? No, of course not. (There are exceptions, but pleaaase) Strategy games have their method of having the player decide which unit or building they want to upgrade and so support the guild their in. Some people in the guild provide defensive units, the other ones offensive, and by swapping some of them, the players not only get significant roles in a guild, but also a quicker and better way to get a full hardcore army for kicking some asses. That&#39;s just a basic level of customization. In fact, when one says &quot;customization&quot;, the others don&#39;t have the image of building or skill trees, but putting a logo onto a spaceship or such. If your technology allows that, put it in, but for example being able to design your own spaceship out of different parts into a decent fighter can be much more fun and engaging. If you have such a significant feature, make sure the user learns it early, so one does not get bored until the point when he finally &quot;gets to the awesome feature they write about everywhere&quot;. What a big nono for customization is, is a customizable UI. The UI should everywhere be consistent. Not only is there lot of development hell associated with it once you upgrade your game, but if somebody for example shows a screenshot of your game, you lose the possibility for fast recognition. You don&#39;t want somebody in a &quot;Your Game&quot; related forum to post &quot;Woah, which game is this?&quot;. However, if somebody makes a &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/748&quot;&gt;Greasemonkey&lt;/a&gt; script or &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/2108&quot;&gt;Stylish&lt;/a&gt; css style, make sure you track the popularity of the modification, so you can possibly add the most popular features to your own version of the UI.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;5. &lt;b&gt;Accessibility&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;This one should be the most obvious, but it&#39;s not. Often game developers create their games with no obvious introduction whatsoever. Most of the time it&#39;s just a lame link to a forum post where somebody states that you should do this, that, then that first and then you&#39;ll see. The user shouldn&#39;t even leave the game to get this information. He could maybe get a dramatic message with &quot;we are crash landed on this site, let&#39;s make sure we have enough energy supplies&quot;, which also generates a quest. (More to that later) Players automatically engage the whole system and start to understand it. Thankfully, in the last years this point got more attention, so you can see fewer games implementing this cumbersome style. In the course of the game every new element to the gameplay should have a short explanation of what it does and how to successfully use it, but don&#39;t overwhelm the user with too much information. Sometimes even a label with a quick explanation and a link which throws a popup where you can get more information is sufficient, but introducing the gameplay while playing the game is much more immersive, and well.. addictive.&lt;br /&gt;&lt;br /&gt;These points are just to make the game more addictive, but you can&#39;t have an addictive game without actually having good gameplay. Which game you will make is still your descision, but here are a few pointers which may help you play your game even better.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What feels good?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;1. &lt;b&gt;A living, breathing, changing world&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;In browsergames you have the possibility to create lots of environments without much graphics by just using text. You may be on a planet, and an indicator for &quot;It&#39;s raining, grain generation+&quot; can always make a player more happy. Some browsergames implement some sort of map, where every planet/building/field has a different color code to quickly distingish which type of environment we have here and what we can do with it.&lt;br /&gt;Very clever developers may even implement a day/night cycle into their games, where at different daylight times there may be different events or even some new gameplay options (for example a black market for stolen equipment). The possibilities are endless, and the player gets a feeling that the world he plays in is real. If the NPCs don&#39;t only fly around, but if you say have a bad reputation with the pirates and they start attacking you often, you succeeded in making a living, breating world.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;2. &lt;b&gt;Analyze how people play, evolve around it&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;This is actually very hard to pull off. Say the players found some workaround on how to do a thing easier, and you as game developer don&#39;t want that sort of thing in your game. Stop. Make sure you discuss that with the players. Why did they do it the easy way? Was the original way not fun enough? Does this new way actually support game play? Also, say if people always go kill in an RPG in some zone where some weak monsters drop good items. You may modify the zone monsters to drop something less powerful, but you can place a hard to kill boss in there, who drops even better items. So people now not go kill alone these small little useless monsters anymore, but may switch to a new target, and for example even finally form groups.&lt;br /&gt;Also, log as much as possible from the players. Don&#39;t invade their privacy, but check out which skills get used the least, which one more often, and then you are able to balance them out, if you please. Before any change though, make sure you talk with your already established player base, but don&#39;t be too soft on them, as you may do something that is good for the overall game.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;3. &lt;b&gt;Achievements&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Oh yes, the fun part. Todays game always seem to have&lt;i&gt;&lt;b&gt; &lt;/b&gt;&lt;/i&gt;some kind of goal tracking system. It&#39;s fairly easy to implement and absolutely supports the way how people approach that game. There may be very easy achievements for everyone, and some hard obtainable for hardcore gamers. These are as easily implemented as ranks, so the more ridiculous, the more fun you will have developing the game, and the more fun the players will have playing it. Some addition to this achievement system would be to have them to have different levels, so you may get a bronze badge if you kill 10 monsters, and can upgrade it to silver if you kill 100 monsters. Achievements should be easily viewable by everyone, so players may ask each other &quot;wow, how did you get THAT?&quot; and that is one form of social networking which is very pleasant to everybody.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;4. &lt;b&gt;Everything should just feel overpowered, but not actually be overpowered&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;This may sound strange, but it actually can also differentiate between a good game and a mediocre game. This is actually a point where each game has to find the perfect balance point for itself. For RPGs for example you can have a powerful skill in one minute, but in the next you are overwhelmed by a very strong enemy, so you upgrade your skill to take that enemy down. The curve has to be steady, but not too much.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;5. &lt;b&gt;Quests are good for you&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Now this is just one part which everyone likes. Somehow people like to have goals and at the same time float around and do nothing. With a quest system you can have that freedom of doing nothing but still everything. They can even keep a player stuck to that game if his friends for example are all offline. Quests should have a nice descriptive text, but the quest message should always have a short explanation of the quest for quick reference as well as a peek at what he gets when he completes the quest, so the player is actually motivated to do the quest. The perfect quest is a quest chain, where the player has to find a larger group of players to get the last reward. A friend finder this instant! Sadly, I played some games, where you get only 5 or so quests when you start the game and that&#39;s it, only 3 more through the whole course of the game or so. It&#39;s kinda strange to see that, especially if the game revolves around doing the same thing over and over again. Quests can give that diversity the game probably needs. If one stays all the time in his base, a quest can move the player to attack an unknown zone, and so explore even more gameplay possibilities.&lt;br /&gt;&lt;br /&gt;So that was my small article on how browsergames work and how one could improve them. I was very sleepy while writing it, so please excuse any errors you may encounter. I also hope to see more games to implement some of these features mentioned here, as that would help us to see games of even better quality.</description><link>http://chaosteil.blogspot.com/2008/08/what-makes-browser-games-so-addictive.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-1470995608070601123</guid><pubDate>Sat, 17 May 2008 09:38:00 +0000</pubDate><atom:updated>2008-11-13T09:55:48.040+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">baltix</category><category domain="http://www.blogger.com/atom/ns#">compiz</category><category domain="http://www.blogger.com/atom/ns#">eee</category><category domain="http://www.blogger.com/atom/ns#">mapeditor</category><category domain="http://www.blogger.com/atom/ns#">ubucon</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><category domain="http://www.blogger.com/atom/ns#">xandros</category><title>Ubuntu 8.04 on the Eee</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SC6uNtBgtyI/AAAAAAAAAGM/Mu-78-MdPcc/s1600-h/300px-Ubuntueeelogo2smaller.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SC6uNtBgtyI/AAAAAAAAAGM/Mu-78-MdPcc/s320/300px-Ubuntueeelogo2smaller.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5201286170106967842&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Recently I saw a website about &lt;a href=&quot;http://ubuntu-eee.tuxfamily.org/index.php5?title=Main_Page&quot;&gt;Ubuntu on the Eee PC&lt;/a&gt;, and I thought hey, why not install it? They said two weeks ago that they will release the whole package, but then they got wifi driver problems and so the release was delayed.&lt;br /&gt;I grew really tired of using my Xandros-based system, with upgrade-complicated unionfs and quite old software, thus I was really willing to do the switch to anouther operating system, especially Ubuntu.&lt;br /&gt;Anyway, now I am using it, and I can really recommend it to others. There are (at least on my Eee) no problems whatsoever, and even Compiz works very nice out of the box, which was impossible with Xandros.&lt;br /&gt;Anyway, once I installed it, I also had to do some tweaks to make it perfect for my Eee (most of the stuff can be found on the &lt;a href=&quot;http://ubuntu-eee.tuxfamily.org/index.php5?title=How_to_configure_Hardy&quot;&gt;hardy configuration page&lt;/a&gt;, but still look for what you really need when doing the configuration), and that used up a half hour of my time, which is quite fast for a complete configure for a PC. Then I could start the tweaking, which I personally looove.&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/SC6s1NBgtxI/AAAAAAAAAGE/CDseDkst9Gw/s1600-h/Screenshot.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/SC6s1NBgtxI/AAAAAAAAAGE/CDseDkst9Gw/s320/Screenshot.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5201284649688545042&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Even though it is awesome, the better system does not come without a price. The system loads up significally slower, but not as slow as some youtube videos where Ubuntu loads almost 2 minutes. The system is still usable after a short amount of time, and it works really nice.&lt;br /&gt;&lt;br /&gt;That makes me think.. Why even bother with the default system and not install a system, one is familiar with like Fedora or Ubuntu. With some simple tweaks you can get not a crippled system, but a full working, complete system, with a real good userbase and regular updates (unionfs made updates eat up too much space). After my install of Ubuntu (I made a 256MB swap), I had 1.5GB free space, which was even a bit more than Xandros gave first. With removal of additional programs, I had now even more space, which was impossible on Xandros.&lt;br /&gt;&lt;br /&gt;Anyway, as you can see, I am quite happy that I installed Ubuntu, and I recommend it to any other EeePC user, who is unhappy with his default system.&lt;br /&gt;&lt;br /&gt;Right now I am at &lt;a href=&quot;http://www.ubucon.lt/&quot;&gt;Ubucon&lt;/a&gt;&#39;08 in Lithuania, which is quite a nice experience. I haven&#39;t thought there were so much Open Source supporters here, and I will probably go again next time. I even got a free CD with &lt;a href=&quot;http://www.baltix.lt/&quot;&gt;Baltix&lt;/a&gt;, which I will try at home, just to see how different it is from the standard Ubuntu distribution.&lt;br /&gt;&lt;br /&gt;Next time I will finally talk about my mapeditor. (screenshot above)&lt;br /&gt;&lt;br /&gt;(logo made by &lt;a href=&quot;http://ubuntu-eee.tuxfamily.org/index.php5?title=User:Waffel&quot;&gt;waffel&lt;/a&gt;)</description><link>http://chaosteil.blogspot.com/2008/05/ubuntu-804-on-eee.html</link><author>noreply@blogger.com (Chaosteil)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_PVs3bg7eMKk/SC6uNtBgtyI/AAAAAAAAAGM/Mu-78-MdPcc/s72-c/300px-Ubuntueeelogo2smaller.png" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-5699950487881867428</guid><pubDate>Fri, 02 May 2008 21:50:00 +0000</pubDate><atom:updated>2008-11-13T09:55:48.686+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">combat</category><category domain="http://www.blogger.com/atom/ns#">era of eidolon</category><category domain="http://www.blogger.com/atom/ns#">j2me</category><category domain="http://www.blogger.com/atom/ns#">mmo</category><category domain="http://www.blogger.com/atom/ns#">mmorpg</category><category domain="http://www.blogger.com/atom/ns#">mobile</category><category domain="http://www.blogger.com/atom/ns#">mornomia</category><category domain="http://www.blogger.com/atom/ns#">multiplayer</category><category domain="http://www.blogger.com/atom/ns#">old wish</category><category domain="http://www.blogger.com/atom/ns#">phone</category><category domain="http://www.blogger.com/atom/ns#">server</category><category domain="http://www.blogger.com/atom/ns#">shadow of legend</category><category domain="http://www.blogger.com/atom/ns#">sphere</category><category domain="http://www.blogger.com/atom/ns#">symbian</category><category domain="http://www.blogger.com/atom/ns#">tibia</category><category domain="http://www.blogger.com/atom/ns#">tibiame</category><category domain="http://www.blogger.com/atom/ns#">windows mobile</category><title>What&#39;s up in the mobile MMO world?</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SBugB_xi2AI/AAAAAAAAAF0/uM2laVLxC40/s1600-h/MornomiaDevScreen5.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SBugB_xi2AI/AAAAAAAAAF0/uM2laVLxC40/s320/MornomiaDevScreen5.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5195922551261550594&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;As many of my readers probably know, I am developing &quot;Mornomia Mobile&quot; (codename), an MMORPG for mobile phones which simply have J2ME (Java) and possibly even a low resolution. It is made to run on low end platforms, with a flexible codebase to automatically adjust even for high end phones. This provides a maximum possible userbase for a quite high-spec&#39;d genre.&lt;br /&gt;&lt;br /&gt;But developing such a game also requires to know what other products are there on the market. For that purpose I did a research on some other mobile MMORPG&#39;s  to find out what these games have to offer and where Mornomia Mobile can improve, if it even needs to improve, based on our current concept.&lt;br /&gt;&lt;br /&gt;1. &lt;a href=&quot;http://www.tibiame.com/&quot;&gt;TibiaME&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SBuRM_xi18I/AAAAAAAAAFU/j-Nu1bVJZb4/s1600-h/phone3.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SBuRM_xi18I/AAAAAAAAAFU/j-Nu1bVJZb4/s320/phone3.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5195906247565694914&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;(Symbian, J2ME)&lt;br /&gt;&lt;/div&gt;The only one really similar to Mornomia Mobile in terms of 2D MMORPG. TibiaME has a simple real time combat system, has two classes, allows interaction with NPCs, like quests, and some other features. I would really play it longer, if it had just a little amount of... depth. Yeah, it plays a little weird. You just walk around, and walk against stuff. Thats the main interaction of this whole game. The combat system is &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;really&lt;/span&gt; basic, as in &quot;You have a weapon, you kill stuff&quot; basic. Getting quests is also not so enjoyable, because the text of the NPCs displays too slowly and sometimes you can&#39;t even skip what they say. Also a hassle for the first time user is the really weird GUI ingame. It&#39;s so weird, I can&#39;t even explain it. Just try it.&lt;br /&gt;That said, the community seems quite large, and they are still expanding the game, so even if this game has flaws, I recommend to try it out. Even if it is just for checking out how mobile MMORPGs look and play nowadays.&lt;br /&gt;&lt;br /&gt;2. &lt;a href=&quot;http://www.shadowoflegend.com/&quot;&gt;Shadow of Legend&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SBufB_xi1_I/AAAAAAAAAFs/qRxYe6_HaZU/s1600-h/3_o1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SBufB_xi1_I/AAAAAAAAAFs/qRxYe6_HaZU/s320/3_o1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5195921451749922802&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;(&lt;/span&gt;PC, Windows Mobile)&lt;br /&gt;This one is quite interesting. According to the website, players of the PC version can play simultaneously with mobile devices and vice versa. This is accomplished by making a complete port of the game to a mobile device, which was quite a nice idea. I imagine playing this game at home,and when on the road with my mobile phone. These possibilities are quite nice. I would try it out, if I had a mobile device (or the PC version if I had a subscription). The game seems quite feature rich, with some races and classes to choose from, and it even looks like it has a decent combat system. But then, a Windows Mobile device is almost a full working PC, so this should be the minimum for such a type of game.&lt;br /&gt;&lt;br /&gt;3. Old Wish III&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_PVs3bg7eMKk/SBuadvxi1-I/AAAAAAAAAFk/I2TR2e_FUmg/s1600-h/eng_screen01.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://2.bp.blogspot.com/_PVs3bg7eMKk/SBuadvxi1-I/AAAAAAAAAFk/I2TR2e_FUmg/s320/eng_screen01.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5195916430933153762&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;(J2ME)&lt;br /&gt;A Chinese MMORPG. Even though the Koreans are known for developing a lot of MMO&#39;s, this time a Chinese company got first. The game looks really nice, with nostalgic SNES-like graphics and a round-based combat system. I haven&#39;t played this game, but I believe it&#39;s quite good, because according to the publisher, it has 300.000 registered users, which is quite an accomplishment for a mobile MMORPG. Any additional info of this game is very hard to get, even though I would be very interested in a feature list or other possible information.&lt;br /&gt;&lt;br /&gt;Edit:&lt;br /&gt;4. &lt;a href=&quot;http://www.eraofeidolon.com/&quot;&gt;Era of Eidolon&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SB75fPxi2BI/AAAAAAAAAF8/7fFvUUVMbMg/s1600-h/eraofeidolon.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/SB75fPxi2BI/AAAAAAAAAF8/7fFvUUVMbMg/s320/eraofeidolon.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5196865335237728274&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;(J2ME)&lt;br /&gt;Less realtime MMORPG than a strategic RPG. There is no real overworld to walk on, as there is only a town with some buildings you have to select. You start pretty basic, as you just have to go to the arena and fight. This staright-to-the point style is quite nice, if it only was realtime. Apparently they have about 200.000 users, but the last update they had was on October 6th. And I don&#39;t even know which year they mean. The idea of the game seems nice, and the roundbased strategic combat system is a good design choice considering the low-bandwidth and hyper-laggy mobile world. This was the only mobile MMO with a &lt;a href=&quot;http://www.eraofeidolon.com/?go=download&quot;&gt;page to try it out first&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It may seem strange, but many of the mobile MMORPGs that once were (&lt;s&gt;Era of Eidolon&lt;/s&gt;, Sphere..) ceased to exist, or at least at the time when this post was written, down. Comments I could get about these games were that they sucked and/or had horrible bugs. As with Mornomia Mobile, the server nears the 3.0 status, as my second rewrite progresses. The rewrite is now gameplay-centered, not connection-centered, to allow faster modifications of the game itself, and so enhance the playability. For example, instances are now implemented very nice in the server, without any needs for change of code in the client whatsoever. Implementing instances is very nice, as you can also include single player elements in an MMORPG, and such enhance the experience and fun of the game. And I won&#39;t even start talking about replayability...&lt;br /&gt;As you could see maybe, was that the combat system for me in a MMORPG has highest priority, and I really hope I can reflect that in Mornomia Mobile. In fact, should and will not differ too much from a standard MMORPG for the PC, at least that&#39;s the goal.&lt;br /&gt;&lt;br /&gt;The next post will possibly brag about the new mapeditor, but I guess the post won&#39;t appear soon, but we&#39;ll see.</description><link>http://chaosteil.blogspot.com/2008/05/whats-up-in-mobile-mmo-world.html</link><author>noreply@blogger.com (Chaosteil)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_PVs3bg7eMKk/SBugB_xi2AI/AAAAAAAAAF0/uM2laVLxC40/s72-c/MornomiaDevScreen5.png" height="72" width="72"/><thr:total>19</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-5042519601967600622</guid><pubDate>Sun, 02 Mar 2008 22:22:00 +0000</pubDate><atom:updated>2008-03-03T00:55:24.356+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">eee</category><category domain="http://www.blogger.com/atom/ns#">IDE</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">mingw32</category><category domain="http://www.blogger.com/atom/ns#">mornomia</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><title>And now it begins...</title><description>After slacking off for a few weeks (months), now it&#39;s finally time to start working on a final build of Mornomia. Well, not final, but at least a release to the public would be appreciated. But I&#39;m not talking about a simple release of what we already have done. Mornomia requires a lot of recoding, especially on the server, so our team decided that we will make a completely new server system, one that is reusable, and make a Mornomia layer on it. If Mornomia stays a layer in this system, and does not grow together with the system itself, Mornomia could not only be easily replaced, but it can be extended and fixed faster. This new server system will definitely help us to show the world what a mobile phone is capable of, and you will soon see what it means to play a full fledged MMO on a phone.&lt;br /&gt;&lt;br /&gt;Anyway, I&#39;m now almost completely converted to my Eee PC, I&#39;m barely touching my desktop anymore. The screen might be small, and the mouse might be not quite comfortable, but it does its job, and with some practice even the keyboard gets like second nature. This little laptop is quite the beast considering its low price and processor speed. It somehow works even faster than my normal desktop, and that might be the reason I&#39;m not touching it anymore. Since also my development shifted to the Eee, here I have some tips for future developers (like my teammembers):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don&#39;t use an IDE. I&#39;ve tried. Yes, I already said that I hate IDEs, but I tried it on the Eee again. Too much of a hassle for this little fella. Use a normal editor. I for example use &lt;a href=&quot;http://cream.sourceforge.net&quot;&gt;Cream&lt;/a&gt;. It&#39;s basically a modern Vim, a layer on it you might say. It&#39;s really comfortable (as I am a heavy Windows user), powerful, and does its job, and with a small enough font size it&#39;s perfect for the Eee.&lt;/li&gt;&lt;li&gt;GCC is my compiler of choice. A no-brainer here. With mingw you even have the same compiler on Windows.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Get a SDHC card. You will be compiling all over the place, and you have to be sure that you will have enough space. It&#39;s also nice to save a bit of lifetime of your SSD drive. I&#39;m now waiting for mine, so I can install the JAVA Wireless Toolkit on it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Versioning versioning versioning. Just make sure you post all your code to a safe versioning server (like subversion), or you will regret it later. Just trust me in this one.&lt;/li&gt;&lt;/ul&gt;The Eee is kinda a really nice development laptop. You can carry it everywhere, code everywhere, write your notes everywhere. With a versioning system placed on a dedicated server you can always have your code with you, which is very nice when you are, for example, in a coffee shop and just got an uber leet (en: amazing) idea, which you want to realize as soon as possible.&lt;br /&gt;&lt;br /&gt;I really do not regret my purchase (and I&#39;m a cheapass, 1100Lt is a looooooot to me) and hope that this laptop will help making the server system even faster than I could without it. So yeah, get ready this year for the best mobile experience ever.</description><link>http://chaosteil.blogspot.com/2008/03/and-now-it-begins.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-1108778518616806494</guid><pubDate>Wed, 27 Feb 2008 18:31:00 +0000</pubDate><atom:updated>2008-02-27T20:32:03.953+02:00</atom:updated><title>Arrr, I&#39;ve got some winnings</title><description>So well well well, it&#39;s almost a month since we presented Mornomia Mobile (well, in fact, two months) to Bite, a mobile operator in Lithuania, for a contest. Today we went to the award-ceremony during our class, and such could slip through some not-so-much liked classes. Long story, short meaning:&lt;br /&gt;&lt;br /&gt;We won in the category &quot;Best Game&quot;.&lt;br /&gt;&lt;br /&gt;Yes, yes yes yes yes yes. We finally won something! Mornomia was quite a beast working with, and it&#39;s really nice to see that it finally gets the appreciation it should have get even last year. We won a nice cash prize, which we will invest into a server, or anything that is needed for developing and launching Mornomia. Finally. Even though I expect results only in six months, since the whole exam fizzle right now is really eating a lot of time, and the server has to be rewritten (maybe made together from copypasta) to a completely new and stable server system with a more flexible core and better security systems. Mornomia also needs a new interface handler, to handle a new help system (one of the problems Bite noticed) and better support on completely different mobile phones. Right now Mornomia is basically a MUD without monsters or quests. Well, there are monsters and quests, but right now it&#39;s more like a mobile RPG-like chatroom. Which yeah, you&#39;ve already guessed - sucks a lot.&lt;br /&gt;&lt;br /&gt;Many people told us now, that Mornomia has quite potential now, and we will really try to use that potential. This game shouldn&#39;t go unnoticed, as it is even right now the most advanced mobile MMORPG, and I don&#39;t fear to say that.&lt;br /&gt;&lt;br /&gt;Thanks by the way to all my team members for all the support and everything that they&#39;ve done. I don&#39;t think it would have been possible without them. Also big thanks to my girlfriend, as she has always supported me and always pushed me up, when my motivation was down to the ground and even lower.&lt;br /&gt;&lt;br /&gt;This is a new type of MMORPG (mumorpuger), and I&#39;m fucking proud of it. Get ready. This year will be very special. Just watch...</description><link>http://chaosteil.blogspot.com/2008/02/arrr-ive-got-some-winnings.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-8497606856739344372</guid><pubDate>Tue, 26 Feb 2008 14:57:00 +0000</pubDate><atom:updated>2008-02-26T16:58:23.157+02:00</atom:updated><title>My precious!</title><description>So here I am, again. Took me some time again, but quite faster than last time. Since this is somewhat like a revolution in Chaosteil-computing, you can expect that I will blog a lil&#39; more often and regulary. It&#39;s not that anything happened with my already sick mind, no, it&#39;s just that I got a new gadget, which is quite awesome.&lt;br /&gt;&lt;br /&gt;I&#39;ve got an Eee PC. THE beast in ultraportable (and cheap, don&#39;t forget, being a cheap-ass is awesome) computing, and this blog will be quite just about bragging how awesome it is.&lt;br /&gt;&lt;br /&gt;Well first of all, this is quite my first REAL laptop, the other ones before that were the ones of my parents or else, so they weren&#39;t actually mine. Except my first one.&lt;br /&gt;Being obsessed since my childhood with high-tech and shizz, I decided to get a very cheap one, used, whatever. It had about 16 Mhz (which was even then as lame as you could get), a black-white screen and about 2 seconds of runtime without A/C. Yeah, it was lame. But it had one significant thing, which was at that time quite awesome for me: QuickBasic. Hell yes. With QuickBasic I learned many things about programming. Yeah, maaany. Actually not: I could do simple I/O, never heard of any cycles and never tried to get any better, maybe because I couldn&#39;t quite understand the higher level syntax of other source codes, and maybe because I was simply focused on making text adventures, which were quite lame in their own ways (My text adventures of course, Zork is still awesome)&lt;br /&gt;&lt;br /&gt;Soo here I am again, but this time I have a quite nice laptop. It isn&#39;t quite the death machine a geek like me dreams of, but it fills its purpose: I can code with it.&lt;br /&gt;One of the first things I&#39;ve done with this PC: install nethack. Well yeah, but after that I installed all my basic coding utilities:&lt;br /&gt;&lt;div class=&quot;webcpp&quot;&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;sudo apt-get install build-essential subversion&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And that&#39;s it! The last thing I&#39;m waiting for is Code::Blocks, but even that isn&#39;t necessary on this little thing, as it got kwrite already installed, which is a nice on-the-go editor. And it has helluva lot already installed. It would really be sad to format everything, as it has everything needed for using an operating system. As I said, a neat, small, on-the-go laptop.&lt;br /&gt;&lt;br /&gt;And with on-the-go, I mean on-the-go. This laptop, is ultra, no, hyperportable, I can even brush my teeth with one hand and surf the web with my other hand, while holding the laptop in it. It is really small, fast (I have yet to experience something like a slowdown or an instance, where it is slower than my desktop), lightweight, and hell, it has my favorite operating system running smooth on it. Even if it was first very hard to get used to that damn keyboard, now I&#39;m even touchtyping with it nicely, with minimal backspace-using, so in a few days I can start to code normally and fluently without any hickups.&lt;br /&gt;&lt;br /&gt;Well, so this was my quite biased &quot;review&quot; about the Eee. If there are any questions, give me a comment.&lt;br /&gt;&lt;br /&gt;PS: It is really a waste to not carry this little fella everywhere you go. It is designed to be ultraportable, so let it be an ultraportable laptop.</description><link>http://chaosteil.blogspot.com/2008/02/my-precious.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-1799854628862847146</guid><pubDate>Sat, 09 Feb 2008 20:23:00 +0000</pubDate><atom:updated>2008-02-09T22:27:21.156+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">achieveit</category><category domain="http://www.blogger.com/atom/ns#">blog</category><category domain="http://www.blogger.com/atom/ns#">brawl</category><category domain="http://www.blogger.com/atom/ns#">gaming</category><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">metaknight</category><category domain="http://www.blogger.com/atom/ns#">motivation</category><category domain="http://www.blogger.com/atom/ns#">multiplayer</category><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">snake</category><title>After a while</title><description>Ok, I must admit, I neglected my blog for a short time, and that was mainly because I&#39;m just plain lazy. Even though there are so many things to talk about, let&#39;s just focus on two things: Gaming and Programming. Ironically, this is what this whole blog is all about. I&#39;ll start with the gaming part.&lt;br /&gt;&lt;br /&gt;Brawl. Yes, I have it, and yes, it&#39;s awesome. Nuff said.&lt;br /&gt;But seriously, I waited so long, so many YEARS for this game, and the last minutes before I inserted a full working disc into my Wii were terrific. I&#39;ve been a huge fan of the series, up to a fanboi even, and it has always been a lot of fun to play it with my friends, and lately even my girlfriend enjoys it. Anyway, I can&#39;t tell a lot of impressions, because I&#39;m just too busy playin&#39; (to that level, where I don&#39;t care much about anything else, which I personally find horrible, since I just can&#39;t stop), so I&#39;ll just post a random Brawl video:&lt;br /&gt;&lt;object width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/vi-cAjSfRN0&amp;rel=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/vi-cAjSfRN0&amp;rel=1&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;(Yes, Metaknight ownage. I&#39;m trying to main Metaknight, so obviously a video with him)&lt;br /&gt;For now I can&#39;t say any flaws, as I just started to play, and my fanboishness has to go away first. And I&#39;m probably going to wait for the US release until I post a message how I feel about the new brawl in all its completeness.&lt;br /&gt;&lt;br /&gt;But then, besides of Brawl, there is another thing I want to talk about. Programming. And my post for the day will be about motivation. Hell yeah, motivation. I seriously need to get that stuff. For example, instead of working on my mobile project, I... Well, I waited for Brawl, did other stuff, I was simply disgusted by the idea that I should work on it. Nothing moved my stinky ass, even when I opened Notepad++, I saw my code, tried to focus, but I simply wouldn&#39;t move. Maybe it&#39;s because my teammates weren&#39;t doing anything too, or to put it short, as much as I did. Even though I did a hell of a lot more before, and it&#39;s kinda sad, that I don&#39;t want to sit on it anymore. The last lines of code were a very very very basic fight system, and that is utter shit. Anyway, I have some motivation on another project, and that will may be ported to the Mornomia system, thus making it helluva better. It&#39;s a multicell dynamic server system, and if everything turns out well, it will be portable to every massive online multiplayer game imaginable, in a few lines of code. I don&#39;t want to talk about it a lot, as it is only in the planning phase, and I&#39;m still writing some of the base/basic algorithms for it, but the system is quite robust, since I won&#39;t be repeating some damn errors I made for the previous servers.&lt;br /&gt;&lt;br /&gt;I now fully understand, why Google forces to work some time on an own project, where nobody interferes and no time-limit is made, since this really supports a free mind, and gives an opportunity to make something unexpected by other team members. For example, the known and loved Geometry Wars was first a tech demo to test the analog stick of the Xbox, until it got quite popular to everyone in the team.&lt;br /&gt;&lt;br /&gt;If nothing else to boost up the motivation works, I recommend to read this blog: &lt;a href=&quot;http://www.persistenceunlimited.com/&quot;&gt;Achieve-IT&lt;/a&gt;&lt;br /&gt;There are some very useful tips there, and it&#39;s quite fun to read how you can hack yourself to work on stuff.&lt;br /&gt;&lt;br /&gt;Well then, that&#39;s it for today, maybe I&#39;ll post something next week.</description><link>http://chaosteil.blogspot.com/2008/02/after-while.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-2146433845328231278</guid><pubDate>Mon, 17 Dec 2007 21:37:00 +0000</pubDate><atom:updated>2007-12-17T23:52:53.205+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">contest</category><category domain="http://www.blogger.com/atom/ns#">mornomia</category><category domain="http://www.blogger.com/atom/ns#">pissed off</category><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">project</category><title>Some mobile phones are just &amp;*#($&amp;#</title><description>I know, I shouldn&#39;t say this because I am developing an (cross platform, it&#39;s JAVA) application for mobile phones myself, but this... This is simply too much.&lt;br /&gt;&lt;br /&gt;Imagine, you have a pretty uber leet mobile phone, like say the Nokia E61, which one of my friends has, and on every pretty simple mobile phone works my application, except on his. After a week of searching for information, i found this nice post from 2003 (I just can&#39;t tell how angry I am, as it is still relevant): http://www.russellbeattie.com/notebook/1002646.html&lt;br /&gt;&lt;br /&gt;OK, what the fuck Symbian? Why are you supporting J2ME sockets, even if you&#39;re not completely supporting it? At the first glimpse, I&#39;d say, this is completely bugged, and for a freetime developer completely unacceptable. And it&#39;s not about second party/third party developers. You have to actually &lt;span style=&quot;font-weight: bold;&quot;&gt;make the code worse&lt;/span&gt; to fully use the Symbian approach, even if it works on all other phones too. That&#39;s just dumb. You have to rewrite so many applications just to allow an operating system for mobiles, that almost nobody has. Talk about growing user base...!&lt;br /&gt;&lt;br /&gt;As for now, I doubt that I&#39;ll make Mornomia Mobile available for Symbian phones. If the project launches well, maybe I think about it, but now it&#39;s just too much work. Thank science, I made the code of the server very flexible (the client still needs some rewrite), and such implementing a multisocket system is only a question of time (and headaches). In fact, only recently the server stopped crashing, since one simple pointer wasn&#39;t set NULL, as I didn&#39;t identify it as a pointer, as the reference tells me blah blah blah, short story long talk, it works now, and after rewriting some of the client code, I can finally work on stuff that really matters. Like MySQL server implementation. And LUA scripts. And a map editor (omg, no!). And whatnot. Yeah, this one&#39;s a beast, but I&#39;ll try, I&#39;ll try...</description><link>http://chaosteil.blogspot.com/2007/12/some-mobile-phones-are-just.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-256008595728388131</guid><pubDate>Fri, 07 Dec 2007 21:03:00 +0000</pubDate><atom:updated>2008-11-13T09:55:48.970+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">brawl</category><category domain="http://www.blogger.com/atom/ns#">nintendo</category><category domain="http://www.blogger.com/atom/ns#">pissed off</category><category domain="http://www.blogger.com/atom/ns#">wii</category><title>Hate.</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/R1m8Iao87PI/AAAAAAAAAC8/psMPFbs21M0/s1600-h/various15_071127a-l.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/R1m8Iao87PI/AAAAAAAAAC8/psMPFbs21M0/s320/various15_071127a-l.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5141347302396194034&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Oh my science. I so hate you now, Nintendo. I mean, seriously, WHY? WHY DO YOU HAD TO DELAY SMASH BROS. BRAWL FOR EUROPE? First Metroid Prime 3 with its month-delay, then Mario Galaxy (wow, a week), but this is UNACCEPTABLE! This is the list for the Europe Release dates on Wii:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;11th January&lt;/i&gt;&lt;br /&gt;PDC World Championship Darts 2008&lt;br /&gt;&lt;br /&gt;18th January 2008&lt;br /&gt;Wii Chess&lt;br /&gt;Zack and Wiki: Quest for Barbaros&#39; Treasure&lt;br /&gt;Donkey Kong Jet Race&lt;br /&gt;&lt;br /&gt;&lt;i&gt;25th January&lt;/i&gt;&lt;br /&gt;Hamster Heroes&lt;br /&gt;&lt;br /&gt;&lt;i&gt;January&lt;/i&gt;&lt;br /&gt;Kawasaki Jet Ski&lt;br /&gt;Kidz Sports: International Football&lt;br /&gt;Urban Extreme&lt;br /&gt;NiGHTS: journey of Dreams&lt;br /&gt;Ghost Squad&lt;br /&gt;Last Ninja&lt;br /&gt;&lt;br /&gt;&lt;i&gt;15th February&lt;/i&gt;&lt;br /&gt;Battalion Wars 2&lt;br /&gt;&lt;br /&gt;&lt;i&gt;29th February&lt;/i&gt;&lt;br /&gt;No More Heroes&lt;br /&gt;&lt;br /&gt;&lt;i&gt;February&lt;/i&gt;&lt;br /&gt;Call For Heroes: Pompolic Wars&lt;br /&gt;EARACHE Extreme Metal Racing&lt;br /&gt;Bleach&lt;br /&gt;Kawasaki Snow Mobiles&lt;br /&gt;London Taxi: Rush Hour&lt;br /&gt;Pool Party&lt;br /&gt;Destroy All Humans 3: Big Willy Unleashed&lt;br /&gt;Spongebob: Atlantis Squarepantis&lt;br /&gt;&lt;br /&gt;&lt;i&gt;7th March&lt;/i&gt;&lt;br /&gt;ATV Thunder Ridge Riders &amp;amp; Monster Trucks&lt;br /&gt;The Wizard of Oz&lt;br /&gt;&lt;br /&gt;&lt;i&gt;28th March&lt;/i&gt;&lt;br /&gt;Naruto Wii (tentative title)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;March&lt;/i&gt; &lt;br /&gt;Bomberman Land Wii&lt;br /&gt;SEGA Superstars Tennis&lt;br /&gt;Sonic Riders: Zero Gravity&lt;br /&gt;MX vs ATV Untamed&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Q1/Q2 2008&lt;/i&gt;&lt;br /&gt;Harvest Moon Magical Melody&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Q1 2008&lt;/i&gt;&lt;br /&gt;Worms: A Space Oddity&lt;br /&gt;PES 2008&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Q2 2008&lt;/i&gt;&lt;br /&gt;Mario Kart Wii&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Spring 2008&lt;/i&gt;&lt;br /&gt;Dancing stage HOTTEST PARTY&lt;br /&gt;Iron Man&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;NO FREAKING BRAWL!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;It&#39;s not even in Q2! I have waited years for this game, analyzed every trailer and video I could get, but now... That pretty much confirms, that Nintendo absolutely hates Europe. Period. That, or Nintendo has absolutely no idea how to launch an online game. Would you like to play an online match just to see, that you suck ass, because the all the players play SIX MONTHS longer than you, and that &lt;span style=&quot;font-weight: bold;&quot;&gt;just &lt;/span&gt;because a game was delayed? (Even if I don&#39;t really like the online system on Wii..)&lt;br /&gt;&lt;br /&gt;I so don&#39;t care about Mario Kart (as if anyone would, info about this game is very sparse) that is confirmed as Q2, just gimme my BRAWL!&lt;br /&gt;&lt;br /&gt;(btw: Modchips ftw! And yes Nintendo, I&#39;m really pissed off now)</description><link>http://chaosteil.blogspot.com/2007/12/hate.html</link><author>noreply@blogger.com (Chaosteil)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_PVs3bg7eMKk/R1m8Iao87PI/AAAAAAAAAC8/psMPFbs21M0/s72-c/various15_071127a-l.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-4742168201949068794</guid><pubDate>Mon, 03 Dec 2007 12:21:00 +0000</pubDate><atom:updated>2007-12-03T14:22:53.091+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">mornomia</category><category domain="http://www.blogger.com/atom/ns#">project</category><category domain="http://www.blogger.com/atom/ns#">server</category><category domain="http://www.blogger.com/atom/ns#">skills</category><title>The progress of a year</title><description>Even though I&#39;m now rewriting the whole Mornomia server, I still can&#39;t stop thinking about how I will make Galaxy Stations, once I&#39;m done with Mornomia. Thinking about one project while writing another, is sometimes really helpful.&lt;br /&gt;&lt;br /&gt;For example, as I can remember, the old code of the server was completely unstructured and could only be used for MMORPG&#39;s (But I think even that is nonsense, because I was so close-minded while writing the code, it could seriously only be used for Mornomia). If I even had the old code, I wouldn&#39;t know where to start fixing or improving it. It was, as the client, a mess of undocumented, unstructured, and sometimes unreadable code. It would be quite a nightmare to introduce another person with that code.&lt;br /&gt;&lt;br /&gt;Today, things have drastically changed. I document and comment my code everywhere where it seems appropriate, and use a version system that simplifies the process of introducing other people to the code. Even instead of making a compiling script, I use a nice makefile.&lt;br /&gt;&lt;br /&gt;That&#39;s the progress of &lt;b&gt;one year.&lt;/b&gt; I code much more fluently and structured, even though I&#39;m learning several new languages. It just shows that with &lt;b&gt;enough dedication to a specific subject, you can achieve a lot.&lt;/b&gt; I know many programmers, who code regularly, but they write only slightly better than other coders. I think, to get truly better at coding, you have to make yourself a goal, not just code. Maybe you have an old method, which can be improved by techniques you have learned. Also, as I could notice, there is always a feeling of &quot;could I do it better?&quot; in code you just wrote. And yap, most of the time, the answer is &quot;Yes, you can!&quot;&lt;br /&gt;Look up algorithms, learn more about the standard libraries of your language - all this helps a lot. As I stated before, you need a lot of dedication for this. Sitting on a chair and watching videos on YouTube isn&#39;t going to make you a better programmer. In fact, if you talk a lot about programming, and talk about it more than you actually code, you are &lt;span style=&quot;font-weight: bold;&quot;&gt;not&lt;/span&gt; a programmer. A scam, if you will. That happened to me a few times, and also to people I know, so it&#39;s no rarity, but a bitter fact. That&#39;s why you always need a project to work on. If you don&#39;t have one, make one up! Working on games is always fun, and improving them, too. They have often complex algorithms and you need to learn a lot to make truly nice games.&lt;br /&gt;This is much better than doing nothing and it helps to improve your coding skills - something we all need to do.</description><link>http://chaosteil.blogspot.com/2007/12/progress-of-year.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-6390472782182760555</guid><pubDate>Sat, 01 Dec 2007 10:41:00 +0000</pubDate><atom:updated>2008-11-13T09:55:49.085+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">contest</category><category domain="http://www.blogger.com/atom/ns#">mornomia</category><category domain="http://www.blogger.com/atom/ns#">productivity</category><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">style</category><title>Reverse engineering your own code</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/R1E7Aao87OI/AAAAAAAAAC0/n2gu9DlnGQM/s1600-R/MornomiaDevScreen6.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/R1E7Aao87OI/AAAAAAAAAC0/ap6rkURzDMg/s320/MornomiaDevScreen6.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5138953528143572194&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I&#39;ve been now recently working on a project for a contest, which is quite fun, even if the team members didn&#39;t do anything useful for now... I hope that changes. By entering this contest and actually winning it would me help to get a job faster when I&#39;m out of high school than Galaxy Stations, but thats just one of the good points about this whole thing. Another good thing is, that I actually get some experience in writing a Server-Client system in C++, as we plan to make a MMORPG for mobiles. Yes, it&#39;s totally awesome. Yes, it&#39;s totally doable. And yes, we entered last year with the same project. There is just one big difference:&lt;br /&gt;&lt;br /&gt;Only the Client source is left. The Server source (written in C#) is GONE. Finito. Bumm. Bang. Out.&lt;br /&gt;&lt;br /&gt;I have to totally rewrite my server code, and for the first time, I really see, what stupid mistakes I made:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;I haven&#39;t really carefully commented my code in the client&lt;/b&gt;. Reverse engineering the network protocol is literally a pain in the ass. Finally I saw how bad it is not to comment your own code. From now on, I comment every single class and function I write. Writing comments inside functions is still considered strange behavior by me, but I&#39;m really catching on, and since I&#39;m now commenting a lot, it&#39;s a whole new difference.  &lt;a href=&quot;http://www.stack.nl/%7Edimitri/doxygen/&quot;&gt;Doxygen&lt;/a&gt; helps a lot here, when you get familiar with the syntax. Notepad++ even has a build-in feature for coloring documentation comments.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Designing code bad is awful&lt;/b&gt;. The whole client source just screams of bad programming practices and such, that I could cry myself to sleep tonight. It&#39;s a complete mess of code and random key presses, that I don&#39;t even want to look at. I see huge improvements here. But since the code is so bad designed, it surely will be hard to get anything optimized. Drawing flowcharts surely is nice here.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Making backups and storing them safe is absolutely crucial for any project you worked more than 2 weeks on&lt;/b&gt;. Again, I learned it the hard way. I first stored my whole source (client and server) in a flashdrive, but I needed the flashdrive once for something different, and guess what? I didn&#39;t put the source back. After a few months: harddrive crash. The whole source scramblified and mixed with other files, so it was unusable. The client however, was luckily stored on another hard drive, so I just have to reverse engineer the server, which is much easier than a client.  &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; is a nice thing to have here, but make sure the server is somewhere safe, and make from time to time some backups of the server, too!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I sat ~3 hours just to write down what messages I used for client-server interacting. Something, I seriously need to improve. But since I suck less every year in programming, I don&#39;t even want to look at my even older code, dammit... If you&#39;re seriously interested in programming,  &lt;b&gt;you can throw away every code you wrote a year ago&lt;/b&gt;. In programming, you learn every year new stuff: always. But beware: before you think about to throw some code away: is it really necessary? If the code&#39;s been tested a lot, and it worked, make at least a backup, when you optimize the code.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;(The image above is more like to show how the client SHOULD look like, as the server is gone... Reverse engineering the server is like reenabling the client to work again, even if you don&#39;t have to change the code of the client itself)&lt;/span&gt;</description><link>http://chaosteil.blogspot.com/2007/12/reverse-engineering-your-own-code.html</link><author>noreply@blogger.com (Chaosteil)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_PVs3bg7eMKk/R1E7Aao87OI/AAAAAAAAAC0/ap6rkURzDMg/s72-c/MornomiaDevScreen6.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-438926539416449365</guid><pubDate>Thu, 29 Nov 2007 14:48:00 +0000</pubDate><atom:updated>2008-11-13T09:55:49.234+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">command line</category><category domain="http://www.blogger.com/atom/ns#">doxygen</category><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">IDE</category><category domain="http://www.blogger.com/atom/ns#">internet</category><category domain="http://www.blogger.com/atom/ns#">mingw32</category><category domain="http://www.blogger.com/atom/ns#">notepad</category><category domain="http://www.blogger.com/atom/ns#">notepad++</category><category domain="http://www.blogger.com/atom/ns#">productivity</category><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">svn</category><category domain="http://www.blogger.com/atom/ns#">webcpp</category><title>The evil of IDEs</title><description>I still remember the first time I opened a programming language IDE (Integrated Development Environment). It was &quot;wow&quot;. All these bells and whistles to create a nice Form and make buttons work on it. It wasn&#39;t the first time I programmed, but I was simply amazed by all this stuff I saw. If you wanted to create a button... Drop it on the form! If you wanted to create a textbox.. Drop it on the form! Yeah, it was awesome. Then all this code support! Code completion, coloring, project management and so on! I still remember sitting hours in front of that IDE, just messing up with forms and writing code to change a labels text.&lt;br /&gt;&lt;br /&gt;Now, I &lt;b&gt;can&#39;t stand&lt;/b&gt; IDE&#39;s. They are terribly slowing my work progress. For example take Microsoft&#39;s latest Visual Studio. I mean seriously, what the hell? To write a simple &quot;Hello World&quot; program you  &lt;b&gt;have&lt;/b&gt; to create a project, which creates &lt;b&gt;a lot &lt;/b&gt;of garbage files that no one really needs for such a small program, and it also pushes down it&#39;s own coding style down your throat, if you happen to have another coding style.&lt;br /&gt;&lt;br /&gt;Surely, IDE&#39;s are not all that bad. Most of them have powerful debugging control, and some have even inline version control. But do you really need that much? It eats up a lot of ram, which is quite unfortunate, if you happen to work on an old computer like mine.&lt;br /&gt;Thats why I use my somehow own IDE. That&#39;s a lot of programs together, opened only if I need them, and configured just as I like. I use these programs for example:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://notepad-plus.sourceforge.net/uk/site.htm&quot; target=&quot;_blank&quot;&gt;    Notepad++&lt;/a&gt; for writing the actual code&lt;br /&gt;&lt;/li&gt;&lt;li&gt;GNU Compiler, Debugger,Linker, Make and many other things for compiling my code (&lt;a href=&quot;http://www.mingw.org/&quot; target=&quot;_blank&quot;&gt;Mingw32&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.stack.nl/%7Edimitri/doxygen/&quot; target=&quot;_blank&quot;&gt;    Doxygen&lt;/a&gt; for documenting my code&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://subversion.tigris.org/&quot; target=&quot;_blank&quot;&gt;Subversion&lt;/a&gt; for source code control&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://groups.google.com/&quot; target=&quot;_blank&quot;&gt;Google Groups&lt;/a&gt; for project management &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://webcpp.sourceforge.net/&quot; target=&quot;_blank&quot;&gt; Webcpp&lt;/a&gt; to convert code into html pages&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.getfirefox.com/&quot; target=&quot;_blank&quot;&gt;The interwebs&lt;/a&gt; to get all my information about programming&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The good old command line for random stuff&lt;/li&gt;&lt;/ul&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/R07S3QxrcWI/AAAAAAAAACs/MmL0zU3Bdzk/s1600-h/Notepad.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://1.bp.blogspot.com/_PVs3bg7eMKk/R07S3QxrcWI/AAAAAAAAACs/MmL0zU3Bdzk/s320/Notepad.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5138276071714287970&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I really like Notepad++, as it is an awesome editor, exactly how I need it! You can even expand Notepad++, by adding plugins, or writing plugins yourself! (In the screenshot I use the &lt;a href=&quot;http://slinky.imukuppi.org/zenburn/&quot;&gt;Zenburn&lt;/a&gt; theme, which I converted to a Notepad++ style myself)&lt;br /&gt;&lt;br /&gt;As you probably noticed, I use mostly open source or at least free products to help me write my code, and I don&#39;t use any fancy IDE to &quot;help&quot; me managing my code. I just use many programs and use them when I need them.&lt;br /&gt;&lt;br /&gt;An IDE done right, by the way, is &lt;a href=&quot;http://www.bloodshed.net/devcpp.html&quot; target=&quot;_blank&quot;&gt;Dev-C++&lt;/a&gt;, as it doesn&#39;t require you to do fancy stuff before writing actual code, and you simply plug in features you need, and remove features you don&#39;t need. If I wouldn&#39;t have grown so much into my own development environment, I would clearly use Dev-C++.&lt;br /&gt;&lt;br /&gt;Anyway, maybe you still have your own opinion about IDE&#39;s, and if you&#39;re comfortable with your own solution: &lt;b&gt;use it. &lt;/b&gt;Use whatever you are comfortable with, as long as you write good code, and your IDE doesn&#39;t stop you from doing that, move on!</description><link>http://chaosteil.blogspot.com/2007/11/evil-of-ides.html</link><author>noreply@blogger.com (Chaosteil)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_PVs3bg7eMKk/R07S3QxrcWI/AAAAAAAAACs/MmL0zU3Bdzk/s72-c/Notepad.png" height="72" width="72"/><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-1010475377254705209</guid><pubDate>Tue, 27 Nov 2007 13:17:00 +0000</pubDate><atom:updated>2008-11-13T09:55:49.421+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">engine</category><category domain="http://www.blogger.com/atom/ns#">galaxy stations</category><category domain="http://www.blogger.com/atom/ns#">productivity</category><category domain="http://www.blogger.com/atom/ns#">project</category><title>Vroom, vroom!</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/R0wUKQxrcTI/AAAAAAAAACI/ccmTiAlr_S4/s1600-h/ChaosteilTA.png&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_PVs3bg7eMKk/R0wUKQxrcTI/AAAAAAAAACI/ccmTiAlr_S4/s320/ChaosteilTA.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5137503441457475890&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;As I may stated before, writing an efficient game engine is a hard task, While you are working with a small number of files, with non-dynamic content, everything works fine. You show this sprite there, handle it easily, show some tiles, this engine is a so called test-engine, it can be tested immediately. Some of my games are based on such test-engines, as for example a tetris(-attack) clone. You don&#39;t really need much for programming such game. However, once you try to make a game engine more flexible, problems appear: your engine is not ready to handle dynamic content efficiently without giving yourself a headache, as you have to handle much more things in a completely different way as you did before, and that means usually &lt;span style=&quot;font-weight: bold;&quot;&gt;if you haven&#39;t planned your engine before blindly writing code, you are going to fail.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;That also appears to be the problem with every object-oriented project I start. I just simply write code and write whatever I think, so there&#39;s a big mess and this makes my code so miserably, I fear to show it to anyone, as I would have to explain too much why I did that and that. Writing the engine for Galaxy Stations for example cost me a lot of work, as I had to rewrite the whole engine &lt;span style=&quot;font-weight: bold;&quot;&gt;six&lt;/span&gt; times!&lt;br /&gt;&lt;br /&gt;At least now I learned to plan every code I write beforehand, but even here I discovered different methods that helped me design my code:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using a flowchart. Writing the classes as boxes is nice, as you can see the flow of your code visually, and also see where your problems in the code are. While drawing flowcharts, I&#39;d recommend to use a whiteboard or a computer, as erasing and editing is much easier. Stay away from paper!&lt;/li&gt;&lt;li&gt;Using a list. It&#39;s very similar to a flowchart, but different nonetheless. While writing a list you just go from a point in the code, and write what the code should do in a row. Yap, it&#39;s a simple algorithm, but it seriously helps you to find where and how to use classes. I use the paper+pencil approach here, as it doesn&#39;t require anything too hardcore.&lt;/li&gt;&lt;li&gt;A mixed approach. Write lists and flowcharts! The best of all three, as you plan where you can, and then convert it into easily maintainable code. Use it when you really need to spend time with your project.&lt;/li&gt;&lt;/ul&gt;So now I am going to rewrite my engine again, and I hope this time I can make things a bit better and such speeding up the development of Galaxy Stations. As only &lt;span style=&quot;font-weight: bold;&quot;&gt;good written code helps you to make your project finish faster.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;(That game in the screenshot is made by me for mobiles. Contact me if you want the jar file)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://chaosteil.blogspot.com/2007/11/vroom-vroom.html</link><author>noreply@blogger.com (Chaosteil)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_PVs3bg7eMKk/R0wUKQxrcTI/AAAAAAAAACI/ccmTiAlr_S4/s72-c/ChaosteilTA.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-4215822464107976404</guid><pubDate>Sun, 25 Nov 2007 16:37:00 +0000</pubDate><atom:updated>2007-11-29T22:04:28.194+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">concept</category><category domain="http://www.blogger.com/atom/ns#">fight system</category><category domain="http://www.blogger.com/atom/ns#">galaxy stations</category><category domain="http://www.blogger.com/atom/ns#">mario galaxy</category><category domain="http://www.blogger.com/atom/ns#">programming</category><title>Round One.. Fight!</title><description>Phew, I haven&#39;t programmed anything this week... I just played. All the time... And not just anything, haha, no, I played Super Mario Galaxy! But now I finally finished the game, so I can get back to my code and see where I can improve and how to make a nice sidescroller engine which can be easily ported to an MMO. But even here are problems.&lt;br /&gt;&lt;br /&gt;Galaxy Stations was first planned as a nice, fast, Metroid-Like MMO, and please don&#39;t tell me you wouldn&#39;t like that! Anyway, as I thought up the fight system, there were, as I said, several problems:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We need a lag-free experience, so really fast combat is almost impossible&lt;/li&gt;&lt;li&gt;Prevent spamming of shots and such&lt;/li&gt;&lt;li&gt;To make it fun, make platforming a part of the fight system&lt;/li&gt;&lt;li&gt;Every player should actively do something&lt;/li&gt;&lt;/ul&gt;So I thought up this system:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make larger loading times for weapons, with this modification it becomes a semi-realtime fight system&lt;/li&gt;&lt;li&gt;Instead of freedom in shots, make different lock-on points on enemies, eventually each of these lock-on points has to be scanned (thus discovered) by the player first.&lt;/li&gt;&lt;li&gt;Once locked-on, the character stays focused on the point he has locked on, until the object is out of range&lt;/li&gt;&lt;li&gt;A character can hide behind stuff, to protect himself from enemy fire, and jump out when the time is right -&gt; Freedom in movement&lt;/li&gt;&lt;/ul&gt;This is somewhat the basic fight system. Additional things include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make different lock-on points handle fire differently&lt;/li&gt;&lt;li&gt;If an enemy is not scanned, he has only one lock-on point in the middle&lt;/li&gt;&lt;li&gt;Changing weapons and armor during a fight should be crucial (even though there should be a short waiting time before another weapon or armor can be put on)&lt;/li&gt;&lt;/ul&gt;Take all this with a grain of salt, as everything may change during development, but I have planned something in this direction</description><link>http://chaosteil.blogspot.com/2007/11/phew-i-havent-programmed-anything-this.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-2791582486953520091</guid><pubDate>Sun, 18 Nov 2007 20:30:00 +0000</pubDate><atom:updated>2008-11-13T09:55:49.682+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">engine</category><category domain="http://www.blogger.com/atom/ns#">galaxy stations</category><category domain="http://www.blogger.com/atom/ns#">opengl</category><category domain="http://www.blogger.com/atom/ns#">sdl</category><category domain="http://www.blogger.com/atom/ns#">sprites</category><title>A long way to go...</title><description>Finally I got something done!&lt;br /&gt;&lt;br /&gt;Since I&#39; planning to use OpenGL and SDL for Galaxy Stations, I spend a lot of time learning these two things. Last week I worked on a bone system for characters in Galaxy Stations, which was quite successful (even though animations and absolute bone rotation needs to be done), and today I tried to finally show textures and mask them at the appropriate pixels. After a lot of work, I have something to show off:&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_PVs3bg7eMKk/R0Cj5AxrcSI/AAAAAAAAACA/Z0VKLBV8iag/s1600-h/SDLOpenGLSpriteClass.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://2.bp.blogspot.com/_PVs3bg7eMKk/R0Cj5AxrcSI/AAAAAAAAACA/Z0VKLBV8iag/s320/SDLOpenGLSpriteClass.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5134283775058604322&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;My Sprite class allows me to load an image of any size and use pure black as a mask color. It&#39;s quite fast but can easily struggle when an image is too large. The images are build from the center (something all my previous OpenGL engines have missed) and such they allow to rotate from the center (or positioned at the center of a bone), which is very useful.&lt;br /&gt;&lt;br /&gt;It&#39;s a start, and from this point on, I can build all my additional code around this one. Nice!</description><link>http://chaosteil.blogspot.com/2007/11/long-way-to-go_18.html</link><author>noreply@blogger.com (Chaosteil)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_PVs3bg7eMKk/R0Cj5AxrcSI/AAAAAAAAACA/Z0VKLBV8iag/s72-c/SDLOpenGLSpriteClass.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-8474840189278039724</guid><pubDate>Sat, 17 Nov 2007 08:38:00 +0000</pubDate><atom:updated>2008-05-26T23:17:28.211+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">numpad</category><category domain="http://www.blogger.com/atom/ns#">productivity</category><title>The unproductivity of Numpad</title><description>Since the first time I used my keyboard, everybody told me &quot;Use the numpad for numbers&quot;, and so I just got used to the fast typing of numbers on the block. But now when I need to write code, and need to write it fast, every little bit of speed helps, and now the numpad is a horrible productivity killer. Maybe this is common sense, but everybody around me uses this damn thing. It&#39;s OK to type numbers with it, yeah, but the moment you have to mix these numbers with text, &lt;span style=&quot;font-weight: bold;&quot;&gt;stay away from the numpad.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;For example these two lines:&lt;br /&gt;&lt;div class=&quot;webcpp&quot;&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;1:&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;keytype&quot;&gt;int&lt;/span&gt; SCREEN_WIDTH &lt;span class=&quot;symbols&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;integer&quot;&gt;640&lt;/span&gt;;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;2:&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;keytype&quot;&gt;int&lt;/span&gt; SCREEN_HEIGHT &lt;span class=&quot;symbols&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;integer&quot;&gt;480&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Try to imagine, how somebody would write it with a numpad:&lt;br /&gt;&lt;br /&gt;Fingers on keyboard -&gt; one hand on numpad -&gt; one hand back on keyboard -&gt; one hand on numpad -&gt; one hand back on keyboard.&lt;br /&gt;&lt;br /&gt;This same procedure can be made with &lt;span style=&quot;font-weight: bold;&quot;&gt;all fingers just on the keyboard&lt;/span&gt;. It&#39;s just a huge improvement in speed, and if you&#39;re working later on a notebook, trust me, the conversion will be much easier.&lt;br /&gt;&lt;br /&gt;But that does not mean, that you shouldn&#39;t touch the numpad at all! It can be very handy, when entering large numbers, or when you are using a calculator. It simply just applies when you are writing text or code, that&#39;s it.&lt;br /&gt;&lt;br /&gt;However, it can be very hard to switch over for anyone who used the numpad a long time, for example me, since the hand just automatically moves to the right. Heck, I even used the numpad for quick symbol access, because I didn&#39;t learn where the /*-+ symbols on the normal keyboard are...&lt;br /&gt;&lt;br /&gt;Maybe this is just a small increase in productivity, but trust me, it works, and it&#39;s worth it!</description><link>http://chaosteil.blogspot.com/2007/11/inproductivity-of-numpad.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5918907373348806734.post-1685026300691472333</guid><pubDate>Tue, 13 Nov 2007 15:01:00 +0000</pubDate><atom:updated>2007-11-29T22:08:45.015+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">galaxy stations</category><category domain="http://www.blogger.com/atom/ns#">mmo</category><category domain="http://www.blogger.com/atom/ns#">opengl</category><category domain="http://www.blogger.com/atom/ns#">project</category><category domain="http://www.blogger.com/atom/ns#">sdl</category><category domain="http://www.blogger.com/atom/ns#">sidescroller</category><category domain="http://www.blogger.com/atom/ns#">time</category><title>Entry point</title><description>Damn, I just miss the good old times. A few years, yes, even a few months ago, I had just more time than I do now, and it seems to change to the worse. Sure, I want to finish school and then go on with my life, but there is simply no time for anything else right now.&lt;br /&gt;&lt;br /&gt;That&#39;s because I really would like to finally finish (or: start) my project Galaxy Stations, since I would need it for any job application, if I want to stay in programming, but, as I told, there is simply not enough time. I need to learn a new programming language (believe me, the conversion from Java or C# to C++ is overwhelming), use &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;SDL&lt;/span&gt; and &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;OpenGL&lt;/span&gt; for a new &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;multiplatform&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;GFX&lt;/span&gt; engine, and write algorithms for a lag-free &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;sidescroller&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;MMO&lt;/span&gt; experience. I don&#39;t know how I&#39;m gonna finish that, but hey, it&#39;s worth a try, and by writing this blog I&#39;m actually improving my English writing skills, so it&#39;s basically win-win, if I only had more time...&lt;br /&gt;&lt;br /&gt;Actually, there is also quite some time required to form a (self-)motivated, skilled team of programmers and artists, but as my experience told me, you can&#39;t just write a design document and hope that anybody will join your development train, nope, you&#39;ll need a bit of self-dedication, to write the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;basecode&lt;/span&gt; yourself (eventually drawing characters and &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;UI&lt;/span&gt; elements for yourself), and then have some people look at it. Only then there might be a chance that some people will join your project, but up until then, you really can&#39;t expect that miracles will happen.&lt;br /&gt;&lt;br /&gt;So &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;thats&lt;/span&gt; currently my top-task: to write some &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;basecode&lt;/span&gt; for Galaxy Stations, and present it to my friends, so they might join the project with some enthusiasm. I already worked out how to use &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;OpenGL&lt;/span&gt; with &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;SDL&lt;/span&gt;, but there is much more work to do, for example a bone system for characters, a simple tile engine and editor, a basic server, and probably an &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;UI&lt;/span&gt;. That means for me: &lt;span style=&quot;font-weight: bold;&quot;&gt;learn you bastard&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;It would be really awesome to get some appreciation for this project, as it isn&#39;t just a simple &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;sidescroller&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;MMO&lt;/span&gt;, but something so different from whats on the market, that it can be classified only with &quot;awesome&quot; by my standards (This opinion is obviously biased, so don&#39;t expect too much...)&lt;br /&gt;&lt;br /&gt;As by then, I&#39;ll try to get at least something done, so I can post it at soon as possible, until then,&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt; see you!&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_16&quot;&gt;&lt;/span&gt;</description><link>http://chaosteil.blogspot.com/2007/11/entry-point.html</link><author>noreply@blogger.com (Chaosteil)</author><thr:total>0</thr:total></item></channel></rss>