Categories
android devdiary games design programming

Prototyping: Chess Quest v0.2

(I’m prototyping a new game (working title: “ChessQuest”) – original post here)

A couple more hours work, a few more changes:

Overview of what’s changed

  • Obvious from the screenshot: added alternating black/white background tiles. I want it to feel like the traditional chessboard has become the “floors” of the dungeons/towers you’re exploring
  • Major fixes for collision detection: player and enemies now do pixel-precise collisions (previously, if e.g. a piece moved 5 pixels per tick, it would move either 0 pixels (if 5 would collide) or 5. Now it moves “as many pixels as it can before the collision happens”)
  • Major upgrade to renderering: instead of just “render everything, in random order” it now sorts all sprites once per frame. Each sprint is instantiated with a sort-layer; things in the same layer are rendered in random order, but before all things in the next layer
  • Minor tweaks to movement: not happy with this, but I found the “never stops moving” annoying. Now I find the “stops too easily” annoying.
  • Various experiments with zoom level – I tried 20px, 32px, 64px and 100px (very zoomed in!). I found 32 px was working nicest on the Nexus 1, so I’ve stuck with that for now. In a future build, I’ll probably bring back the option to switch to a zoom level of your choice.
  • Added Flurry: I’ve never done this with a prototype before, but then I’ve never prototyped in public :). I’ve added Flurry just so I can keep track of how many people are running the prototype; as I add to the prototype, I’ll start adding in-app feedback options, so you can effectively “vote” on things you like/dislike, and I’ll use Flurry to graph it all automatically.

Download link for this version

Version 0.2

Categories
android computer games devdiary games design

Game prototype: Chess Quest

Last weekend, I was playing around with some ideas for a Chess / RPG mashup. I did some prototyping with Android (because iPhone apps can’t be shared, and Java is much faster to debug than ObjC).

If you’ve got an Android phone, try this, and let me know if it runs:

There’s not much you can do – touch and drag on the screen to move up/down/left/right (you’re the Rook – hence no diagonal moves). Bishops and pawns wander around randomly, pawns slower than bishops.

UPDATED: if you rotate the screen sideways, it’ll randomly pick a different size / zoom level. There’s four sizes, from 20×20 squares up to 100×100 squares. Player moves at different speeds based on the size too.

I wanted to make it a dungeon-exploration style, but with a Chess theme – and (like in chess) each time you complete a dungeon (kill the boss) you get to “pawn” and switch your character to the chess piece you killed.

i.e. first boss would be the Rook, second the Bishop, third the Knight, etc.

…but I’m not sure I’ll stick with that. If I get some more time this weekend, I’ll prototype a bit more.

NB: the APK above might run slow – I’m interested if it looks jerky / doesn’t work on your phone. It runs fine on an old Nexus One.

Categories
computer games games design

Alarm bells for Game Design failure: “evolving” someone else’s IP

There’s a new Syndicate game in development. After one of the most facepalm moments in game design – taking a unique game-genre and replacing it with an FPS, at a time when FPS market is massively over-saturated – the studio has gone one further:

“we’re taking the Persuadatron and evolving it”

It’s always possible that they’re going to make it better. On the balance of probability, that’s unlikely.

Even leaving aside the amazing decision to remove the single most important feature of the original IP – the genre itself. NB: this has been tried before: Syndicate Wars changed the core gameplay, and was a commercial failure (given the previous sales of the IP).

Sadly, it seems that in press conversations, “evolving” is often short-hand for “putting our own “stamp” on it, by changing it; it’s the change that matters, not the improvement. We MUST be able to claim this is “our” game, and not the original designers'”.

Often, it seems the thought process has gone something like this:

“the original idea was unique. At our studio, we don’t have many unique ideas – so we’re CERTAINLY not going to let anyone see how weak they are when contrasted with the genuinely strong ones in the IP we’ve just taken over.

Our cunning plan is to remove all the unique, innovative aspects of the IP, and replace them with dumbed-down, crappier mechanics that we thought up ourselves. But stick the original name on the new mechanics.

This way:

  1. we won’t be made to look stupid by our own game
  2. google searches will turn up YouTube videos of our scuppered mechanic, and people hearing “X was a great idea” will look at it and go: “Hmm. Not really”, without realising they’re looking at the scuppered version

(I’ve worked on two teams that tried to get approval for re-making Syndicate (not Wars!) over the years; I’m a big fan of the original, and still occasionally play it on an emulator. It’s amazing how much people want to over-complicate it – somehow forgetting that the original studio (Bullfrog) was reknowned for it’s quirky/bizarre/unusually inventive game designs, and that they’ll have a lot to live up to if they want to “extend” that)

RPS says it best:

designer Rickard Johansson: “I don’t want people to stop playing the old games, but time has moved on.”

Has it? Has it really? Perhaps he didn’t notice that Starcraft 2 outsold most of EA’s (and everyone else’s) portfolio last year. Perhaps he didn’t notice that SEGA refer to Total War as one of the major jewels in their crown. Perhaps he didn’t notice that Valve are spending a fortune on a DOTA remake. Perhaps what he really means is ‘publishers will give us a bigger development and marketing budget if we make it a first-person shooter.’

Categories
android computer games entity systems games design

LudumDare 21: Escape from the (Android) Pit

I couldn’t enter this LudumDare competition on a technicality, but here’s my entry which plays by the spirit of the rules. I took a total of 24 hours (out of 48), of which only 12 were actual design + development (see below). Hopefully next time I’ll be able to do it properly, and actually compete. I’ve kept to every rule, except that I did my 48 hours time-shifted :) from everyone else (two successive Sundays, instead of a contiguous Saturday + Sunday).

Screenshot + Android APK

Download link (APK – you need to know how to install APK’s manually (google it if you’re not sure, it only takes 5 seconds)):

Escape From the Pit

Aims

  1. Make a LudumDare entry as an Android application – none of this easy “make it in Flash” or “make it in java” stuff – let’s go for a full mobile game, designed, developed, and launched in exactly 2 days flat!
  2. Use an Entity System (c.f. my long-running series of articles, and also the public Wiki I created), and show that ES’s facilitate you writing new games VERY VERY QUICKLY
  3. Make a game that was mildly challenging and (almost) enjoyable

Failed to officially enter the competition, but otherwise succeeded…

Background

LudumDare challenges you to write an entire game in under 2 days (technically: 48 hours – it’s up to you how much of that you sleep). You can’t even design it in advance – there’s a theme that’s only decided shortly before the 48 hours starts.

LudumDare was the weekend before last – but I had to work that weekend on urgent day-job stuff. Like: I had to work all day Saturday, and there was no way out of it. So I couldn’t do the same 48-hour stint as everyone else.

Also, I know from previous experience that the “48 hours in one stretch” is very different from – say – “12 hours for 4 days”. When you do a 24 or 48 hour game, you tend to only manage a certain percent of “productive” hours. The challenge of designing + building something from scratch forces you to keep taking “time off” to go think about what do next.

So, I kept a diary of hours worked, and hours taken “off” as well. I’m confident I’d have fitted all of this – development time AND down-time – into the 48 hours. But I had to spread it over 2 successive weekends :(.

Day 1

(3 hours) – install Eclipse and the Android plugin, and the Android SDK. Document what I’ve done (1 hour) and check I can re-do it at will. Google, please wise-up and fix your install process – it’s not changed in almost 2 years, and it SUCKS

(1 hour) – install some extra Android OS versions, get the emulator working correctly, get projects imported, get everything in source-control, get empty app running on hardware device. Ready to start project!

— NB: everything up to this line I should have done before the contest started. If I were the kind of person that had free time on weekdays. Which sadly I’m not —

(1 hour) – getting Android base classes up and running. Takes a while: Android is insanely badly designed for the “Core application” part. Needs hundreds of lines of code to make a Hello World app that *actually* works as an app (Google’s code example that does it in 4 lines is fake: no real app could do that).

(3 hours) – on the beach, not working

(4 hours) – upgrading the open source Entity System Libraries on http://entitysystems.wikidot.com to support a bunch of features I’ve been using for a while in my own projects. This required writing a lot of stuff from scratch (using my own old source as inspiration), and integrating some improvements from patches/forks that other people had submitted.

— NB: everything up to this line I could have done before the contest started. Interesting though that I thought this was going to be “about to start writing the actual game” and I’ve only finally got to the point where I can write my first line of game-code —

Day 2

(0.5 hours): trying to make textures in Photoshop. Photoshop really sucks. Half the online resources for making the kinds of textures I want require PSP’s unique filters/effects – useless :(.

(0.5 hours): get a single sprite to appear on screen. A couple of idiot errors in one of my libraries – plus Google’s Eclipse plugin being really really bad at understanding “the scroll bar” (bug in ADT: it implements the world’s only non-static scrollbar)

(1 hour): random maze generation (using: http://en.wikipedia.org/wiki/Maze_generation_algorithm#Randomized_Prim.27s_algorithm ) that makes nice mazes, printing out onto the screen, still with my default “starfield” background. Rotating the screen is causing the entire game-state to be regenerated – includkng the maze – which was an accident, but actually helped A LOT with testing the maze algorithm (just tilt to re-run the algorithm instantly)

(0.5 hours): learn how to do Android input-handling correctly; en-route, discover I’m missing the SDK docs, and set about downloading + installing them … + updating my blog instructions on how to install Android to include “SDK docs” as a section.

(2.5 hours): discovering MAJOR bugs in Google’s basic “touch handling” API for Android – including bugs on Google’s own website source code, and an API designer on crack who broke the core Java contract didn’t document it. Not Happy.

Day 3

(1 hour) – implementing a collision detection system that does proper swept-collisions, but works OK with the poor fine-grained control of touch input

(1 hour) – added filters to collision detection so I could have background images that the player will NOT collide with
(previously was colliding with every on-screen rendered sprite). Also added a very simple lighting system where squares that the player has walked close to or upon gradually light up, showing how much has been explored

(1 hour) – refined the user-controls so you can hold your finger still and character keeps moving in that direction. Added handling in collision-detection system to allow character to slide along walls and into side-passages without the player having to stop and be ultra-precise (pixel perfect!) in timing the change of direction.

(0.5 hours) – added an exit, fixed bugs in the maze-generation (if started on a right or bottom edge, it crashed)

(1 hour) – fix Android’s brain-dead handlig of Bitmaps, giving a big speed boost, and re-learning how to use DDBS memory-allocation-tracking. I’m now auto-caching each bitmap inside my Sprite object. Sigh. There’s no easy workaround: Google says “don’t use getter methods” but Google also says “don’t call our getDrawable method more than once”.

(1 hour) – added ghosts, made them move around the map nicely, and collide with player was *automatic* on first compile (freebie from using an Entity System!). Also made arrows float nicely in same place on screen even while scrolling.

(1 hour) merge code from laptop back to desktop. Finally add the “win” conditions that makes the app playable!

Source Code

To make this game, I improved the basic Java Entity System up on the ES Wiki, and added some usability improvements and features. I created a whole new page for it here:

http://entity-systems.wikidot.com/rdbms-beta

NB: It’s called “Beta” simply meaning “second generation (beta == second letter of greek alphabet)”. Not because it’s a beta-quality release :).

Source code to the game itself is also up on github right now – https://github.com/adamgit/Game–Escape-from-the-Pit – although that’s a closed repository at the moment. I want to double-check there’s nothing included that shouldn’t be before I set it to “public”.

Categories
computer games fixing your desktop games design

Fix for Master of Mana Fay/Faerie suicides

Typical. Just as I finally brave the source code to Master of Mana (neé Fall From Heaven; the most popular / succesful mod for Civilization 4), and fix a major bug that’s bothered me for ages … the main server at masterofmana.com goes offline :(.

Anyway, if you’re playing the Fey, and you’re tired of the fact it becomes impossible after a certain point – when you put Faeries onto ships, they self-explode, turning the tile into land (usually Never-Never), here’s the fix. It’s especially bad for True White Faeries – which means “all of your top units” beyond a certain point in the game.

Edit the file:

[C:\ … path to your Civ4 folder]\Beyond the Sword\Mods\Master of Mana\Assets\Python\Wildmana\Civs\CvFaeries.py

Find the following lines (very near the top):

		if pUnit.isHasPromotion(iPromWhite):
			iSnowChance=20
			if pUnit.plot().getOwner()==-1:
				iSnowChance+=-10
			if pUnit.plot().getOwner()==pUnit.getOwner():
				iSnowChance=-100
			if iSnowChance>CyGame().getSorenRandNum(100, "snow fall"):
				pUnit.plot().setTerrainType(iSnow,True,True)
			if pUnit.isHasPromotion(iPromGreen):
				if pUnit.plot().getFeatureType()==-1:
					if CyGame().getSorenRandNum(100, "Faerie plant trees") <= 75:
						pUnit.plot().setFeatureType(iForest, 1)
			if pUnit.isHasPromotion(iPromTrueWhite):
				pUnit.plot().setTerrainType(iNever,True,True)
	
		if pUnit.isHasPromotion(iPromTrueGreen):
			pUnit.plot().setFeatureType(iEternal, 0)
	

and replace them with this: (NB: because Civ4 is scripted in the horrid Python, you're going to have to be careful to get the indentation correct manually; Python is wonderful, except for this one feature - it makes sharing code changes like this much harder than it should be :( IMHO)

		if pUnit.plot().isLand():
			if pUnit.isHasPromotion(iPromWhite):
				iSnowChance=20
				if pUnit.plot().getOwner()==-1:
					iSnowChance+=-10
				if pUnit.plot().getOwner()==pUnit.getOwner():
					iSnowChance=-100
				if iSnowChance>CyGame().getSorenRandNum(100, "snow fall"):
					pUnit.plot().setTerrainType(iSnow,True,True)

			if pUnit.isHasPromotion(iPromGreen):
				if pUnit.plot().getFeatureType()==-1:
					if CyGame().getSorenRandNum(100, "Faerie plant trees") <= 75:
						pUnit.plot().setFeatureType(iForest, 1)

			if pUnit.isHasPromotion(iPromTrueWhite):
				pUnit.plot().setTerrainType(iNever,True,True)
		
			if pUnit.isHasPromotion(iPromTrueGreen):
				pUnit.plot().setFeatureType(iEternal, 0)

Yep - it's really that simple (insert one line, and re-indent the ones below):

"if you're at sea, don't turn the ground your ship is on into land. Because that will destroy the ship, you, and everyone else nearby"

I'm pretty sure it wasn't intended to do that - it would be an ultra-powerful ability to create land - automatically - instantly for the cost of a cheap ship and a level-1 faerie. If you really want to play that way (if you can be bothered), it's easy to create a Giant's Causeway like that in the current build of the game, making land out of the dead bodies of the Fey. But it's a very dull way to play, and it feels more like an innocent oversight...

PS...

If you're not playing Master of Mana, and wondering why anyone would care about a Mod for a game that originally shipped *almost 6 years ago*, then I strongly suggest you buy yourself a copy of Civ4 + Beyond the Sword expansion (usually bundled together for $30 or less), download MoM, and find out what you're missing.

The modded game is IMHO highly illegal - they stole art liberally from many many copyrighted sources - but the bulk of the content is their game-design, and that's fantastic. Many times better than many games released today - and (partly thanks to the lack of legal assets) the authors charge nothing for it.

The saddest / greatest thing about this IMHO is that 2KGames / Take Two did so little with this modding community. Beyond a few token steps (the dev team made the sensible decision to hire some of the leading mod authors, IIRC) they pretty much ignored it. They're making substantial money out of the mod authors - Civ4 should not still be selling as expensively as it does, and I'm sure this mod is the main reason it does - but they could have made a lot more. Look to Valve, and imagine what might have happened with a little more visionary leadership at Firaxis and Take Two...

Categories
computer games games design marketing and PR

Papa Sangre devs: are you sure it’s not because…?

“[with Android] We just can’t get complicated applications functioning with any kind of speed (if at all) … it’s not because we’re stupid or don’t know the platform well enough”.

(From this month’s Develop – an article by the the CCO of Somethin’ Else)

Develop is trade-press, for professional game developers (mostly coders, IME). No further explanation was given.

Kind of hard to believe, considering our own experiences on the platform. I asked a few others for their considered opinions. First three reactions:

  • “WTF?”
  • “Bollocks”
  • “Bullocks”

Hmm. I’m intrigued to know what they can code on an iPhone 3GS, but not on the more powerful Android phones from 2010 (let alone the ones from 2011).

Categories
computer games games design

Telling stories with Minecraft and GitHub

Minecraft is great. But it has one major problem: the narrative of each world is destroyed as it is created. Unless you work hard to do otherwise, the history of your relationship with the world is lost very rapidly. There’s no strata, no wearing, no signs of your involvement – just a too-clean result.

I found myself often deliberately “preserving” key moments in my worlds, such as:

  1. never alter the place I spent the very first night, except enough to allow a tunnel out into whatever larger base/home I turned it into
  2. as much as possible, build structures WITH the landscape instead of AGAINST it; the contours of my buildings, roads, railways are very little altered from the land that they’re build on / in / around / underneath / through
  3. mine and house entrances made as subtle as possible; e.g. all-glass exits from the water that are almost invisible from a distance, but glow slightly blue at night

So, here’s an experiment: a playthrough of Minecraft, but doing frequent git-checkins (approx once a day/night) to this github project.

I don’t even know if it’ll work; in theory it should – I’m versioning the Save directory for a single world – but I haven’t tried importing it to a new PC / install of Minecraft yet.

Feel free to try it – checkout the first checkin, see if you can load the world (NB: the save-directory is named “versioned” on my copy of Minecraft; you might need to name the containing folder the same).

Then try using git to advance through the different checkins, and see if you can view the world as I explore and modify it…

Categories
computer games design games design

Richard Bartle: 10 Games you Should Have Played

Normally, I don’t allow “guest posts”, but I’m making an exception for my “10 Games You Should Have Played” series. I’ve been asking other games-industry people to write up their own lists + explanations, and that’s not always compatible with their personal/work/etc blog. When that happens, I’m happy to post them here instead.

So, here’s Richard Bartle‘s take (“co-creator of MUD1 (the first MUD) and the author of the seminal Designing Virtual Worlds” – but if you read this blog, you should already know who he is ;).

I think it’s a great list. I asked him to define in his own way what he meant by “should” (why are we saying “should”? who’s the audience? etc) and to run with it, which he did …

Come up with your own rules for a top-10, define it clearly, and share your list.

“OK, well modulo all the usual complaints about lists of 10, here we go.

I don’t have any rules per se, but I am sort of assuming that this is for people who play games or design games or want to know more about games.

Also, I’m going to go with categories rather than individual games (except in the last case). This is because it’s not the games themselves that are necessarily important so much as what you get from playing them. I will, however, give an example of a game in each category that I myself have tried.

1) A game you have bought but haven’t played yet.

You should always have a game ready to play. I don’t care what it is, but unless there is one you’re never going to expand your gaming horizons.

For me, right now that game is “Victoria II”, which I’ve installed and read the manual for but haven’t actually started to play. The reason I haven’t started it is because I bought “Mount & Blade: with Fire and Sword” and snuck that in front of it in the queue. Once I do start it, I’ll be looking for another game to play when it’s completed – hopefully not another damned sequel…

2) An abstract game.

Games can be many things, but unless they have gameplay they’re not games. An abstract game only has gameplay. To understand games, whether to design, play, or study them, you need to understand gameplay; an abstract game shows you the game mechanics with everything else stripped away.

You need to play one. You may, if you’re keen, try think of a skin for it, but that’s not essential.

In my case, I guess the game would be “Chess”. I captained my primary school Chess Club, but my interest in the game waned when I realised that the openings were always the same and that people who were less good at the fun, thinking part could win by doing the boring, memorise-the-openings part. That came straight from an appraisal of the clear-for-all-to-see mechanics.

That said, I’d also like to give a shout-out to the altogether more obscure “Besikovitch’s Game”. Now that’s a mechanic with potential…

3) A tabletop role-playing game.

Everyone thinks they know why they want to play games, but they also need to know why everyone else plays games. They’re not going to get that unless they understand what it means to be part of the game. In a tabletop role-playing game, with the other players right there next to you, there’s no escape: you have to participate, you have to involve yourself, you have to become part of the game, part of the narrative. In short, you have to live the game. Unless you’ve lived a game, how can you ever hope to understand what’s gamingly possible?

For me, the hours I spent playing “D&D” with my friends in my late teens were some of the best gaming experiences I ever hard. I wish I’d been able to get a “Call of Cthulhu” group going, mind you, but it came out too late for me.

4) A spectator sport.

If a game is good enough that people will pay to watch it played, you need to understand what it’s like to play it. This gives you an insight into the theatrical aspects of games that you wouldn’t easily get from merely observing the performance. You don’t actually have to be any good at the game, and the game itself doesn’t have to be all that good either (in my case, “Snooker” fits both those categories); the important thing is to understand what gives a game presence. I don’t care whether it’s high
skill, clever strategy, viscerality, physicality – if you don’t play it, you won’t appreciate it.

In my own case, I played “Association Football” (yeah, soccer) at school (attacking midfielder if you must know); I was good, but we were never taught any skills or anything and most games descended into kicking matches. I nevertheless found out what made it “the beautiful game”, though.

5) A game in which you can lose actual money.

There is a dark side to games, and gambling gives people a chance to sense it. Personally, I don’t like playing games for money at all; however, a lot of people love it. Everyone has their limits, though.

For some, gambling games are at their best when the amounts involved actually hurt if you lose them; for others, it’s the amounts that can be won that make the difference. The point of playing a gambling game from the perspective of this list is to gain an appreciation of the morality of games. When something stops being “just a game” and starts to take over the player’s life, that’s potentially a bad thing. Unless
you’ve seen it (or something close to it), you’re never going to understand that fully. Gambling games let you do that. Warning: you run a big risk with this if it turns out you’re the one who gets hooked…

For me, I used to play “Poker” with my friends over lunch when I was 17 or 18. We played for Tic-Tac mints. This was before “Texas Hold ‘Em” got big, so we’d play mainly “Draw Poker”, “5-Card Stud”, “7-Card Stud” or, occasionally, “Montana Red Dog”. We stopped playing when one of my friends, who consistently lost, had to borrow money to buy more Tic-Tacs; I decided things had gone far enough, and called
the lunchtime sessions off. From that point on, no way would I design a game that deliberately tried to addict someone to it.

6) A game released in the year you were born.

Most games are built on the foundations of games that went before them, and an appreciation of their history means you appreciate the games themselves more. Games have a very long history (indeed, they go back into prehistory), but a modern game is unlikely to quote directly from ancient archetypes. They’re more probably going to quote from games from the generation before them. You therefore need to
play a bunch of old games to see where the advances were made. Unfortunately, “old” is a relative term: what you think is old might, to me, seem fairly new. What’s old enough for both of us is something from the year we were born in (or a year close to that). Play a game from back then and see how things have (or haven’t) changed. Bonus: you’re almost guaranteed to notice the gameplay more than you do in a (what currently looks) slick, modern game.

For me, the old game would be “Diplomacy”, which was released commercially in 1959 (the year before my birth, but that’s near enough). Ah, what a game! It’s trapped in its time, because it needs 7 players and could only really be played by post. Play-by-email is even more of a niche than play-by-mail was, so it’s not a game that is played a lot nowadays. Lovely mechanics, though!

7) A really bad game.

Some games are just BAD. The mechanics are all wrong, they’re unfun, or no fun, or the rules are ambiguous, or they drag on and on, or there’s a dominant strategy, or … well, the list continues. If you play such a game, you can ascertain what it is that’s bad about it; this will enable you to avoid similar games in future and to avoid
making similar mistakes in any games you design yourself (see next point). The more you understand about games, the more you’ll be able to find the games that are right for you.

For me, tempting though it is to nominate “Trivial Pursuit” as the game that laid waste to the British board games industry, I didn’t actually play that. However, my personal pick is one that I’m sure many other people will share, too: “Monopoly”…

8) A game you wrote yourself that no-one else has played.

Game design is actually quite hard to do well. You’re not going to know quite how hard unless you try it yourself. In the attempt, you’ll come to understand more about games and what makes them tick – but only if you actually play the game (if
it needs more than one player, play it against yourself). If you actually are a game designer, this is something you will have done many, many times before, of course; just make sure you keep on doing it.

For me, well, all game designers have a corpus of games in various stages of completion that they have never shared with anyone else, simply because doing the design itself was the fun part.

I’m a bit low on computer games in this list, so I’ll go for one I did called “Mombasa” about the exploration of Africa. It’s not all that good, but the point is that I wouldn’t know that if I hadn’t played it…

9) An MMORPG.

This is because I co-wrote the first virtual world, and therefore the more people who play these, the higher my kudos rises.

I’ll list the last MMO I played through up to the level cap as my example here: “Rift”. I came away not so much impressed by the game itself but by its developer, Trion Worlds, which is more understanding of its players than any other developer I’ve
come across except perhaps CCP.

10) “Mornington Crescent”.

It’s actually called “Finchley Central”, but I’ll go with the version that’s best known. This is a very simple game, the rules of which, in their entirety, are as follows: players take it in turns to name London Underground stations, and the first to say
Mornington Crescent wins. This is a game everyone should play, because it gets to the heart of what a game is: what happens when you freely and knowingly bound your behaviour according to a set of rules in the hope of gaining some benefit that you might not get. You play it for just so long as it’s fun, with people who also play for just so long as it’s fun. It’s the Magic Circle incarnate.

So those are my top 10 games that people should play. If you already played them, my apologies for having wasted your time with this list. If you haven’t played them, I envy you the treasure trove that lies ahead.”

Categories
games design social networking web 2.0

Google Street Maps … of a videogame (GTA IV)

This is cool – a great use of Google’s tech, a great example of what it *really* means to drag Online Games and MMO’s out of the stone-age of “do what Diablo did, but with more people on screen”.

Sadly, it doesn’t quite work – none of the stereographic projection stuff (which is key to making Google StreetView) is working here. Oh well.

And it raises the question: why didn’t R* do this themselves, and make more of the R* Club (their “social/online” part to GTA) than the silly farting-about it was at launch?

http://www.gta4.net/map/

Categories
design games design games publishing reputation systems

“by running a spy network I am griefing”

If you’re an MMO designer, and you *still* don’t grok the griefer-mindset, or you somehow hope/believe that “one day, there will be no griefers”, then maybe this RPS interview with the always-fun-to-watch Goonswarm will help you:

MT: We are griefers. If nothing is going to happen then we’re going to try to find something that screams and bleeds and poke at it.

RPS: Griefing is something goons are known for doing, but now I’m talking to you it’s not something I can imagine you personally doing.

MT: Technically speaking, by running a spy network I am griefing.

RPS: But would you go out and aggravate other players for the Hell of it if you were a lower ranking member of Goonswarm?

MT: Well, most lower ranked Goons make their money by doing that. Scamming people is a very quick way of making money in Eve. Rather than making an honest buck, you take that buck from somebody else.

and, much further down, maybe this will help you see how griefers often serve just as positive and valuable a role as all your “preferred” player-types:

RPS: For my money, Eve might be the most fascinating game in existence today. But that doesn’t stop it from being interminably boring as well.

MT: Right. I mean most Eve players are stuck in high security space mining, and a lot of the core PvE in Eve has you sitting there are watching three grey bars slowly turn red.

Goonfleet is a socialist alliance. We give people ships so that rather than being forced to rat [fight low-powered AI NPCs] they can take part in PvP, we teach them how to scam so that they don’t have to mine, we teach them how to make ISK most effectively, we give them a lot of ISK and we reimburse their losses. This way they can focus on the fun aspects of the game, like griefing and warfare, so they’re not forced to endure derp-derp-ing around high sec.

If they play your game, you should be glad; if they grief, you should be asking yourself why – and if you’re a commercial operation, you should probably be asking:

“are they fixing a problem for us?

can we afford to leave them to it, part of our unpaid workforce?

and:

is it worth our time trying to fix the problem itself, or should we accept their help and move on down our never-ending list of pending fixes?”

Categories
advocacy computer games games design games publishing

The 10 Games You Should Have Played

This list is WRONG (and it’s on the Internet)

…and here’s your chance to challenge it.

This was written in a frantic half-hour with 30-odd people with many different ideas and suggestions. My role was to shepherd the opinions towards a concrete list of 10. There *was* a specific agenda/aim I had in mind – but I didn’t tell people that up-front, I wanted to let them go in whatever direction they wanted.

Now it’s done, I’m reaching out to everyone who cares about this stuff, and saying:

Come up with your own rules for a top-10, define it clearly, and share your list.

Blog it, link it back here, and we’ll see what people come up with. I’m expecting a lot of variation on the inclusion-criteria for a top-10, and (hopefully) as much variation on the games people choose / reject.

Other people’s top-10’s

The original top-10

May 2011 – GameCamp 4

A few weeks ago, London was host to the fourth GameCamp – a 1-day unConference devoted to games, game-design, and game-playing.

I wanted to give a talk, because that’s half the fun of an UnConference. I wanted to do something fun, interesting, and above-all *new*. What’s the point of giving a talk you could have given at a “normal” conference?

My Plan

I vaguely remembered that Darius had once run a session on “Indie games that haven’t had the attention they deserve” (or something like that), where he’d cherry-picked some great fun games that were relatively unknown in mainstream circles, and gave them a free boost of attention.

I didn’t feel confident to do that myself,but I knew there were plenty of people at GC4 who were much deeper into the fringe of games and game-design, and no doubt *they* knew what was out there, and had played it all.

So, one quick scribble later:

“10 Games you Should have played (but probably haven’t)”

Reality

I was afraid I’d get an audience turn up and expect me to do all the work, where I needed them brainstorming and providing the ideas themselves. I could see it easily being shaped by the (lack of) variety of the first few suggestions, so I set out to come up with a wide range to kick off.

With a full TEN MINUTES before the start, I roamed the hallways, looking for victims. I spotted a few familiar faces, game designers and writers I could corral, and asked them for a quick 3 “games people should have played”.

First response I got, courtesy of Adrian Hon: “Paintball”. Ah. Thanks, Adrian. You just exposed the flaw in my title. I never mentioned the words “video” or “computer”, although I’d assumed them.

Other interesting titles I was given in the hallway included: Civilization (the computer game, via Adrian), Journey to the End of the Night (via Holly Gramazio, I think), Tetris Attack (ditto)…some good variety to kick us off.

Those 10 games in full

We had a packed room, approx 20-30 people. I won’t detail the process, but in our 30 minute slot we managed a long list, with some brief explanation of the more obscure games, and then we voted on which ones should go to top-10. Fortunately, there were 10-12 games that were CLEARLY a lot more popular than the rest.

Here’s the full list (illegible with crossings-out)

And here’s the top-10, with their respective (approximate – I was counting fast!) votes:

  1. Tetris [*]
  2. Portal [*]
  3. SimCity [*]
  4. The Secret of Monkey Island (either/both) [11]
  5. Hitch-Hiker’s Guide to the Galaxy (text adventure) [10]
  6. Mario Kart [10]
  7. Zelda (any/all) [10]
  8. Deus Ex [9]
  9. Day of the Tentacle [9]
  10. Populous [9]

[*] = so many I didn’t bother counting; more than 2/3 of the audience.

Categories
games design marketing and PR programming

“Do I look fat in this?” … “You do now!” (Kinect FAIL)

Here’s an excellent idea: use Kinect to display clothes on people in real-time, inside a fashion retail shop:

http://ar-door.com/2011/05/virtualnaya-primerochnaya-dlya-topshop/?lang=en (Scrub to 0:25 – first 30 seconds is moronic marketing-person bumf)

This has huge potential:

  1. Much much faster than browsing – potential for more positive purchase decisions in less time
  2. Less space lost to changing rooms – fewer rooms needed for same number of customers (space is often at a premium in retail outlets)
  3. Show an enormous range of stock while keeping very little on-site
  4. Show every size, rather than just the sizes that are in stock on-site

But hey – wait a minute – look closely at the person who’s posing in each case. Why does the on-screen person look like they weigh twice as much as the person who’s in front of the camera?

Ah. I see. It’s that recurring problem again: marketing companies that don’t know where to hire skilled tech staff. Here we’ve got 3D model wrapping apparently done by someone who’s never heard of Convex Hull. This is basic Computer Science (IIRC it’s taught in almost every CS undergrad course today) – wrapping string (or cloth) tightly around a solid object is an interesting and very common problem.

OK, it’s version one; “we’ll fix that in beta”; etc. Except … you’re demoing this to:

  1. women
  2. in a fashion store
  3. in public
  4. when they’re about to pay money
  5. for clothes

…and you’re making them look:

  1. uniform weight (which for short, young Muscovites is – according to the video – usually “much larger than reality”)
  2. saggy (look at the video – they failed to register / stretch the clothing for the head/neck-to-knees length; in most cases, the women’s busts are aroudn their waists, and their waists are around their knees)
  3. masculine (most women’s clothing hangs; it’s soft, flexible; here, the Kinect models have no physics, not even primitive struct-based bending, let alone springs. Doh)

All of which put together makes this a FAIL. Technologically it’s all fixable, but from a sales/marketing perspective it’s enough to send many people screaming. Fingers crossed that the company (ARDoor) manages to make huge sales anyway – the potential here is enormous, and some of what they’ve done looks great (I like the simple interface, and the giant “Smile!” instruction).

Categories
games design programming

Love failure: make better games, faster

In my experience, most people can grasp one, but not both, these concepts when prototyping a game:

“If you fail, there will be dozens more”
“failure is ok! That’s what prototyping is for, so go crazy!”

Too often, I meet people who go crazy – but only once. It ends horribly, and they give up in shame.

Just as often, I meet people who make lots of stuff, quickly – but it’s all generic derivative crap; they never took creative risks.

The linked article above is a must-read for any serious designer: it’s a post-mortem from the Experimental Gameplay Project guys (“design + implement a new game every week for a whole semester” – if you haven’t played the games, or read about the concept, I can’t recommend it enough). I *frequently* tell wannabe-game-designers to go do exactly the same themselves – there’s no better way to learn the art and craft of game design.

Other choice quotes from the article include:

… how bad can it be?

“Although they were utter failures, the whole team was thrilled to take such a bold risk to prove the failure of audio-only gameplay, and I could point with pride to my hideous creations.”

… for all those misguided individuals who still think designers shouldn’t learn to code:

“Each member of the team had to be comfortable with all aspects of game development. Everyone was responsible for their own programming, art, sound, and everything else that went into the final product.”

(as Designers, you should aspire to be the games-equivalent of a Product Manager: making the final, shipped product come together as an awesome whole, rather than locking yourself in a cupboard doing your little niche thing, and ignoring the end-product)

…an observation I made a few years ago, and lead me to plan a 4-day week for our studio:

“after much investigation, it appears that you just cannot schedule creativity.”

…Scrum: start with a vertical slice of cake, and add slices, not layers:

“we found that gathering art and music with some personal significance was particularly fruitful”

(if you want further correlation of this, IIRC Jonathon Mak made the same point a few years back at GDC: Everyday Shooter sucked and was dull when he prototyped “game mechanics without animations”, and lead him down the wrong paths of improvement; you cannot take the style out of gameplay, it’s too tightly interwoven)

…how to: Simulate a prototype … in your head:

“It’s really easy! All you have to do is imagine your game audience saying, “Wow!” And then just work backward and fill in the blanks. What’s making them enjoy your game? What emotion are they feeling? What is happening in the game to make them feel that way? ”

Go read the article…

If you’re not convinced already, here’s their Handy Cut-Out List! (which won’t help much till you read it, as each line is one of the sub-headings:

Setup: Rapid is a State of Mind

* Embrace the Possibility of Failure – it Encourages Creative Risk Taking
* Enforce Short Development Cycles (More Time != More Quality)
* Constrain Creativity to Make You Want it Even More
* Gather a Kickass Team and an Objective Advisor – Mindset is as Important as Talent
* Develop in Parallel for Maximum Splatter

Design: Creativity and the Myth of Brainstorming

* Formal Brainstorming Has a 0% Success Rate
* Gather Concept Art and Music to Create an Emotional Target
* Simulate in Your Head – Pre-Prototype the Prototype

Development: Nobody Knows How You Made it, and Nobody Cares

* Build the Toy First
* If You Can Get Away With it, Fake it
* Cut Your Losses and “Learn When to Shoot Your Baby in the Crib”
* Heavy Theming Will Not Salvage Bad Design (or “You Can’t Polish a Turd”)
* But Overall Aesthetic Matters! Apply a Healthy Spread of Art, Sound, and Music
* Nobody Cares About Your Great Engineering

General Gameplay: Sensual Lessons in Juicy Fun

* Complexity is Not Necessary for Fun
* Create a Sense of Ownership to Keep ’em Crawling Back for More
* “Experimental” Does Not Mean “Complex”
* Build Toward a Well Defined Goal
* Make it Juicy!

Categories
amusing games design

My next game will be named: Power Battle Love Magic … III

(because sequels always look better in SEO, no?)

http://www.achilleseffect.com/2011/03/word-cloud-how-toy-ad-vocabulary-reinforces-gender-stereotypes/

I’ve always wanted to do a “mash-up” of the words used in commercials for so-called boys’ toys. I did a little bit of this in my book, but now, thanks to Wordle, I can present my findings in graphic form. This is not an exhaustive record; it’s really just a starting point, but the results certainly are interesting.

The results, while not at all surprising, put the gender bias in toy advertising in stark relief.

Categories
amusing community games design iphone marketing and PR

Top steps tips viral mobile iphone success profit

Did that get your attention?

In the last day or so, I’ve seen a barrage of crap on this topic – much of it ACTIVELY destructive (it’ll make your iPhone apps less successful than if you didn’t do it!). I’m not going to hotlink most of them – they don’t deserve the attention – but some of them mix bad with good, e.g. a guest post from someone with some good points, but also glaring inaccuracies.

So, some myths:

Thursday is the best day to launch an app

No. It’s one of the worst days. Why? Because every idiot who ever read “Thursday is the best day to launch an app” … now launches their apps on Thursday. Duh!

Facebook and Twitter sharing will make your app “go viral”

Virality is based on value, not on the presence of a corporate logo. Find some *real* iPhone developers, and ask them what happens if you launch an app with sharing in it.

Only apps that are already spreading virally, and heading for major success, ever benefit from this integration.

i.e. don’t bother until you actually need it; in some cases, for big apps, where you’re confident of 100,000 initial downloads … you may need it at launch. Most apps don’t.

Choose carefully every word in your iTunes description

Nope. Ask any experienced developer how many of their users read the iTunes description, and they’ll probably laugh at you. There’s a really, really good reason for this (but this is a post on what NOT to do, not what to do).

Check-in makes your app as popular as FourSquare

Um … WTF? How stupid are you?

“You need check-in on everything. Let your users check in to articles, blog posts, events, places, shopping items, videos, or even slide share feeds ☺.

People love to tell their friends where they are and what they are doing, so just make it easier for them.”

Who’s that from? Oh, yes – a company that doesn’t actually make apps, but sells a product to churn out crummy identikit apps, where “check-in” is one of their features.

No. In general, it just annoys people. Unless it’s part of the app’s core activity – but in that case, you never had an option to “not” include check-in. (also: why are you even trying to compete with 4square? Have you any idea how tough that is?)

Chart ranking is everything

Again, this is from the school of:

“I am a marketing person who doesn’t make apps, and doesn’t know what they’re talking about. Nor do I bother to ask anyone who does”

…because this info is several years out of date (i.e. a lifetime in App Store terms). In fact, for the last 10-18 months, chart ranking has been largely irrelevant in a lot of sectors – largely due to the surge in FAAD and their ilk.

Engaging with “the community” will give you huge sales

Sad but true: first you need a success before you even have something we’d call “a community”. You need a substantial number of downloads – AND daily actives. “Ten of your mates downloading it once” does not a community make.

Variant: for games, pandering to the TouchArcade community

Ask a game developer how easy / successful it is to promote your game on TA.

Again: back when almost no-one was doing it, this helped enormously. But that was years ago. Now … good luck getting any visibility amongst the sea of other developers doing exactly the same thing.

And finally…

If you feel you want even more “gotchas” and things to avoid, have a look at Jake Simpson’s very recent (February 2011) experiences of trying many of these – and more! – and having them fail miserably.

NB: Jake’s experience was particularly harsh, and actually goes more negative than I think is accurate, in general. At some point, I’ll do a followup that looks at the good parts (things you SHOULD do, that never seem to get old).

But, let’s be clear: mostly, this is standard Marketing. If you’ve hired someone to do your marketing who even bothers to read these sites, you made a mistake. Instead, find someone who’s good enough at marketing to invent the tactics they need all by themself. Preferably, hire someone for their skill at marketing “strategy”, not for their knowledge of “tactics”.

Categories
computer games games design

Dragon Age 2: When Designers go Bad…

Courtesy of Tom, I played the DA2 demo a few days ago. It’s the first Bioware game I’ve played that was so inherently dull and boring I lost all interest after 10 minutes. This rarely happens to me with any game, let alone one from a mega-studio like Bioware. I suspect, in fact, it’s just a really bad demo – the real game is nothing like this. I hope.

Intensely detailed (intensely sexualised) player-characters, but otherwise a depressing art-style (grey on grey with a backdrop of de-saturated blood – i.e. red-tinted grey – and an overcast sky of … multi-hued grey. Oh, and the enemies use a single-hue pallette too: grey).

There was some classic Bioware-ism in the intro itself – sounded and felt like NWN redux – same focus on narrative, but with an engine so badly broken it miserably failed to lip-synch (in a way that no other studio has done so badly for more than ten years), and the eyeballs appeared to have been sucked out, and replaced with ill-fitting glass bearings.

Hmm.

That kind of amateurism on the engine anim/renderer worked OK with something as rickety as NWN and even NWN2 – but now Bioware has a major Uncanny Valley problem: all other parts of the character models are intensely detailed textures, with oodles of shaders to give realistic skin textures, bright detailed eye irises, etc. And then the armour goes and interpenetrates the main character *in the pre-made intro movie* so badly she’d be dead of blood-loss before the scene was over (seriously – she’s got 4 inches of metal digging into her chest – medical EMERGENCY!)

But the worst part is simply this: the game had no depth, no sense of player agency, and no reason for you to care. Characters were randomly dropped in your face with zero explanation of who they were or why they were there, and you were expected to give a flying monkey’s – but since they were all immortal, and overly whiney, I found it hard to. Then they’d randomly disappear with no explanation other than a brief cutscene implying that “everything you just did was a waste of time HA HA! start again from scratch”.

Original? Hell no!

(I compare this against NWN2, whose opening sequences I remember well. Exact same idea, but pulled off with less over-dramatization, and a lot more clarity. Even though the NWN control-system meant it was often viciously confusing for the first few minutes unless you’d played NWN-1 before)

This has never happened to me in an RPG, except the truly dire ones. Same trick (again) was used in Assassin’s Creed 1, and lead to a lot of misery among players – but the joy of AC often kept people playing. At least until they got bored of walking everywhere.

But most people I know never appreciated this device existed until / unless they’d achieved a moderate mastery of the game. I.e. you had to play the game for 3+ hours and then *start again from scratch* in order to really appreciate this conceit. It was a nice idea, but I suspect overall a fail (note: just how differently AC2 approached the issue) – people got bored and dropped the game. But even that was given to you with decent narrative explanation – and believably.

Dragon Age 2 tries the same trick, but does it less cleanly, and smacks the player in the face, with no excuse given. Just: “I’m a game designer. You’re the less-important people who buy my works of art. Sucks to be you.” This is the antithesis of most good game-design. Also: not original. In fact, these days it’s almost a cliche. Sure, Bioware were one of the first major studios to do it, but … AC1 + AC2 + AC3 continue their worldwide domination, with bajillions having experienced life as Altair, Ezio, et al … so this is no longer a niche way to start a game.

And then I found this recent interview with the Lead Designer. I also found a bunch of players complaining that Mike Laidlaw may have missed the point when trying to “fix” Dragon Age with his sequel.

(giving me flashbacks to the fail that was Ultima 8, and the designers belief + claim that “Ultima 7 wasn’t good because you could bake bread – don’t worry, we’ve taken that out”…leading to horrified reactions from players: No, you really don’t understand: baking bread is EXACTLY what made Ultima 7 great)

In the interview, Mike is apparently “excited” by the use of narrative to replace / control the game. I’m not quite sure why; this is nothing more than what NWN2 did, many years ago (from the same studio!) – only it worked more in hand with the player back then, less against them. And without the gratuitous breasts-and-faces-covered-in- … *cough* blood *ahem* … shots.

(I’m not complaining, I’m just saying: the art direction on this project clearly had *someone* who was determined to get facials (of the pornographic kind) inserted into a live computer game. It’s funny, but it’s not subtle, and it’s hard to ignore – especially with heaving bared breasts, straight out of the old D&D covers where over-excited artists were depicting all women in “suicide armour” – holes in the most lethal of places, more a fashion statement than believable chain-mail)

In practice, it seems suspiciously as though Bioware has set a frustrated Author to design the game. The narrative conceit is OK if you wanted to watch a movie, but it takes away so much from the “game” aspect of the game that anyone looking for … game … ends up disappointed. And, as noted – the graphics engine is FUBAR.

A second opinion

So, Tom is a professional author (books), and until recently was a commissioning Editor for a major international political and literary magazine. To use a horrible phrase: he breathes words. Always has. And he really hated DA2’s start, because of all this failed narrative. I was zoning out at this point after a 20-hour day, but it seemed he was saying something like: this narrative is NOT inventive, it’s obvious, pointless, badly written, and would have been better off being left out entirely.

In summary

For me, there’s two major fails: the intro gets in the way of the game … and then does the one thing that an RPG is never allowed to do: invalidates everything the player has done to date.

When my characters started levelling up, I found I couldn’t care less. I’d already had my characters taken away from me once, with no choice in the matter (not even an illusion of choice). I’d spent several minutes with them auto-killing everything in sight, and now I was offered a bunch of bland and meaningless figures, all of which had LITERALLY no relation to anything I’d been doing up to that point in game … plus some bugs in the mouse-control for the level-up screen meant it took 6 clicks just to get to the screen. Level up was presented as an optional (and irrelevant) aspect of the game. There was no indication it would make an iota of difference.

Compare this with Diablo (the first one – go way back, to when Blizzard was a tiny company by today’s standards). See how exciting and in-your-face and *immediately relevant* they made every level-up. Despite IMHO achieving exactly what Mike claims the DA2 team were aiming for: “You get to an RPG and fire it up, and … it hits you in the face with a thousand stats. Those stats are very cool, but you may not be mentally or emotionally prepared to deal with them as your first thing to do in the game,”

Mike – please go and play Diablo. I think you’d enjoy it. There’s no stats at all, until you need them.

Oh, and the colour-scheme for DA2’s level-up screen, I believe – and I’m not making this up – was light grey text on a dark grey background.

Apparently, Dragon Age 2 is “The Game Of GREY!”. Certainly, the demo has convinced me (sadly) not to play again unless forced. I’m sure there’s a good game in there … somewhere … if you can get past the boringness. Maybe someone will hack it and provide a way to skip to the fun parts? More likely (I hope) the demo just isn’t representative of the real thing. Or, if not … roll on NWN3…

Categories
computer games education games design

EA Skate videogame helps pros practice skateboarding?

A year old, this quote, and the original source is from EA marketing (i.e. accuracy / provenance needs to be carefully checked), but still interesting, from Joey Brezinski:

“Its so sick trying to take a video game trick and make it reality, it just takes way longer with your feet then the sticks..

I can think of a trick, do it in the game and see how it works visually…the mechanics, weight distribution…then go do it in real life with a headstart I never had before. It just takes longer and hurts more in real life!”

(found via this very long and interesting article on the history of Skate video / camera work. NB the quote is a long long way down and unreferenced, but the EA marketing page seems to the be the original source)

Categories
conferences entrepreneurship games design iphone programming startup advice

I’ve got an idea; I’ll give you 25%…

…if you:

  1. finish it
  2. and design it
  3. and build it
  4. and test it
  5. and refine it
  6. and launch it
  7. and sell it
  8. and market it

…for me.

This was the tempting offer whispered in my ear this evening by a hard-up web-developer at a networking event, once we were alone, and he’d heard I developed iPhone apps.

For the record, this is the worst offer I’ve ever had – even in the days of the iPhone goldrush (2008, mid 2009) the least I was offered was “one third”. Since then, even the unrealistic offers usually start at $2,000 cash up-front.

I smiled, and said nothing.

I carried on the conversation, when he suddenly broke into a long (minutes) tirade of abuse in the middle of the venue, because I’d “blown [him] off” when he’d “offered to share [his] great idea”.

I stood there in silence for another 30 seconds, wondering what to do: should I respond in kind? should I try to help him? should I walk away?

I decided to try and help him. I asked him to think about how his offer sounded to someone who makes apps for clients every day. (he ranted about how I thought I “was the Big Man – BUT YOU’RE NOT!”). I apologized profusely for offending him, and said I’d try to explain (he told me to “scuttle off, little man”). I made one more attempt – I pointed out that after inadvertently offending him, I was at least trying to make amends, and all he seemed to want to do was insult me. He sneered.

So, my public-service act for the day:

How much does it cost to develop an iPhone application? (tl;dr – $250,000 for a good one)

(note: when we talk to clients, I advise them the sane limit is c. $150k for a great one, or $75k for a good one. The $250k figure is accurate if you’re doing own-IP and it HAS to be awesome (like twitterific, quoted) – but you always end up spending more when it’s your own IP – or if you work with extremely expensive digital agencies who don’t have in-house iPhone specialists. Most of the good, solid iPhone dev teams are about half that price)

NB: this problem (“I’ve got an idea, I’ll let you have it in return for a profit share”) is prevalent among people who know nothing about computer games, as much as for people who know nothing about generic iPhone apps (but who read the papers and think they’re sitting on a goldmine. That’s very interesting in and of itself…

At the end of the day, I walked away from Mr. Abusive. Some people just don’t want to be helped, sadly…

Categories
community conferences games design

TEDxBrighton only receives positive feedback

It’s a bit mean to hilight just one culprit here – this isn’t that rare – but it’s something I’ve been meaning to talk about for ages. Sometimes, bad or broken user-interface has a direct, measureable impact on a business, due to increased customer-support costs (usually CS is paid by the minute or by the hour), or due to incorrect marketing and sales campaigns that are funded in future.

I’m not a UX person, I’m a games person. So, of course, it’s the game-design side that interests me here. Are there any free, public reports on the same phenomenon in games? I have vague memories of this coming-up at at least one of the games companies I’ve worked for, but we couldn’t find sufficient evidence at the time. IIRC, the argument was over “where is the point of diminishing returns?”, given the idea that decreased costs in support-queries justify *some* additional spending on the user-interface for a game.

Anyway, in the case I just saw, people who applied for TEDx but failed to get a ticket are auto-subscribed to a mailing list whether or not they asked for it (not unusual, but the practice always stinks of spam to me), and if they unsubscribe (manually) then their comments just get ignored: the website has been constructed so that the feedback form can’t be submitted.

I’m sure it was an accident (I’m assuming they checked the form before going live, but that it only works in one web-browser. All I know is that it didn’t work in Firefox). Either way, it would seem to ensure that “the first licensed TEDx conference” has great feedback when the licensors come to evaluate it.

Will this cost them? Not so clearly as other examples (see below for anecdotal evidence), but cost may come when they fail to take into account the negative feedback that people tried to give them, but was never received. (I’m assuming that nearly everyone who unsubscribes will have negative feedback – although in the past, when I’ve been monitoring un-sub forms, we’ve often seen 5-10% positive comments in there too. Sometimes you even see people “apologizing” for unsubscribing from your mailing lists!)

Going back to the issue of *actual* financial loss … this reminds me of a couple of talks at last year’s UX Brighton conference, and the websites listing black-hat/white-hat ways of “manipulating” the audience by making the “unsubscribe” and “refund” forms legally valid but practically impossible to complete.

In those cases, the gain/loss is usually quantifiable (allegedly). Although the practice was unanimously reviled by people at the conference, someone stood up and admitted to some experience in it – with the observation that although it “Worked” the client had then asked to un-do the process, because it increased the number of angry people phoning Customer Support (instead of using the website), and CSR staff are expensive enough that the practice had decreased profits.

Categories
entity systems games design programming

Entity System 1: Objective-C

(this is a simplified, but complete, version of the “Entity System 1: Java/Android”)

NB: this post is part of the community effort to make working, usable, free, source-examples of actual Entity Systems, found at http://entity-systems.wikidot.com/

Wiki link: http://entity-systems.wikidot.com/rdbms-with-code-in-systems

Github source: https://github.com/adamgit/Entity-System–RDBMS-Inspired–Objective-C-

I’m posting my original design notes here – also copy/pasted to the wiki, but the wiki version will probably evolve over time. Comments on this post will be disabled – please comment direct on the wiki / wiki discussion pages.

NB: the source code is in GitHub, that’s where you should download it from (will include any fixes and updates over time)

Concepts

(integer) Entity
(enum) ComponentType
(interface OR empty base-class) Component
(interface OR empty base-class) System
(class with implementation) EntityManager

Data Classes

Entity

This is a non-negative integer, and uniquely identifies an entity within the ES. If you serialize your ES, this SHOULD be the same after serialization. New entities have to be assigned a new, unique, integer value when they are created. When an entity is destroyed, its integer value is freed, available for re-use.

ComponentType

This is needed because this ES is so simplistic it has no other way of identifying which Component you’re talking about when you’re looking at a single Entity.

(richer EntitySystems MAY not need this type)

Component

This exists purely to make method-signatures type-safe. We need to know that certain objects are valid instances of a “component” (so we use this superclass to indicate that), but we also need a method that’s guaranteed to work on all those objects (see below).

(richer EntitySystems make more use of this, and require it to be a class, but for this simple ES, you can use an interface/header file)

System

This exists purely to contain a known method-signature that your game-loop can call once per game-tick.

EntitySystem Implementation Classes

Each subclass of Component

Internally, the class has the following functions:

  1. (ComponentType) getComponentType();
EntityManager

This contains:

  1. The master collections (arrays, hashmaps, whatever) that contain all the data for all the entities
  2. Logic for creating, modifying, fetching, and deleting entities
  3. Logic for fetching and modifying components-from-entities

Internally, the class has the following variables:

  1. MAP: from “Entity + ComponentType” to “concrete Component subclass”
  2. LIST: all entities in existence (so it never duplicates entity-IDs!)
  3. Internally, the class has the following functions:

    1. (Component) getComponent( Entity, ComponentType );
    2. (List) getAllComponentsOfType( ComponentType );
    3. (List) getAllEntitiesPossessingComponent( ComponentType );
    4. (void) addComponent( Entity, Component );
    5. (int) createEntity;
    6. (void) killEntity( Entity );