Categories
computer games games design java tutorials programming

Writing games in Korean – part 2

Using a custom font renderer that lets me position text exactly where I want it, I put together a simple game that teaches you to count from 1 to 10 in Korean characters.

Screenshot of numbers test

First, you HAVE to manually download the Korean font I’m using (because I don’t think I can legally include it in the executable file :( )

http://www.i18nl10n.com/fonts/UnBatang.ttf

NOTE: you MUST (windows is rubbish) do “Save to” and select C:\Windows\Fonts (this causes windows to automagically “install” the font) – I can’t remember how to install new fonts on Linux or OS-X, but it should work fine with both of those OS’s too.

Then just stick the two attached files in a directory somewhere, and double-click on the one called korean-numbercounter-all.jar

Essential library (download this)
Main file (download this to same directory as the library file, and run this file)

NB: this is mainly just a proof of concept to test my rendering code, I’ve got a couple of other simple “games” like this I’ve knocked up as tests.

Categories
computer games dev-process java tutorials programming

Writing games in Korean – part 1

First, check whether I can actually render Korean characters. I know that Unicode supports nearly all of the glyphs (or, more correctly it seems, “ideographs”) needed for Chinese, Japanese, Korean (typically abbreviated as “CJK”) – but I also know that MS Windows fonts are infamous for missing some/most/all of the unicode characters (there are tens of thousands of them, so this is not all that surprising – except that Microsoft has been shipping OS’s localized to those countries for many years now, so I’d hoped maybe they would include at least ONE “CJK + Latin” font on all machines by now, no? No; they don’t).

Quick test program using Java (NB: java one of the easier languages for this because it was invented late enough that Unicode had settled down, and so it has extremely good Unicode support built-in to the core libraries, unlike C++ et al. By default, Java uses unicode almost everywhere, so I don’t need to debug unicode support, yay!):

NB: …but then when I tried it I quickly discovered a problem. I quickly gave up on the obvious route, so might have missed a workaround, but… I could have done this using Java’s built-in GUI toolkit (Swing), which supports using any font as a text label. However, it seems there’s a design flaw in Swing that’s been around since 1997 (yes, folks, 11 years and counting): the only component that can have the font changed – JLabel – which is a “general-purpose” label for any GUI component (good idea!) … is incompatible with the only component capable of being a button – JButton – which is a “general-purpose” button. Crap. If I’m not missing something here, with one small piece of poor API design, Sun have made their *almost* international-friendly GUI system almost completely useless for multi-language GUIs. Just to be clear: it’s not specifically internationalization they’ve broken here: its a general issue – any forms of customized rendering cannot use the JButton / JLabel combo. Why? Why, why, why would you do such a stupid thing, after going to the effort of making these generic widgets? Oh, well. Custom rendering it is…

/**
 * Simple test program that renders Unicode characters from a particular font of
 * your choice, a couple of thousand at a time, automatically wrapping them based on
 * render width on screen.
 * 
 * You need to manually change the font name and the start/end co-ordinates of where
 * in the unicode constellation to render.
 */

import java.awt.*;
import javax.swing.*;

public class PaintSomeUnicodeChars extends JFrame
{
	void setup()
	{
		getContentPane().add( new charPane() );
	}
	
	public static void main( String[] args )
	{
		PaintSomeUnicodeChars window = new PaintSomeUnicodeChars();
		window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		window.setup();
		window.pack();
		window.setSize( 600, 500 );
		
		window.setVisible( true );
	}
}

class charPane extends JPanel
{
	public void paint( Graphics g )
	{
		int si = 44032;
		int ei = 46000;
		g.setColor( Color.red );
		g.setFont( new Font( "Verdana", 10, 40 ) );
		g.drawString( "Chars from " + si + " to " + ei, 30, 30 );
		
		g.setColor( Color.black );
		g.setFont( new Font( "Lucida Sans Unicode", 10, 20 ) );
		
		int accumulator = 0;
		int height = 20;
		int xwidth = getWidth();
		for( int i = si; i < ei; i++ )
		{
			char[] chars = Character.toChars( i );
			String drawString = String.copyValueOf( chars );
			int advance = g.getFontMetrics().charsWidth( chars, 0, chars.length );
			
			if( accumulator + advance > xwidth )
			{
				accumulator = 0;
				height += g.getFontMetrics().getHeight();
			}
			
			g.drawString( drawString, accumulator, height );
			
			accumulator += advance;
		}
	}
}

Why choose Lucida Sans Unicode?

Apart from the fact that it’s present on all modern Windows machines automatically, I cheated a bit and used Character Map (Start > Programs > Accessories > System Tools > Character Map) to quickly inspect each of the fonts already installed and find out which ones had lots of unicode in them. Character Map has a neat feature where it completely ignores missing characters, automatically skipping over them, so you can very quickly see if a font has lots of unicode, some, or very little.

Stepping through in the java app, I fairly quickly found lots of Unicode characters. success – I can correctly render arbitrary Unicode characters in java.

NB: important because it took a lot more lines of source than I expected; java’s built-in “char” datatype is incapable of being used to render Unicode, because it’s too small a range of values. That also means you can’t use ANY methods that take a char as argument (this is documented in the Java API docs for Character). I’d never really used the methods that take int’s as argument before…

Fonts…

Not really happy with the font, though, and it’s clearly missing a whole bunch of characters. Some googling for free CJK fonts found me that allegedly Arial Unicode MS would work – which comes free with Microsoft Office (which I have on one of my machines).

NB: the way font licensing works, it’s probably illegal to copy a font you have on one machine to another machine you own. Unless you can obtain the font from the original source (e.g. in this case by buying a second copy of MS Office).

Arial Unicode MS has lots of characters, but … they’re wrong. At least, one third of the ranges of Korean characters are completely useless, as far as I can tell, because whoever made this font (whoever Microsoft licensed it from?) didn’t read the spec carefully and stuck the wrong characters in from U+1100-U+11FF. More on this later…

Giving up on that font, I went looking for others. The first four or five I tried that didn’t look ugly were all from download sites in Japan or Korea and kept crashing on the download. I found a couple of places hosting UnBatang (“UnBatangOdal.ttf”) and claiming it was free, but the first I found where the download didn’t crash was on http://www.i18nl10n.com/fonts

UnBatang (the name you have to use in Windows / Java from inside an application in order to load it) seems to work very well. It has nicely painted ideographs for the main range of Hangul characters/syllables, and it has *correct* glyphs for the other two ranges (although they’re a bit ugly).

Unicode Hangul

Specifications for official standards tend to be big. Really big.

Specifications for anything to do with internationalization tend to be huge.

Add in localization and data-transfer between different cultures, and you can expect something gargantuan.

So, I was really really happy to find a downloadable copy of only the CJK Chapter of the Unicode 5.0 specification (it’s still a big document!). This contains a full explanation of what Hangul is in Unicode, where to find it (yay!), and why there are not one but three separate sets of Hangul glyphs.

Here’s the preface to the Chapter 12 PDF I downloaded, in case you want to find the spec / electronic version yourself:

Electronic Edition

This file is part of the electronic edition of The Unicode Standard, Version 5.0, provided for online
access, content searching, and accessibility. It may not be printed. Bookmarks linking to specific
chapters or sections of the whole Unicode Standard are available at

http://www.unicode.org/versions/Unicode5.0.0/bookmarks.html

Purchasing the Book

For convenient access to the full text of the standard as a useful reference book, we recommend purchasing
the printed version. The book is available from the Unicode Consortium, the publisher, and
booksellers. Purchase of the standard in book format contributes to the ongoing work of the Unicode
Consortium. Details about the book publication and ordering information may be found at

http://www.unicode.org/book/aboutbook.html

Unicode 5, Hangul, and Arial Unicode MS

So, armed with the offical spec, I read up on Hangul. What did I find?

The Unicode Standard contains both the complete set of precomposed modern Hangul syllable
blocks and the set of conjoining Hangul jamo. This set of conjoining Hangul jamo can
be used to encode all modern and ancient syllable blocks.

(this is the glyphs at U+1100–U+11FF)

“conjoining Hangul jamo” means “these glyphs have been positioned inside their spaces in the font so that if you need to make one ideograph out of, say, four Korean letters, you just pick the top-left version of the first letter, the top-right version of the second, etc, and OVERLAY all the glyphs, and what comes out will autamatically be correctly spaced out etc”.

What did the author of Arial Unicode MS do?

Made all those glyphs take up the full available space, and centre them horizontally and vertically.

Why? Seriously, why? Because any application that tries to render those characters is going to render them on top of each other (according to the specification, this is the ONLY point of having those characters), and you won’t be able to read at all what the letters say.

If you want to render just individual letters from the Korean alphabet, there’s a different range of Unicode where you can find them all centred etc (which Arial Unicode MS also has … so it seems to be just copy/pasting internally).

I guess the font author just didn’t read the spec. Or I’m completely misunderstanding the spec. But the fact that UnBatang spaces the conjoining jamos out in such a way that this works as I expected it to suggests to me that it’s the Arial Unicode that’s broken…

The joy of Conjoining

I couldn’t get hold of the Unicode spec section on how to conjoin, because of some mimetype problems between their server and my PDA’s web browser. I figured I could probably work it out by trial and error fairly quickly.

I can’t remember how to spell my name in Korean yet – I know the letters, I’m just a bit flaky on what the placement of them is. So, a quick experiment, to see how easy it is to position characters using the Conjoining Jamo from UnBatang:

	... constants used later - the Unicode values for the letters of my name: ...
	
	int a = 0x1161; // jungseong vowel
	int d = 0x1103; // choseong consonant
	int d2 = 0x11ae; // jongseong consonant
	int m = 0x1106; // choseong consonant
	int m2 = 0x11b7; // jongseong consonant
	int blank = 0x110b; // silent char you place at front if first letter is a vowel
	
	... the body of the paint method: ...
	
	g.setColor( Color.black );
	g.setFont( new Font( "UnBatang", 10, 30 ) );
		
	int w = 0;
	int lead = 0;
	w += renderIdeograph( g, blank, lead, 40  );
	w += renderIdeograph( g, a, lead+w, 40  );
	w += renderIdeograph( g, d2, lead+w, 40  );

	lead+=30; w = 0;
	w += renderIdeograph( g, blank, lead+w, 40  );
	w += renderIdeograph( g, a, lead+w, 40  );
	w += renderIdeograph( g, m2, lead+w, 40  );
		
	lead=0; w = 0;
	w += renderIdeograph( g, blank, lead+w, 80  );
	w += renderIdeograph( g, a, lead+w, 80  );
		
	lead+=30; w = 0;
	w += renderIdeograph( g, d, lead+w, 80  );
	w += renderIdeograph( g, a, lead+w, 80  );
	w += renderIdeograph( g, m2, lead+w, 80  );
	
	... and then this method to do the paint of each part of an ideograph: ...
	
	/** Doesn't really render an ideograph, renders a single glyph from the Font */
	public int renderIdeograph( Graphics g, int i, int x, int y )
	{
		char[] chars = Character.toChars( i );
		String drawString = String.copyValueOf( chars );
		int advance = g.getFontMetrics().charsWidth( chars, 0, chars.length );
		
		g.drawString( drawString, x, y );
		
		return advance;
	}

Which renders exactly like this:

hangul-adam-unbatang.PNG

Which makes me want to point out the nice thing about properly specified fonts: in the source code, I simply did “the natural thing”, as if I were outputting characters in an arbitrary conjoined language:

  1. Render the first part of the first ideograph at (x,y)
  2. Ask the font to tell you how many pixels wide (w) it just rendered that part
  3. Render the next part of the first ideograph at (x+w,y)
  4. …repeat until first ideograph is complete, increasing w more and more each time…
  5. Choose a value for how much you want the ideographs separated from start to start (ideograph_width)
  6. Render the first part of the second ideograph at (x + ideograph_width, y)
  7. …repeat as for first ideograph

And it worked. First time. I didn’t expect it to – I expected to have to do something strange like manually “reset” the (w) value each time I went from the first line of the ideograph to the second (Korean orders letters top-left, top-right, bottom-left, bottom-right, (repeat) … as opposed to Latin which is just left, right, more right, even more right, etc).

For this to have worked, it means the font is deliberately rendering the lower letters (e.g. d2 and m2 in my constants) a long way to the left of the origin that you tell it to render them at. This would be very, very confusing if you just tried to render these letters individually (well, duh).

Of course, if you try to run that code using Microsoft’s Arial Unicode MS font, you get a complete mess instead, because that font is FUBAR, as mentioned before. You get this:

hangul-adam-arial-unicode.PNG

…which is completely incomprehensible.

Categories
computer games games design massively multiplayer security

MMO Economies Suck: But developers are blameless

…according to Ed Castranova’s snippet that Scott J posted from the MDY vs Blizzard trial notes.

Courtesy of Scott, here’s a hosted copy of the source documents.

Ed writes a nice little explanation of why / how bots damage an in-game economy. I liked that. Good stuff – go read it. So far, so good – a great primer for anyone wanting to understand the situation better.

Unfortunately, the implication throughout the document is that this is all directly damaging to Blizzard’s revenue, and should be prevented *by someone other than Blizzard*.

I think this is a really stupid way of looking at things. My impression from reading the submission was that it’s overall a somewhat twisted description of the situation, coloured by a desire to use the facts (economic analysis) to support a personal desire (stop people using bots rather than go to the effort of fixing the bugs in the game-design). Sure, capitalist companies will pursue the cheapest possible means to achieve their goals, including suing people if they think they’ll succeed, but I deeply object to this kind of good factual analysis being spun to imply it proves stuff that it does not prove, and which consists an attempt to dodge responsibility and use the legal system to make up for mistakes in a company’s product-development strategy. Make better games, don’t blame the players for not playing the way they were “meant” to. Even the ones who are cheating. Ban them for cheating, stop them however you can, but don’t claim it’s not your fault that they’ve managed to cheat in the first place: of course it’s your fault.

Picking the snippet Scott quoted, which is nicely indicative of the whole piece:

Glider bots destroy this design, distorting the economy for the average player in two specific ways. When a Glider bot “farms” an area, it picks up not only experience points for its owner, discussed above, but also the “loot” that is dropped by the mobs killed by the bot. Because Glider can run constantly, it kills far more mobs than anticipated by WoW’s designers, thus creating a large surplus of goods and currency, flooding the economy with gold pieces and loot like the Essence of Water. This surplus distorts the economy in a specific way.

When bots gather key resources, they gather them in abundance. Owners of bots usually sell these resources to other players for gold, which inevitably deflates their price. Blizzard’s design intent is for the resources to command a certain high value, so that average players, who might get one or two of the resources in an average amount of play time, may obtain a decent amount of gold from selling them. But because characters controlled by bots flood the market with those resources, the market value of these resources is far less than Blizzard intended, and the average player realizes only a fraction of the intended value from the resources s/he finds. The deflated value of key resources presents a critical problem for ordinary players trying to enjoy the game. Blizzard’s game systems assume that players will be earning a certain amount of gold per hour, and many systems, such as repairs and travel, force players to make fixed payments of gold into WoW’s systems. Buying a horse, for example, costs a certain amount of gold. That pnce IS set by the game designers based on the assumption that normal players will accumulate gold at a certain rate, and that some of their gold will come from the value of resources that they harvest and sell. When the value of those resources plummets because of Glider, the amount of time it takes to accumulate the gold required for in-game expenditures like the horse skyrockets. This skews the economy, frustrates players, and, as a result of a less-satisfied user base, damages Blizzard.

My interpretation of the above argument:

  1. Designer makes various tables of numbers showing relationship between prices, rarity, the difficulty of achieving items at a given level, etc. This is normal – people who do this are often called “balance” game-designers, because they’re balancing out the risk/reward, cost/effect of everything
  2. Developers hard code these values, on the assumption that the world is perfect, they are God, and nothing could ever go wrong (this is fine; normally you make that kind of mistake once, and then fix it when you realise the problems this is going to cause)
  3. System collapses because of “bad people”
  4. When caught in such situations, Developers get to blame everyone except themselves, even though it’s clearly their own shoddy game design / implementation

The analysis is economically accurate, but the conclusions about the impact on design, and whose responsibility it is to contain/prevent/undo this, is just making out game developers to be lazy, stupid, bullies. People should take responsibility for their mistakes, not blame everyone else. Especially not blame the users of a game. Even if they hack your game to pieces and cheat like crazy THAT’S STILL YOUR FAULT AS A GAME DEVELOPER. You may hate them, rightly so, but it’s your responsibility to make better games. At least, that’s how we used to make games. Maybe the industry doesn’t work that way any more. Maybe it’s just me that thinks that way, maybe to everyone else in the industry a “bad game” isn’t your fault as a developer, it’s the players’ fault for not being clever enough to appreciate the coolness of your game.

Look at Diablo – it fell to pieces and died because of in-memory live hacking of the game-data. Seriously hardcore stuff (in a way). But that didn’t mean everyone just shrugged and said “those nasty hackers, they ruined a perfect game, it’s not the developers faut”, instead we took it to mean they hadn’t built it well enough, that next time they would have to change their approach, or their priorities, to prevent this from happening again.

To pick one more quote that underlines how silly I think this piece is because of the spin being put on it:

Glider bots occupy resources that Blizzard could otherwise put to other, more constructive uses. Because those resources are required to fight Glider, they are spent in a way that does not improve the game

Well, duh. And the same is true of most of the work being done by the Customer Service depts that all of the MMO companies pay large amounts of money to in salary every day. And it’s also true of the hardware that we use to run the game. Etc, etc. Just because a development cost “does not improve the game” doesn’t mean you have grounds to go and sue someone else for causing you to have to do it.

Where does it stop, if you go down that route? Are we going to start suing players who ask questions of the CS team that are too stupid? Will we bill players with crappy graphics cards for our time that was wasted diagnosing problems with their hardware that were stopping them from playing our games?

Which is not to say that I support botting or bot applications. I don’t support either. And I believe there are many different ways you can fight them, and there are many good reasons for shutting down people and organizations that use them. But I don’t think the reasons given above are included. And I don’t want to sink to the level of making specious arguments just because it’s the path of least effort…

Categories
agile computer games dev-process games industry

Fighting Consulting Firms

a.k.a. how some Publishers view independent Developers

This is a quote found buried in the middle of the otherwise completely unrelated, but sometimes highly amusing, “rant to end all rants” about the rise and fall of the talent and skill of the people within the Ruby on Rails development community:

I have a few pieces of advice for people about to hire any company like ThoughtWorks. There’s just a few simple strategies you can follow to make sure you get the most out of them and get your money’s worth:

1. Make sure you have the right to see every resume and interview each consultant they place. Treat them like new hires and don’t let anyone who’s not worth the rate you’re paying on the team.
2. Demand a variable rate based on the position of the person and their experience.
3. Demand that no employees can leave the project to work on another project. These placements have to be for the life of the project or until the employee quits.
4. Require that you have the right to have someone replaced if they are not immediately capable. Part of what you’re paying is that a ThoughtWorker should be able to drop in commando style and just start working. The reality is they are usually totally lost anyway.
5. Seriously consider recruiting one full time employee as a team lead, another as a project manager, and then staff the rest of your team with independent consultants. You’ll find that you get more control and better quality at a lower price.

Having employed one extremely famous web-design consultancy, run by some of the most famous world experts in using XHTML/CSS (and doing so attractively), and had very similar discoveries/realizations about their dodgy business practices when we were charged 5-figure sums for 3 webpages that were thrown together in around half an hour … in 2005 … I found the list above quite a good starting point for anyone considering paying an external team of experts :).

At some point, I’d like to followup with my own lessons learnt from what to do and what not to do on the publisher side of the game-publisher/game-developer relationship.

Categories
computer games databases entity systems games design massively multiplayer programming system architecture

Entity Systems are the Future of MMOs Part 4

Massively Multiplayer Entity Systems: Introduction

So, what’s the connection between ES and MMO, that I’ve so tantalisingly been dangling in the title of the last three posts? (start here if you haven’t read them yet).

The short answer is: it’s all about data. And data is a lot harder than most people think, whenever you have to deal with an entire system (like an MMO) instead of just one consumer of a system (like the game-client, which is the only part of an MMO that traditional games have).

Obviously, we need to look at it in a lot more detail than that. First, some background…

Categories
computer games conferences games industry GDC 2008 recruiting

GDC08: Hottest Jobs at the Hottest Companies

Summary

Speakers: Karen Chelini, SCEA; Jason Pankow, Microsoft; Matthew Jeffrey, EA

I didn’t stay more than about half the session – my laptop battery ran out, so I couldn’t take any more notes. I’m writing this up really only because there was one key point that came up which illustrates something that CMP and their GameCareerGuide.com do often which hugely angers me, and I want to see changed. They not only spread a rumour that is blatantly not true, but I keep meeting undergraduates and students wanting to break in to the games industry who are in danger of having years of their lives wasted because of this misinformation.

Which is a real pity, because other than that I think GameCareerGuide.com is fantastic. I wouldn’t have written an article for them if I didn’t believe in them and in what they do (generally).

Categories
computer games conferences games design GDC 2008 massively multiplayer

GDC08: Free to Play! Pay for Item: The Virtual Goods Debate

Summary

Speakers: Daniel James, Three Rings; Matt Mihaly, Iron Realms Entertainment

Very brief notes…

Categories
alternate reality games computer games conferences games design GDC 2008

GDC08: Lessons Learned in Location-based gaming

Summary

Speaker: Jeremy Irish, Groundspeak

Entertaining, with a lot of very small anecdotes, but nothing non-obvious in this talk. Everything he gave as advice you’d probably work out for yourself within your first project without losing time from doing so.

Categories
computer games conferences GDC 2008 web 2.0

GDC08: The BioWare Live Team: Building Community through Technology

Summary

Speaker: Derek French

Given the title, this talk came far short of my expectations. At the end of the talk I also felt extra annoyed that it felt like half the talk was just waffle, mostly towards the end with lots of repetition of the same vague opinions over and over again.

HOWEVER … when I came to clean up my notes and post them here, I realised that there were a lot of concrete good points, and it was just that it got waffly at the end.

If you don’t bother reading everything below, there’s one thing I want you to read (NB: I have cut out big chunks of the talk where the speaker waffled too much, so the reading below should be information-heavy).

Categories
computer games conferences games design GDC 2008 massively multiplayer web 2.0

GDC08: Virtual Greenspans: Running an MMOG Economy

Summary

Speaker: Eyjolfur Gudmundsson, CCP

I want a full-time economist working for MY company.

And: CCP staff should give more of the GDC talks, they’re good. And entertaining.

In the midst of a week of depressingly dumb comments (on the topic of economy: what possessed Matt Miller to argue against microtransactions because accountants like to see x million players times y dollar per month and find microtransactions unpredictable?), it was a joy to go to an intelligent, extremely well-informed, rational talk with valuable lessons for the future.

EDIT: photos now added inline; better quality images of almost the same graphs can be found in the official Eve Online newsletters (2007Q3 and 2007Q4)

Categories
computer games conferences GDC 2008

GDC08: Raising Venture Financing for your Startup

Summary

Speaker: Susan Wu, Charles River Ventures + panellists, see below for details

EDIT: just finished an editing round; I’m about 2/3 through cleaning this up. That’s why it all goes a bit funky towards the end. I promise I’ll clean up the rest of it ASAP…

Excellent panel, probably the most informative one I’ve been to at GDC (I usually find they wander too much and have too little concrete info. Nabeel, if you read this, I’m not counting your moderated session as a panel ;))

Categories
computer games conferences games design GDC 2008

GDC08: Building a successful production process

Summary

Speaker: Lesley Matthieson, High Impact

I didn’t find this talk at all useful, not because it was badly given (it wasn’t) but because the speaker seemed to be coming from such a rarefied environment that the ideas and suggestions would only work for a narrow set of people/projects that didn’t include me.

Categories
computer games conferences databases GDC 2008 massively multiplayer Uncategorized

GDC08: SQL Considered Harmful

Summary

Speaker: Shannon Posniewski, Cryptic

I was expecting something shockingly naive and/or stupid from the title of the session. The first thing the speaker said was that the title was completely wrong, so I ran with that. With that out of the way, the talk was fine, although small things kept coming out during the talk that were hard to believe or worrying claims.

So it was going OK, until … right at the end, just before the Q&A, and partly during the Q&A, the speaker dropped some serious shockers:

Categories
alternate reality games computer games conferences games design GDC 2008 massively multiplayer web 2.0

GDC08: Thinking Outside the Virtual World

Summary

Speaker: Michael Smith, MindCandy

Another half-hour-long introductory topic talk from the Worlds In Motion summit. Short but sweet. A nice overview of lots of different things going on in the use (and sales) of real-world goods as part of online games / virtual worlds. Misses out plenty of things, but does a good job of giving a taster of the sheer variety that’s going on right now.

Like Adrian’s talk from yesterday, I would have loved a second follow-on talk – now that everyone’s been brought up to speed – that explored where we could be going with these, and looking at how these have been used in more depth / detail.

Categories
computer games conferences games design GDC 2008 massively multiplayer web 2.0

Liveblogging GDC 2008

In case it’s not obvious enough, I’m tagging all my session-writeups this week with “GDC 2008” (HTML | RSS).

Mostly I’m covering online-related and social-networking related topics, but jumping around between GDC Mobile, Serious Games, Worlds In Motion summit, Independent Games, and the Game Design, Production, and Business tracks.

Categories
alternate reality games computer games conferences games design GDC 2008 massively multiplayer

GDC08: Gaming’s Future via Online Worlds

Summary

Speaker: Jeffrey Steefel, Turbine

IMHO, Jeffrey hereby strengthens the weight of evidence that Turbine is genuinely turning the corner from making poorly-guided foolish games to doing cutting-edge stuff and doing it well. Lord of the Rings Online (LotRO) has gone some considerable way to burying the failings of Asheron’s Call 2 (AC2) and Dungeons and Dragons Online (DDO), but it’s still far from certain that it’s a sustainable direction for them. In that context, Jeffrey speaks very convincingly and with a lot of apparent understanding about what they’ve done well and where they’re going with it in the future. Frankly, all of the incumbent MMO companies need to be doing this, and pushing at least this far and fast ahead, so it’s great to see someone senior at Turbine pushing this so strongly.

Categories
computer games conferences games design GDC 2008 massively multiplayer

GDC08: Social Media, Virtual Worlds, Mobile, and Other Platforms

Summary

Speaker: Peter Marx, Analog Protocol/MTV

Good to hear about virtual worlds and MMOs from the perspective of a mega content / media company. Several interesting ideas and explanations that are well worth reading if you haven’t already been tracking the way that Viacom et al have been approaching the online socializing space.

Nothing fundamentally new, but the ideas presented were clear and consistent – and I’m kicking myself for not having tried VLES sooner, it sounds fun.

Categories
computer games conferences GDC 2008 web 2.0

GDC08: The power of Free to Play (Adrian Crook)

Summary

EDIT: Slides + voiceover on Adrian’s site now – freetoplay.biz

A good introduction to people wanting to start paying attention to what’s been happening in MMO industry for the last 5 years. Didn’t delve into the recent changes in the last 1-2 years, more dwelling on the fact that the last 2 years have seen the cash-cows of the first wave of changes (F2P itself) delivering revenues that were no longer just “bestseller” status for a normal game, but were actually now much bigger even that that.

So, for instance, apart from a brief outline of FoodFight, there was no coverage of the way games have been colonising social networks, or where this seems to be heading next.

Categories
computer games

My Dungeon Runners character

http://threeplanetssoftware.com/software/dr/adz

(not our website, but something the community did with the XML data we released freely)

EDIT: or even better, here

Categories
computer games system architecture web 2.0

Game data accessibility and XML feeds

Sometimes, it’s the little things you do that get noticed

Last year I would have ranted about how retarded it is that game data is either entirely inaccessible to the web, or only accessible to an “official” website. …This year, however, is all about the positive. Rather than rant about no one providing such a feed, this is an un-rant about someone providing such a feed.

Dungeon Runners!

I found this via a news post about character sheets being viewable online at 3rd-party sites, making the assumption this meant an XML feed was available, and then digging through the forums until I found the post with a link.

This is really cool, I should tell you, just in case you don’t get that.

Receptions like this help keep us motivated to keep doing more of them :).