Game AI for Developers
BROADCAST: Distributed Automatic Testing of AI and Animation in CRYSIS 2 (January 29th)
This upcoming broadcast on Sunday, January 29th at 19:00 UTC will take place online within your browser using streaming audio/video:
“In this masterclass with Will Wilson, Senior Programmer at Crytek, you'll learn about automatic distributed testing and how it can help AAA titles withstand large development teams working on them and not collapse under the weight of bugs! In particular, you'll hear about a system that was pioneered on CRYSIS 2 to help test the AI, gameplay and animation after every check in. You'll also hear Will share how this system is currently being used at Crytek on other projects, with 100s of consoles validating every move the team makes.”
To subscribe for email reminders and check the exact time in your current timezone, visit this broadcast's page on AiGameDev.com.
Geeks3D Forums
AMD Radeon™ HD 7900 Series Graphics Real-Time Demos
The Leo demo showcases a real-time, DirectX® 11 based lighting pipeline that is designed to allow for rendering scenes made of arbitrarily c...
Game AI for Developers
Games of the Year: The 2011 AiGameDev.com Awards for Game AI
(Copyright © AiGameDev.com, 2012.)
Every year AiGameDev.com runs its Awards for Game AI, shining the spotlight on the best releases of the past year. There are six different awards, ranging from technology to design and of course overall game of the year. For each, we've included the community vote results as well as the editor's choice.
This year has seen an incredible set of games that raised the bar in many places, including better integration of the AI and gameplay, overall polish of the character behaviors, and applications of artificial intelligence to other areas of games. Of course, there were some catastrophes too, but we're not going to talk about those :-)
Anyway, without further ado...
Best AI in a AAA Game
Vote Winner
Batman: Arkham City
This year's winner of the community vote is Rocksteady's sequel to their highly acclaimed debut, ARKHAM ASYLUM. The game convincingly received more votes than any of the other nominees, beating out some solid competition in RAGE, RESISTANCE 3 and THE SIMS: MEDIEVAL. Congratulations to Rocksteady for a great game and winning the 2011 AiGameDev.com Award for Game AI!
ARKHAM CITY features some of the smoothest and most fluid animations seen in any game, in particular between the player and the endless hordes of brutes in the game as well as the interactions with the environment. Such smooth movement in combat obviously require AI for the NPCs, but increasingly animation systems are scaling-up significantly and using techniques refined by game AI developers over the decades.
Nominations
- RAGE
- RESISTANCE 3
- SIMS: MEDIEVAL
Editor's Pick
Resistance 3
In a year packed with shooter releases, each with more innovations in design and technology than previous years, our editor's pick almost had to be a shooter! The one that sums up 2011 best is RESISTANCE 3 for its polished combat design, varied enemies and challenging gameplay. The game won accolades from the press for not only being the best in the series, but for being the definitive shooter on PS3.
From an AI perspective, Insomniac's work is notable for iterating over the enemies in the game — and introducing new ones — that fit best with the desired gameplay. The team put AI hand in hand with combat design (in fact the two have become inseparable this year), a solid understanding of level design principles, and a high-level AI reminiscent of RTS games and AI directors that allows the designers to shape the gameplay. RESISTANCE 3 is also one of a growing number of AAA titles using the open source Recast library for navigation. Finally, the developer & publisher emphasized AI during the promotion of the game — so bonus points for that!
Congratulations to the RESISTANCE 3 team for their hard work on the game! An honorable mention should also go to RAGE (and Id Software) for similar reasons: varied enemies, polished combat, emphasizing the AI during the promotion of the game and robust animation and navigation technology. Impressive, particularly for the first title in a new franchise on a brand new engine!
Best Non-Player Characters
Vote Winner
Portal 2
How perfectly fitting is it for an artificial intelligence to win AiGameDev.com's Best Non-Player Character award? This year's clear first place for the vote of best NPC was PORTAL 2, which received your praise for its portrayals of GlaDOS and Wheatley in particular. With this sequel, Valve has taught game developers many valuable lessons, in particular that you don't need expensive motion capture animations to make a great character; all you need is world class writers instead!
While there isn't much AI behind the characters in PORTAL 2 as many of them obviously rely on scripts, it's inspiring to think about how such simple animation techniques can combine with well written dialog to portray rich characters. Hopefully, we'll be seeing these ingredients combined and made interactive in HALF-LIFE 3...
Nominations
- DRAGON AGE 2
- BATMAN: ARKHAM CITY
- UNCHARTED 3
Editor's Pick
Uncharted 3
While this iteration of the series felt like an incremental evolution of the principles established by UNCHARTED 2 (which also won this award two years ago), Naughty Dog has expertly refined and tuned its techniques for portraying game characters and moved further to the forefront of the games industry.
In particular, Nathan Drake's companions stand out in the game as genuine and interesting characters — thanks to a combination of great writing, acting, motion capture, animation and of course AI. The addition of the close combat system in UNCHARTED 3 also increases their levels of believability, not to mention the combinations of interactive animations and prepared cutscenes. UNCHARTED 3 also features one of the richest walk cycles ever seen in a game, in the way player avatar interacting with its environment and uses varied animations based on where the character is looking.
Congratulations to the Naughty Dog team for its inspirational work, and winning this award for the second time! An honorable mention also goes to BioWare for the characters in STAR WARS: THE OLD REPUBLIC, as an evolution of the technology in the DRAGON AGE franchise that won the community vote two years ago. As Kevin Dill pointed out, the gestures used during conversations are particularly impressive.
Design Innovation in Game AI
Vote Winner
Dark Spore
In a year mostly full of sequels, Dark Spore won the community's vote for innovative design, in particular it's AI Director. The topics of experience management and player profiling have become increasingly important recently, as more developers try to make their gameplay a bit less chaotic and closer to what the designer intends.
The details of the AI Director were shared by Dan Kline at the Paris Game/AI Conference 2011 last june, where he showed how the enemies in the game are spawned based on the player's state — among other things. The game also uses this approach to adjust difficulty levels based on the player's selection.
Nominations
- BASTION (The Narrator)
- RIFT (Enemy Spawns)
- SWARM (Group Behavior)
Editor's Pick
SWARM
One of the most interesting designs of the year comes from Hothead Games. SWARM is a fascinating merge of Lemmings and 'boids' with flocking behaviors, challenging you to control a group of Swarmites through hostile terrain. Your goal is to try to score points by voluntarily sacrificing your Swarmites, but preserving enough of them to reach the next checkpoint that replenishes your group's count.
What makes this game interesting from an AI perspective is the basic combination of group behaviors that lead to interesting, challenging and — most importantly — fun gameplay. You can tell your group to spread out, regroup, move in various directions, jump and use nearby items for example. The resulting behaviors are also very humorously executed, for example the Swarmites will pick up each other accidentally when you tell them to throw objects (e.g. explosives).
Best AI in an Independent Game
Vote Winner
Frozen Synapse
One of the most acclaimed and commercially succesful indie games of 2011 also won the community vote for the Best AI in an Independent Game. Frozen Synapse is a turn-based top-down tactical shooter with challenging gameplay and very deep mechanics. The game features AI bots to play against, which are relatively rare in even big-budget AAA games, so it's impressive to see them implemented to this degree of success in an independent game!
Nominations
- SWARM
- MEN AT WAR: ASSAULT SQUAD
- CARCASSONE (iPad)
AI Technology in a Supporting Role
Vote Winner
From Dust
The cellular automata in Ubisoft and Eric Chahi's god game FROM DUST won the community vote for AI in a supporting role. The game itself is a populous-style simulation where tribes inhabit a complex terrain, though in this case it's subject to the forces of nature! Rock, sand, soil, water, laval and plants make up this dynamic and ever changing world that looks and feels very real.
Under the hood is a complex simulation that specifies how each cell in the world gets updated, depending on the amounts of material nearby and their velocities — among many other things. Getting this to run on the PS3 in particular was a huge technical undertaking that involved meticulous accounting for every bit in the world's representation!
Nominations
- SPACE MARINE (Squad AI)
- SECTION 8: PREJUDICE (The Bots)
- MINECRAFT (Procedural Worlds)
Technical Innovation in Game AI
Vote Winner
Killzone 3
On the technical front, it's KILLZONE 3 that won the community award for technical innovation with its automatic annotation technology. Guerrilla Games worked closely with Mikko Mononen to integrate the open-source project Recast into its tools and export pipeline, in particular to provide better analysis of the terrain. This helped level designers place cover locations for the player in a much more consistent fashion, among other things.
Technically, this is achieved using voxelization under the hood, which allows for reliable processing and analysis of local space. Mikko demonstrated at the Game/AI Conference 2011 how this can be used to find not only cover, but jump links and potentially any interesting action that can be performed at the border of a navigation mesh.
Nominations
- FROM DUST (Cellular Automata)
- LEAGUE OF LEGENDS (Level Scripting with BTs)
- BULLETSTORM (Locomotion Planning)
Editor's Pick
Bulletstorm
One technique in particular that impressed me was the locomotion planning in Bulletstorm. The whole game is an impressive technical achievement in game AI programming, which outperforms the more established AAA shooter franchises built by bigger teams! The design of the game too is refreshingly innovative, though sales of the game didn't match the expectations of People Can Fly and Epic.
Under the hood, the locomotion is achieved in an animation-driven approach that's targetted to fit on a path. Compared to the traditional steering behaviors with reactive animation, this is not only much easier to put into place for AI characters but results in higher quality movement.
Your Games of the Year
What games had the biggest impact on your year? Which ones will you continue to play in 2012, recommend to friends, or keep on your shelf for further study of the AI?
Post a comment below or in the forums, and let everyone know what you think!
Gamasutra Feature Articles
Talking the Future of Minecraft
In December, Markus "Notch" Persson handed the reins of Minecraft development to Jens "Jeb" Bergensten, and in this interview, he explains what the future holds for the massively popular indie game and what he expects to concentrate on as far as additions go.
iPhone Development Tutorials and Programming Tips
Example: How To Update Apps By Downloading Modified Files From A Server
There are many reasons why you might want to update assets within an app at run time. This is often done within apps to provide announcements for new apps, or tweak small settings.
It can also be extremely helpful during development if you’ve got a larger app, and would like to make small changes.
There are of course limitations on what you can change in app if this is going to be an app on the app store (
Steffen Itterheim has created an example application that presents a webcam image in Cocos2D, and updates when that image changes demonstrating how to check whether the file has changed, and only downloading then.
You can find the example here.
If you are looking for an example on how to set up a server for easy variable tweaking while playing a game you can check out this previously mentioned tutorial demonstrating how to setup a server for easy app tweaking.
©2012 iPhone, iOS 5, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.
.#AltDevBlogADay
Being There?
The vast majority of the games our industry make are virtual. Computer software that transports us to other worlds shown to us via a video screen and controlled via clever little gadgets. And yet we develop them and limit them with physical limitations, for most people (the 80-90% who are able bodied) this is often seen as a good thing but what about the disabled community?
I’ve been disabled for the last few decades and have done degrees, played thousands of games, got a job and worked my way up to senior positions all whilst being disabled, due to my vocation from a very young age to make video games. The only requirements I knew were being that I can operate a keyboard and mouse enough of the time to transfer the stuff in my brain into a game.
However the last few years have started to show real issues to me with our industry due to a culture that excludes many disabled people. From devices like the Kinect or Wii fitness to the promotion of the idea that people have to develop physically together, we are driving away many valuable minds that are ideally suited to making games. Whilst doing that we are also throwing away some of the 10-20% market share of people who are less able to play games requiring explicit physical features.
Whats the problem?
Whilst I doubt a post on AltDevBlogADay is going to convince Microsoft that Kinect only games are a bad idea, I hope that by exploring some of the real problems I have as a disabled game developer to this audience, they might at least make able bodied developers think.
For me personally (and I know in general for a lot of people in the disabled community), the biggest issue is the “Being there” problem, whilst we make virtual worlds and situations, we have an extreme bias as an industry towards physical proximity in the production of games. Most companies insist you work in the office, often moving desks so people who work together are close together, brain storm and important meetings are done with everybody in a room. Its a system thats been shown to work and most people don’t need to think whether its required or could be improved on, until that very proximity becomes problem which for many developer never occurs and so they think its the only option.
Being There
Within the last few years, my health has deteriorated to the point that even using mobility aids (like crutches or a wheelchair) I simply cannot get to places at specific time easily. I’m effectively housebound, as an example at the time of writing (end of January 2012) I’ve been outside my house twice this year, both times to get Dental treatment. I have to work around my health, which may mean doing work at odd hours, when the problems have dimmed enough to work at my best. However my ability to do what I love (making games) has gone up since I became house bound, as all those normal things have gone away leaving me the time to take my skills to a level I never had 5 years ago. Effectively I’m just a brain connected to the net (I’m always there even when I shut down into myself due to pain etc.), I’d like to think I have a very capable brain (hopefully proved over the titles I’ve worked on) but the ability to get the studio everyday or attend a conference is out of the question.
But hey we work in a digital always connected world, so that wouldn’t cause any problems, would it?
Well it does, and to be honest, theres great doubts in my mind if I’ll be able to work in the AAA industry any more going forward, even as my abilities and skills in making games are going up, the use of them outside my own space has become harder. Its not just a matter of things like being able to work from home (which is of course a necessary start) but the willingness of the various parts of the job to incorporate a non physical entity. When you look under the veneer of respectability and minimum required by various equality rules, you quickly see how we assume ‘normal’ physical presence.
Its Game Jam 2012 weekend, great idea with support from IGDA and big sponsors, so be an ideal fun experience for everyone who want to make a game right? Erm so whats this about site and attendance? Ah yes thats right, clearly being able to physically get particular places at certain times is a requirement for someone to make a virtual game!
Game developer conferences requires attendance and having been to one when I was a bit fitter, I can tell you it not easy even when you can walk on crutches and attend, let alone if you can’t physically attend.
Job interviews are typically in person…
In an age of HiDef video cameras, even motor controlled, when was the last brain storm meetings you attended that was truly set up for a virtual presence?
Instant Messages and video conferences means that someone not there is instantly contactable, just as easy as shouting across the office but having teams in close proximity is usually high up the production list, so much that its no uncommon for desks to be moved as projects change.
Why?
A simple answer is physical presence is easy. Most managers, producers and senior people are able bodied and can give you examples where getting everyone in a room solves a problem quickly. They can easily tell whose pulling there weight if they walk past there screen every now and again. Conferences know that can get the right atmosphere, with everyone there in person, its a known easy solution that works for most of the people who make the decisions.
Indeed only recently has technology advanced to the point that we can have virtual conferences, that we can talk (by text or voice) to someone half a world away as easily as next to us. And even now these cost money, and require a concerted effort to do. From making sure the video conferences and net connections are working well enough, to security and VPN access issues, it requires a real buy in from the top to the bottom to accept a virtual staff member as a full member of the team. The current norm, is that if there is any support for virtual presence, it will be as a second class citizen. Doing odd-jobs or restricted interaction with the proper staff members who are on-site. Usually you will be expected to be glad that your even treated as a second class citizen, because at least you’re been allowed to work from home or watch conference materials at a later date.
Its important to get this clear, we are talking about people who have equal skills to make games but are just stopped from doing that to there full ability based on things completely separate from those skills. And hopefully most people reading will understand that, that is no difference from not being promoted due to your colour or paid equally because of your sex, we need to embrace everybody who has the talent to do the job. Perhaps a good example, is that most companies and most conferences are hostile to someone like Professor Stephen Hawkings, and yet would anyone not like to have some with the quality of his mind on there team?
I don’t know how many disabled game developers there are, I’ve never seen any statistics, but I suspect its a lot lower than the 10-20% of the population who are considered disabled. As it seems unlikely that we will get anytime soon, to a point where a disabled developer who suffers from these problems gets up the the levels required to make changes, it will be upto the entire community of both able and disabled developers to make it possible to build an environment where all the skill to make games is the quality of someones mind not the quality of there health.
Usability Evaluation for Video Games (Part 3): Psychophysiological Measures
Hello, and welcome to this third and final part of a series on Usability Evaluation for Video Games. In the first part of this series (here) I talked about the necessity to have a framework upon which to base our understanding of player actions. In the second part (here) I gave some examples and ideas on how to use different types of formal usability evaluation methods, to gauge how usable our games are. In this third part, I will talk about some more exotic methods of usability evaluation. These methods, are just now starting to become affordable by the masses, because the technology that is required to perform them used to be extremely expensive. However, as all things technology, the tools’ prices are starting to fall, with a few tools out there that are actually in the affordable range, even by hobbyists. The measures that I will present here are all grouped under the name “psychophysiological measures”.
Psychophysiological Measures
So what are these things?These measures receive input from various places of the human body. Usually, measures that fall under this category are eye-tracking, pupilometry, electroencephalography (EEG), electromyography (EKG), and galvanic skin response (GSR). To understand these, I will present each measure together with its related technology, and what that technology actually measures.
Eye Tracking

Eye Tracker
Eye tracking allows us to see where the users have looked over a certain time period of working with a program. This technique used to involve having users restrain their heads with various types of restraining devices, so that their eyes’ positions would remain stationary over the course of an observation, but now these restrictions are gone. This technique is difficult when using on a game that has rapidly changing visual structures, because eye tracking shines at showing where users look at most of the time. Thus, it is mostly used for website evaluations, and in marketing research.
However, all is not lost for eye-tracking. There are certain places where examining what our players look at is extremely helpful. For example, Key Lime Interactive used it to examine how players use the UI elements of their games (the UI is usually static over the course of a game). Read more about how they performed their study here.
Pupilometry
Another measure that could be used during game evaluations is the measurement of pupil dilation over the course of playing a game. Pupils dilate as a response to emotional arousal, attention, and cognitive load (i.e., the amount of information a person is thinking about). Thus, this measure could be used to understand where players find things difficult, to the point of feeling like giving up. Usually, pupilometry can be performed with instruments that are found on good eye trackers.
The two measures together provide a good way of exploring games in terms of game analytics, and examining where players have problems that can turn an otherwise great game into a challenge nightmare, leading to players dropping the game and expressing dissatisfaction because of the game being too hard!
Elecroencephalography (EEG)
EEG together with EMG and GSR are more exotic (!) measures that require much more expensive equipment than eye-trackers. However, there are some limited functionality, affordable gear that may be used for EEG. The results from the EEG are brainwave data that voltage fluctuations resulting from ionic current flows within the neurons of the brain.
Measurements from the EEG can be used to examine the psychological state of a player, without resorting to the think-aloud protocol that tends to interrupt the thinking process, and distracts the player from the game. Thus, once more, this type of usability evaluation may not provide too much about usability problems in the game, but it will provide clues about how the player feels about our game. The other plus of the method is that the data are taken live during play, not through distracting the player, and not after the player finishes the play session.
Electromyography (EMG)

EMG is another exotic measure, used to measure muscle tension. EMGs for game evaluation can be used to measure the tension of muscles on the face, which tense according to specific emotions. For example, we can measure muscle tension in muscles that tense when the players smile and frown, thus gaining significant insights about when the players have problems, when the players find the game funny, and when they are challenged, again during the play session.
Galvanic Skin Response (GSR)

One last measure that is used to gauge the emotions of players is GSR. The measurement of skin conductance provides us a way of looking at the players’ emotional arousal, and more specifically their happiness level. It seems that the skin gives a different measurement when we are happy and when we are sad. Therefore, GSR is another way of getting live readings during a play session of the player’s emotional state.
The evaluation techniques and measures that were presented in this post are more technically oriented than in my other posts. I hope that this post has shined a little more light into the obscure world of emotional measurements and eye-tracking, and has provided at least some ideas about how to receive more feedback about our game designs than those that are given verbally by game testers.
Morgan3D / Twitter
morgan3d: Viglietta's complexity proofs for [graph] traversal in games like Tron and Doom with key mechanics; most are NP-hard. http://t.co/9uoLMgzr
morgan3d: Viglietta's complexity proofs for [graph] traversal in games like Tron and Doom with key mechanics; most are NP-hard. http://t.co/9uoLMgzr
GPGPU.org
CUDA 4.1 Released
Today NVIDIA released CUDA 4.1, including a new CUDA Toolkit, SDK, Visual Profiler, Parallel Nsight IDE and NVIDIA device driver.
CUDA 4.1 makes it easier to accelerate scientific research with GPUs with key features including
- a redesigned Visual Profiler with automated performance analysis and expert guidance;
- a new LLVM-based compiler that generates up to 10% faster code; and
- 1000+ new imaging and signal processing functions in the NPP library.
The CuSparse library included with CUDA 4.1 has a new tridiagonal solver and 2x faster sparse matrix-vector multiplication using the ELL hybrid format, and the CuRand library included with CUDA 4.1 has two new random number generators. The CUDA 4.1 toolkit also brings some great improvements to its debugging and performance analysis tools.
Sign up for a webinar to learn more about all the new features & high performance GPU-accelerated libraries!
CUDA 4.1 Toolkit 4.1 Feature Overview Webinar
- For Europe and The Americas: 10am (PST), Wednesday, Feb 1
- For Asia-Pacific and India: 10am (IST) Friday, Feb 3
Call for Presentations: AMD Fusion12 Developer Summit
AMD Fusion ’12 will be held June 11-14, 2012 in Bellevue, Washington at the Meydenbauer Center and the Hyatt Regency. AMD invites pioneers of next-generation software and the rapidly growing field of heterogeneous computing to share their latest work and research findings in the form of presentations. Presenters will have an opportunity to advocate new methodologies and paradigms, garner support for industry standards, and network with developers, innovators and academics who will help define the course of this technology. Presentation proposals are invited on the following topics:
- Web Technologies
- Cloud Computing – Servers and Data Center
- Gaming and Consumer Graphics
- Heterogeneous Computing
- Innovative Client Experiences
- Multimedia Processing
- Professional Graphics and Visual Computing
- Programming Languages and Models
- Programming Tools
- Security
Follow this link to submit presentation proposals by February 17, 2012. All proposals will be reviewed by a summit board composed of researchers, academics and practitioners in the field. Selected candidates will be notified by March 15, 2012. Speakers will be offered free conference admission, three nights of compensated hotel accommodations and an invitation to a special speaker reception.
Real-Time Rendering
A few new books
I’ve updated our books page a bit, adding the new books I know of at this point, adding links to authors sites and Google Books samples, etc. Please let me know what we’re missing.
A book I know nothing about, but from updating the books page I think I’ll get, is the OpenGL 4.0 Shading Language Cookbook. A reviewer on Gamasutra gives it strong praise, as do all the Amazon customer reviews.
One I’ve left off for now is Programming GPUs, which I expect is focused on computing with the GPU (no rendering), judging from the author’s background as a quant (his bio’s cute). I also left off a heckuva lot of books on using the Unity engine, to keep the list focused on direct programming vs. using higher-level SDKs.
Along the way I noticed a nice little blog called Video Game Math, by Fletcher Dunn and Ian Parberry, who recently released a second edition of their 3D Math Primer for Graphics and Game Development. Which is pretty good, by the way. My mini-review/endorsement: “With solid theory and references, along with practical advice borne from decades of experience, all presented in an informal and demystifying style, Dunn & Parberry provide an accessible and useful approach to the key mathematical operations needed in 3D computer graphics.” There’s an extensive Google Books sample of much of the first few chapters.
In the “old but awesome and free” category this time is Light And Color – A Golden Guide. Check it out before there’s some takedown notice sent out. Yes, it’s small, it’s colorful, and some bits are dated, but there are some pretty good analogies and explanations in there. No kidding. Lots more Golden Guides here (including, incredibly, this one).
I did find that there’s a new edition of “Real Time Rendering“ out, which was a surprise. The subtitle is the best: “Aalib, Aces of ANSI Art”. It’s even sold by Barnes & Noble and Books-A-Million. Happily, I couldn’t find it on Amazon, so maybe they’re scaling back on carrying these so-called books. This particular book is a paperback, and more expensive than the real thing (I like to think our’s is real – it’s the dash between “Real” and “Time” that keeps it real for me). Or I should say it’s more expensive unless you buy ours from these “double your intelligence or no money back” sellers. I believe this phenomenon is from computers tracking competitors’ prices and each one jacking up prices in response.
In case you missed my posts on Betascript Publishing, go here – short version is that they use a computer program to find related articles on Wikipedia, put on a cover (usually the most creative part of the process), and sell it. I’d be interested to know which book is better, their computer-generated one or my own Wikipedia-derived followup, GGGG:RTRtR (Game GPU Graphics Gems: Real-Time Rendering the Redux), reviewed by me here. I really should read my own book some day, there look to be some interesting Wikipedia articles in there.
Finally, I like the concept of book autopsies:
Morgan3D / Twitter
morgan3d: RT @nvidiadeveloper: Parallel Nsight 2.1 is now available http://t.co/rwwJrqmO: Debug&profile graphics,compute apps in #VisualStudio + s ...
morgan3d: RT @nvidiadeveloper: Parallel Nsight 2.1 is now available http://t.co/rwwJrqmO: Debug&profile graphics,compute apps in #VisualStudio + s ...
iPhone Developer News
Manage Default Language Settings in iTunes Connect
You can now edit the default language for app metadata any time. If you have multiple apps, you have the added flexibility of managing metadata localizations for each individual app. Any localizations you add will be displayed automatically based on customers’ OS or iOS language settings. Otherwise, the default language you select will be displayed to all customers. Learn more in the latest iTunes Connect Developer Guide.

Geeks3D Forums
NVIDIA CUDA Toolkit 4.1 released (incl. new developer drivers)
This release of the CUDA Toolkit version 4.1 features a new LLVM-based CUDA compiler, 1000+ new image processing functions, and a redesigned Visual Profiler with automated performance a...
Icare3D Blog
Interview on 3DVF
Ph.D thesis: GigaVoxels
I defended my Ph.D thesis on GigaVoxels last July, and the document is now online.
You can download it there:
GigaVoxels: A Voxel-Based Rendering Pipeline For Efficient Exploration Of Large And Detailed Scenes
You can also check my other publications on my Ph.D webpage.
Game From Scratch
PlayN on iOS: One step closer
You may remember me discussing PlayN in previous posts, it’s a Google run cross-platform, open source game library. Previously the most missing feature was iOS support and frankly that feature is still missing, but there is light at the end of the tunnel!
PlayN developer Michael Bayne recently made a post announcing he had successfully got the Peas demo running on an iPhone4.
Without a doubt this progress is a “very good thing”, as iOS support is easily the most important missing feature of PlayN today.
Michael’s progress:
I got side tracked by trying to get things working on a real device.
The simulator runs the Mono VM in JIT mode (though with various
restrictions in place to ensure that you don't do anything that's
incompatible with AOT compilation), but actually doing AOT compilation
enforces substantially more restrictions. I had to "refactor" IKVM to
contain no references whatsoever to System.Reflection.Emit even if
they were never called. I also bumped into a Mono compiler bug and
spent some time digging into the internals of IKVM and mcs (the Mono
compiler) so that I could come up with a work-around and file a
sensible bug report. It turned out to have already been fixed in trunk
(which made my investigations that much more perplexing), but since
MonoTouch is commercial software, I was necessarily working with the
latest beta release, not trunk; annoying!Performance of the Pea Physics demo is not stellar on an iPhone 4
(it's quite reasonable, it's just not silky smooth 60 FPS with twenty
or thirty peas moving on screen). It's pretty comparable to what I've
see on actual Android devices. Depending on what Box2D's interfaces
are like, there's a possibility that it could be improved by writing
an interface-compatible implementation of Box2D directly in C#. C#
supports value types, and in a physics simulator, being able to store
your Vec2s and Matrix3s directly inline, rather than separately on the
heap, can substantially improve cache performance. That said, the
Box2D implementation, as is, is not very data-oriented. Rewriting it
to store all of the entity geometry in big flat arrays and to perform
its calculations by iterating over those arrays, rather than following
a zillion pointers through the heap, would probably help a lot on
every platform.Now that I've got things running on an actual device, I'll go back to
finishing up the platform implementation. IOSCanvas is substantially
done. IOSStorage is done (built on Sqlite). IOSTouch (and IOSPointer)
are done. I need to implement the font and text rendering bits of
IOSGraphics/IOSCanvas. Then IOSSound, IOSNet and other niggling bits.
I'm not sure what I'll do about IOSKeyboard. I'd kind of like an
additional interface for requesting a string of text from the user,
which would allow the keyboard to pop up in "edit a line of text" mode
so that the user can use the standard copy/paste and click with
magnification text navigation. Having the app respond to key events
and attempt to implement text entry directly is a massively bad idea
(on any mobile device), IMO.
Excellent news and great work Michael!
So for the people looking to see if PlayN works with iOS, the answer is no, but it’s damned close!
#AltDevBlogADay
A functional definition of Beauty
I’ve been holding off posting for about two months because I either didn’t have time to post, or I didn’t feel my posts were solid enough.
Now that both those problems have been fixed, here’s my new post about beauty.
In my last post about open-mindedness I hinted at the importance of the comfort zone, and I’m going to talk about it in this post, amongst other things.
I’ve also promised a post on education, and a post on game design. Both are coming, and will be pretty nice as far as I know, but they’ll come later.
So, a functional definition of beauty, and how it relates to the audience’s comfort zone.
But let’s start with ugliness. Ugliness is a subjective characteristic attributed to some things by an observer, based on whether these things match or don’t match certain criteria: a thing is judged ugly by a certain standard or set of standards. What the criteria are isn’t important since they can change over time. What’s important is that we judge things by association. The fundamental idea of ugliness vs beauty exists for a reason, i.e. it is a heuristic used to assess whether something is good for us or not, based on what we already know. The things that look like good stuff we already know probably are things that are good for us. The same goes for ugliness: what looks like bothersome stuff probably is bothersome stuff. We treat ugliness like a problem that needs to be solved. A few solutions include keeping away from ugliness, keeping ugliness away, destroying ugliness or changing it into something else.
Now what about beauty. I think beauty can be achieved through three axes: clarity, positive evocation, and familiarity. Which all revolve around the same thing, i.e. the comfort zone. We accept beautiful things into our comfort zone, or more probably, we consider the things in our comfort zone to be beautiful. What isn’t in our comfort zone but looks like things in our comfort zone will be accepted in it more easily, and will therefore also be considered beautiful. Put more simply, “good for us”<=>”beautiful” and “unknown”<=>”cannot be accepted into the comfort zone” (One does not simply walk into the comfort zone).
Clarity or simplicity is an important aspect of beauty: if something isn’t familiar to us, but is a good thing and needs to be seen as such, the faster the people realize that thing is good for them, the smaller the chance they will run away from it. If something is excessively complicated and obscure, it will take longer to see beauty through all the irrelevant stuff. If something can be instantly recognized as good for us, we won’t run away. If it takes too long to identify something as “good”, the greater the chance of us mistaking it for either something “bad” or “background noise”. Basically, Clarity is the speed at which we can familiarize ourselves with something.
Positive Evocation is basically how things that aren’t in our comfort zone get accepted inside it by looking like stuff that is already in it. If a new thing reminds us of something good we already know, we’ll associate this new thing with the one we already know and accept it in our comfort zone. Basically, remind people of things they like (positive evocation) in a non-ambiguous way, and people will love what you do (note: I said we should do that. I didn’t say that there isn’t anything else to do. Because there is).
We learn how to appreciate things iteratively. We like A. We don’t know B but it looks like A. So we’ll accept B. Then there’s C, which looks like B. Since we have accepted B, we’ll also accept C. Do notice that we wouldn’t have accepted C if we had come across it without having come across B previously.
Example: why do heavily-stereotyped movies sell more than intricate works of art ? Well, because people are simple-minded (I said simple-minded, not stupid: kids are simple-minded, and whoever doesn’t get educated, stays a kid), and prefer watching things they already know they will like after watching the trailer. Note: There’s something else going on here, I’ll talk about rationalization and why critics find badly stereotyped things terrible in a later post.
Still: we gravitate towards beauty. We also gravitate towards familiar things. Well, because they are both the same for us: we can only like things that match our criteria of what beauty consists of. Except, we could ask ourselves, can “Beauty” change our current standards, maybe in a “love at first sight” way ? I wouldn’t say “change” as much as “rearranging our existing criteria regarding one another”. For example, we might not have considered combining trait A and trait B, but the result is really nice.
Example: why we should introduce art to people progressively. People have to be able to relate to the artworks. They have to understand what is beautiful about the artworks. If your audience isn’t used to certain things, they won’t be able to accept them as easily. The thing here is, there isn’t really a clear difference between “familiar” and “unfamiliar”. Everything is more or less familiar, has different traits, some of which resemble things we know, while others are new to us. Take music genres for example. Most people have at least listened to Rock at least a few times, and probably like it. Well, Metal is somewhat related to Rock, since the same instruments are used. But someone who listens to Rock doesn’t necessarily listen to or even like Metal, because, well, obviously it isn’t Rock. But if you listen to Punk Rock or Melodic Metalcore, you might have a hard time differentiating them in certain cases. That’s because they have common traits. As far as I know, to appreciate something new, you just need to see it as a further variation of something you already know and understand.
Example: why are people xenophobic ? Because we do not know what foreigners might do differently from us. “Foreign people -> maybe there are some unknown differences -> we can’t accept them for sure -> we need to keep away from them”. That’s the xenophobic line of thinking at least. The problem here is unfamiliarity and suspicion: we don’t want to take risks. We need to study the risks from far away (but not too far, we need to still be able to observe what they do). Keeping away but keeping an eye on something is called familiarization. Even in the first second of coming across something familiar but unexpected, our brain will freeze during the time it is analyzing this thing, before finally determining there’s nothing to worry about. We just want to keep away from ugliness :].
To conclude: Beauty is subjective, and people need keys to unlock the beauty in things they’re not familiar with yet. You could say that the comfort zone is like a key holder. And the different keys on it are the criteria from the standards used by people to assess the beauty of things.
The ability to look for beauty in everything is called open-mindedness. I’ve talked about that last time.
The speed at which the beauty of something can be unlocked is called clarity and simplicity. We find beauty faster in things that evoke things we already like.
So take away these three axes – Beauty is:
-Clarity
-Positive Evocation
-Familiarity
Well, everything went better than expected n___n
I wasn’t certain to manage to write this post without sounding too pedantic or vague.
Anyway, thanks for reading, have a nice day/evening :D.
See you next time n____n
Gamasutra Feature Articles
Building Games that Run on Poor Mobile Connections
The former SVP of engineering of Moblyng, developers of Social Poker Live, explains the ins and outs of getting network traffic up and running over spotty cell connections using HTML5.
#AltDevBlogADay
Team Audio: Emotion Designers
I think our current titles might be throwing people off. Sound designer, audio designer, audio artist… they just don’t convey the underlying purpose of what we do, which is make people feel something. People want to feel something, and Team Audio is gonna give it to them. We’re gonna hit ‘em with the nostalgic song, the sounds of laughter and people in love, and then we’re going to drop an explosion, then horrified screams, then coughing and weeping and debris and confusion. It’s what we do. If you have an awesome Team Audio at your side, then your games will make people laugh harder than they can remember, or make them feel like they’ve just injected hot adrenaline into the pits of their stomachs, and maybe, just maybe, you can wrench a tear from their eyes.
I’m not saying we’re the only ones, by the way. I can feel something by looking at a painting. I saw a painting by Delecroix once that chilled me to the bone. And a majestic sunset doesn’t need sounds to make me feel something, but I will say that adding a soft “I love you” in my ear to that sunset will turn my legs into cooked spaghetti. I also don’t need the sound on to feel the exhilaration of speeding down an alley in a muscle car, but when I hear the engine tearing the air around me to shreds, I’m probably gonna crap my pants. Emotionally, that is. An emotional pant-crapping.
Anyway, I fully acknowledge that when we work together across all disciplines, that’s when the magic happens.
Team Audios out there, we are emotion designers, and we can sing this glorious news to everyone. Fortunately, a lot of our colleagues recognize this already and want to exploit it, which takes some of the work off our own shoulders. These are the people that involve us early to talk to us about pacing and tone and emotion. They want to hear what we’re working on, and they provide feedback about how the sounds and music make them feel.
And then there are the ones that haven’t put their finger on it, or they might be completely oblivious to the idea. They’re not bad people, though. Just like people who don’t listen to music a lot aren’t bad people. They’re not! Most of the time these people just need to hear it said plainly, “we’re emotion designers,” and then they have a catharsis, and you have to hold them for hours and hours while they blabber through their tears and snot.
I’m sure there are also those crusty audio vets out there, the ones that have allowed the relentless onslaught of late timing changes and object impacts and mouth noises harden their hearts, and when they read this their smirks become just a little more permanent, and I’m at peace with that. It’s easy to get caught up in the grind, or to be so far from creative sound design on a daily basis that it’s painful. I know what that feels like, and some people let it get the best of them, but I’m trying to stay soft and to remind myself why I care about sound and why I’ve devoted so much of my life towards this line of work. It’s because I like to feel things when playing games, and I like to make other people feel things when they’re playing.
So, I’m just going to keep reminding people that Team Audio is here to make the player feel something, and that we’re good at it, and that we want to talk about it. I’m going to say it to everyone, even strangers walking down the street. I’m going to grab them by their lapels and get two inches from their faces and mutter under my breath, “we are emotion designers.” Because even though we have tons of assets to churn through and meetings to attend and e-mails to read and bugs to fix, I think we should strive to keep our heads above the muck and remember that we have the opportunity to give someone a feeling that can stick with them after they’ve turned off the game. And that’s amazing.
Game From Scratch
Cool thing of the Week: Week 5
OK, so I may just be late to the party on this CtotW, as this product is currently one of the darlings of the programming world but I ignored it completely until now. What is it I ignored so completely and now am rather enamored of?
What exactly is Node? Well basically they ripped the V8 Engine ( yeah, it’s actually called that ) that powers the Javascript engine in Google Chrome and instead used it for creating
server side applications, like you would traditionally make using ASP.Net or JSP. In addition to providing a server side Javascript implementation, they have implemented a number of modules ( in C++ ) to handle many common tasks, from creating an HTTP server to cryptography. You can of course create your own add-ons in C++. Of course, as with all things Google, the build process is a bit convoluted and poorly documented, especially for Windows based developers.
So, why exactly have I ignored Node until now? Frankly, I hate developing in Javascript, or at least I thought I did. Reality is, I hate developing in Javascript for browsers! Once you move yourself out of the browser, it becomes a much more pleasant experience!
What exactly makes Node so enticing? You can make light weight, simple, scalable and asynchronous servers with absolutely no other software required. Simple run node.exe “yourAppName” and you have a running server, no need to install Java or configure a web server. Consider the following Hello World, a completely functional web server in just a few lines of code:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8124, "127.0.0.1");
Pretty simple eh?
There are a few downsides though. Since Node.exe runs as a single process, so will your application. This means you are tied to a single core per instance of node. Also, tooling support is a bit lacking. I tried out the excellent (in concept ) Cloud9 online IDE but simply put, it didn’t work. I really hope this changes soon, as a web based IDE sounds about perfect. I am currently trying out WebStorm, but have formed no opinion yet. Book support is quite limited as well, with Node Web Development and Node: Up and Running: Scalable Server-Side Code with JavaScript being the only two published books at the moment, although a number of others are in the works. No doubt as Node matures, so will the educational and tooling support available for it.
I am going to do a quick test of using Node.js as a simple game server for an SFML based game. I will update here accordingly when (if) that is complete.
71 Squared
3D Tech Demo Source Released
I’ve finally published the project I wrote for my VTM conference talk in Boston last November (2011). This project is iOS 5 specific and uses GLKit for all the rendering and math. It also implements a version of our Particle engine enhanced to work in 3D which is really cool. It uses bill boarded images [...]
#AltDevBlogADay
What happened to innovative games?
Indie developer Nimblebit dropped a PR bomb on Zynga yesterday with it’s letter addressing the similarities between their hit iPhone game Tiny Tower and Zynga’s upcoming release, Dream Heights. This galvanized the gaming community, with thousands of people, from prominent bloggers to gamers on Reddit criticizing the company.
However, just after the new year, Atari ordered the removal of Black Powder Media’s Vector Tanks, a game strongly inspired by Atari’s Battlezone. This galvanized the community in a similar way, except this time, gamers were furious that Atari shut down an indie game company that made an extremely similar game.
Unfortunately, the line between inspiration and copying is incredibly blurry at best. The one thing that’s certain is that copying is here to stay. Copying has been present in some form since the dawn of capitalism (if you need proof, just go to the toothpaste isle of your local supermarket). The game industry is no stranger to this trend: game companies have been copying each other for years. Given it’s repeated success, there’s little reason to think that this practice will stop. Indie flash game studio XGEN Studios posted a response to Nimblebit, showing that their hit games were also copied:
Some would even argue that the incredibly successful iOS game Angry Birds was a copy of the popular Armor Games flash game, Crush the Castle, but then Crush the Castle was inspired by others that game before it. Social games even borrow many of their game mechanics from slot machines to increase retention. So what is copying, or more importantly, which parts of it are moral and immoral? Everyone seems to have a different answer, but it’s safe to say that people always copy the most successful ideas. The one thing that those in the Zynga-Nimblebit conversation seems to have overlooked is that everyone copies others in some way.
Of course, while imitation may be the sincerest form of flattery, it doesn’t feel good to be imitated when a competitor comes after your users. In this case, people may question Zynga’s authenticity and make a distinction between inspiration and outright duplication. But at the same time, Zynga’s continued success with the “watch, then replicate” model shows that marketing, analytics, and operations can improve on an existing game concept. Or just give them the firepower to beat out the original game, depending on how you look at it.
I want to hear your thoughts: Should game companies be encouraged or punished for taking the best ideas from other games? Where do you draw the line between inspiration and duplication? Sound off in the comments.
iPhone Development Tutorials and Programming Tips
Open Source: Great Block Based UIAlertSheet And UIActionSheet Replacement Library
The UIAlertSheet, and UIActionSheet API’s can be difficult and cumbersome to use – often requiring excessive amounts of source code with all the delegates, callbacks, and switches required.
Blocks can definitely make these components much easier to use, and there are a number of implementations out there. Recently I received a submission of a block based library, and I liked this one quite a bit – mainly because of the added button types, and the simple syntax for programming buttons.
The control is BlockAlertsAndActionSheets from Gustavo Ambroso, and is built on a control seen in a collection of categories and helpers from Peter Steinberger.
You can find the control on Github here, and Gustavo’s got a writeup on his blog.
Definitely a lot easier than creating UIAlertSheet’s and UIActionSheet’s with their API’s in the iOS SDK.
©2012 iPhone, iOS 5, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.
.Morgan3D / Twitter
morgan3d: @Icare3D (Cyril Crassin)'s Ph.D thesis on GigaVoxels, with AO and realtime GI http://t.co/Nz7frmBl
morgan3d: @Icare3D (Cyril Crassin)'s Ph.D thesis on GigaVoxels, with AO and realtime GI http://t.co/Nz7frmBl
morgan3d: RT @davedotluebke: The PantaRay renderer co-developed by Weta Digital and NVIDIA is a key technology in "TinTin": http://t.co/RfbfjyVj
morgan3d: RT @davedotluebke: The PantaRay renderer co-developed by Weta Digital and NVIDIA is a key technology in "TinTin": http://t.co/RfbfjyVj
morgan3d: RT @NS2: We're STILL looking for a game and/or engine programmer for Natural Selection 2 (FPS, SF CA). Someone! Help! bit.ly/d1WwwO #gam ...
morgan3d: RT @NS2: We're STILL looking for a game and/or engine programmer for Natural Selection 2 (FPS, SF CA). Someone! Help! bit.ly/d1WwwO #gam ...
Icare3D Blog
Free 3D meshes links
I started to compile links to websites where free 3D models can be found. If you know other good websites, feal free to post them in the comments :-)
Static models and scenes:
- Great collection of models for scientific publications on Morgan McGuire webpage: http://graphics.cs.williams.edu/data/meshes.xml
- 3D Render challenge: http://www.3drender.com/challenges/
- Crytek: http://www.crytek.com/cryengine/cryengine3/downloads
- Keenan Crane : http://www.cs.caltech.edu/~keenan/models.html
- Sibenik model: http://hdri.cgtechniques.com/~sibenik2/download/
- AIM@Shape : http://shapes.aimatshape.net/
- Characters Creative Common: http://artist-3d.com/
- Characters: http://www.3dvalley.com/3d-models/characters
- Blender files: http://www.blendswap.com/3D-models/category/featured/
- Archive 3D: http://archive3d.net/
Animated models and scenes:
- Ingo Wald: http://www.sci.utah.edu/~wald/animrep/
- MIT CSAIL 1: http://people.csail.mit.edu/drdaniel/mesh_animation/index.html
- MIT CSAIL 2: http://people.csail.mit.edu/drdaniel/dynamic_shape/index.html
- MIT Animals and Face: http://people.csail.mit.edu/sumner/research/deftransfer/data.html
- Face data: http://grail.cs.washington.edu/software-data/stfaces/index.html
- Pants: http://www.ryanmwhite.com/research/cloth_cap.html
Timothy Lottes
Cyril Crassin's Ph.D thesis on GigaVoxels
Cyril Crassin's Ph.D thesis on GigaVoxels
AMD at Play
AMD Catalyst™ 12.1 & 12.2 Preview driver – What’s New
We have just released AMD Catalyst™ 12.1 for Windows 7, Windows Vista, Windows XP and Linux platforms, and AMD Catalyst 12.2 Preview driver for Windows Vista and Windows 7. Please note that AMD Radeon HD 7900 users should keep using the 8.921.2 RC11 driver found here (the 12.2 preview does not supported the AMD Radeon HD 7900 Series). Full details of these two drivers are below.
Feature highlights of the AMD Catalyst™ 12.1 driver:
AMD HD3D technology support enhancement
- Enables support for AMD HD3D technology in conjunction with AMD CrossFireX configurations
- Delivers a new Stereo 3D mode over HDMI 1.4a connections – 1080p at 30Hz is now enabled on supported displays.
AMD Catalyst Control Center / Vision Engine Control Center enhancements – Application Profiles
- AMD Catalyst 12.1 Preview driver enables users to create per application profiles to individually control 3D and CrossFireX settings for Direct3D applications
- Please be sure to select the “Restore Factory Defaults” option under the Catalyst Control Center Preferences menu before using the new application profiles feature – this ensures there are no compatibility issues between previous drivers and the new AMD Catalyst 12.1 Preview driver with regards to application profiles
AMD Catalyst Control Center / Vision Engine Control Center enhancements – Video UI improvements
- AMD Catalyst 12.1 Preview driver includes user interface enhancements to simply adjustment of video color and video quality controls
This release of AMD Catalyst™ Linux introduces support for the following new operating systems
- SLED 11 SP2 early look support
- Ubuntu 11.10 production level support
Feature highlights of the AMD Catalyst™ 12.2 driver:
AMD Eyefinity 2.1 technology enhancements
- Additional resolution support: Users can now choose from a larger set of resolutions when running AMD Eyefinity
- Dynamic Configuration Changes: Switching between different display configurations will occur automatically when physically plugging/un-plugging displays
- HydraVision enhancements: The Windows Task bar can now be moved and resized based on users preference
- Profile Manager improvements: Increased support for Display Groups (including 5×1) and Extended configurations within the Profile Manager
David Doel is on the marketing team at AMD Gaming Evolved. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such links sites and no endorsement is implied.
Geeks3D Forums
S3 Chrome lives on the 600 Series using VIA's soon to be released VT3456
The Phoronix Test Suite is a wonderful source of unintentionally released test data, as system engineers working with processors not yet available on the market use it to test and sometimes accidentally post the results to OpenBenchmark.org. Fo...
Game Producer Blog
How to deal with Evil Pirate companies that clone your game
Sometimes you encounter bit shitty situation where:
- You have done something great
- and then some evil corporation clones your stuff.
Well, there’s few different ways to handle this:
- You can wee on their tent, and make superior PR move that gets picked everywhere around the net. (Recommended)
- You can whine how there’s evil corporations and that your stuff shouldn’t be copied.
- You can concentrate on building success that doesn’t depend on stuff that can be cloned. Match-3 games can be cloned. Tower sim can be cloned. RPGs with deep storyline is harder to clone.
- You can make shitty game that doesn’t sell anything. These are rarely cloned too.
- You can ignore em. (Pretty good plan)
- You can think what’s important, why you are making games. Profit? Passion?
- You can make gross zombie games. Big studios rarely clone those. (Hah!)
Now, regarding the “game mechanics can be cloned”. I think this is pretty good thing. Sure, ripping off somebody’s game mechanics and then cloning pretty much the whole game with different graphics is bit shitty move… but that’s how it needs to be.
Businesswise, it’s pretty profitable to be second in the market. Clone hit games, and make some changes. But that’s something hundred zillion other corporations are doing. Zynga isn’t only one cloning their way to success. If cloning was the way to go, then how come there aren’t as successful other cloners?
And this also makes one really ponder why you are making games? Are you making games that you can profit? Or are you making games mechanics & games… that are spread all over the world? Doesn’t it make one happy that by creating something cool that everybody wants to clone… something cool that others can benefit from? Isn’t that a pretty darn sweet thing?
Or, is it so that you were doing this stuff for profit? In that case, jump to one of those clone factories and see how happy things are there.
Or do you just “want fair fight”? Well, time to wake up. This is a really open market world where best offering (not necessarily best product) wins the profits. If you do game that can be cloned by a big studio, then you knew what you were against when you first started. Or did you really think that after you make your smash hit, nobody would be interested in getting the money too?
“But this kills innovation”
Tough luck. And yes, for some genres at least. At one point Match-3 games were selling like pancakes. They were hot stuff (not sure how they do nowadays). Now, is the innovation in match-3 games killed? I suppose. There’s every now and then one new different match-3 game but I feel the market is pretty saturated.
So, if you do some popular gaming thing that can be cloned, of course you can except that there won’t be innovation.
We can cry and bite our legs off, but that doesn’t change anything. If we are worried about cloning, then we should do stuff that’s hard to clone.
We know that there’s cloners waiting for the next hit game. That’s perfectly fine. I mean, creating a clone isn’t going to guarantee success. It’s risky. Not all cloners are profitable. It takes heaps of effort too, and is not “easy way” to go.
There’s people doing games for passion, and not getting money. That’s perfectly fine too. Whining about “but rules should favor me as [insert random reason here]” is not going to cut it. If you don’t like the rules, you can go play somewhere else.
So… who’s evil?
I think it’s quite natural to think that Zynga is “evil” or “doing wrong” when they clone a game. They are a company who want to make profit. They have business strategy that is targeted to maximizing profit. They might steal an idea or two, but so does everybody else. They might clone stuff they can clone, but so is everybody else. Zynga is just doing things better than many other corporations.
I’m not saying Zynga is less evil than me (slightly richer though). They simply seem to have different values from me. I try steal every game idea I can, but I try add something unique, something of my own in the creation. I want to do something I like doing, and something I like to experience. If somebody was to clone that stuff and make profits, that’s pretty cool. Next time they need ideas, they know where to find me.
I feel that the chaps at nimblebit chose the right way to deal with Zynga’s copy & “we wanna buy you” offer. They turned this into a PR thing which favors them. Zynga can clone the game, but they cannot clone the fact that nimblebit has the “small good guys against big evil corporation” edge that can make an interesting story. Nimblebit managed to create a cool story out of the situation, and I’m pretty sure they benefit from this.
That’s the name of the game.
P.S. And if Zynga is successful, do you really think that other big players won’t notice it and challenge them? This zoo is filled with predators who are ready to attack each other as well.
Gamasutra Feature Articles
Postmortem: Mode 7 Games' Frozen Synapse
The story of how the popular and acclaimed indie strategy game took shape, straight from Mode 7 Games joint-managing director Paul Taylor -- including both how the game exceeded the team's expectations and how they were unprepared for its success.
Game Producer Blog
How to kill immersion in 5 easy steps
I’m mainly taking an RPG game or adventure game point-of-view here, or any game where story plays very important role.
Here you go:
- Have big loading times and use word “loading” when switching between places.
- Show the same dialogue options over and over (if you wanna ensure that “character might need that info”, then make so that character has journal where conversation was stored)
- Hold the players hand by (1) first letting character tell what to do, (2) then showing text telling what to do, (3) then pointing the next goal on the map regarding what to do and (4) showing hint “maybe I should go there” in the journal. (This one is tricky: on the other hand you don’t want to player to be lost not knowing what to do next… but on the other hand too much information kills immersion. Check this video ‘if Quake was done today’)
- Making player guess what you thought that should be done next. If player knows what should happen next, but your game user interface prevents (in RPG, not talking about car driving game) him from reaching the goal, that kills immersion. There’s a great article about this at Raph Koster’s site.
- Make character pick dialogue option he thinks is ok, when in reality the other party takes it as offense. This too can be tricky, but bear in mind that as a not-native English speaking chap, I might miss some nuances of conversations… and sometimes I might pick dialogue option that I thought was friendly, when in reality it was offensive. There’s no easy way to get past through this option though, and not sure what’s a good solution (other than accept the fact that this way I learn better English…)
Anything to add to this list? Complaints or solutions?
iPhone Development Tutorials and Programming Tips
Open Source: Slick Control For iOS That Makes An Interesting Progress Indicator
Some time ago I mentioned the excellent F3BarGauge component which is great for creating customizable bar gauge components.
Brad Benson the same developer of that component has created a control that uses core animation to create a swirling indicator and you can adjust the speed, another excellent component which can be used as an interesting progress indicator, or alert indicator – or both.
You can see the control in this video:
You can download the control and view usage instructions at the Github repository here.
Not only can the speed, and color be changed like in the video, but you can also adjust the number of segments, and the segment shape.
A very interesting alternative to the typical progress indicator.
©2012 iPhone, iOS 5, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.
.OpenGL
Abyssal Server and management system from makers of OpenGL based gaming engine
Abyssal Technologies, developer of the OpenGL based engine and tool set has a new proprietary server management solution available for the hosting of commercial grade massively multiplayer games. Everything required for properly supporting and managing a commercial grade massively multiplayer title.
#AltDevBlogADay
Growing Game Animation – State Changes and Pathing
Character animation in games can not rely solely on the methods used in film. Creating emotionally engaging and empathetic characters in a video game doesn’t stop when you finalize the animation. If you want to fully apply the 12 principles of animation into your game, you need to be aware of how and when your animations are being used by both the game and the player. State changes and pathing are two important in-game applications of animation that have the power to either strengthen or destroy the personality, intent and objectives of a character.
State Changes
A state change is when a character changes from one set of animations to another by some sort of trigger. These are most often used in combat to change from the standing idle and suite of animations to the combat idle and the attack suite of animations. In this case, the trigger is either a button press by the player or some form of combat engagement of the NPC. This then plays a transitional animation of the character drawing their weapon or putting up their dukes. Pretty standard fare that is built out of necessity and function more so than personality. Certainly the personality of a character can be reflected in their combat state (proud, aggressive, timid, etc) but it is when state changes are applied to other triggers that a real life and awareness can be breathed into a character. State changes give characters a purpose and outline a goal or objective they intend to overcome and that is what drives the entirety of life.
With state changes, characters take on the appearance of having senses. Which explains why sound and vision are two of the most common triggers outside of combat. Sound triggers are activated when the player makes a certain amount of noise within a certain distance from an NPC. Vision triggers most often happen as a cone of sight in front of an NPC. If you wanted, a smell trigger could function in the same way as either or a combination of both if you want REAL odor physics. Obviously touch and taste are much closer to combat, needing a prompted, physical trigger.

Sound is certainly a staple trigger in stealth games. Nothing makes a cat and mouse game come alive more so then when an NPC reacts to a sound and enters an alerted state. Sight of course follows the same function, be it moving through the vision cone of an enemy as you slide between cover or leaving an unconscious enemy out in the open to be found. I can’t think of any stealth games that use smell and odor, though the amount of trash bins, barrels and sewers the player hides in, one would think the stench could be a factor. As silly as that sounds, hunters use all manners of scent blockers and odorless soaps to camouflage themselves, so it could certainly be added and tracked. In a stealth game that is all about the player using all their senses to hunt their enemies, giving some of those senses to those being hunted is a powerful piece of player/game connectivity.
Giving a character a sort of sixth sense would be done by proximity triggers. This is when the player enters into the personal radius of an NPC. It could be the same as their sound radius, but instead of noise triggering the state change, just crossing into the volume would trigger it. When you encounter a Big Daddy in Bioshock, dutifully following a Little Sister, the moment you step within a certain proximity of them, the Daddy has a state change. He stops and menacingly turns towards you, like a mother bear, letting you know if you get any closer there will be repercussions. Such a small, simple moment, but incredibly powerful. The trigger matches the personality and purpose of the character. The goal of the Big Daddy takes on a specific objective with this state change, from just generally protecting their Little Sister, to now protecting them from you.
The Legend of Zelda: Skyward Sword uses a proximity trigger in a wonderful way as well. There is a marketplace vendor in the Skyloft Bazaar that excitedly jumps up and down as you approach his stand. Seeing him get so excited at the prospect of you buying his goods adds a sense of life anyone with retail experience can relate to. But the added spice was when you walk away, and he instantly deflates and turns his back as he walks away utterly destroyed that you didn’t buy anything. With only a couple of animations and a proximity/visual trigger, that NPC became more empathetic than a lot of main characters. While the animations are fun, it is the trigger and state change that makes him come alive by allowing him to wear his heart on his sleeve.
Obviously transitional animations play a big part in these state changes, as those are the moments that the NPC is having the actual change of emotion or thought process, but if those transitional animations aren’t set to an appropriate state change, the illusion of life can break down quickly.
Pathing
You can create the most amazing walk or run cycle, full of personality and weight, but if the character walks in an entirely linear and uninteresting path, it will all have been for not. Pathing is something most animators never pay much attention to, as its implementation happens by any number of designers or programmers throughout various levels and can change at the drop of a hat. In fact, focusing on specific pathing of a character in every instance would be an incredibly large undertaking. But something far more manageable is thinking about HOW a character will path when you deliver the suite of animations. How a successful General of an army walks from place to place is going to be different from the drafted recruit freshly thrust into a war. The General may very well walk from destination to destination without stopping. But a new recruit will very often stop to look around or slow down/speed up depending on what is around.
Pathing is also a great way to add some awareness and appropriate traits to animals and creatures. Watch how a spider walks. Not just the cycle of their legs, but how they path. They will walk for a bit, then stop. Often for a significant amount of time. Then they will just take off in another direction. Stop for a brief moment, then continue on. This staccato movement is as significant towards creating a fully realized spider as how the animation looks. A complex animation matrix of turns, stops and starts aren’t even necessary. All you would need is to inform the designer that places the pathing throughout the level that long, linear paths is out of character.
What if we add state changes into the pathing? Adding in points of interest or interactables certainly add work to the plate of everyone involved, but they are also powerful additions towards creating interesting and appropriate pathing options. If throughout a level each AI has one or two objects that can grab their interest, you can use those as triggers for a state change when placed throughout the AI’s path. This gives the character a little bit of business in the world, making them feel like they are there for more then just the player’s use.
Let’s use a rabid canine walking across a wasteland as a test case for all of these pathing options. Or a hoped up rabbit that loves the smell of poppies in the spring if you want something a little more light-hearted. In both cases, their movement is certainly going to be erratic, so pathing that uses sudden directional changes would be best. Now let’s say there are random animal carcasses littered across the landscape or poppy patches in the case of the rabbit. Whenever one of these objects is inside of the path of our furry friend, the object triggers a state change that has the elated mammal jump into the middle of it all, rolling around like a pig in filth. With this, a myriad of player possibilities take place. The player could run or engage while it is distracted. When being chased, the player could lure the creature away by putting one of these objects between them. As a designer, you could even tag these objects with a buff that emboldens the creature after it has satiated its desire.
Layering animations is also a powerful tool when it comes to pathing. In life, a person doesn’t just go from one action to another, completely finishing one before moving onto the next. Imagine you are walking towards a door that is slightly ajar. You wouldn’t walk up to it, stop, push it open and then walk through. You would do that all as one continuous motion. Giving moments like that to a character is what makes them seem aware. Layers are a way to achieve this. Adding in a look at control to those objects of interest helps to show a character is interested in something without breaking their flow. Uncharted 3 uses layers to have Drake’s hand reach out and touch a wall as he passes by, helping to cement him in the world. It also fits his personality that as someone who is always tripping and falling down that he would want to continually balance himself against a solid object. This also requires IK on the arms, so it is most likely too tech expensive to be used on NPC’s, but it is something to think about it.
As you can see, the added benefit of thinking about pathing as it relates to characters is that it varies the gameplay as well. And if that pathing truly matches the intent and personality of the character, it shouldn’t be dissonant with their design. In a stealth game, those varied paths make each class of character a unique experience from one another. In a game where you try to control the amount of enemies you take on at one time, this variable keeps you on your toes as to when and where to engage in a play space. Pathing, and the elements and obstacles you place within that path, are what define a character’s place in the world and how the player perceives it.
Animation Doesn’t Stop At Export
Just like film animators follow their shots throughout the pipeline, making sure everything matches the performance laid out, we need to follow our animations throughout the game. If you apply all the thought and energy you instilled into the character into their implementation, you will find game animation can create as memorable characters as any film.
GPGPU.org
Submit your poster to GTC 2012 by February 2nd!
Reminder: the deadline to submit a research poster for this year’s GPU Technology Conference is Thursday, February 2, 2012. Selected poster presenters receive a discount to attend GTC. They are required to attend the conference in order to present their work at the GTC Poster Showcase. GTC will be held May 14-17 in San Jose, California. For more information, see the call for participation and call for posters. To submit your poster abstract, visit https://gtc-submissions.confreg.com/.
PyCOOL: Python Cosmological Object-Oriented Lattice code
PyCOOL (Cosmological Object-Oriented Lattice code) is a fast GPU accelerated program that solves the evolution of interacting scalar fields in an expanding universe with symplectic algorithms. The program has been written with the intention to hit a sweet spot of speed, accuracy and user friendliness. This is achieved by using the Python language with the PyCUDA interface to make a program that is very easy to adapt to different scalar field models. The program is publicly available under GNU General Public License at. See the PyCOOL website for more information.
#AltDevBlogADay
A Candid Chat
I present to you four different people in the game industry that intend to represent LGBT issues in this piece. From indie devs, to AAA studios, to mobile software, these guys and gals have decided to open up to us, and share their thoughts, feelings, and experiences.
Our panel of developers:
Kate Craig is an environmental artist in Mobile Game Development.
Alex Benevento has studied games and interactivity at University, and is currently a Mobile Software Developer.
Rhodri Broadbent is a Designer/Programmer with Dakko Dakko Ltd. He has also worked at Lionhead Studios (Fable), Q-Games (StarFox Command, PixelJunk Series), and many others.
Robert Yang is an MFA student at Parsons the New School for Design, where he studies game design and makes indie games.
Andrew: Are you “out” to your co-workers, or is it more “Don’t Ask, Don’t Tell”?
Kate: My coworkers know, and didn’t so much as bat an eyelash when they met my girlfriend. So far, Vancouver has been really lovely in that capacity.
Alex: Completely open. There wasn’t a time where I hid it from my employer or coworkers. My partner is openly invited to all company get-togethers. It’s a non-issue here.
Rhodri: It’s completely open, although it rarely comes up.
Andrew: Have you ever felt persecuted or treated differently by your peers (Industry, LGBT, Friends, Etc)?
Kate: Never persecuted, but there was a time a dev told me that since we’d met, I’d changed the way he viewed the gay community in a positive way. I think I was a little caught off guard at the time. It’s an intimidating prospect to think you may accidentally be representing an entire group of people in some situations.
Alex: Not really, no. I can’t remember anyone taking issue with me. Maybe I’ve just been lucky. Perhaps the reason is that my lifestyle isn’t like any LGBT stereotypes portrayed by media. I like some sports; I’m a developer, so I’m a bit geeky, I like going out occasionally and having a drink or two – just normal, boring stuff. My lifestyle isn’t connected to my sexuality, if that makes sense. The fact that I’m partnered to a man has no bearing on how I conduct myself.
Rhodri: Thankfully, no. I can honestly and happily say that wherever I have worked, I have never received anything but respect or indifference towards my gayness, both of which are fine by me!
Robert: If by peers, you mean fellow LGBTQ people – not me, personally, but many LGBTQ people discriminate against each other all the time. Bisexual people are told they need to “pick a team”, trans people get ignored or mocked, and a large segment of gay men actively discriminate against more feminine, flamboyant gay men.
Jim Sterling’s response to your original article is a symptom of that last problem – the idea that the best gay character would be someone who isn’t gay.
LGBTQ people might call this an act of “erasure” – in this case it’s an attempt to devalue a type of person by insisting they’re a stereotype and not “real”, but the muscle queen dancing in a sparking Speedo dancing on top of a pink convertible is just as authentic and real of a person as the gay lumberjack with a gun collection. Nathan Drake wouldn’t be the “best gay game character ever”, he would just be one more of several gay characters, and to value an ordinary “performance of gayness” over another is a weird form of discrimination that’s sadly perpetuated by a lot of gay people too. Gay is gay.
Andrew: From where I’m standing, it doesn’t seem like there are many LGBT developers. Is that just my perspective, or is there a truth to that?
Kate: I’m honestly not sure. I’ve met and played with a number of gamers that identify as gay, but when it comes to game developers, I run into far fewer that I’m aware of.
Alex: I’m not sure if that’s quite accurate. I’d say there wouldn’t be too many LGBT devs who are out. I imagine a substantial number of them work for larger companies, and a harsh reality is that, depending on location and despite antidiscrimination laws, devs in the closet remain so in fear of losing opportunities at work or being singled out.
Rhodri: In my experience, LGBT game developers are quite common. I think the appeal of gaming is fairly universal, so the games industry (in the UK and Japan at least) attracts gay developers fairly in proportion with the gay population.
Robert: I’ve been told that there is actually a fair amount, but how can you ever really know? People aren’t out at work for a variety of reasons – maybe they prefer to keep their personal life personal, maybe they see nothing to gain, maybe they’re out to close co-workers but not to HR/other departments, maybe they’re still sorting their identity out – there are a lot of maybes. In that way, no matter which industry or studio you are with, the reluctance to come out is always justified.
Andrew: I guess a better way to ask that question would be to ask if the game industry was welcoming and tolerant.
Kate: In some ways I feel like the industry has something of a Dr. Jekyll and Mr. Hyde situation going on with regards to tolerance.
During work, conventions, and industry events, everyone I’ve met has been nothing but supportive and open. When the topic is brought up in online articles or on forums, however, it can take an ugly turn, even when the subject is being discussed by those in the industry. Comment sections on sites like Gamasutra (and games journalism sites that aren’t strictly developer resources) are sometimes difficult to read, and the same arguments tend to show up again and again.
When it’s good, it’s amazing. When it’s bad, it can be pretty upsetting.
Alex: The people I studied alongside at University were one of the most varied groups possible. One trait that ran among them was tolerance and acceptance: no one ever really passed judgment on anyone else for any reason. There was a real sense of camaraderie. As for those currently working at games studios, the people I’ve met have exhibited similar traits, though I haven’t had the opportunity to work with them.
Rhodri: I have always found it to be so. In my first job (testing at EA Bullfrog), when I was just out of University, I was a little concerned about the reaction I would get from the other testers. However, contrary to my expectations, everyone was thoroughly supportive and welcoming – I didn’t get any trouble for it at all. Since that first job, I’ve been “out” wherever I’ve worked. I’ve had many gay co-workers throughout the years, most of them as open about it as I have been.
Robert: I can’t speak for the core of the industry, other than passing on some informed hearsay, but I’d say that the machine that surrounds and supports the game industry (academics, mobile games, social games, serious games, indies, marketing) are all pretty welcoming. If the game industry isn’t tolerant, then it’s probably going to get suffocated by all the LGBT people working around it anyway.
Andrew: Well let’s get to the meat of why we’re here. The jury has been out when it comes to responsibility. Do you feel like the industry has a social responsibility to make LGBT friendly characters and games more common?
Kate: Responsibility may imply a sense of obligation, and if these scenarios show up more in games, I’d like it to be because devs and players are genuinely interested in exploring them. More interpersonal stories in general is something I’d love to see, and if LGBT relationships are among them, then that’s all the better.
Alex: Yes, in a sense. Anyone who plays games, reads books, or watches films, want to feel represented in some way. They want to relate to the media they’re experiencing. While I don’t remember ever questioning why there weren’t any LGBT characters or themes in the games I played growing up, I have no doubt I got the feeling that something was missing across all the media I consumed. Books, films, TV, and games: whenever romance was involved, it was boy-meets-girl, etc. The closest I got was having my male Sims marry.
Now, that said, it does no good shoehorning LGBT characters into games just to be politically correct, and the same goes for LGBT scenarios and themes. As with any part of the game’s narrative, everything should have its place. I remember some controversy over Resident Evil 5 being set in Africa; with protagonist Chris Redfield gunning down crowds of infected natives. It was deemed racist to have a white man killing infected black people, but wouldn’t it have been worse if they’d made everyone white to match Chris? Imagine releasing a game set in Africa, where everyone you meet is white: it doesn’t make sense, and does more harm than good. Similarly, contriving LGBT scenarios as a means to make people feel included is going about it the wrong way.
Rhodri: I feel the industry has a responsibility not to reinforce potentially negative stereotypes, certainly. It’s important not to isolate gay kids who might be struggling with self-image. During development of Fable there was a debate about the inclusion of same-sex relationships, as it was technically easy enough to include. I was perhaps the only voice to speak out against including the same-sex relationships, because I felt they would be tacky and (in the end I feel quite correctly) embarrassingly stereotyped. The audio recorded for the “wedding night” was so awkward I recall feeling like I should have fought harder to have the feature turned off.
Aside from the potential negative effects of dated stereotyping, I haven’t ever really considered it as particularly relevant to games. Of course as some branches of the games industry become more involved with storytelling, then there is a place for gay characters just as in any media, but I would focus our responsibility more on not misrepresenting, than actively representing “for the sake of it”.
Robert: In general, yes, though I think the industry has a larger ethical obligation as a powerful broadcast medium/Hollywood-like culture factory, to try to do good and avoid exploiting players. However, I object to the way that the television industry has turned gayness into a mediocre brand strategy. I wouldn’t want something terrible like a game industry equivalent of GLAAD, counting occurrences of LGBT characters to assign grades to TV networks – it privileges quantity over quality. If a game sucks, a gay character isn’t going to salvage it! I just want a good game with a well-written character, which is hard to do, so I appreciate studios like BioWare investing so much into such characters.
Andrew: As an LGBT dev, do you feel like you have the power to initiate change? Furthermore, if you could, would you want to?
Kate: Small change, absolutely. I’d like to be able to initiate change on a grander scale eventually, but for now I’m just approaching things one at a time.
Alex: This is tricky. Game developers and designers possess the awesome power of storytelling. Converting someone’s ignorance into understanding could be just one well-written story delivered in the right way. Games are unique among storytelling media because of the interactivity they offer. Players are often able to connect with the characters on a much deeper level because they’re interacting with them directly, not just watching a story unfold in a film. If you connect with a character, you are much more likely to care about them: their problems become more real, and solving those problems can involve a player overcoming their own prejudices and obstacles. More importantly, the player wants to solve these problems. This is where the real power is.
Given that power, I would definitely have a stab at initiating change. As I said, storytelling is a great power, and game designers and developers have the skills and the technology at their disposal to get their message across. While that sort of power bears considerable responsibility, it’s worth it to get your message across to even a handful of players.
Rhodri: I only have experience of the UK and Japanese games industry, but in both cases it has been unnecessary for me to consider the need to initiate any changes regarding my sexuality. The only time I ever really got into a work-life related campaign for change was to adjust the work hours at one studio, so that the straight staff could go home to see their newborn kids more often.
Robert: As a satellite orbiting the actual industry, I get to speak from a privileged position that involves games, but without any of the nightmare crunches or NDAs or bans on personal blogs and interviews. I get to be a “public face” of games, even if that face is pretty small and limited as an indie academic. But for the younger gay people who can’t identify with the gay culture perpetuated by Glee or Project Runway (not that there’s anything wrong with those!), I feel that I have to try to be “visible,” to let them know that gay people can love annihilating hordes of zombies too. I think the most powerful way for me to achieve that is to simply exist, be present, and make and discuss games.
Andrew: What do you feel needs to happen for LGBT rights to be promoted through games?
Kate: The best possible promotion I can think of would be a great game in and of itself. Unfortunately, it’s almost something of a catch-22; a thoughtful, character driven game that touches on some of the dynamics or conflicts unique to an LGBT narrative might be persuasive in terms of opening the door for future games, but that game has to be made in the first place.
Similarly, a tactfully handled protagonist could go a long way. Just as Jade from Beyond Good and Evil or Elena from the Uncharted series are often mentioned as well written female characters; a gay character with depth that isn’t based on stereotypes would be a strong (and very welcome) start.
Alex: I don’t feel that LGBT rights need to be promoted as such. Just as it’s annoying to be hounded in the streets by people trying to force pamphlets into your hand and an agenda down your throat, I don’t think parading LGBT themes and rights in games is the right way to go.
Here’s the biggest problem: in promoting LGBT rights, the intended message is: “We’re the same as everyone else, and we need you to respect that”, but the act of promoting it says, “We’re different enough to point it out, and we need you to respect that.”
Media and content producers need to realize that not all LGBT characters are identical. Gay men fight for their country, so why not include some gay soldiers in war games? I read a comment on an article somewhere suggesting that, instead of explicitly pointing out “this man is gay” by employing the use of stereotypes (fashion, mannerisms, speech; you know what I’m talking about), a more appropriate and respectful way to include a gay character could be a soldier who is seen looking wistfully at a photo of the man he left behind. It’s not in your face, racy or explicit, nor does it go out of its way to push an agenda: it’s just a regular guy in a terrible situation, experiencing the same thing as every other guy around him. And that’s the message that needs to get through.
The approach needs to be realizing that being LGBT doesn’t mean having an LGBT personality or lifestyle. LGBT people have the same varied personalities, problems and lifestyles as other people. Sexual orientation and gender identity don’t define these things, and games, as well as other media, should learn to respect this.
Rhodri: I believe if people have the confidence and courage to speak up for themselves, their colleagues will respect them. I feel I should have spoken up more loudly about the issue with Fable’s overly “fey” characterization of homosexuality, but on the other hand I should be open to the possibility that I was over-reacting and many people enjoyed and felt included by that feature.
Robert: If by games, you mean commercial video games made for console and PC, then I think the hardcore audience needs to expand to include players who will demand and pay for such content. Right now, we’re a minority. But the only way to expand the player base is to make daring games to attract more people. So, in short, LGBTQ-inclusive games need to get made, in order for more LGBTQ games to get made.
Andrew: Finally, what do you have to say, as words of inspiration, for the budding young LGBT game devs of the world?
Kate: As I’ve only been a part of the industry for a short while, I don’t feel like I’m in a position where I can offer much in the way of inspiration just yet. In some ways, I actually feel like I am that young dev, so by all means, if anyone has any words of inspiration I’m totally down.
Alex: You are not your sexuality, nor does your sexuality define or dictate your success. The games industry is already tough enough to work in, so concentrate on being the best damn game dev you can.
Rhodri: I hope that this interview has shown that in my experience it is already a welcoming industry. Gaming and computing both attract all sorts, and most of the studios I know have a great mix of people from a huge variety of backgrounds, all pulling together due to their passion for gaming. Go, develop, and meet lovely new people along the way.
Robert: If you’re afraid, don’t be. You’re not alone and you don’t have to prove anything to anyone. That said, don’t let video games convince you that locked doors are invincible; they’re not, and they’re really fun to kick down. In the meantime, make lots of games and collaborate.
Note: This interview was formed from email correspondence between the devs and myself. Replies have been edited for grammar, spelling, and clarity.
iPhone Development
Wow.
Just… wow. Those are crazy numbers any way you cut it.
Geeks3D Forums
ImgTec PowerVR Discrete GPGPU PCIe Card Coming Later in 2012
Imagination Technologies is not resting on its laurels after becoming a leader in the handheld and tablet business. The company is preparing its return to the world of discrete GPU cards, this time around with a GPGPU product.
Read more: http://...
AMD Morphological Anti-Aliasing 11 demo
Morphological Anti-Aliasing 11 (December 2011)
This sample demonstrates a post-process pixel shader technique that applies Fullscreen Anti-Aliasing to an image. Morphological Antialiasing ...
#AltDevBlogADay
Three options for data correctness
In a previous post, I linked to Rico Mariani’s performance advice for Data Access Layers. On G+, Tyler Good asked:
I just read the posts and the linked blogs, I had a question about some specific implementations. How do you deal with classes that represent another non-[in this case]-Python entity that may be updated outside of Python?
I’m not sure if this sort of case is outside of the scope of what’s being talked about in the articles, but if there’s a better way to do getting on things like p4 paths or elements in a Maya file (that may have been changed by the user since instantiating/loading the object) I’d really like some ideas about that.
You basically have three options and fortunately they line up easily on a scale:
| Technique | Correct | Difficulty |
| Transactions | Always | High |
| Fetch-on-demand | Usually | Medium |
| Store in memory | Maybe | Low |
Let’s get on the same page first. Let’s consider all three types of interactions- database through a DAL, perforce (or any source control) interaction, and interaction with some host application (Maya, or your engine, or whatever). So what are the three approaches and how do they differ?
Store in Memory
You create a code object with a given state, and you interact with that code object. Every set either pushes changes, or you can push all changes at once. So for example, if you have a tool that works with some Maya nodes, you create the python objects, one for each node, when you start the tool. When you change one of the python objects, it pushes its changes to the tool.
This is the simplest to reason about and implement. However, the difficultly quickly becomes managing its correctness. You need to lock people out of making changes (like deleting the maya node a python object refers to), which is pretty much impossible. Or you need to keep the two in sync, which is incredibly difficult (especially since you have any number of systems running concurrently trying to keep things in sync). Or you just ignore the incorrectness that will appear.
It isn’t that this is always bad, more that it is a maintenance nightmare because of all sorts of race conditions and back doors. Not good for critical tools that are editing any sort of useful persistent data. And in my opinion, the difficulties with correctness are not worth the risk. While the system can be easy to reason about, it is only easy to reason about because it is very incomplete and thus deceivingly simple. So what is better?
Fetch on Demand
Here, instead of storing objects in two places (your code’s memory, and where they exist authoritatively, like the Maya scene, or a Perforce database), you store them only where they exist authoritatively and create the objects when that data is queried. So instead of working with a list of python objects as with Store in Memory, you’d always query for the list of Maya nodes (and create the python object you need from it).
This can be simple to reason about as well but can also be quite slow, depending on your dependency. If you’re hitting a DB each time, it will be slow. If you need to build complex python objects from hundreds of Maya or Max calls, it will be slow. If you need to query Perforce each time, it will be slow.
I should note that this is really just a correctness improvement upon Store in Memory and the workings are really similar. The querying of data is only superior because it is done more frequently (so it is more likely to be correct). The changing of data is only more likely to be correct because it will have had less time to change since querying.
That said, in many cases the changing of data will be correct enough. In a Maya scene, for example, this will always be correct on the main thread because the underlying Maya nodes will not be modified by another thread. In the case of Perforce, it may not matter if the file has changed (let’s say, if someone has checked in a new revision when your change is to sync a file).
Transactions
Transactions should be familiar to anyone who knows about database programming or has read about Software Transactional Memory. I’m going to simplify at the risk of oversimplifying. When you use a transactions, you start a transaction, do some stuff (to a ‘copy’ of the ‘real’ data), and commit the transaction. If the ‘real’ data you are reading or updating has changed, the whole transaction fails, and you can abort the transaction, or keep trying until it succeeds.
Mass simplification but should be enough for our purposes. This is, under the hood, the guaranteed behavior of SCM systems and all databases I know of. The correctness is guaranteed (as long as the implementation is correct, of course). However, it is difficult to implement. It is even difficult to conceptualize in a lot of cases. There are lots of user-feedback implications: an ‘increment’ button should obviously retry a transaction, but what if it’s a spinner? Are you setting an explicit value, or just incrementing? Regardless, where you need correctness in a concurrent environment, you need transactions. The question is, do you need absolute correctness, or is ‘good enough’ good enough?
Recommendations
Avoid Store in Memory. If you design things this way, break the habit. It is a beginner’s mistake that I still make from time to time. Use Fetch on Demand instead. It should be your most common pattern for designing your tools.
Be careful if you think you need Transactions. Ensure they are where they need to be (database, SCM), but don’t just go around designing everything as if it needs to be transactional. If you have two programs that can edit the same file- is one or the other just winning OK? How likely is that to happen? How will you indicate the failed transaction to the user? I’d suggest designing your tools so transactions are not necessary, and just verify things are correct when they cross an important threshold (checkin, export, etc.). Do your cost-benefit analysis. A highly concurrent system will need transactions, tools that only work with local data will likely not.
It should be clear, but still worth pointing out, you can mix-and-match these patterns inside of your designs.
Hope that clarifies things, Tyler.
Geeks3D Forums
NVIDIA OptiX 2.5 RC1 Now Available
The Release Candidate for OptiX 2.5 is now available for testing. This important new version provides enhancements that dramatically increase the possibilities for GPU ray tracing, including:
Out-...
Gamasutra Feature Articles
Playing to Win? Measuring Social Interaction in Games
Usability and user experience studio Vertical Slice and developer Relentless Software have collaborated on a study to discover what it is that turns friends against each other in games, through understanding how player types affect the forms of social interaction.
AMD at Play
Jagged Alliance: Back in Action
A ruthless dictator has seized power on the island state of Arulco. The ousted former President has asked you to hire the best mercenaries in the world to fight to restore him as the rightful leader of his country. Assemble powerful teams of mercenaries and recapture the island sector by sector. Join forces with the local rebels and train and arm them. Exploit resources in the occupied areas to acquire the financial means to purchase supplies of weapons and equipment and to hire new mercs. Coordinate the various teams on the strategic map before plunging headlong into battle to win back the country.
Features:
- The Jagged Alliance series achieved numerous awards and is considered to date as milestone in the genre of real time strategy
- Unrivaled mix of combat (tactics), roleplay, business and strategy
- Innovative “Plan & Go” combat system combines RTS gameplay with turn-based elements
- Liberate a fictitious island from a dictator
- Realistic war setting with authentic-looking firearms
- Laptop/computer menu as a central anchor point for the player
- Assemble your own unit of mercenaries from over 60 unique mercenaries
- Simultaneous control of multiple squads using a strategic map
- Every mercenary has a detailed set of likes, dislikes, strengths and weaknesses
- Convincing characters who interact with and comment on the game events
- All the dialog has audio
- Train your mercenaries to improve their effectiveness
- Acquire resources by capturing mines and encampments
Screenshots:



>>BUY NOW!<< (releases February 9th, 2012)
Developed by: Coreplay GmbH
Published by: bitComposer Games and Kalypso
Timothy Lottes
To Extremes and Back To Reality
Entertaining NeoGAF Thread: Developers Discuss Benefits Of Targeting 720p/30fps Next Gen, Using Film Aesthetics captures a lot of the concerns of the vocal PC and console gamer, responding to comments in the Games vs Film post.
Ok, Now Back to Reality
My prior comment, "IMO a more interesting next-generation metric is can an engine on a ultra-highend PC rendering at 720p look as real as a DVD quality movie?" is a rhetorical question asking if it is possible for a real-time engine to start to approach the lower bound of a DVD movie in realism.
To make this clear, I'm not suggesting that games should compromise interactive experience just to get visual quality. If I was going to develop a title for next generation consoles I would output 1080p and run frame locked to 60Hz with no dropped frames period. I still believe developers will be able to start to reach the quality of film for next generation consoles and current generation PCs, and I'm intending to develop or prove out some of the underlining techniques and technology which gets us there.
At the same time, certainly expectations for next generation consoles should at least be grounded in some rough realistic estimates for performance. Using public information found on the internet, lets nail down a realistic estimate of what next generation console performance will be, by looking at how ATI/AMD has evolved GPU performance after the Xbox 360,
(1.) Next gen console games will be outputting at 1080p. I can say this with full confidence simply because HDTV typically adds a frame of latency when it needs to convert from 720p to 1080p.
(2.) Using HD6970 as a proxy for a high end PC version of the Xbox 360, lets compare specs. Going from the typical 720p @ 30Hz on Xbox360 to 1080p @ 60Hz on HD6970 with 2x the geometry would take roughly 4x the performance (2x the pixels and geometry times 2x the frame rate) just to provide a similar experience at the higher resolution and frame rate with similar average pixels/triangle.
HD6970 has roughly another 2x over the 4x required to maintain same look at the full HD experience,
Xbox360 = 240 Gflops : 22.4 GB/s : 8 Gtex/s : 4 Gpix/s
HD6970 = 2703 Gflops : 173 GB/s : 84.5 Gtex/s : 28.2 Gpix/s
-------------------------------------------------------------
roughly 11x Gflops : 7x GB/s : 10x Gtex/s : 7x Gpix/s
(3.) What about process scaling, lets attempt to get an idea of what future technology might have, lets compare HD6970 to HD7970. Looks like AMD managed around a 1.4x on-paper spec increase except they did not scale Gpix/s.
HD6970 = 2703 Gflops : 173 GB/s : 84.5 Gtex/s : 28.2 Gpix/s : 250 Watt
HD7970 = 3789 Gflops : 264 GB/s : 118.4 Gtex/s : 29.6 Gpix/s : 250 Watt
-------------------------------------------------------------------------
roughly 1.4x Gflops : 1.5x GB/s : 1.4x Gtex/s : 1x Gpix/s
(4.) What about power scaling? The latest shrink of the Xbox 360 hardware uses a 115 Watt power supply (for the entire system, not just the GPU). So lets assume that next generation consoles won't have huge power supplies like PC GPUs. Taking what I'm wild guessing to be a really liberal estimate for possible GPU power for a 115 Watt system, lets compare a medium power modern proxy for the Xbox 360, the HD6750 (which is a 86 Watt TDP on paper). These numbers suggest if Microsoft launched a Xbox update around last year, that it would not be able to do 1080p at 60 Hz with the same look as current 360 games (because the HD6750 isn't 4x the 360).
Xbox360 = 240 Gflops : 22.4 GB/s : 8 Gtex/s : 4 Gpix/s
HD6750 = 1008 Gflops : 73.6 GB/s : 25.2 Gtex/s : 11.2 Gpix/s
-------------------------------------------------------------
roughly 4.2x Gflops : 3.3x GB/s : 3.2x Gtex/s : 2.8x Gpix/s
(5.) Next generation console performance will be a function of how much power the machine uses and what process technology each vendor adapts. Launch date of the console is going to hint at what process is used. Process scaling is not constant, but for the sake of making this simple, lets just assume each process gets 1.4x the performance. Then lets look at estimated performance scaling from the HD6750 to keep closer to current "console" power levels. This will provide some very rough estimate on what future consoles might have. Lets estimate process technology road maps by looking at google image search results,
2011 : 40nm : HD6750 : 4.2x Gflops : 3.3x GB/s : 3.2x Gtex/s : 2.8x Gpix/s
2012 : 28nm : ?????? : 5.8x Gflops : 4.6x GB/s : 4.4x Gtex/s : 3.9x Gpix/s
2013.5 : 20nm : ?????? : 8.2x Gflops : 6.4x GB/s : 6.2x Gtex/s : 5.5x Gpix/s
2015 : 14nm : ?????? : 11.5x Gflops : 9.0x GB/s : 8.6x Gtex/s : 7.7x Gpix/s
(6.) EDIT: Given an estimate that process technology will continue to advance during the lifetime of a console, a vendor could adapt higher power for launch, with the expectation of reducing this later in the product cycle. For example the first 360 had a 203 Watt power supply at launch and is now at 115 Watts (according to Wikipedia). This leaves a big window of possibility for performance.
Given the window of possible launch dates and power targets it would be hard to know exactly what will end up in next generation consoles, however a 2011 high-end single-GPU card seems like a possible proxy for next generation console, and at least a good start to understanding what could be possible.
UPDATE
The latest IGN Rumor is 100% fail, as they say the next Xbox is a HD6670 with 6x the perf of 360. The HD6670 at 40nm is clearly not 6x the performance, and even a 28nm die shrink of HD6670 will likely not be 6x the performance Xbox360.
Xbox360 = 240 Gflops : 22.4 GB/s : 8 Gtex/s : 4 Gpix/s
HD6670 = 768 Gflops : 64 GB/s : 19.2 Gtex/s : 6.4 Gpix/s
-------------------------------------------------------------
roughly 3.2x Gflops : 2.8x GB/s : 2.4x Gtex/s : 1.6x Gpix/s
However assuming the 6x number is correct then HD6870 or HD6850 is a possible development proxy,
Xbox360 = 240 Gflops : 22.4 GB/s : 8 Gtex/s : 4 Gpix/s
Xbox360 x6 = 1440 Gflops : 134 GB/s : 48 Gtex/s : 24 Gpix/s
----------------------------------------------------------------
HD6850 = 1488 Gflops : 128 GB/s : 37 Gtex/s : 24 Gpix/s
HD6870 = 2016 Gflops : 134 GB/s : 50 Gtex/s : 28 Gpix/s
iPhone Development Tutorials and Programming Tips
Tutorial: How To Download And Cache Images With The MKNetworkKit iOS Networking Library
Several weeks ago I mentioned the excellent MKNetworkKit – a full featured iOS networking kit that uses ARC, supplying excellent performance and built to replace ASIHttpRequest now that support of ASIHttpRequest from it’s original creators ended.
One of the best features of MKNetworkKit is the built in image caching. It’s also one of the more confusing features to use so the creator of MKNetworkKit has created a tutorial demonstrating how to download and cache images from Flickr, and use those images within a custom UITableViewCell.
You can find the tutorial on Mugunth’s site here.
The tutorial also shows how to create neatly fading in thumbnails like in the Apple trailers app.
A useful tutorial if you plan on downloading images within your apps.
©2012 iPhone, iOS 5, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.
.Tutorial: Quickly Create A Jetpack Joyride Like Game With Cocos2D, Box2D, LevelHelper, And SpriteHelper
I’ve mentioned the excellent SpriteHelper and LevelHelper tools in the past that allow you develop iOS games faster by providing tools for easily creating spritesheets, laying out levels, and generating Box2D physics code.
I’ve also mentioned some great tutorials on getting started with LevelHelper and SpriteHelper, and what I really liked about them was the ease of use and the relatively low cost considering how much easier these tools make things. Since then I’ve become even more impressed with the tools as the developer has been quickly adding in new features.
If you’ve held out on picking up these tools because you were afraid you wouldn’t be able to use them the creator of these tools, Vladu Bogdan has created an epic but easy to follow tutorial where you create a game similar to that of Jetpack Joyride (well at least you use a jetpack!).
Here’s a video of the game created with the tutorial in action:
As you can see there are quite a few things going on with collisions, physics, and animation all done using a minimal amount of code.
You can find the complete tutorial in 4 parts (don’t worry despite the large number of parts it really doesn’t take THAT long to go through just that there are a lot of screenshots).
You can find it here: Pt. 1, Pt. 2, Pt. 3, Pt. 4
You can find SpriteHelper and LevelHelper in the Mac app store.
©2012 iPhone, iOS 5, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.
.Morgan3D / Twitter
morgan3d: Thrun teaches 160k online, leaves Stanford http://t.co/j9Elg7cl 100k Apple e-Textbooks/day http://t.co/Y7ZZotip "Something's happening here"
morgan3d: Thrun teaches 160k online, leaves Stanford http://t.co/j9Elg7cl 100k Apple e-Textbooks/day http://t.co/Y7ZZotip "Something's happening here"
iPhone Development
How I Learned to Stop Worrying and Love the iBooks Author EULA
I've been debating whether to post about the iBooks Author EULA or not. In general, I've been trying to avoid hotly debated and controversial subjects here for the simple fact that those discussions tend to eat up a lot of time and often aren't very productive. My opinion on iBooks Author and iBooks 2 is fairly close to some other authors I know. Because this is something that's near and dear to my heart, however, I figure it's worth a few words. And with me, a few words is usually more than a few.
There's been a lot of foofooraw since the iBooks 2 announcement last week. There's been all sorts of stories, tweets, and blog posts about how Apple is going to "steal your work" if you use iBooks Author. There's also been the all-too-familiar refrains of just how evil Apple is. It all seems vaguely familiar. Almost like… almost like we've been here before, what with all the people gnashing their teeth, rending their clothes, and complaining to the heavens about how evil Apple is because of the developer agreement app store guidelines iBooks 2 EULA.
There's also been a lot of complaints about the fact that Apple is using a proprietary format rather than using and extending ePub 3.
None of this bothers me terribly. Oh, it's not that there aren't things I would want different if I were King of the World, but the reality is that deciding whether to use iBooks Author is just another business decision for me. Emotional outcries and hyperbole are all well and good, but they don't change the parameters of the decision. Business decisions inherently involve risk, and the risk here is at a level that I'm perfectly comfortable with.
Before I explain why, though, I want to put up front that I'm not a lawyer. Well, that's not technically true, but I'm not a practicing lawyer and I'm not YOUR lawyer, so don't take anything I say as legal advice. I'm just explaining why I'm not concerned. If you have concerns, you should take those concerns to your lawyer before making up your mind.
The EULA
Make no mistake, the iBooks 2 EULA is poorly written and vague. The mere fact that people are up in arms is testament to that fact. And if the ambiguity that is there bothers you, don't use it. There are plenty of tools for creating eBooks, so if you think the risk of Apple "stealing" your work is too high, using another tool solves the problem.There are several reasons why I'm perfectly comfortable with the risk involved. In no particular order, those reasons are:
- It's simply not in Apple's long-term interest to take ownership of authors' books and Apple can almost always be relied upon to do what's in their own long-term best interest. Getting 30% of every iBook sale means they are motivated to keep authors happy. More than that, though, they need authors to want to write for this new platform in order to establish it as the dominant interactive next-generation eBook platform. Stealing books won't get them to that goal. Suing authors who publish non-interactive versions of their content for other platforms like the Kindle or ePub won't either.
- Although the wording is certainly vague enough that you could argue more than one interpretation, the capitalization of "Work" in the EULA (meaning it has a specific contractual meaning) combined with the verbiage, "Work you create with this software" implies that the intent is to restrict only the application-specific output. In other words, the most likely intent as I read it is to cover the proprietary file format used for the new features not supported by other existing eBook platforms.
- Even if that weren't the intent, from a purely evidentiary point of view, the other file formats that iBooks Author exports to are open, standard formats and it would be difficult for Apple to prove a particular non-interactive work was "generated" with iBooks Author even if they really did want to try and "steal our books". A PDF generated from iBooks Author would be nearly impossible to distinguish from one generated using Pages by simply copying and pasting the content from iBooks Author .
- The EULA contains the following phrase: Title and intellectual property rights in and to any content displayed by or accessed through the Apple Software belongs to the respective content owner. Basically, it explicitly states that the ownership of any content you create outside of the app and import into it is completely unaffected by any "book stealing" clause, even if such a thing existed. This seems to counter the notion that Apple is trying steal our intellectual property in the first place because unless the words and images were created directly in iBooks (as opposed to being imported from Pages, Word, Photoshop, etc.), Apple would have no claim to the content anyway. Their claim would be limited to the way the content is formatted. Again, from an evidentiary standpoint, it would be incredibly hard for Apple to prove you created the content in iBooks.
- The deal we're getting with iBooks Author isn't all that different from the deal we get when using Xcode as iOS developers, and the language of the agreements aren't all that different from each other either, and that's worked out pretty well so far.
- And last, but not least, the kicker: Let's say, for giggles, that "book stealing" was Apple's intent, and such an intent was found to be both legal and the actual intent of the contract, and Apple decided to exercise those rights to steal my books. You know what? Even with all that, it's still a hell of a lot better deal than I've ever gotten from a traditional publisher. Apple is offering 70% of the sale price to me. The most favorable contract I've ever gotten from a publisher starts at 12% of the net price the publisher gets from the distributor, wholesaler, or retailer (which is half or less of the retail price). That percentage does slowly escalate up to 20% if I sell a ton of books, but if I publish a new edition of an existing book, the escalators go back down to 12% and I have to start all over. To put this in more concrete terms, if I were to sell a book in the iBooks Store for $9.99, I would get $6.99 per book sold, which is about four times what I get when one of my current $39.99 books sells, and I'd get that money months sooner. Oh, and guess what? I don't own those books published through a traditional publisher, either. My publisher can even have someone else update the book and can continue to use my name to promote it, even if I don't like the revisions or think the update sucks.
ePub 3 vs. iBooks 2
Many people have suggested that Apple should have used the existing ePub 3 standard and worked with the standards body to extend it in whatever ways Apple needed it extended. Instead, they decided to create a proprietary file format using the older ePub 2 specification as a starting point. It is important to note, however, that Apple is not advertising this new format as being ePub; we only know it's based on ePub 2 because people have reverse engineered the generated .ibooks files.
Now, I'll be honest. In a perfect world, I'd prefer to see Apple using an open standard here. But, there isn't an existing open standard that does what Apple wanted to do, and working with a standards body to revise existing standards to meet their needs for a yet-to-be-released piece of software would have tipped their hand about the software they were developing. People would have known exactly what Apple was working on from the things they were requesting of the standards body, which would have given competitors an advantage and could have hurt Apple's negotiations with publishers. Apple's culture is steeped in secrecy, and many would argue that this secrecy has been a contributing factor to their repeated successes over the last decade. Anybody who follows the company and understands the way they work knows exactly why they made the choice that they did here. Was it the best choice for Apple? Only time will tell, but there are obvious reasons why they would think it might be.
It's also important to note that iBooks Author is completely and totally free. But really, nothing is free. TANSTAAFL. Developing both a platform to do what iBooks 2 can do and developing a tool to create content for that platform was not a trivial task and Apple almost certainly devoted a lot of resources to getting it done and to getting existing publishers on board. Apple doesn't write software to be nice, they write software to make money. In this case, they're not making money directly, but make no mistake, it was written to make Apple money. The fact that they are not letting people use this free product to compete with them, or to create works for competing platforms should surprise no one. We, as users, authors, and publishers might desire such a tool and might have all sorts of reasons why such a tool would be an awesome thing for us. But so what? I'd like a pink unicorn that farts money. That doesn't mean I should expect somebody else to find one and give it to me for free.
Embrace, Extend, Extinguish
Lastly, several people on Twitter have pointed out that Apple's move here seems frighteningly similar to what Microsoft did throughout the nineties with their infamous "embrace, extend, extinguish" campaign. There's definitely some uncomfortable similarities, but I'm not quite ready to put this in the same camp… yet.
First, iBooks is not the dominant eBook platform, so any suggestion of a monopoly would be silly. Amazon sells far more Kindle books than Apple sells iBooks, and there are other eBook platforms, including Barnes & Noble's Nook, Kobo, and Sony's eReader to name just a few of many. The very idea of embrace, extend, extinguish requires monopoly-like control of a market to be effective, which Apple doesn't remotely have here (yet). There's also been no evidence (yet) of an attempt to "extinguish" the open ePub standard, or to brand the proprietary extended version as the standard. iBooks still supports ePub, and until Apple moves to change that, we're missing the most important and deadly of the three Es, without which there's really no harm, no foul.
The Bottom Line
To quote the narrator in Peter Pan, "all of this has happened before, and it will all happen again." Many developers railed against the "unfair" restrictions of the iOS developer agreement, the inability to sell apps outside the App Store, and the review process. I'm sure there will be similar teeth-gnashing the next time Apple creates a new market or platform, or revises any of the agreements related to any of the existing ones.And certainly, there have been bumps in the road, some of which are still around. But overall, iOS has proved to be a great platform for developers to be on. The number of iOS devices in the world now numbers in the hundreds of millions, and many of the owners of those devices have shown a willingness to pay for content, including apps, movies, and books. It's not the gold rush the mass media thought it was four years ago, but it has been fertile grounds providing a great many people with a living, including me.
It's not a perfect place, but personally, there's no other place I'd rather be. The fact that I can now do both of the things I do professionally (write apps and write books) on those same fertile grounds, excites me. The fact that I can do things while writing my books that simply weren't possible before excites me even more.
Absolutely, things could change in the future, but I'll worry about the future in the future if I need to. For now, I'm happy here and thrilled about the possibilities that iBooks 2 and iBooks Author represent.
































