random ramblings

2010-02-01 - Flash, Silverlight, JavaScript, Java, Unity - oh my!

I have decided to make Operation Survival a browser game. Given my design ambitions. I think that is pretty much the only viable choice. The next thing to decide is what exact technologies to use client side. The game requires some interactive 3D graphics (the globe and the isometric tactical view) and should look and feel like a dynamic game not like a static website. My options pretty much boil down to the following:
  • JavaScript: There are huge differences in performance and feature sets as implemented by the various browsers. People are still trying to figure out the best way to achieve even the most basic of tasks. It does not offer a good development environment I'd feel comfortable with. It doesn't offer the breadth of libraries other languages do and it doesn't support socket connections which will be required for client server communication.
  • Java: A fully featured "real" programming language with a huge selection of libraries and development tools. However, the browser experience leaves a lot to be desired and lives a niche existence. Java applets feel slow to load, slow to display and don't integrate well in the browser. Still, there are good examples as well and Java would certainly be a viable choice.
  • Unity3D: Very cool technology. The only one of the bunch supporting 3D acceleration. The development environment and content creation tools are top notch. It runs on the iPhone. Unfortunately it requires a custom plug-in thus presenting an extra hurdle. It's also not as mature as the others and the plug-in crashed my browser the first time I have tried it. It is not yet widely adopted and probably needs a big killer application to spread (what videos did for Flash).
  • Silverlight: Microsoft's offering trying to go against the dominance of Flash. Best of breed development environment in the form of Visual Studio. A choice of solid programming languages like C#. Hasn't spread nearly as far as Microsoft would have hoped for. I never could get the plug-in to work with FireFox. I also doubt Microsoft's ability and willingness to really offer wide platform and browser support. They are in a conflict of interests there - support Apple (Safari, iPhone)? Google (Chrome, Android)? Linux?
  • Flash: The dominant platform for rich Internet applications. Runs pretty much anywhere. Offers a decent standardized programming language with ActionScript 3.0. Unfortunately it is controlled by single company, Adobe, as well. However, I don't think Adobe is in a conflict of interests as bad as Microsoft is. There is a free command line compiler and usable free open source development IDE in the form of FlashDevelop. There are tons of libraries for graphics, user interface and even 3D. Market penetration is close to 100%. Everyone who has ever used online video from Youtube and the likes will have flash installed.
  • HTML(5), WebGL, ...: Although these sound very promising and some amazing demos of their capabilities exist they are not nearly ready for prime time yet. It remains to be seen whether they'll ever reach wide spread adoption and whether they actually offer what I need. My experience from working with HTML, CSS, JavaScript (i.e. Ajax) is that you spend the majority of your time fighting the tools and limitations of the environment rather than progressing with your actual content.
Given these observations I think Flash is the right choice. Write once, deploy everywhere is a huge advantage over write once, test everywhere like you had to do with HTML and JavaScript. It does require a plug-in, but the most ubiquitous and unobtrusive of the bunch. It is closed source and controlled by a single company, but again, I think the lesser evil of the given options.

So Flash/ActionScript it is.

Next up: What's it gonna be for the server?

posted by BuschnicK at Monday, February 01, 2010 2 comments

2010-01-25 - Operation Survival - design guidelines

One of my goals for Operation Survival is to make the barriers to entry as low as possible. This means a couple of things:
  • The user shouldn't be required to install anything, the game should just run.
  • There should be no platform or operating system requirements. In an ideal world it'll run on any device including PCs, smart-phones, consoles, eBooks, TVs and microwave ovens.
  • There shouldn't be any user interface surprises. My grandma's poodle should be able to pick it up and play.
  • The setting and genre should be somewhat familiar from other fiction. Originality is great and all, but I don't want to require the player to learn the inner logic of a wholly unfamiliar universe. I'd much rather take the real world and twist that in subtle ways. I think the cliche alien UFO conspiracy theories offer plenty of fertile ground for that.
  • Sign up and payment options should be as transparent as possible. There should be an easy transition from interested visitors, just wanting to grasp what the game is all about to fully invested hardcore players spending their life in the game world.
  • The game should be fully localized, no need to communicate in broken school English.
  • There should be an easy and obvious way to get support and provide feedback at every point during the game.
  • It should be easy for players to bond and build communities. Every effort should be made to create a newbie friendly, non-hostile environment.
  • ... I have probably forgotten quite a few more.
With such an ambitious set of goals it is obviously impossible to fulfill them all equally well. There will always be trade-offs and compromises and lots of the issues are a matter of personal opinion to begin with. Nevertheless, I think it's a good idea to state some guiding principles when fleshing out the design further, so that's what I'm trying to do here.

Considering all of the above and the fact that the underlying game design is fundamentally multiplayer I believe a browser based solution is the only way to go. Browsers are ubiquitous, the back button and links the universal user interface primitives everyone on the planet understands by now. Browsers run everywhere. Everyone that uses one is already connected to the Internet and thus able to play multiplayer. Browsers shoulder the burden of guaranteeing security. Everything that runs in a browser window is assumed to be safe while downloads are seen with skepticism by even the most naive of users.

So a browser game it is.

I'll post my thoughts on the other points soon. In the meantime: What do you think about those axioms? Anything missing? How would you weight the priorities?

posted by BuschnicK at Monday, January 25, 2010 4 comments

2010-01-24 - Operation Survival - humanities last stand

I have a pet game idea and design lingering at the back of my head for close to 15 years now (I'm getting old I suppose). That idea was the reason for developing BlackFish, an isometric 3D engine. Back in the days we used C++ and DirectX7. Anyways, I still like the concept very much and nobody has produced the game in the meantime. So I have decided to give it another go.

If you know the old UFO XCOM series by the Gollup brothers you have a pretty good idea of what I'm aiming for. The game is a perfect blend of a base building, resource management and turn based tactical combat simulator. The premise is that the earth is under attack by aliens invading with small fleets of UFOs, performing various reconnaissance, raid or research missions - conducting nasty experiments with cows and such alien stuff ;-) The back story is not entirely original but very well done and plays expertly with real world conspiracy theories and ufology.

The game is roughly divided into three major parts:

The geoscape, a view of the whole world, floating in space like the vulnerable blue marble that she is. You choose where to build your bases in this view which affects which countries will pay you for protecting them. You also coordinate UFO intercept missions by launching your fighters after them. This part plays in real-time.

The battlescape, a 3D isometric view of tactical combat missions. After a UFO has been shot down or landed you send in your ground troops to clean up the place. The action is turn based and you coordinate up to around a dozen soldiers to find the surviving aliens and either stun and take them hostage or simply kill them. The missions are usually set in some idyllic small town with the UFO crashed in a corn field nearby. There is a strong role playing component as all your soldiers have names and individual abilities and stats.

The last part are the various resource management screens available from the geoscape view. You build out your bases with better radars, more research laboratories, better alien containment facilities, ground-to-air rocket defenses, living quarters for your soldiers and similar buildings. You also coordinate researching the found alien artifacts and interrogating kidnapped aliens. Once you understood parts of the technology you can start using and building it yourself.

In my eyes even to this day this is the greatest game ever made. The atmosphere it managed to create was just phenomenal. The genre blend worked perfectly and didn't feel tacked on or misplaced as is often the case with similar experiments. The scale was nailed wonderfully by contrasting the whole globe view with the handful of soldiers combat missions. You really felt responsible for the earth as a whole and bled with individual soldiers at the same time.


I'd like to update the original concept a bit because I believe it would make a perfect online multiplayer game. I imagine a continuously running, real time geoscape with hundreds of players. Every one manages a single base and flies intercept missions from that base. This would be a "massively" multiplayer part and allow for global events like coordinated alien attack waves which have to be fended off. The game would run in a browser and allow for very casual play sessions (during work ;-) ). You log in, play through some short aerial UFO dog fights, give some research and construction orders and log out again. Base building and research works as in most text based browser games which use real time as a resource (i.e. constructing a new laboratory takes 3 days). When you have the leisure for a longer play session you sit down to play a tactical mission. These would be turn based as in the original with some crucial changes. Most importantly they'd be multiplayer. The player who shot down the UFO "owns" it. He sends out his ground troops and may invite additional players to join him in combat. Once all players have joined the mission starts and lasts between half an hour to several hours. There is no load/save, death is permanent. This calls for careful balancing and ways to rescue dying soldiers as long as you still have some men standing but I hope to make the player really sweat for his men. There is a global ranking system with military ranks from private to general and you'll have to balance risking your top men in missions vs being overtaken by other players.

I think this design will fix lots of current multiplayer game offering shortcomings and make them work to its advantage. One is the investment of time. Current games are either very casual without any persistent state except for the high score (think connect-three flash mini games), require massive investments of time (world of warcraft) or don't allow you to invest more time when you actually want to because you have to wait around for the next event (text based browser game with real time resources like OGame). Operation survival tries to work on all of these time scales, adapting to and respecting the players busy life.
Another point that really bugs me is the competitive nature of most multiplayer games. Often the player who invested the most time (grinded the most) automatically wins. Skill is a secondary issue, if at all. This leads to strong players totally dominating and exploiting new comers (farming n00bs). This again leads to lots of bad blood and grieving players and creates a high barrier to entry. Existing player protect their investment and actively discourage newbies. Operation survival has no means of direct player vs player offensive actions. All players pursue the common goal of protecting the earth. The only competitive aspect is in the various rankings and ladders. You want to be the one having the general, produce the most research, own the most resources, shoot down the most UFOs etc.

While lots of this may sound very derivative of the original UFO (and it should!) I do have lots of detailed ideas to make this work as a multiplayer game. More in the coming months...

This is a very ambitious project and will probably never see the light of day. However, it's fun aiming for the stars and working on it. My hope is that it'll eventually pick up momentum and I'll find supporters. After all, the original game was a labor of love of two guys as well. Maybe technology and productivity advances made since then allow the updated design to be realized by a small team as well? Today's expectations for browser game visuals and production values are around the level of the original UFO I'd say.

Dream big.

posted by BuschnicK at Sunday, January 24, 2010 9 comments

2010-01-16 - Book review: ActionScript for Multiplayer Games and Virtual Worlds

This book is a huge disappointment. Despite the trendy topic and the promising title it completely fails to deliver. The crucial hint is the fact that the author is a founder of Electrotank. Because of that the book has become a thinly disguised advertisement for Electrotank's server product. Nowhere in the title or on the cover flap does it hint that all examples, text and code are basically useless without the commercial Electroserver. It would have been fair to distribute the book's content as free sample programs and tutorials with the server instead of selling it as a fully priced stand alone product. The way it stands it feels like a shameless rip-off.

There are lots of major shortcomings with the content. Despite dealing with network games there is basically no treatment whatsoever of networking protocols, encryption or compression schemes, redundancy or other such "minor details" that make networking code a hard problem. Instead it is assumed that all of these things are magically dealt with by the server product. In the same vain there isn't a single example of actual server code! There is a passing mention that you'll need to write plugins to handle the server side of things but you are only presented with half the game. Now to be fair the book is about ActionScript and you don't usually write the server parts in that language, but since the server is a non trivial part of any multiplayer game it would have been fair to spend a few words on that.

The chapter on security does mention many of the important topics that plague online developers. However, it stops well short of actually offering solutions to these issues. The advice can basically be summed up as "don't trust the client!". Cross site scripting, packet injection, SQL injection, hacking the client's memory and data encryption are all mentioned in small half paragraph passages. While the problems are well stated they can at best serve as entry points for google searches and in themselves offer very little actionable advice.

Many of the code examples in the book are worthless because they show long lists of member variable assignments. I knew how to do that, thank you. The interesting part is not how to assign _x = 12; The interesting part is how that object actually synchronizes itself with the server and other clients. An apparently unimportant detail that gets skimped over because Electroserver will magically solve that for you. Similarly, some code examples which are actually useful miss the topic of the book. A* pathfinding or rendering an isometric view, while well presented, have little to do with multiplayer.

Last but not least there are the factual errors. Things like a set of equations, which, when you actually solve them, present results such as "server time = server time + offset". Huh? Or errors in diagrams where a bar chart is shown and a line supposedly marking the median (not mean, mind you) which doesn't fit any of the values.

While it is clear that the author is knowledgeable on the topic and brings a lot of experience the resulting book is unfortunately quite shallow and superficial. It also seems as if the author deals with games in quantity, not quality. This is understandable, considering he's in the business of selling a back end product and that lots of low quality games is where the flash game industry as a whole is currently at, but it's nevertheless lamentable. I personally would have hoped for someone who lives, breathes and loves games and doesn't treat them as a commodity.

posted by BuschnicK at Saturday, January 16, 2010 0 comments

2010-01-02 - Washing spoons

posted by BuschnicK at Saturday, January 02, 2010 0 comments

2009-12-09 - "The Killer Elite" in Rolling Stone Magazine

An eerie series of articles about the war in Iraq. Apparently it has won several awards. Note the "advertisement" smack in the middle of it.

An hour later, the Marines have set up a camp off the edge of the airfield. They are told they will stay here for a day or longer. This morning, the sun shines and there's no dust in the air. For the first time in a week, many of the Marines take their boots and socks off. They unfurl camo nets for shade and lounge beside their Humvees. A couple of Recon Marines walk over to Trombley and tease him about shooting camels.

"I think I got one of those Iraqis, too. I saw him go down."

"Yeah, but you killed a camel, too, and wounded another one."

The Marines seem to have touched a nerve.

"I didn't mean to," Trombley says defensively. "They're innocent."

[...]

When he reaches them, he notices that the younger woman seems highly distraught, gesturing and moving her mouth, but no words come out. Her breasts are exposed, her robes having fallen open while she was dragging her bundle across the fields. As Bryan approaches, she frantically unrolls its contents, revealing what appears to be a youth's bloody corpse. The boy looks about fourteen. Then he opens his eyes. Bryan kneels down. There are four small holes, two on each side of his stomach.

[...]

The younger boy's name is Naif. His brother, still hobbling around on his bloody shot leg, is Latif. The boys had gone out to the family's herd of camels, which had been frightened by the Marine Humvees and started running. The boys were chasing after them when they were shot. One was carrying a stick.

Advertisement

Each of the four holes in Naif's body is an entry wound, meaning the four bullets zoomed around inside his slender stomach and chest cavity, ripping apart his organs.

[...]

Sgt. Larry Sean Patrick, a team leader and sniper in Colbert's platoon, has spotted an Iraqi several hundred meters away, parked in a white pickup. He seems to be an observer. The rules of evidence are somewhat looser in a combat zone than they are back home ? which means that he earns himself a death sentence for the crime of appearing to be holding binoculars and a radio. Patrick fires one shot, watches for a few moments through his scope and says, "The man went down."

Part I
Part II
Part III

Fucked up world.

posted by BuschnicK at Wednesday, December 09, 2009 1 comments

2009-12-07 - Qualitätsjournalismus

http://elternimnetz.s4u.0lx.net/neuigkeiten/selbstmord-des-schuelervz-hackers-abschiedsbrief-in-codesprache-aufgetaucht/

"Bei dem Code handelt es sich hierbei um die berüchtigte
Programmiersprache C++, in der schon Metzel-Games wie Warcraft III und
Doom 4 geschrieben wurden. Dabei gilt C++ gerade unter Hackern und
Gamern als der schwierigste Code, wie auch der IT-Experte Benedikt
Mühlhausen weiß: ?In der IT-Szene wird C++ häufig für Websites und
gewaltverherrlichende Computergames verwendet. Es bietet dem Coder
sehr viele Möglichkeiten, ist dafür aber auch die schwierigste
Programmiersprache der Welt! Ohne jahrelanges Studium und die
richtigen Bücher ist da nichts zu machen.? Er selbst habe sich den
Brief mehrmals durchgelesen und staunt nicht schlecht über die
Fähigkeiten des Hacker-Jungen."...

ATOMLOL kann ich da nur sagen.

posted by BuschnicK at Monday, December 07, 2009 1 comments

2009-11-26 - Autofahrer sind asoziale Psychopathen

Wikipedia definiert die Begriffe folgendermassen:

"Psychopathie bezeichnet eine schwere Persönlichkeitsstörung, die bei den Betroffenen mit dem weitgehenden oder völligen Fehlen von Empathie, sozialer Verantwortung und Gewissen einhergeht."

"Ein Individuum vollzieht seine persönlichen Handlungen ohne die [...] Interessen anderer Menschen zu berücksichtigen."

Ich behaupte für einen Autofahrer im Auto gilt beides. Man stelle sich folgende Rollentausch Situation vor: Auf der einen Seite haben wir Herrn A.Loch, Autofahrer, aber im Augenblick ohne sein Gerät. Dementsprechend weiss er nichts mit sich anzufangen und steht abends in der Gegend herum. Auf der anderen Seite der Fussgänger Herr F.Wanderschuh. Die beiden sind sich völlig unbekannt und begegnen sich zufällig auf der Strasse. F. hält A. ein Flutlicht ins Gesicht, so dass dieser für die nächsten Minuten geblendet ist und nichts sieht. Anschliessend springt F. direkt neben A. in eine Pfütze und versaut diesen von oben bis unten mit Schmutzwasser. Dann geht F. völlig unbekümmert weiter ohne A. in irgendeiner Weise zu beachten.

Ich glaube von Mensch zu Mensch käme niemand auf die Idee dies als gewöhnliche Alltagssituation zu bewerten. Wenn aber einer der beiden in einem Auto unterwegs ist, ist derartige Rücksichtslosigkeit und Aggression vollkommen normal und allgegenwärtig. Ich bin eben erst wieder geduscht worden an einer Fussgängerampel. Aus Sicht des Autos werden Fussgänger bestenfalls als störende Hindernisse wahrgenommen.

Siehe oben: völliges Fehlen von Empathie und Handeln ohne auf andere Menschen Rücksicht zu nehmen.

posted by BuschnicK at Thursday, November 26, 2009 3 comments

2009-10-27 - impressive photographs


Something to consider when buying the next throwaway t-shirt for 2 bucks or the latest electronic gadget obsolete in a couple of months...

Amazing Pictures, Pollution in China

posted by BuschnicK at Tuesday, October 27, 2009 0 comments

2009-10-20 - It wasn't me...


Mein Wahl-O-Mat Ergebnis gegen den deprimierenden Ausgang der Wahl. Nahezu exakt invers. Was tut man als Bürger eines Landes wenn man in nahezu jedem Punkt diametral anderer Meinung als die regierende Kaste ist? Auswandern? Bomben basteln? Stimmen kaufen?

posted by BuschnicK at Tuesday, October 20, 2009 4 comments

recent digests (English):
recent digests (German):
listening to: