Tag Archives: game development

Modern Gaming Industry – Challenges and Strategies

(This article is a guest post by Rohit Gore, a Pune-based senior IT professional and novelist.)

Social scientists have forever been the chief antagonists of the gaming industry that has generated $25 Billion revenues in US alone and has employed more than 120,000 people. The reasons are several and some of them quite compelling. However, the industry has shrugged off all the fears and grown at a rate that few other industries have managed. From the humble beginnings in the early ’60s, when a few bored developers just wanted to kill time by creating something to amuse themselves to a time when we have a video game ‘CALL OF DUTY: MODERN WARFARE 2’ being declared the highest revenue generating entertainment product ($3 Billion and counting), the gaming industry has come a long way in its technology adoption and engaging its consumers.

The most modern trend in the industry is that of ‘Social Gaming’. This is closely tied with the wider, more pervasive ‘social media’ or ‘social internet’ phenomena. Platforms like Facebook have a plethora of applications that are essentially games pitting its users against one another.

The Gaming Industry Value Chain

The gaming industry has six components in its value chain

[Image of Game Industry Value Chain]

  1. The Publishers: Entities that are engaged in commissioning the developers for development of the games. They are the ones who pick the tab of the wizardry that the developers create and the consumers enjoy. Electronic Arts, Microsoft Game Studios, Activision and Ubisoft are some of the world’s largest publishers
  2. Developers (Talent layer): These are the prima donnas of the industry. The people who ideate and develop. They could be working on contracts or are on the rolls of the publishers.
  3. Tools providers: Entities that provide the necessary tools, software development frameworks, middlewares and game engines to the developers. Gamebryo and Renderware are biggest of the middleware providers
  4. Distribution: People who are responsible for generating and marketing catalogues for games
  5. Hardware: The platform on which the game runs. It could be an arcade, a PC or a gaming console. Xbox and Playstation are the two most ubiquitous consoles.
  6. Consumer: The people who play the video games

Let’s look at the top challenges that the industry is currently facing:

No more Consoles?

The console market in the recent years has seen a flat trajectory and there is a distinct possibility that it will go down. Although there is a surge in the number of variants launched by the likes of Sony and Microsoft, the problem lies more with the market than with the product. Consoles are primarily value products and are targeted at value markets viz, US, parts of Europe and Japan. We can add parts of South Korea to this mix. The population of these countries is stable and the users aren’t growing. The console makers would need the support of the publishers to create newer markets in these geographies. In some cases it has been successful. For example, the game Diner Dash that was targeted at primarily women audience sold close to 200 million copies and created a hitherto untapped market of women gamers.

The strategy being adopted by the console makers is to partner with a Publisher right at the console development stage. This ensures a) a sustained interest from the gaming community for the launch of the product, b) higher market penetration immediately after the launch as the gamers want to experience the game in the way the perception has been created – on the ‘new and most suitable’ console, c) ties the future of the game from the publisher with the console resulting in the loyalty from the gaming community.

A recent example of this is the tie-up of Ubisoft with Nintendo’s Wii U launch.

Another significant challenge that the console makers are faced with is that of ‘Gaming Clouds’. Cloud gaming solutions are particularly attractive for the industry as a whole because the key drawbacks of cloud computing like security and data integrity are relatively less intensive in the industry. What gaming clouds would ensure, though, is the redundancy of the advanced consoles. All the processing power will reside on the cloud and the users would be essentially using a dumb terminal. This even eradicates the need of cyclical upgrades, which is the key revenue generating factor for the console makers.

Do you Multi-platform?

The gaming industry, although young compared to several entertainment industries, is fast becoming extremely competitive. As a result there has been more than 100% year on year growth in the number of publishers, most of them independent, who pose significant challenges to the established publishers like Electronics Arts and Capcom. This has led to several game titles flooding the market and in turn, this has led to shorter attention span of the gamers. The challenge for the publishers is to engage the consumers on multiple platforms to ensure higher mindshare. Single platform games, and especially a segment of games called ‘casual games’ that are single platform have faced shorter shelf lives. The key is to multi-platform. From PC and consoles to several handheld devices, social media platforms like Facebook and Myspace. Publishers are investing in the future of ‘casual games’ that are truly portable to multiple platforms. The challenges for the developers are manifold, as they have to develop games that are technology agnostic and can have APIs for as diverse platforms as a Playstation to Facebook. The emphasis is to create a truly ‘social game’.

A big bad bubble?

There are worries in the industry that much like the ‘social internet’, the ‘social gaming’ is fast becoming a big bubble. The recent valuation of PopCap, a social gaming company, of $1 Billion is the most glaring of all such examples. The recent M&A trends in the industry point to significantly high valuations of independent publishers. Japanese mobile gaming giant DeNA paid out up to $400 million for iOS game developer ngmoco. Electronic Arts paid $300 million for PlayFish last year, while Disney paid $760 million for Playdom, and has been aggressively restructuring its entire games business around the social gaming model. The challenge is the correct valuation of the independent publishers. Like several other mature industries, Gaming industry is going through a large scale consolidation and players like EA, Disney and Capcom are emerging as the consolidated global entities. The question that needs to be answered is whether good money of these large publishers is being spent on bad assets.

Our impressions:

  • Innovation is going to be the key in this industry. Both process as well as product innovations. In this respect, it is a unique industry as several other industries offer innovation opportunities either in process or product
  • New market development is the key for the long term success. Markets like US, Europe, Japan and South Korea are fast approaching saturation. However markets like India, China and Brazil are the markets to tap into. Especially for publishers who have a long term focus areas in Social/Casual Gaming. Every publisher needs to have an entry strategy for these markets and the early entrants would enjoy significant loyalty
  • Newer distribution channels need to be developed. The traditional channels are putting a lot of pressure on the margins, even for large players like EA and Microsoft. Cloud Gaming solutions are the way to go, even for new markets. Companies like Gaikai and InLive are investing heavily in cloud solutions
  • Gaming industry can play a significant role in socially impacting areas like education. Newer markets like India and China are especially receptive to finding innovative means of learning and therein lies the opportunity for the industry

Concluding, we believe the gaming industry is poised for a significant churn in the near future propelled partly by the rush to be the ‘first’ to exploit the burgeoning and untapped social gaming market.

To discuss this perspective in more detail you can contact Rohit at rohit.gore@in.fujitsu.com

About the Author – Rohit Gore

Rohit Gore is a Pune-based senior IT Professional and novelist. Rohit is a Lead Consultant at Fujitsu Consulting India, and has 10+ years of Industry experience including stints at Infosys and Sasken after an MBA from S P Jain Institute.

Rohit is also the author of ‘FOCUS, SAM’ a novel from Rupa Publications and the upcoming ‘A DARKER DAWN’. He grew up in a number of towns in India. At various times in his childhood, he wanted to be a theatre actor, an architect and a bookshop owner.

He loves sports, specifically the discussing and watching part of it, since the playing days are long gone. He has travelled a lot – a consequence of living in Mumbai and London. His greatest passion is reading and it inspired him to write. He is a frequent contributor to many online writing forums and wishes there were more writing groups.

The Basics of Game Development – for programmers

(This is a live-blog of a talk Girish Dhakephalkar of http://ShoonyaGames.com gave at TechWeekend #9 on Game Development.)

This talk is an overview of what exactly is involved in game development – from the point of view of a programmer.

These are the major components of game development.

Game Platform

A game platform is the hardware-software combination on which a game runs. These are the major game platforms:

  • Console (e.g. Xbox 360, Wii, PS2/PS3).
  • Handheld
  • PC (Windows, Mac)
  • Mobile (iPhone, others)
  • Web Browser Based
  • Arcade Machines (i.e. the dedicated game play machines you see in video-games parlours in malls)

The platform makes a big difference to the kind of games you can build. For example, consider the consoles. Here the hardware is fixed. This is good because a game is a very optimized piece of software. So the more you know about the hardware, the more you can optimize, and the better will be your gameplay. (Compare with a PC game where it can be played on PCs with vastly different hardware capabilities. Then you end up programming to the minimum requirements, which is sub-optimal for the higher end PCs.)

Game Development Team

A game development team consists of the following roles:

  • Artists – 2D/3D artists and animators
  • Game Designers – Level designers, Gameplay designers, UI designers
  • Programmers – Graphics, Gameplay, AI engine, Physics, Networking, UI, Tools
  • Audio – Sound effects creators, music composers
  • Testers (Pune has a lot of game testing companies)
  • Special mention: The Crossovers – Technical Artists, Team Leads, Tester-Producer, etc.

Not all kinds of games require all these roles. A “big” game is a huge production, pretty much like a movie, and will hence need all these roles. Smaller games can do with fewer.

Interesting points: The Physics Engine in a game is a piece of software in a game which essentially enforces the laws of physics (as they exist in the game world). When you throw an object, how it flies through space is determined by the physics engine. When you fall, what happens to you, how much you get hurt; if you kick a door, will it break. Such things are determined by the physics engine.

Networking is needed in online games. Specially, an MMORPG (massively multiplayer online role-playing game) has hundreds of thousands of people playing simultaneously, and the various players are interacting with the game system, and with each other. All of this networking has to be managed at the game servers (which are in the cloud) and the game clients (which are installed on the users PC/console).

Game Development

There are two broad phases of game development.

First there is “content creation”. This includes things like creating the characters, animations, levels etc. This happens offline, before the game is “released”. The tools used are Maya/Max, Photoshop, Sound creation tools, and Game design tools. The other big chunk of program in a game software is the “runtime”. This is the server and the engine which interacts with the user and renders each frame of the game, and controls the game play.

The fundamental difference between animation and graphics in games and anywhere else is the “realtime” nature of the rendering. When doing animation/graphics for a movie, everything is computed beforehand, and it is simply displayed/rendered at runtime. However, with a game, this is not true. You need to keep gathering input from the user (for example, the current position of the user), and change the animation appropriately. So, the animation needs to be auto-created at runtime based on the inputs, and this needs to happen at 30+ frames per second.

Going below 30+ frames per second is just not permissible – the game will not feel smooth. Hence, the only thing you can compromise on is the quality/resolution of the graphics. Hence, in terms of pure graphical output, a pre-rendered video is always going to have better possibilities than what is possible in a game.

In any case, in most games, lots and lots of optimization happens to be able to render high quality graphics at 30+ FPS, using the best possible software and hardware combination. Thus, most games will try to use the graphics cards of the hardware to the fullest extent possible. All modern graphics cards are programmable in the sense that common graphics operations (like shaders) can be offloaded to the graphics card. The game engine will have sophisticated software that pushes as much work as possible to the graphics card.

The Game Runtime is broken up into two big parts. First there is the basic engine, which can be thought of as a framework for building games, and has building blocks like rendering, animation, physics, networking, sound. Another major feature of an engine is that it allows easy creation of different kinds of games, characters, levels, and general purpose scripting.

Thus, the idea is that there is a generic game engine which is not necessarily tied to any specific game, and on top of this, various different games can be built by the game designers. Typically, the same game engine will be re-used by a company to build and release many different games.

A game engine will typically come with “game creation tools” which are separate pieces of software which allow you to “author” games. Typical workflow: an artist uses tools like Maya/Photoshop to create the basic content, and the level designer of a game will use the game engine tools to import the basic content into the game. You might create a character in Maya,

Examples of game engines: CryEngine (Crysis, Far Cry, Aion: Tower of Eternity), Unreal Engine (Unreal Tournament, Unreal3, Gears of War. http://udk.com is available free for non-commercial use), Source Engine (Half Life, Counter Strike Source), Unity, Torque (Casual/web-based gaming).

Components of a Game Engine

  • Graphics renderer: all the computer graphics calculations (including ray tracing, lighting, refraction, reflection, etc). Crysis (the game) looks very good because the CryEngine graphics engine is very good.
  • Animation system: Define how your characters move. This includes defining the walk cycle (i.e. one full step of the character walking, which is looped to show a walking character).
  • Scene graph: A level in a game is a huge 3D (or 2D) space, with lots of things – characters, objects, lights. All of these need to be defined and instantiated. These need to be held in memory while the game is playing. Knowing what objects are where, and keeping track of them in memory is the job of a scene graph. The renderer shows you the view of what is currently visible to you, while the scene graph keeps track of everything that is “nearby”, and is the one who calculates what is and is not visible (and should hence be sent to the renderer).
  • Physics: As described earlier, the physics of the game world. When things are thrown, what is their trajectory. If something hits something else, how much doe it bounce. Compute the mass, the force, the acceleration, and apply the Newton’s laws (or another set of laws, if the game world has different physics than our own).
  • Networking: This most programmers should be familiar with.
  • AI: This is what actually defines how different characters (the computer controlled ones) behave and react. Note that you’re not always trying to create reality, or “human” behavior. All you want is a fun experience – not necessarily realistic.
  • Audio: Sound effects, and voice-overs.
  • UI: The interface for the game. Including inputs, options, etc.
  • Scripting: While the basic engine is programmed in C++, for defining what happens in a game, a low-level programming language like C++ or Java is not an ideal language to define the “gameplay.” For this, a scripting language like Lua, or Python is used. Or, like Unreal Engine, the engine might have its own scripting language. Compiling a game takes a long time (more than half an hour for a big game), so you definitely don’t want to write your game logic in a compiled language and require a full compilation every time you make a minor change.

Who would be interested in Game Development

If you want to make a career in game development, these are some things to think about:

  • You need to be interested in games, and should have some knowledge of games. That will make work more interesting
  • You should have played, and analyzed a variety of games – that way you know and understand what are the different possibilities out there
  • You should like working in a team. A game development team can be 100s of people, all working together to produce a single game. And if you’re not really a team player, you will not be able to function properly.
  • Good communication skills. A game development team has people from many different teams, with different backgrounds, and if you’re not good at communication, especially written communication, you might run into problems.

Once you’ve become a game programmer, you’ll find yourself using these skills a lot:

  • Mathematics!!
    • Linear Algebra: matrix operators, vectors, quaternions
    • Co-ordinate systems (remember your geometry?)
    • Trigonometry – basics, like 10th/12th std. level
    • Laws of physics (laws of motion, angular velocity/momentum etc).
  • Programming
    • C/C++. .NET, C# for tools. Scripting languages (python, lua).
    • Object-oriented programming.
    • Writing optimized code

But here is the biggest reason why you should get into game development:

  • Game development is at the cutting edge of technology. All the latest and best technology is used in games first, and only slowly and later does it trickle down into other fields of programming. Game development is the F1-racing of programming.

Links

Lookup these links for some further interesting reading for games.