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

<channel>
	<title>Lunikon &#187; EN</title>
	<atom:link href="http://www.lunikon.net/tags/en/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lunikon.net</link>
	<description>lunar dust</description>
	<lastBuildDate>Sat, 23 Apr 2011 12:34:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Current side projects</title>
		<link>http://www.lunikon.net/2011/04/22/current-side-projects/</link>
		<comments>http://www.lunikon.net/2011/04/22/current-side-projects/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 14:10:28 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[2WP]]></category>
		<category><![CDATA[AirportSim]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[gamedesign]]></category>
		<category><![CDATA[Prosperous Universe]]></category>
		<category><![CDATA[simulogics]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=244</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Today is a public holiday in Germany and as such the &#8220;friendly&#8221; side of my split boss-personality granted me half a day off. So after getting all to-dos of the day ticked I was thinking about what to do with my free time. I spent the first one or two hours finishing Portal 2 (I absolutely recommend it to anyone&#8230;awesome game!) just to return to an annoying state of boredom immediately afterwards. Figuring that the closest thing to a hobby I got was coding I decided to work on one of the side-projects I got in the pipeline right now. Problem was: I realized &#8211; once again &#8211; that there are a crazy 3 (three!) of them right now and that I couldn&#8217;t decide on which to work on. So I figured: Good opportunity to breathe some life into this boring blog and let you know what else is cooking besides <a href="http://www.airlinesim.aero">AirlineSim</a>. Maybe you can decide on a favorite&#8230;</p>
<p><strong><a href="http://www.prosperousuniverse.net">Prosperous Universe</a></strong></p>
<p>When <a href="http://www.simulogics.net">we</a> decided last year that we needed a second project to become less dependent on the aging AirlineSim, we started out with a survey in which we asked about 200 people what kind of game they&#8217;d like the most. Based on these results (and some personal preferences) we came to the conclusion that it had to be more accesible and less complex than AirlineSim to appeal to a broader audience. On the other hand we still wanted to stick to our favorite genre, so it had to be a business sim. The resulting concept was a game constructed around a space setting, featuring a graphical yet abstract hex-field interface and a strong production and trading component.</p>
<p>Current state: Never left prototyping. I did a few prototypes for the space and surface interface respectively. A basic framework for construction of buildings and manufacturing exists, but the overall thing just didn&#8217;t feel right. Maybe that&#8217;s because we lost focus on it too quickly due to more urgent things, maybe it&#8217;s because I have a hard time writing games I wouldn&#8217;t actually play myself in the first place. The basic idea just keeps on hibernating though, so who knows what comes off it sooner or later.</p>
<p><strong><a href="http://www.airportsim.aero">AirportSim</a></strong></p>
<p>I&#8217;m not quite sure why I suddenly decided to actually pursue this idea. It has been lurking around my head ever since I laid hand on the oh-so-awful Airport Tycoon and I know a game like this would be a dream-come-true for many AirlineSim players and aviation geeks. It probably has to do with the fact that I wanted to do something beyond &#8220;web development&#8221; and 3D definitely is a whole different ballpark.</p>
<p>Current state: Right before the point of no return. My basic Java prototype proves that &#8211; if I can keep it simple &#8211; it&#8217;s feasible to actually develop and ship a game like this for a one-man show like me. Problem is: I&#8217;d have to commit a tremendous amount of always limited resources to it. I&#8217;d have to do this in a field I have zero experience in. And when I&#8217;d decide to do it, I&#8217;d have to actually stick to it to the end since everything else would be plain crazy. Therefore I&#8217;m still evaluating it both in terms of technology choices and feasibility.</p>
<p><strong><a href="http://2weekproject.tumblr.com/">&#8220;2 Week Project&#8221;</a></strong></p>
<p>Sometimes you need a change of scenery and &#8220;2WP&#8221; was just that: A short dip into something off the regular day-to-day work. You can find details on my motivation for this project <a href="http://2weekproject.tumblr.com/post/3697700662/2-weeks-1-game-about-this-project">here</a>. The whole game is based on a concept I had been thinking about for many many years and in this project I tried to realize at least parts of it in a very much boiled down version. It&#8217;s a hardcore business sim. This means: No graphics, simplest web-interface, numbers and tables aplenty. It&#8217;s an attempt at a simulated closed economic cycle with all goods produced and transported by the players and the only AI being the population of the in-game cities who act as both the workforce and the consumers.</p>
<p>Current state: While the original goal &#8211; bringing the game &#8220;to market&#8221; within two weeks &#8211; hasn&#8217;t quite been met, there exists a more or less solid foundation for future extension. The game lacks a lot of polish of course, the master data and balancing are nowhere near finished and some conceptual issues still exist, but overall this is the side-project with the highest chances to evolve into an actual top-tier project of simulogics. It&#8217;s not mainstream, it&#8217;s definitely not a &#8220;social game&#8221;, but I believe there&#8217;s a market for it out there.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2011/04/22/current-side-projects/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = '2WP,AirportSim,EN,gamedesign,Prosperous Universe,simulogics';
var flattr_btn = 'compact';
var flattr_tle = 'Current side projects';
var flattr_dsc = 'Today is a public holiday in Germany and as such the \"friendly\" side of my split boss-personality granted me half a day off. So after getting all to-dos of the day ticked I was thinking about what to do with my free time. I spent the first one or two hours finishing Portal 2 (I absolutely recommend it to anyone...awesome game!) just to return to an annoying state of boredom immediately afterwards. Figuring that the closest thing to a hobby I got was coding I decided to work on one of the side-projects I got in the pipeline right now. Problem was: I realized - once again - that there are a crazy 3 (three!) of them right now and that I couldn\'t decide on which to work on. So I figured: Good opportunity to breathe some life into this boring blog and let you know what else is cooking besides AirlineSim. Maybe you can decide on a favorite...  Prosperous Universe  When we decided last year that we needed a second project to become less dependent on the aging AirlineSim, we started out with a survey in which we';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2011/04/22/current-side-projects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UI Inspiration</title>
		<link>http://www.lunikon.net/2010/09/15/ui-inspiration/</link>
		<comments>http://www.lunikon.net/2010/09/15/ui-inspiration/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 15:03:00 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[Web x.0]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[gamedesign]]></category>
		<category><![CDATA[Prosperous Universe]]></category>
		<category><![CDATA[simulogics]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=231</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>For a few weeks now I&#8217;ve spent a considerable share of my development time to work on a prototype of our upcoming game title. For now I am still pretty much in the experimenting stage, trying out various different types of interfaces and playing around with different client devices (desktop, touch, mobile etc.). Beyond that, most aspects of the game are still undefined. Basically two aspects are set: The game will take place in a space setting &#8211; as our <a href="http://www.prosperousuniverse.net/">teaser site</a> boldly states &#8211; and it will once again be a more or less serious business simulation (<a href="http://www.lunikon.net/2010/05/28/why-i-probably-wont-write-a-transport-simulation-again/">not a transport simulation</a>, though).</p>
<p>My initial goal was to create an intuitive interface that fits both touch and regular devices equally well. But the further I got into it, the more obvious it became that there are too many tiny differences between these two worlds for my interface to work the way I imagined it. So now I&#8217;m basically back at the drawing board&#8230;this time with an initial focus on regular, desktop-based client devices.</p>
<p>Since I want the final result to be a proper business and management game in the fashion of the old (and not so old) classics, I&#8217;m turning to screenshots of various titles I played throughout my life as a source of inspiration. My intention is to find a decent blend of both proven and innovative concepts for the UI of Prosperous Universe.</p>
<p>So let&#8217;s take a quick tour of what I looked at so far:</p>
<p><a href="http://www.lunikon.net/files/puui/siedler4.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/siedler4.jpg" alt="" width="250" height="187" /></a>This is a screenshot from the fourth iteration within the classic Settlers series. Most controls are arranged on a single panel on the left of the screen. The same pattern can be found in most RTS games of the time. Here two of my personal favorites, Patrician and Emperor:</p>
<p style="text-align: center; "><a href="http://www.lunikon.net/files/puui/patrizier2.jpeg" rel="lightbox[231]"><img class="aligncenter" style="display: block;" src="http://www.lunikon.net/files/puui/thumbs/patrizier2.jpg" alt="" width="250" height="187" /></a></p>
<p style="text-align: center; "><a href="http://www.lunikon.net/files/puui/emperor.jpeg" rel="lightbox[231]"><img class="alignnone" src="http://www.lunikon.net/files/puui/thumbs/emperor.jpg" alt="" width="250" height="187" /></a></p>
<p style="text-align: left;">A variation of this is to align the key controls at the bottom of the screen (shown here: Civilization IV, Railroad Tycoon 3).</p>
<p style="text-align: left; "><a href="http://www.lunikon.net/files/puui/civ4.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/civ4.jpg" alt="" width="250" height="187" /></a><a href="http://www.lunikon.net/files/puui/railroadtycoon3.jpeg" rel="lightbox[231]"></a></p>
<p style="text-align: left; "><a href="http://www.lunikon.net/files/puui/railroadtycoon3.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/railroadtycoon3.jpg" alt="" width="250" height="180" /></a></p>
<p style="text-align: left; ">This concept is robust and familiar to most. Dialogs can be used whenever appropriate to gain more space. At the same time it&#8217;s rather boring (old-school?) and it doesn&#8217;t make use of large screens while obstructing a large amount of space on small screens. More recent games therefore split up the controls into widget-like components that can be placed anywhere on the screen and only be displayed when needed. One example is Anno 1701 (and likewise Anno 1404 as well as the latest iterations of the Settlers&#8230;same studio):</p>
<p style="text-align: left; "><a href="http://www.lunikon.net/files/puui/anno3.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/anno3.jpg" alt="" width="250" height="200" /></a></p>
<p style="text-align: left;">The interface is broken down to a very low level. For example, single widgets are used to display the amount of stored goods instead of a continuous bar that spreads across the whole screen as in older titles. Civilization V uses a blend of the concepts, featuring a broken up interface while maintaining a rather conventional look of the single boxes.</p>
<p style="text-align: center;"><a href="http://www.lunikon.net/files/puui/civ5.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/civ5.jpg" alt="" width="250" height="152" /></a></p>
<p style="text-align: left;">A bit closer to the theme of Prosperous Universe is Eve-Online. It is not a classic RTS game but an MMO-style 4X game within a 3D space environment. Nonetheless it features a very complex ecomomic system and an astounding level of detail. The interface reflects this with independent windows and a very high information density:</p>
<p style="text-align: left;"><a href="http://www.lunikon.net/files/puui/eve.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/eve.jpg" alt="" width="250" height="200" /></a></p>
<p style="text-align: left;">The latest add-on to Eve even allows planetary structures and employs a rather abstract but modern interface to manage the facilities:</p>
<p style="text-align: left;"><a href="http://www.lunikon.net/files/puui/eve_tyrannis.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/eve_tyrannis.jpg" alt="" width="250" height="142" /></a></p>
<p style="text-align: left;">In my opinion, the interface of Industry Giant 2 is also worth mentioning. The only constantly visible interface component is a slim bar at the bottom of the screen. Everything else is done using dialogs or, most importantly, a context-sensual component that pops up right in place whenever the user clicks an element of the game&#8217;s main screen. The latest Anno uses similar methods to allow for easier and quicker construction of buildings.</p>
<p style="text-align: left;"><a href="http://www.lunikon.net/files/puui/industriegigant.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/industriegigant.jpg" alt="" width="250" height="187" /></a></p>
<p style="text-align: left;">It might also make sense to take a brief look at what actual browser-based space games look like today. These are two current screenshots of OGame, one of the more popular games in this field:</p>
<p style="text-align: left;"><a href="http://www.lunikon.net/files/puui/ogame_a.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/ogame_a.jpg" alt="" width="250" height="187" /></a></p>
<p style="text-align: left;"><a href="http://www.lunikon.net/files/puui/ogame_a.jpeg" rel="lightbox[231]"><a href="http://www.lunikon.net/files/puui/ogame_b.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/ogame_b.jpg" alt="" width="250" height="187" /></a></a></p>
<p style="text-align: left;">Maybe it&#8217;s just because this is a rather old game that only got a visual update, but generally I get the impression that many of these games still feature a conservative three-column design as found in a plethora of websites. The graphics cannot hide the fact that basically everything the player is dealing with are simple tables. A problem that AirlineSim is suffering from badly and that PU is also prone to. On the other hand, this kind of design just &#8220;works&#8221; in most environments, even on touch surfaces, as there aren&#8217;t many fancy UI gimmicks that could cause problems.</p>
<p style="text-align: left;">And finally, for sake of completeness, a totally different approach to game interfaces. Long live Airline Tycoon (and it&#8217;s predecessors in spirit):</p>
<p style="text-align: center;"><a href="http://www.lunikon.net/files/puui/airlinetycoon.jpeg" rel="lightbox[231]"><img class="aligncenter" src="http://www.lunikon.net/files/puui/thumbs/airlinetycoon.jpg" alt="" width="250" height="189" /></a></p>
<p style="text-align: left;">If you think there are important types of interfaces/games missing in my list, please let me know and send me your suggestions in the comments!</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2010/09/15/ui-inspiration/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'EN,gamedesign,Prosperous Universe,simulogics,touch,UI';
var flattr_btn = 'compact';
var flattr_tle = 'UI Inspiration';
var flattr_dsc = 'For a few weeks now I\'ve spent a considerable share of my development time to work on a prototype of our upcoming game title. For now I am still pretty much in the experimenting stage, trying out various different types of interfaces and playing around with different client devices (desktop, touch, mobile etc.). Beyond that, most aspects of the game are still undefined. Basically two aspects are set: The game will take place in a space setting - as our teaser site boldly states - and it will once again be a more or less serious business simulation (not a transport simulation, though). My initial goal was to create an intuitive interface that fits both touch and regular devices equally well. But the further I got into it, the more obvious it became that there are too many tiny differences between these two worlds for my interface to work the way I imagined it. So now I\'m basically back at the drawing board...this time with an initial focus on regular, desktop-based client devices. Since I want the final resu';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2010/09/15/ui-inspiration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I probably won&#8217;t write a transport simulation again</title>
		<link>http://www.lunikon.net/2010/05/28/why-i-probably-wont-write-a-transport-simulation-again/</link>
		<comments>http://www.lunikon.net/2010/05/28/why-i-probably-wont-write-a-transport-simulation-again/#comments</comments>
		<pubDate>Fri, 28 May 2010 00:43:16 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[gamedesign]]></category>
		<category><![CDATA[simulation]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=223</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>On this blog and elsewhere I&#8217;ve described more than once how AirlineSim came into existence and what were the driving factors behind it for many years. To give a short summary once again: The whole idea was born out of pure enthusiasm for aviation. From the beginning it was intended to be a solid airline simulation, not a &#8220;game&#8221; and in no case a &#8220;product&#8221;. It was a hobby, something I and the many supporters of the project did for personal enjoyment rather then mass-market appeal. As I presented in <a href="http://www.lunikon.net/2010/04/30/so-what-next/">my last post</a>, this and several other factors posed to be huge show-stoppers in my endeavour to make a living from AirlineSim.</p>
<p>But there is one particular aspect that might well be the root to all the issues I encountered and still have to face: AirlineSim is a transport simulation! Let me elaborate on why I see this to be a problem:</p>
<p><strong>Simulations are not games</strong></p>
<p>Although many games call themselves &#8220;simulations&#8221;, few simulations are anywhere close to &#8220;games&#8221;. Sure, since AirlineSim stems from a community of enthusiasts rather than professionals, any IT professor would strongly disagree when I would call AS a serious, scientific business simulation. But at the same time my goal always was to  create a decent image of the real-world airline business. A lot of emphasis was put into correct flight schedules, fleet lists, departure boards; the databases are filled with almost all current commercial airliners and all airports carrying an IATA code; there are more than a dozen types of staff, typeratings, correct financial accounting and a whole lot of other stuff that adds complexity and maybe realism&#8230;but only few of which make the game &#8220;fun&#8221;.</p>
<p>Ok ok, this was only partly correct: Of course, it is fun! It is fun to me and to a certain group of others who share a similar mindset. But have you ever tried to explain AirlineSim&#8217;s concept to a friend and she started to jump around in excitement because she could not wait to try it herself? See&#8230;me neither!</p>
<p><strong>Simulations&#8230;simulate</strong></p>
<p>Sounds obvious, right? But to many it isn&#8217;t. Transportation in the real world is a tough business. It tends towards monopolistic structures and absolute competition. In fact, until recently, ocean shipping was one of the last industries to have hardly any anti-trust regulations for the simple reason that it would completely destroy itself if there were any. The situation in aviation was only different because airlines were entities of national interest, state-controlled monopolies or strictly regulated private companies. Since privatisation started, the aviation industry as a whole never made any profits, with only few airlines being financially successful over longer periods of time. In the US, a large-scale consolidation is in full swing and only few players will remain while in Europe British Airways seems to be at the brink of collapse, leaving the field to the two remaining giants: Lufthansa and Air France-KLM.</p>
<p>So why does this real-world babbling matter to AS? Because it is a simulation! As such it automatically inherits all these problems with all their consequences and reproduces them within the game. In the real world, these problems are met with strict rules and regulations. But who wants to play a game that leaves no freedom to the player? Doing this would essentially remove competition, the one thing a game usually is about. So there are two extremes: Absolute competition or none. Neither is fun.</p>
<p><strong>Woah! Feature creep!</strong></p>
<p>Ever had the chance to participate in an AirlineSim community meeting? It&#8217;s awesome! You sit there with all the good friends from the community, you have some beers, talk about the game. And the longer you talk, the more ideas spawn. Ideas how this aspect from reality could be added to the game and how that feature could be made more interesting. At the end of the day I can&#8217;t help but building all kind of cool gadgets into the game &#8211; remember, I love aviation and I love &#8220;my game&#8221;.</p>
<p>Of course, not a single one of these additions ever shows up in any long-term master plan. Nobody ever thought about whether it affects the simulation&#8217;s balancing. Does it hamper the performance or might it be too complex for new players? Will it ever get finished and is it even useful? It&#8217;s feature creep! You add buttloads of stuff because it sounds like a good idea and &#8211; most importantly &#8211; because you like it. You think a simulation can not have enough &#8220;realistic features&#8221;. This way of doing things is poison for the overall usability. It creates a huge system that&#8217;s impossible to balance. It makes the game difficult to grasp and creates an awefully steep learning curve to starters. In short: It&#8217;s not fun!</p>
<p><strong>The audience is&#8230;special</strong></p>
<p>The audience of serious sim games is the direct opposite of the modern breed of &#8220;casual gamers&#8221;. They have clear ideas on how they want the game work. They can live with an old-school interface and a total absence of graphics, but they want to understand every single formula in the game. They find long tables of load data exciting and charted figures even more thrilling. They are hardcore players, either in business simulations, aviation games or both. They have done their homework and can pin-point any false aircraft characteristics, lacking feature or wrong account number. If they do, they provide you with detailed essays (of which there are at least 5, all describing a different approach) on why they think it&#8217;s wrong and what should be done about it. If you shift a table or (slightly) change an existing interface, expect an enormous shitstorm on why you just ruined their whole live.</p>
<p>They are true fans! They invest unbelievable amounts of time in the simulation. They identify with their airline and they tend to refer to their effort as &#8220;work&#8221;. Yes, it sounds absurd, but if something (like a patch) threatens the existence of their virtual enterprise, they are afraid that &#8220;all their work&#8221; might be lost.</p>
<p>You can imagine that pleasing this kind of audience is sometimes difficult. I&#8217;m learning this the hard way right now with the upcoming release of AirlineSim 1.5. I thought I had built a really cool new route management interface that would be more appealing to players. But so far the opposite is the case: A certain share simply doesn&#8217;t like it because it&#8217;s different. A considerably smaller amount of players can provide constructive critisism on how certain aspects could be improved. And then there&#8217;s the hard core&#8230;the huge players, the top 20 of the largest airlines, the operators of hundreds and thousands of aircraft. The players who push the system to the limit. If you build a new feature, you always have to keep them in mind. A drop-down that contains 50 entries for a &#8220;normal person&#8221; contains 5000 entries for one of the big boys. If you implement a change that adds a single click to whatever &#8220;workflow&#8221;, this tiny change is a disaster to them because they have to do it 1000 times in a row. They look at the system in way that&#8217;s almost impossible to grasp for me or anybody else on the team! Is this way of &#8220;playing&#8221; fun? I don&#8217;t know, but probably not to many.</p>
<p><strong>And the conclusion?</strong></p>
<p>If you look at the great games of the past and the presence, be it casual or &#8220;hardcore&#8221;, computer-based or board game, you find one common thing among all of them: They are abstract! Even games that appear rather complex &#8211; for example Civilization &#8211; are in fact based on very simple game mechanics. There are only so many variables that can actually be put into an equation and balanced. Usually there are only one, two, maybe three aspects within the game you can actively control as a player and they achieve a high level of immersion anyway. They might be tough to master, but they always are one thing: Fun!</p>
<p>So if I ever had to do AirlineSim again? I&#8217;d make it a game, not a simulation.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2010/05/28/why-i-probably-wont-write-a-transport-simulation-again/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'EN,fun,gamedesign,simulation';
var flattr_btn = 'compact';
var flattr_tle = 'Why I probably won&#8217;t write a transport simulation again';
var flattr_dsc = 'On this blog and elsewhere I\'ve described more than once how AirlineSim came into existence and what were the driving factors behind it for many years. To give a short summary once again: The whole idea was born out of pure enthusiasm for aviation. From the beginning it was intended to be a solid airline simulation, not a \"game\" and in no case a \"product\". It was a hobby, something I and the many supporters of the project did for personal enjoyment rather then mass-market appeal. As I presented in my last post, this and several other factors posed to be huge show-stoppers in my endeavour to make a living from AirlineSim.  But there is one particular aspect that might well be the root to all the issues I encountered and still have to face: AirlineSim is a transport simulation! Let me elaborate on why I see this to be a problem:  Simulations are not games  Although many games call themselves \"simulations\", few simulations are anywhere close to \"games\". Sure, since AirlineSim stems from a community of enth';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2010/05/28/why-i-probably-wont-write-a-transport-simulation-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>So&#8230;what next?</title>
		<link>http://www.lunikon.net/2010/04/30/so-what-next/</link>
		<comments>http://www.lunikon.net/2010/04/30/so-what-next/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 01:49:05 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Persönliches]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[AirlineSim]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[simulogics]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=218</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s almost 3 o&#8217;clock at night and I can&#8217;t sleep. Probably due to the larger quantities of coke and coffee I had the evening before&#8230;but also because I have a lot of stuff floating around my head that keeps my brain from slipping into sleep-mode.</p>
<p>In a few days time it will have been 10 months since the international portal for <a href="http://www.airlinesim.aero">AirlineSim</a> was launched. This basically marked the final public step towards my decission to do browsergames for a living. As you can see, I don&#8217;t live under a bridge just yet, so it hasn&#8217;t been all bad. But it&#8217;s also been a tough time that brought to light many weaknesses of AirlineSim that never appeared to me before. Most importantly I underestimated how difficult it would be to transform a hobby project that&#8217;s been around for several years into a commercial one that needs to sell well enough to pay the bills of at least one person (and his cats).</p>
<p>AirlineSim has always been layed out as what the name suggests: Being a realistic airline simulation. This never included making a game that achieves a revenue per player of X or a conversion rate per new visitor of Y. In fact, no such &#8220;KPI&#8221; ever occured to me or anybody else on the team and obviously it didn&#8217;t have to because there was no reason for the hassle. So several thousand files and 10s of thousands lines of code after it&#8217;s first appearance in 2002, AirlineSim has developed into what it is today: A huge piece of software that will never be &#8220;finished&#8221; and will never become a &#8220;bread &amp; butter project&#8221;.</p>
<p>Don&#8217;t get me wrong! I still love AirlineSim, it will always remain my baby and I won&#8217;t stop working on and extending it any time soon. But there&#8217;s a saying that I picked up quite some time ago somewhere on the net that sums up the problem quite well:</p>
<blockquote><p>If you have to keep putting money into it, it&#8217;s not a business, it&#8217;s a hobby.</p></blockquote>
<p>Now I&#8217;m not exactly putting money into AirlineSim. In fact, it pays most of my bills. But &#8220;most&#8221; isn&#8217;t &#8220;all&#8221; and there needs to be a point where I have to shift at least some of my resources (being time, primarily) towards something that will a.) close that money gap that AS fails to fill right now and b.) permits to further support AirlineSim as what it always has been and always will be: A niche game for a rather limited group of enthusiasts (including myself).</p>
<p>And there we go: The reason for my insomnia! It&#8217;s not the fear of living in cardboard boxes but the constant brain-storming about a follow-up project. It&#8217;s the first time in years that a new, large project appears on the horizon and whenever the daily work is finished I can&#8217;t stop thinking about all the different themes, possible features and hibernating ideas that would make for an interesting game. At the same time all these &#8220;nice-to-haves&#8221; mix with the experience I took away from 10 months of commercial AirlineSim that tell me something about what a web-game has to look like nowadays to become successful.</p>
<p>I&#8217;m pretty sure that, whatever it will end up to be, the next project will once again be some kind of business simulation. It will be a lot more streamlined than AS ever was and there will be a much stricter and better structured &#8220;master plan&#8221; to everything. There will be a focus on usability and intuitive gameplay from day one and I will put more emphasis on reaching a generally broader audience. At the same time there really mustn&#8217;t be the kind of feature-creep I&#8217;ve experienced in making AS, meaning that I could spend weeks after weeks adding new (important?) features without getting anywhere in the larger picture, pushing the development costs of the whole project through the clouds. A first playable release of the new project has to be out after a few months&#8217; work and earn money from the start.</p>
<p>So&#8230;exciting times coming up! I&#8217;m still looking for more ideas and I&#8217;m sure there are themes that you have always wished for in a game but never got realized. If that&#8217;s the case, feel free to drop me a line! For the AirlineSim fans among you: Rest assured that development of AS will continue as planned at least until 1.5 has been out the door and through it&#8217;s first few iterations. After that I&#8217;m planning to scale back on AS a bit but to keep supporting and extending it with regular patches.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2010/04/30/so-what-next/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'AirlineSim,EN,simulogics';
var flattr_btn = 'compact';
var flattr_tle = 'So&#8230;what next?';
var flattr_dsc = 'It\'s almost 3 o\'clock at night and I can\'t sleep. Probably due to the larger quantities of coke and coffee I had the evening before...but also because I have a lot of stuff floating around my head that keeps my brain from slipping into sleep-mode.  In a few days time it will have been 10 months since the international portal for AirlineSim was launched. This basically marked the final public step towards my decission to do browsergames for a living. As you can see, I don\'t live under a bridge just yet, so it hasn\'t been all bad. But it\'s also been a tough time that brought to light many weaknesses of AirlineSim that never appeared to me before. Most importantly I underestimated how difficult it would be to transform a hobby project that\'s been around for several years into a commercial one that needs to sell well enough to pay the bills of at least one person (and his cats).  AirlineSim has always been layed out as what the name suggests: Being a realistic airline simulation. This never included making a';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2010/04/30/so-what-next/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My iPad impression: Big risk for Apple</title>
		<link>http://www.lunikon.net/2010/01/27/my-ipad-impression-big-risk-for-apple/</link>
		<comments>http://www.lunikon.net/2010/01/27/my-ipad-impression-big-risk-for-apple/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 22:38:15 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Spielzeug]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=214</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Today, the holy Steve Jobs came down to us once again to present to us his latest prophecy, the long awaited <a href="http://www.apple.com/ipad/">iPad</a>. While the device looks slick as always, I see it as a tremendous risk for Apple unlike any of its other new products of recent years.</p>
<p>Usually, after Apple announces a new gadget, people are excited about the things they saw. But this time the vibes on the comment sections of large tech-sites feel totally different. People are disappointed because the iPad is a weak blend of iPhone and MacBook. It lacks connectivity and storage options big time (no card slots, no USB) and it is not usable as a phone unless using third-party VoIP applications. It brings along the tight restrictions from the iPhone (you can only buy apps and media via iTunes) while offering hardly any advantages of a notebook. Although I probably wouldn&#8217;t care, some complain about the absence of a camera and I figure that the comparably short battery life is an issue for people who&#8217;d like to use it as an e-reader.</p>
<p>So after all I see only two ways that could lead to a success of the iPad:</p>
<ol>
<li>The Apple factor: A large portion of people will buy it because it&#8217;s a beautiful gadget from Cuppertino and they will ignore the fact that they are forced to use a not-even-that-cheap device exactly the way Apple&#8217;s designers want them to.</li>
<li>The iPad is received by consumers as a mobile high-end web and gaming platform.</li>
</ol>
<p>I can imagine that sitting on a train or in a cafe and having the iPad to surf the web would be a far more comfortable experience than doing the same on an iPhone. But that&#8217;s basically the only area in which I see the iPad as a winner. Apple is great at establishing new products &#8211; the iPhone being the grandest example &#8211; but history shows us that even Apple can fail&#8230;and I see the chances of Apple failing with the iPad higher than with any other product in their portfolio.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2010/01/27/my-ipad-impression-big-risk-for-apple/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'Apple,EN,iPad,iPhone,Mac';
var flattr_btn = 'compact';
var flattr_tle = 'My iPad impression: Big risk for Apple';
var flattr_dsc = 'Today, the holy Steve Jobs came down to us once again to present to us his latest prophecy, the long awaited iPad. While the device looks slick as always, I see it as a tremendous risk for Apple unlike any of its other new products of recent years.  Usually, after Apple announces a new gadget, people are excited about the things they saw. But this time the vibes on the comment sections of large tech-sites feel totally different. People are disappointed because the iPad is a weak blend of iPhone and MacBook. It lacks connectivity and storage options big time (no card slots, no USB) and it is not usable as a phone unless using third-party VoIP applications. It brings along the tight restrictions from the iPhone (you can only buy apps and media via iTunes) while offering hardly any advantages of a notebook. Although I probably wouldn\'t care, some complain about the absence of a camera and I figure that the comparably short battery life is an issue for people who\'d like to use it as an e-reader.  So after all';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2010/01/27/my-ipad-impression-big-risk-for-apple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Christmas Tech: Apple MagicMouse</title>
		<link>http://www.lunikon.net/2009/12/27/christmas-tech-apple-magicmouse/</link>
		<comments>http://www.lunikon.net/2009/12/27/christmas-tech-apple-magicmouse/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 15:02:45 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Spielzeug]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[MagicMouse]]></category>
		<category><![CDATA[Xmas]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=210</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Christmas &#8211; for a nonbeliever like me anyway &#8211; largely consists of giving and receiving presents. And the major percentage of the presents I receive nowadays falls into the &#8220;tech&#8221; category. So I&#8217;ll try to give a brief review of the new items that I&#8217;ll have to replace again in two years down the road.</p>
<p>To begin with, my new mouse: The recently released MagicMouse from Apple. I&#8217;ve been a happy Microsoft IntelliMouse Explorer user for the last years. In fact I hardly saw the need to replace my mouse. So the reason I put the MagicMouse on my wishlist was primarily due to Apple&#8217;s excellent marketing&#8230;and the fact that I really enjoy the MacBook&#8217;s multi-touch functionality which Apple has now added to a seperate input device for the first time.</p>
<p>Like with every new mouse, the first thing that feels awkward is the size and shape of the new tool. The MagicMouse is no different in this respect as it&#8217;s considerably smaller than the Explorer and it will take me a few days to completely adjust. Also, since the total of the mouse&#8217;s shell is a single button, it feels strange to do a &#8220;click&#8221; because the whole thing appears to be moving. At this point I got to say that Apple could have put more emphasis on making the click a little less noisy. Somewhat similar to the multi-touch mouse-pad of the new MacBooks, which is a button too, the click is very loud compared to other mice. The &#8220;scratching sound&#8221; when moving the mouse over the table surface is comparable to that of the Explorer while any sound when scrolling is obviously nonexistant with multi-touch gestures (a noticable issue of the latest IntelliMouse Explorer).</p>
<p>That said, the most important feature of the MagicMouse of course are the touch gestures. Scrolling in all directions feels extremely natural because all you have to do is slide around with your finger. This is extremely useful for web pages with horizontal scroll bars (why do those exist, anyway?) and appears to be a good replacement for the MightyMouse&#8217;s scroll ball which apparently caused quite some trouble after extensive use. A two-finger swipe left or right allows to navigate forward or backward, primarily through your browser history. This is extrememely useful, especially since I learned to love this feature while still working under Windows with an Explorer mouse (which had buttons on the side mapped to these functions) and then missing this functionality under OS X due to bad driver support.</p>
<p>So overall I&#8217;m quite happy with the device so far. It&#8217;s the first wireless device I ever used as I&#8217;m very sceptical about having a mouse dependant on a battery, so it will be interesting to see whether the MagicMouse can change my opinion on those in general. When back in my own place I&#8217;ll try to write a few lines about the other important piece of tech I found under the tree this year.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2009/12/27/christmas-tech-apple-magicmouse/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'Apple,EN,Mac,MagicMouse,Xmas';
var flattr_btn = 'compact';
var flattr_tle = 'Christmas Tech: Apple MagicMouse';
var flattr_dsc = 'Christmas - for a nonbeliever like me anyway - largely consists of giving and receiving presents. And the major percentage of the presents I receive nowadays falls into the \"tech\" category. So I\'ll try to give a brief review of the new items that I\'ll have to replace again in two years down the road.  To begin with, my new mouse: The recently released MagicMouse from Apple. I\'ve been a happy Microsoft IntelliMouse Explorer user for the last years. In fact I hardly saw the need to replace my mouse. So the reason I put the MagicMouse on my wishlist was primarily due to Apple\'s excellent marketing...and the fact that I really enjoy the MacBook\'s multi-touch functionality which Apple has now added to a seperate input device for the first time.  Like with every new mouse, the first thing that feels awkward is the size and shape of the new tool. The MagicMouse is no different in this respect as it\'s considerably smaller than the Explorer and it will take me a few days to completely adjust. Also, since the total';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2009/12/27/christmas-tech-apple-magicmouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrating CAS and Wicket</title>
		<link>http://www.lunikon.net/2009/11/24/integrating-cas-and-wicket/</link>
		<comments>http://www.lunikon.net/2009/11/24/integrating-cas-and-wicket/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 09:08:33 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[AirlineSim]]></category>
		<category><![CDATA[CAS]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Wicket]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=192</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>At AirlineSim we use <a href="http://www.jasig.org/cas">CAS</a> for user authentication and right now we are in the process of migrating parts of the game to the great web framework <a href="http://wicket.apache.org">Wicket</a>. Yesterday I thought about a way of integrating both in a way that a user is automatically redirected to a login page when he lacks access rights and that he returns to the exact same page after he has completed the login. All should be done in a &#8220;Wicket way&#8221;. Below you find my approach, please let me know when you find errors or if you can think of ways so solve it in a better way. For demonstration purposes I use simplified code passages. It looks slighty more complex in AirlineSim.</p>
<p>The first step is to check in a custom <a href="http://wicket.apache.org/docs/1.4/org/apache/wicket/authorization/strategies/page/AbstractPageAuthorizationStrategy.html">PageAuthorizationStrategy</a> whether a CAS assertion exists. I&#8217;m using the filters provided by the Jasig CAS Client to place the assertion in an AssertionHolder. If no assertion is provided (which means the user is not logged in) I use Wicket&#8217;s intercept page mechanism to redirect the user to CAS.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CASPageAuthorizationStrategy<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">extends</span> AbstractPageAuthorizationStrategy<br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; @Override<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #339933;">&lt;</span>T <span style="color: #000000; font-weight: bold;">extends</span> Page<span style="color: #339933;">&gt;</span> <span style="color: #000066; font-weight: bold;">boolean</span> isPageAuthorized<span style="color: #009900;">&#40;</span>Class<span style="color: #339933;">&lt;</span>T<span style="color: #339933;">&gt;</span> pageClass<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Assertion assertion <span style="color: #339933;">=</span> AssertionHolder.<span style="color: #006633;">getAssertion</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>assertion <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> isLoginRequired<span style="color: #009900;">&#40;</span>pageClass<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a> url <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;https://your.cas.installation/login?service=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aurlencoder+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">URLEncoder</span></a>.<span style="color: #006633;">encode</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;http://your.cas.clientapp/app/redirectAfterLogin&quot;</span>, <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aunsupportedencodingexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UnsupportedEncodingException</span></a> e<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RedirectPage intercept <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RedirectPage<span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> RestartResponseAtInterceptPageException<span style="color: #009900;">&#40;</span>intercept<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>As you can see, the code is pretty much straight forward: When the user isn&#8217;t logged in and a login is required (&#8221;isLoginRequired&#8221; just for demonstration purposes), the URL for the redirect to CAS is built. Since I&#8217;m using an intercept page, the path in the service parameter always points to &#8220;/redirectAfterLogin&#8221;, but more about that in a minute. The URL is passed to a new instance of RedirectPage which itself is passed to the RestartResponseAtInterceptPageException. When this exception is thrown, Wicket will &#8220;remember&#8221; the page the user just tried to call and redirect him to the RedirectPage. The latter will immediately redirect him to CAS for login. </p>
<p>So what about the &#8220;/redirectAfterLogin&#8221; in the service path? At this location I mounted the following page class:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RedirectAfterLoginPage<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">extends</span> WebPage<br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> RedirectAfterLoginPage<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>continueToOriginalDestination<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setResponsePage<span style="color: #009900;">&#40;</span>getApplication<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getHomePage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Its job is very simple. All it does is redirecting the user to the page Wicket &#8220;remembered&#8221; when the RestartResponseAtInterceptPageException was thrown. Since the user might access this page by accident and there is no markup for it, make sure to provide a response page even if no original destination is available. Otherwise the user will get to see an error page. I used the application&#8217;s home page as the default here.</p>
<p>And that&#8217;s basically it. Please note that the code snippets above are untested pseude code and will most definitely have to be adjusted to your environment. </p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2009/11/24/integrating-cas-and-wicket/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'AirlineSim,CAS,EN,Java,Wicket';
var flattr_btn = 'compact';
var flattr_tle = 'Integrating CAS and Wicket';
var flattr_dsc = 'At AirlineSim we use CAS for user authentication and right now we are in the process of migrating parts of the game to the great web framework Wicket. Yesterday I thought about a way of integrating both in a way that a user is automatically redirected to a login page when he lacks access rights and that he returns to the exact same page after he has completed the login. All should be done in a \"Wicket way\". Below you find my approach, please let me know when you find errors or if you can think of ways so solve it in a better way. For demonstration purposes I use simplified code passages. It looks slighty more complex in AirlineSim.  The first step is to check in a custom PageAuthorizationStrategy whether a CAS assertion exists. I\'m using the filters provided by the Jasig CAS Client to place the assertion in an AssertionHolder. If no assertion is provided (which means the user is not logged in) I use Wicket\'s intercept page mechanism to redirect the user to CAS.  [cc lang=\"java\"] public class CASPageAutho';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2009/11/24/integrating-cas-and-wicket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finally, an update</title>
		<link>http://www.lunikon.net/2009/11/22/finally-an-update/</link>
		<comments>http://www.lunikon.net/2009/11/22/finally-an-update/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 23:12:32 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Persönliches]]></category>
		<category><![CDATA[EN]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=181</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>I wanted to redo my blog for quite a while now and today I finally got to do it. The primary objective was to switch the system from Serendipity to Wordpress. We&#8217;re using the latter with <a href="http://www.airlinesim.aero">AirlineSim</a> and it really grew on me while Serendipity was more of a hassle although I&#8217;m everything but a heavy user.</p>
<p>Along came a new theme. I looked around the web for several hours searching for one that was easy to modify, as I wanted the new design to resemble the look of the old one and at the same time to take it a few steps further. Because I really wasn&#8217;t in the mood for CSS hackery today I settled with this professional but less customized template. I might switch to another one in the future in case I finally come across a good one I like.</p>
<p>Since I&#8217;m often switching between languages here, I tagged all posts with the language they are written in. To list all posts available in your preferred language, simply click DE or EN in the tag cloud on the right. After doing so you can also subscibe to an RSS feed based on that tag.</p>
<p>Please let me know what you think.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2009/11/22/finally-an-update/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'EN';
var flattr_btn = 'compact';
var flattr_tle = 'Finally, an update';
var flattr_dsc = 'I wanted to redo my blog for quite a while now and today I finally got to do it. The primary objective was to switch the system from Serendipity to Wordpress. We\'re using the latter with AirlineSim and it really grew on me while Serendipity was more of a hassle although I\'m everything but a heavy user.  Along came a new theme. I looked around the web for several hours searching for one that was easy to modify, as I wanted the new design to resemble the look of the old one and at the same time to take it a few steps further. Because I really wasn\'t in the mood for CSS hackery today I settled with this professional but less customized template. I might switch to another one in the future in case I finally come across a good one I like.  Since I\'m often switching between languages here, I tagged all posts with the language they are written in. To list all posts available in your preferred language, simply click DE or EN in the tag cloud on the right. After doing so you can also subscibe to an RSS feed based';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2009/11/22/finally-an-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going international</title>
		<link>http://www.lunikon.net/2008/07/15/going-international/</link>
		<comments>http://www.lunikon.net/2008/07/15/going-international/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 20:17:03 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[AirlineSim]]></category>
		<category><![CDATA[EN]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=68</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>The last few weeks <a title="AirlineSim" href="http://www.airlinesim.de">AirlineSim</a> have been quite a bit of fun again and it almost feels like the good old times. With the definite decission taken that we want to roll out an English version of the game before the end of the year a whole lot of things have happened. Let me summarize real quick:</p>
<p>First of all, the yearly team meeting which took place at a classic location in Stuttgart was a great success in any sense. Besides the culinary part of it we thought a lot about AirlineSim and how we could improve it. The bad thing: We&#8217;ve got so many nice want-to-haves on the list now that I have no clue when and how we&#8217;re supposed to realize them. But oh well, we&#8217;ll find a way&#8230;if you happen to be an experienced Java programmer and have an interest in helping us out, please let me know <img src='http://www.lunikon.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>As <a href="http://airlinesim.4players.de/vbb/showthread.php?p=70757#post70757">mentioned on the forums</a> we decided more or less spontaneously that AirlineSim deserves a major overhaul. So I&#8217;ve been spending a whole lot of time lately building up a new foundation based on an awesome component-based Java framework called <a title="Apache Wicket" href="http://wicket.apache.org">Wicket</a>. Although the learning curve is quite steep for my taste I&#8217;ve come to love it over the past months I&#8217;ve spent working with it at my day job. It most definately is a pleasure compared to the current Struts 2-based setup and it allows for far more up-to-date features while keeping development time for these gimmicks extremely low. So to keep it short: It&#8217;s been fun to work in AS lately and I&#8217;m really looking forward to our new major version&#8230;it&#8217;s going to be a milestone in AirlineSim&#8217;s history.</p>
<p>But that&#8217;s not all. As you might know, AirlineSim is published by <a title="4players" href="http://www.4players.de">4players</a> so far. And while it will stay that way for the German version we need to build up everything from scratch for the international launch. First question was: What&#8217;s going to be our domain name? Nobody (us included) thought of reserving airlinesim.net or another non-German and well known TLD when the project was started 6 years ago. Now all of the good variants are taken by other entities. Well, almost. One team member came up with the idea to get an <a href="http://www.nic.aero">.aero domain</a>. This sponsored domain is only available to &quot;members of the aviation community&quot; and because I liked the idea of such a domain a lot I handed in an application for a .aero ID on Sunday. Monday I got a response saying that more information on our request was needed&#8230;we had to prove that we actually deserve such a domain. I was kind of scared since I really wasn&#8217;t sure whether this was going to work out at all. So I wrote a short text about who we are and what we do, that we&#8217;re very interested in a realistic simulation and that many of our players and team members are actually aviation professionals (which is true, btw). When I opened my mailbox this evening the first thing catching my eyes was a heading which looked very promissing&#8230;and in fact it was the confirmation that we&#8217;re now authorized to register .aero-domains! Wohoo!</p>
<p>So now everything&#8217;s about paving the rest of the way to our international launch&#8230;registering the actual domain, getting a server, setting everything up and, oh yeah, program a new version of AirlineSim. I almost forgot. So dear reader&#8230;I&#8217;m back in the code. I&#8217;ll keep you updated!</p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2008/07/15/going-international/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'AirlineSim,EN';
var flattr_btn = 'compact';
var flattr_tle = 'Going international';
var flattr_dsc = 'The last few weeks AirlineSim have been quite a bit of fun again and it almost feels like the good old times. With the definite decission taken that we want to roll out an English version of the game before the end of the year a whole lot of things have happened. Let me summarize real quick:First of all, the yearly team meeting which took place at a classic location in Stuttgart was a great success in any sense. Besides the culinary part of it we thought a lot about AirlineSim and how we could improve it. The bad thing: We\'ve got so many nice want-to-haves on the list now that I have no clue when and how we\'re supposed to realize them. But oh well, we\'ll find a way...if you happen to be an experienced Java programmer and have an interest in helping us out, please let me know ;-).As mentioned on the forums we decided more or less spontaneously that AirlineSim deserves a major overhaul. So I\'ve been spending a whole lot of time lately building up a new foundation based on an awesome component-based Java framewo';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2008/07/15/going-international/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Visiting an aviation sanctuary</title>
		<link>http://www.lunikon.net/2008/01/10/visiting-an-aviation-sanctuary/</link>
		<comments>http://www.lunikon.net/2008/01/10/visiting-an-aviation-sanctuary/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 07:46:26 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Aviation]]></category>
		<category><![CDATA[Lunikon worldwide]]></category>
		<category><![CDATA[EN]]></category>
		<category><![CDATA[Hong Kong]]></category>

		<guid isPermaLink="false">http://www.lunikon.net/?p=58</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>We did it. Nils and I actually took the trip every true aviation enthusiast should take once in his/her life. Well, at least should try to whenever around the area <img src='http://www.lunikon.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Since any reader not absolutely visually impaired knows that I&#8217;m currently residing in Hong Kong, most of the more interested in aviation might have already figured what I&#8217;m talking about: We visited the probably most famous checkerboard there is&#8230;at least in aviation. For everyone who doesn&#8217;t have a clue what I&#8217;m talking about a short explanation: The old airport of Hong Kong, namely Kai Tak, was located right in Kowloon with its only runway constructed in the middle of victoria harbour. Because of the predominant winds and the mountainous surrounding area a direct approach was impossible. Therefore pilots had to fly into Hong Kong low over densly populated districts and turn sharply by 43 degrees just seconds before touch-down. To help the pilots &quot;hit the right spot&quot;, a checkerbord was installed which, whenever visible, marked the spot at which the turn had to me made. This approach is easily the most exciting one in aviation history and if you can&#8217;t quite imagine what&#8217;s supposed to be so interesting about it, take a look at <a href="http://www.airliners.net/open.file/0049408/L/">this</a> or <a href="http://www.airliners.net/open.file/1226009/L/">this</a> or <a href="http://www.airliners.net/open.file/1005859/L/">this</a> picture. You can find <a href="http://en.wikipedia.org/wiki/Kai_Tak_Airport">more information on the airport and the approach on Wikipedia</a>.</p>
<p>But now a little something about our trip itself. We took the East Rail Line to Kowloon Tong and changed to the Kwun Tong Line to get to Lok Fu. The &quot;Checkerboard Hill&quot;, the little mountain the checkerboard is placed on, is located in a small park right next to the station. Unfortuntely we didn&#8217;t bring along a map (d&#8217;oh) and since we thought the hill was a little further off we started walking straight into the wrong direction. After we walked into a few dead ends and around the complete park we finally got a <a href="http://www.lunikon.net/gallery/main.php/v/ImpressionsfromHongKong/checkerboard/IMG_7695.JPG.html">glimpse of our goal</a> through fences and plenty of vegetation. We then tried to climb up the hill to get both a view of the old airport as well as the board itself. But since the whole top of the mountain is a fresh water reservoir everything was tightly sourrounded by fences and it was prohibited to step about anywhere. Since both of us are self-confessed wimps who enjoyed a good education we didn&#8217;t dare to cross any of those lines of course. But obviously we weren&#8217;t alone in our pilgrimage and we met an <a href="http://www.lunikon.net/gallery/main.php/v/ImpressionsfromHongKong/checkerboard/IMG_7719.JPG.html">asian couple</a> who seemed to have the same goal as we did. Contrary to us they were quite a bit more daring and bravely ignored the old signs &quot;blocking&quot; the entry to some dirt tracks around the middle part of the hill. So we followed them and figured quickly that absolutely no one except us ever gave a damn about the signs&#8230;at least judging from &quot;trails&quot; they left <img src='http://www.lunikon.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Shortly after we enjoyed an almost unobstructed view of the <a href="http://www.lunikon.net/gallery/main.php/v/ImpressionsfromHongKong/checkerboard/IMG_7721.JPG.html">old airport</a> (now a large construction site) and <a href="http://www.lunikon.net/gallery/main.php/v/ImpressionsfromHongKong/checkerboard/IMG_7710.JPG.html">Kowloon</a>. The checkerboard itself is in a <a href="http://www.lunikon.net/gallery/main.php/v/ImpressionsfromHongKong/checkerboard/IMG_7706.JPG.html">miserable condition</a>, covered by weeds and trees to a large extend and with the colors worn off over time. If it wasn&#8217;t for the water reservoir the whole hill would probably have already been converted into building ground for an office building, an appartment tower or, most likely, a mall. It would be really nice if someone could clear the board of all the plants, give it a fresh paint job and make it more accessible. This would keep a little piece of Hong Kong history alive&#8230; something that should have been done a lot more often in this city but was usually neglected. </p>
<p>Anyway, I can claim I&#8217;ve been there! You can take a look at a few of the photos we took <a href="http://www.lunikon.net/gallery/main.php/v/ImpressionsfromHongKong/checkerboard/">here</a>. And if you think we&#8217;re crazy&#8230;hey, some people fly around the globe just to <a href="http://en.wikipedia.org/wiki/Black_Stone">walk around a stone</a> in circles, so I can take the MTR to look at a checkerboard <img src='http://www.lunikon.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p></p>
<script type="text/javascript">
var flattr_wp_ver = '0.8';
var flattr_uid = '12981';
var flattr_url = 'http://www.lunikon.net/2008/01/10/visiting-an-aviation-sanctuary/';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'EN,Hong Kong';
var flattr_btn = 'compact';
var flattr_tle = 'Visiting an aviation sanctuary';
var flattr_dsc = 'We did it. Nils and I actually took the trip every true aviation enthusiast should take once in his/her life. Well, at least should try to whenever around the area ;). Since any reader not absolutely visually impaired knows that I\'m currently residing in Hong Kong, most of the more interested in aviation might have already figured what I\'m talking about: We visited the probably most famous checkerboard there is...at least in aviation. For everyone who doesn\'t have a clue what I\'m talking about a short explanation: The old airport of Hong Kong, namely Kai Tak, was located right in Kowloon with its only runway constructed in the middle of victoria harbour. Because of the predominant winds and the mountainous surrounding area a direct approach was impossible. Therefore pilots had to fly into Hong Kong low over densly populated districts and turn sharply by 43 degrees just seconds before touch-down. To help the pilots &quot;hit the right spot&quot;, a checkerbord was installed which, whenever visible, marked the';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lunikon.net/2008/01/10/visiting-an-aviation-sanctuary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

