<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sierra Atlantic - Official Blog &#187; Game Development</title>
	<atom:link href="http://blogs.sierraatlantic.com/category/services/outsourced-product-development/game-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.sierraatlantic.com</link>
	<description>The Official Blog of Sierra Atlantic</description>
	<lastBuildDate>Mon, 20 Dec 2010 19:03:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Erlang experiments: The results are in</title>
		<link>http://blogs.sierraatlantic.com/2010/12/erlang-experiments-the-results-are-in/</link>
		<comments>http://blogs.sierraatlantic.com/2010/12/erlang-experiments-the-results-are-in/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 14:45:04 +0000</pubDate>
		<dc:creator>Chaitanya Munjuluri</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Outsourced Product Development]]></category>
		<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=506</guid>
		<description><![CDATA[As part of an initiative to start looking at various technologies and methodologies that will make revolutionise video game development, we were looking at various programming languages that would help scalability in servers. Multi threaded C/C++ code, design patterns, libraries, frameworks, and finally programming languages themselves fall under this division. Subsequent to my earlier blog [...]]]></description>
			<content:encoded><![CDATA[<p>As part of an initiative to start looking at various technologies and methodologies that will make revolutionise video game development, we were looking at various programming languages that would help scalability in servers. Multi threaded C/C++ code, design patterns, libraries, frameworks, and finally programming languages themselves fall under this division.</p>
<p>Subsequent to my earlier blog post on Erlang (refer: <a href="../2010/10/erlang-and-experiments-with-scalable-servers/">http://blogs.sierraatlantic.com/2010/10/erlang-and-experiments-with-scalable-servers/</a>) we whipped up a quick server to test its scalability. Srini (a fresh graduate from University of Hyd) and Vijayender worked on the server side of the game while Chaitanya (not me) worked on writing a client using the Blender API.</p>
<p>It was in many ways an experiment on the productivity of the programmers. Vijayender, with his vast experience, was mostly involved in design while Srini and Chaitanya were responsible for actual implementation.  Keep in mind that Chaitanya and Srini have each just about 2 months of experience and I was already demanding them to write multi threaded code. However the results definitely surprised me.</p>
<p>We planned on making a very simple server that would cater to multiple incoming connections. The overall idea is that we would use one thread to run the networking related code, one thread to do the event management and one thread to perform collisions and the like. The reason for this was straightforward since this is a very simple form of threading (using the producer consumer pattern).</p>
<p>So how long did it take for us the finish this application? 2 months. Yes, that&#8217;s right. Just two months with a brand new pair of hands who have no experience writing multi threaded code.  The number of bugs that were reported? Less than 5 and all of them were deviations from the specification. None were technology related bugs.</p>
<p>The following graph depicts the throughput. X-Axis shows the number of clients while the Y-Axis shows the average time it took for a single update (in milliseconds)</p>
<p><a href="http://blogs.sierraatlantic.com/wp-content/uploads/2010/12/erlang.png"><img class="aligncenter size-medium wp-image-507" title="erlang" src="http://blogs.sierraatlantic.com/wp-content/uploads/2010/12/erlang-300x176.png" alt="" width="300" height="176" /></a></p>
<p>The point to notice here is not how long each update took to perform. It is how the server scales automatically when we throw more cores at it. The performance is bound to improve if we switch all of the collision and mathematical calculations to a C/C++ interop (maybe even CUDA/OpenCL&#8230; hmmm).</p>
<p>Notice how the 800 clients an 8 core processor gives more than 30 fps consistent. Every time we figured an increased load on the server, all we had to do was toss more cores at it and the performance pretty much improved linearly.</p>
<p>Having worked extensively on multi-threaded code I have come to believe that the future lies in languages that are designed with threading in mind. Multi-core architectures are not going anytime soon and this is exactly why writing code that scales well is of extreme importance. I believe that it is better to toss more hardware at a problem than tossing programmers and Erlang seems to be a good choice.</p>
<h4>Notes:</h4>
<p>Here is a list of things that are left:</p>
<ul>
<li>Mathematics interop in C/C++</li>
<li>Checking the numbers with Hipe VM</li>
<li>Checking the numbers on multiple operating systems</li>
<li>Hopefully try it out on the cloud <img src='http://blogs.sierraatlantic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Persistent store (database integration)</li>
</ul>
<p>Here is the current setup:</p>
<ul>
<li>Windows 7</li>
<li>Intel i7 CPU (8 hardware threads)</li>
<li> 6 GB RAM (although we were never limited by the RAM)</li>
<li> Erlang R14B 5.8.11</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/12/erlang-experiments-the-results-are-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Will True 3D Rendering Change Games?</title>
		<link>http://blogs.sierraatlantic.com/2010/10/how-will-true-3d-rendering-change-games/</link>
		<comments>http://blogs.sierraatlantic.com/2010/10/how-will-true-3d-rendering-change-games/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 18:35:11 +0000</pubDate>
		<dc:creator>Chaitanya Munjuluri</dc:creator>
				<category><![CDATA[Communicatons, Media & Entertainment]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Industries]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=386</guid>
		<description><![CDATA[Majority of the game engine makers have now taken &#8220;real&#8221; 3D seriously and I have seen a lot of their implementations. I must say that with a slight bit of variation they all have a bright future. While stereoscopic rendering is nothing new, it has implications on the framerate. The most basic form of stereoscopic [...]]]></description>
			<content:encoded><![CDATA[<p>Majority of the game engine makers have now taken &#8220;real&#8221; 3D seriously and I have seen a lot of their implementations. I must say that with a slight bit of variation they all have a bright future. While stereoscopic rendering is nothing new, it has implications on the framerate. The most basic form of stereoscopic rendering is to render the same scene twice twice with a slight offset. This is designed to emulate the way humans see. Where rendering differs from the human is with the composition. When humans look at things around them, there are two full frequency images projected onto the retina. The brain produces a composite image from these two images. A stereoscopic renderer  The two renders are composited into a single scene by using filters (the red and the green glasses or the polarised glass that people put on).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/10/how-will-true-3d-rendering-change-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erlang and Experiments With Scalable Servers</title>
		<link>http://blogs.sierraatlantic.com/2010/10/erlang-and-experiments-with-scalable-servers/</link>
		<comments>http://blogs.sierraatlantic.com/2010/10/erlang-and-experiments-with-scalable-servers/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 05:00:30 +0000</pubDate>
		<dc:creator>Chaitanya Munjuluri</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Outsourced Product Development]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=321</guid>
		<description><![CDATA[A little introduction to Erlang. Erlang is a language that was designed around concurrency as a core feature. It is a functional language and supports threading as a first class primitive. This is one of the features that set it apart from most other languages, primarily C/C++ and Java. These languages rely on libraries to [...]]]></description>
			<content:encoded><![CDATA[<p>A little introduction to Erlang. Erlang is a language that was designed around concurrency as a core feature. It is a functional language and supports threading as a first class primitive. This is one of the features that set it apart from most other languages, primarily C/C++ and Java. These languages rely on libraries to provide concurrency primities (threads, processes, locks and syncs). Since Erlang had this designed into the language, threading and associated issues have been reduced to  minimum.</p>
<h3>Why Erlang?</h3>
<p>Games today need to scale smoothly. The advent of multiple cores on each processor has resulted in an almost a feverish rush toward the parallel processing paradigm. However anyone who has written large chunks of code will appreciate the problems that would naturally arise from using threads. Sprinkling a lot of locks around the threads hardly improves performance, the very reason we add threads. At the same time failure to keep synchronisation and race conditions in mind will result in a lot of late nights debugging the code. I faced this exact problem a few years ago and out of purely academic interest I started searching for languages that could make things better (for me atleast). This was when I discovered into Erlang.</p>
<p>Erlang uses message passing to communicate between processes. While this is not a new thing, having it as a construct within the langauge ensures that code written in Erlang is inherently concurrent. Since messages passed between processes give up ownership of data, it prevents locking and thus makes IPC faster. At the same time processes in Erlang are faster than native OS threads (hence even OS processes).</p>
<p>The biggest advantage, in my opinion, is loading and replacing code at runtime. Service Oriented Architecture is one area that will greatly benefit from this. It means that the downtime is extremely minimal. Who enjoys disturbing a gamer while he is playing only for &#8220;scheduled downtime&#8221;? It also encourages prototyping and rolling out faster updates. This is of great importance especially when gameplay balancing comes into picture.</p>
<p>Being a functional language code written in Erlang is generally shorter than equivalent code written in C/C++ or Java. This results in easier verification of the correctness of the code and fewer bugs creep up because of this. Code reviews are also faster to perform.</p>
<h3>What are we up to?</h3>
<p>As part of our casual game development division we&#8217;ve been at work trying to find various architectures and schemes that make scalability as smooth as possible. Some solutions we have implemented are based on the cloud while others like the Erlang initiative are projects that take a different approach for solving the problems.</p>
<p>We currently are working on a nice little multiplayer game that has a flash frontend and runs an Erlang server in the backend. Erlang is good with IPC hence we spawn a new process for each of these dungeons and for each entity in the game. Purely client side effects are cosmetic effects while physics, entity spawn and destruction and scores are simulated on the server. Since Erlang messages are asynchronous we have to perform some double checks, especially during scoring. Doing this was extremely easy since we decided to only trust the server and force the client to reflect these changes. Essentially the client presents a view of the world for the player. Since Erlang is good with concurrent code, we&#8217;ve had a chance to simulate cool particles on the server side. However we shifted all of this to the client side since particles are only cosmetic we decided to move this over to the client. It also resulted in saved network bandwidth.</p>
<h3>Work in progress:</h3>
<p>We are working on coming up with metrics that will compare existing frameworks with what we are implementing, for the same set of features. This will give us a better idea as to where we are heading and where we need to be in the coming few weeks.</p>
<p>A test automation that will reduce the workload of testers is definitely something we are desperate for. The usual click based testing frameworks help, but I am hoping that my team here will come up with something that is far superior to anything I&#8217;ve seen till date. Again, I would be interested in seeing if we can develop a load/stress testing suite that can use Erlang underneath.</p>
<p>Integrating 3rd party APIs, especially some of the payment gateways. This will be a huge leap ahead for us, especially since micro transactions are a popular way to monetise in casual games.</p>
<p>Metrics to check the load bearing characteristics of the servers.</p>
<p>Metrics for the kind of bugs we reported on the servers.</p>
<h3>Challenges:</h3>
<p>The biggest challenge we face is with respect to the number of people who are aware of Erlang as a programming language. This has resulted in some training time for the members of the project.</p>
<p>The next challenge we have is integration with 3rd party libraries. While Erlang has bridges for running C code (even Python <img src='http://blogs.sierraatlantic.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) these need to be extensively tested before we can start using them.</p>
<p>Integer performance seems to be better in C/C++. I am guessing that this would be because the CPUs nowadays are really good with predictable data. I am not sure how we can tackle this in Erlang.</p>
<p>Having worked in Erlang, I can say with a certain amount of confidence that it has definitely proven itself on the scalability end. We need to see what are the limits to it&#8217;s execution and this is where Sierra Atlantic&#8217;s expertise in testing and test automation will help me in the coming few weeks.</p>
<p>I hope to post more cool stuff in the coming weeks. Till then, tah.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/10/erlang-and-experiments-with-scalable-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPUs and High Performance Computing (HPC)</title>
		<link>http://blogs.sierraatlantic.com/2010/09/gpus-and-high-performance-computing-hpc/</link>
		<comments>http://blogs.sierraatlantic.com/2010/09/gpus-and-high-performance-computing-hpc/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 05:00:18 +0000</pubDate>
		<dc:creator>Chaitanya Munjuluri</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Outsourced Product Development]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=319</guid>
		<description><![CDATA[A long time ago, in a kingdom far far away HPC was restricted to the likes of Cray. There was also a time when GPUs were merely specialised silicon that could draw pixels a little faster than the CPU could. Around 1998 nVIDIA release the Riva TNT and things began to change, albeit slowly. Then [...]]]></description>
			<content:encoded><![CDATA[<p>A long time ago, in a kingdom far far away HPC was restricted to the likes of Cray. There was also a time when GPUs were merely specialised silicon that could draw pixels a little faster than the CPU could. Around 1998 nVIDIA release the Riva TNT and things began to change, albeit slowly. Then came hardware T&amp;L support from nVIDIA&#8217;s Geforce 256. Games did not look the same after that. And time moved on&#8230; . GPUs had a fixed function pipeline for most of their existence till programmable shaders entered the picture. This allowed programmers to treat the GPU like another programmable chip. The one thing to notice here is that all these GPUs were specialised processors to make fast games render faster.</p>
<p>Around this time, GPGPU (General Purpose GPU)  initiatives by the GPU manufacturers saw GPUs being used for not only rendering but also general purpose computing. One drawback was that GPUs still liked textures and matrices and disliked strings.  However with the introduction of CUDA by nVIDIA, OpenCL by Khronos group and CAL/CTM from AMD/ATi GPUs changed the terrain in favour of programmers. To explain the difference between a CPU and GPU&#8217;s processing capabilities, I&#8217;ll use the following video: http://www.youtube.com/watch?v=fKK933KK6Gg . The Mythbusters showed exactly what it is that the GPUs are good at &#8211; They are good at doing a designated task incredibly fast only when it is performed in parallel. Using that same video as an example, the GPU would have a hard time drawing the smiley, one dot at a time. However if you were to build a new parallel gun that has the smiley imprinted on it, the drawing happens in an instant.</p>
<p>If you were to harness the power of the GPU, you would need to write a program in a way that it can execute instructions in large chunks. The size of these chunks depends on the GPU (or the CPU). The operating model for these programs is based on the SIMD model &#8211; Single Instruction Multiple Data. What this means is that you have a single instruction being executed simultaneously across multiple chunks of data. An example for where SIMD would be a good fit is calculating the magnitude of a vector. magnitude_square = x*x + y*y + z*z.  The three multiplies could be performed in a single go.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/09/gpus-and-high-performance-computing-hpc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tiny Parameter to Kick Start with Performance Testing</title>
		<link>http://blogs.sierraatlantic.com/2010/09/tiny-parameter-to-kick-start-with-performance-testing/</link>
		<comments>http://blogs.sierraatlantic.com/2010/09/tiny-parameter-to-kick-start-with-performance-testing/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 08:00:04 +0000</pubDate>
		<dc:creator>Malini Mohan</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Outsourced Product Development]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Analytical Modeling]]></category>
		<category><![CDATA[Bottleneck]]></category>
		<category><![CDATA[Capacity Planning]]></category>
		<category><![CDATA[Performance Technique]]></category>
		<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[Simulation Modeling]]></category>
		<category><![CDATA[Statistical Distribution]]></category>
		<category><![CDATA[Testing Tools]]></category>
		<category><![CDATA[Workload Modeling]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=258</guid>
		<description><![CDATA[Hope this will give you more clarity and maturity to widen up your performance testing skills. Before we certify any application performance, have to follow: Satisfied with your own performance or not? Conducting effective performance test or not? Have we ever thought how to ensure your performance test strategy performance test report is bug free? [...]]]></description>
			<content:encoded><![CDATA[<p>Hope this will give you more clarity and maturity to widen up your performance testing skills. Before we certify any application performance, have to follow: Satisfied with your own performance or not? Conducting effective performance test or not? Have we ever thought how to ensure your performance test strategy performance test report is bug free? we have to get hold of comfortable in the terminologies used in the performance engineering field . And specifically we need to learn one or two popular and effective performance test tools and develop bottleneck analysis skills. These are the basic skills required for being a performance tester. Then you are matured enough to do performance test and look for how effective. When we talk about effectiveness we need to start looking at Analytical modeling and simulation modeling approaches to move to your next level of expertise. Another important tips is that, understand the operational laws and start applying those laws in your day to day test activities. Slowly we have to start learning about Workload Modeling concepts and Statistical distribution fitting and apply those learning&#8217;s to define performance testing goals/SLAs. And also we have to concentrate more on Demand planning and Performance prediction techniques. Learn Mean value analysis and Erlang&#8217;s method. Lastly we have to learn about Capacity Planning. Happy reading! Work towards those tips and post your experience back to us.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/09/tiny-parameter-to-kick-start-with-performance-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Media</title>
		<link>http://blogs.sierraatlantic.com/2010/08/social-media/</link>
		<comments>http://blogs.sierraatlantic.com/2010/08/social-media/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 08:00:00 +0000</pubDate>
		<dc:creator>Malini Mohan</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Outsourced Product Development]]></category>
		<category><![CDATA[Business Value]]></category>
		<category><![CDATA[Company Brand]]></category>
		<category><![CDATA[Company Image]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[People Relate To People Not To Company]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=247</guid>
		<description><![CDATA[In recent year’s social media, likely more than anything else has significantly impacted most of our daily lives. It is hard to know sometimes how our life has changed until we stop for a moment and look at how different it is from ten or even five years ago. Envisioning the global conversation that has [...]]]></description>
			<content:encoded><![CDATA[<p>In recent year’s social media, likely more than anything else has significantly impacted most of our daily lives. It is hard to know sometimes how our life has changed until we stop for a moment and look at how different it is from ten or even five years ago. Envisioning the global conversation that has developed over the past few years because of tools like Facebook and Twitter might have been unimaginable for most people at the beginning of this decade. But social media communication tools have profoundly changed our lives and how we interact with one another and the world around us. Even it has an impact on the way we started spending our free time, there is a big influence of technique on our daily life. With the fact that we are seeing a trend where more and more people are moving away from traditional media and it’s creating vital challenge for companies and making them to think twice before dumping the usual amount of cash into traditional media marketing and advertising.</p>
<p>Common sense would tell you to take your message where the majority of the people are gathering and paying attention, which just happens to be Web 2.0(Shift in consumer habits: From expert driven content to User driven content) social mediums. The data is growing every single day. The number of connection points to the DATA is becoming increasingly available. Realizing what information is available about the business relationships becomes more critical as dollar value increases. Every dollar and every minute spend on marketing tactics is for one purpose: Business Growth!  Let me share this interesting quote from Tony Hsieh, Zappos CEO &#8211; <strong>“People relate to people, not companies”</strong>, Social media provides us an opportunity to humanize the brand and engage the companies with consumers at personal level, which can provide substantial results in long-term like decreased customer support costs, customer feedback management, good PR and marketing channel to engage with target market.  Social Media is for every company that genuinely wants to engage with their customers, it doesn’t matter whether you are fortune brand or Local restaurant. As Sandy Carter, Marketing Head at IBM quoted, “I think the primary difference here is not in big or small company. But the difference is in how close you are to your customers”. I personally find that it is very interesting and exciting “Net Space” to be in and also rewarding if used in the right manner.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/08/social-media/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video Games – The Evolution</title>
		<link>http://blogs.sierraatlantic.com/2010/08/video-games-%e2%80%93-the-evolution/</link>
		<comments>http://blogs.sierraatlantic.com/2010/08/video-games-%e2%80%93-the-evolution/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 16:37:34 +0000</pubDate>
		<dc:creator>Abhishek Srivastava</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Gamers]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[History Gaming]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=286</guid>
		<description><![CDATA[I was mesmerized the day I saw one. Video games caught my fancy as a child and at least from that aspect, I am yet to grow up. Looks like I am not the only one! The average age for a Video Game player is now 35 (source: Wikipedia). These are people who belong to [...]]]></description>
			<content:encoded><![CDATA[<p>I was mesmerized the day I saw one. Video games caught my fancy as a child and at least from that aspect, I am yet to grow up. Looks like I am not the only one! The average age for a Video Game player is now 35 (source: Wikipedia). These are people who belong to the “Controller Power” era who were playing the first Arcade, console and home computer games as children.</p>
<p>The first Video Game I ever saw and played, which I still remember to this day, was the Freeway on Atari. The first computer game I ever saw and played was Paratrooper. They were so much fun, no matter how blobby the graphics look and monotonic the sound effects sound now. Pacman infact still has cult following.</p>
<p>Video Games, these wonderful illusions provide an audio visual experience, tricking one into thinking they are inside a fantastical world, moving, jumping, racing and doing what all not when actually staring at a physically stationary screen. Fascinated with this thought, one of the first “gamey” things I tried to program in Pascal was a “walk through a tunnel” simulation, where you would walk through a tunnel and use the arrow keys to, accelerate, decelerate, turn left and right.</p>
<p>Games continue to evolve, rapidly, their hunger for hardware pushing growth in that segment as well. Let me try and take you through this evolution as I have witnessed.</p>
<p><strong><span style="text-decoration: underline;">Shooting Games…</span></strong></p>
<p>I’ve been a big fan of shooting games, so I’ll start with this genre. Wolfenstien 3d, good old days those, the game would fit on a 3.5 inch floppy. This game was a trend setter and pretty much gave birth to first person shooting games. Shooting down Nazis and their rogue dogs, changing weapons, seeing the protagonist’s face change with his health was a lot of fun, a new experience. The PC was now being looked at as an entertainment machine as well.</p>
<p>The popularity of the first person shooters saw a lot of hugely popular titles like the Doom series, Duke Nukem series, Redneck Rampage, Blood and the revolutionary Quake Series. Quake hit it big time with its online game play over the internet.</p>
<p>On consoles the Halo series has created much more than a stir, contributing significantly to XBOX sales. Half Life added the sci-fi angle to first person shooters. Unreal is another extremely popular example.</p>
<p>Lara Croft, the protagonist of Tomb Raider came in and changed this genre by adding a new dimension to it. This was the beginning of Third Person Shooters. With the protagonist visible on the screen, albeit from behind or from over the shoulder, the protagonist suddenly started getting a lot more attention, literally. MDK became popular with it’s really intelligent enemies and the sniper mode. Max Payne with his story of vendetta being brought out in a comic book like story line, killing the bad guys is one of the most popular Third Person Shooting games.</p>
<p>And can I go ahead without mentioning Contra, the Nintendo console game when talking about shooting games? I still remember the button combination that allowed 30 lives. <img src='http://blogs.sierraatlantic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><span style="text-decoration: underline;">Combat Games…</span></strong></p>
<p>“Finish Him”. If you know that phrase, there’s a good chance you have Carpal Tunnel Syndrome setting in your wrists. Yes the fatalities did take a toll on those overworked nerves and tendons along with the Mortal Combat characters. <img src='http://blogs.sierraatlantic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Street Fighter II was another immensely popular arcade combat game, where you had to perfect those hard to remember and time special moves. And then you had the Capcom Vs. Namco games as well.</p>
<p><strong><span style="text-decoration: underline;">Racing Games…</span></strong></p>
<p>One of the most popular ones, this genre appeals to varied demographic groups.</p>
<p>The relatively easy learning curve attracts a lot of new/non gamers.</p>
<p>I fell in love with racing games on the computer when I played Test Drive eons ago.</p>
<p>I was thrilled with the concept of being able to upgrade my car with the race money I won. Bikes, cars, I could race them all. Pole Position was also a popular game.</p>
<p>With new versions, one could see increasing amounts of realism being thrown into the game. You could honk, switch on your lights, and operate your vipers to increase visibily if it were raining. The asphalt on the game road started looking truer with better textures being used. The trees you whizzed past also assumed a more life like form as compared to mere triangles that would barely catch the corner of your eye earlier.</p>
<p>One could tweak various parameters in the car to suit personal preferences or the track/weather requirements. One could tune the suspension to suit the track, change the tyres from slicks to treads to suit the weather conditions. The game could be made more challenging by switching from automatic to manual transmission, the features were increasing at a break-neck speed. The physics in these games kept getting better. The damage sustained by your vehicle now also started to impact you vehicle’s performance if you so wanted.</p>
<p>“I feel the need, the Need for Speed”, the iconic dialog from the blockbuster movie Top Gun possibly gave birth to the title of one of the most popular racing games ever, the Need for Speed series.</p>
<p>Some racing games like Carmageddon and Road rash started endorsing violence, hung around for a while and yes, gained popularity.</p>
<p><strong><span style="text-decoration: underline;">Adventure Games…</span></strong></p>
<p>Breathtaking backgrounds, an interactive story with an element of mystery and solving a lot of puzzles, now we’re talking Adventure Games.</p>
<p>The Legend of Kyrandia, that’s the first name that comes to my mind in this genre. Of course there were adventure video games (starting with text based adventure games) before that, but this was the first one I ever played.</p>
<p>Leisure Suite Larry, ok, let me just skip this one. <img src='http://blogs.sierraatlantic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Games like Space Quest, the Monkey Island series also became popular. Myst took this genre world by storm.</p>
<p>The number of people following such games is dwindling and this is attributed to the other genres gaining popularity because they are not as “slow”.</p>
<p><strong><span style="text-decoration: underline;">RPG</span><span style="text-decoration: underline;"> </span><span style="text-decoration: underline;">s…</span></strong></p>
<p>Now this is one genre that has everybody talking. And by everybody I mean millions of hard core gamers, people who take games very seriously spend a lot of money and time on them.</p>
<p>The origin of this genre dates back to the invention of games like Chainmail and Dungeons &amp; Dragons. These games were played by a group of people sitting across a table, using dice and pen and paper (we’re talking pre compter era days here <img src='http://blogs.sierraatlantic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), assuming the roles of characters of fantasy, leading armies to conquer kingdoms, set out on adventues, honing their skill points with each adventure, becoming stronger.</p>
<p>The popularity of these games gave way to computer RPGs (also referred to as CRPGs).</p>
<p>CRPG’s like The Final Fantasy series, Elder Scrolls, The Legends of Zelda and Baldur’s Gates are some of the most followed ones in this genre.</p>
<p><strong><span style="text-decoration: underline;">Strategy Games…</span></strong></p>
<p>The two genres of RPGs and Strategy Games often overlap, the line between the two being very thin if not non-existant. Games like World of Warcraft, Civilization, Heroes of Might and Magic, Commandos, Command and Conquer, Sim City, Dune, Age of Empires, Starcraft could easily fit into either of the two genres, because of the combination of strong Role Play and Strategy. Turn Based and Simultaneous Strategy games are both popular.</p>
<p><strong><span style="text-decoration: underline;">Casual Games…</span></strong></p>
<p>I have seen more than one serious gamer calling the term “Casual Games” an oxymoron with a lot many more unmentionable adjectives thrown in. Come to think of it, the term serious gamer is also an oxymoron! Anyway, hard core gamers scoff at this genre, hard core game programmers probably want to stay away from programming these, but does that take away anything from the humungous fan base that these games have managed to build? I am sure all your facebook friends can be categorized into two buckets,</p>
<p>1.) Who play (or have played) these games a lot. Yes I’m talking about your friends whose crops have withered, or the Russian job that has to be carried out</p>
<p>2.) Who totally detest these games</p>
<p>Love them or hate them, but you can’t ignore them. They have a user base spanning all demographics, from kids to grannies. These games have spawned a whole new parallel economy of virtual goods and the numbers, both monetary and in terms of user base are gigantic in proportion.</p>
<p><strong><span style="text-decoration: underline;">Where are we headed?</span></strong></p>
<p>Better graphics? More intriguing game play? MMO FPS games?</p>
<p>I feel it is the controllers that are going through a phase of revolution right now and the trend will continue for quite a while. The Nintendo Wii with its moderate processing hardware and just about ok graphics became immensely popular with its accelerometer and gyroscope driven Wii mote. You feel you’re in the game.</p>
<p>I’m also sure everybody is looking forward to this holiday season with the Microsoft’s Project Natal aka Kinect. If the demos and blogs are anything to go by, you might never see a controller again. The camera which is smart enough to recognize 31 body parts, 6 different players, with gesture and facial expression recognition is being touted as the future.</p>
<p>So what next? Gaming Hardware that detects eyeball movement? Maybe a game that reads your mind and doesn’t require even a camera.</p>
<p>Game for a brain implant for a game?</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/08/video-games-%e2%80%93-the-evolution/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Games Testing — Simple Tips To Get You Started With A Bang</title>
		<link>http://blogs.sierraatlantic.com/2010/08/games-testing-simple-tips-to-get-you-started-with-a-bang/</link>
		<comments>http://blogs.sierraatlantic.com/2010/08/games-testing-simple-tips-to-get-you-started-with-a-bang/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 20:15:33 +0000</pubDate>
		<dc:creator>Malini Mohan</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Outsourced Product Development]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[Automation Tool]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Computer Games]]></category>
		<category><![CDATA[Development Process]]></category>
		<category><![CDATA[Game Management]]></category>
		<category><![CDATA[Game Rules]]></category>
		<category><![CDATA[Game Testing]]></category>
		<category><![CDATA[Player Management]]></category>
		<category><![CDATA[RNG]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Skill]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[UI Functionality Testing]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=225</guid>
		<description><![CDATA[What is bad thing in Game testing ? Choose to Panic! Have you experienced Scuba diving or snorkeling?! Scuba divers put themselves in a situation similar to what game testers might face – Limited resources [the equipment you bring with you], time constraints [Air supply], rules to follow (rate of decent/ascent) and other surprises (unexpected [...]]]></description>
			<content:encoded><![CDATA[<p>What is bad thing in Game testing ? Choose to Panic! Have you experienced Scuba diving or snorkeling?! Scuba divers put themselves in a situation similar to what game testers might face – Limited resources [the equipment you bring with you], time constraints [Air supply], rules to follow (rate of decent/ascent) and other surprises (unexpected sea visitors). Sometimes we may even be asked to accomplish something which we never done before, such as achieve 100% automation of the installation tests, or write a tool to verify the foreign language text in the game. Maybe no one has ever done this before. If you are not ready for a variety of test assignments and don’t have the skills needed to perform them successfully, then you will stumble rather than star. Study, practice, and experience are ingredients for good preparation. During the course of the project, try to get to know more about the game code. Keep up with the industry so you are also aware of what the next generation of games and technologies will be like. Become an expert in the requirements and designs for the parts of the game you are responsible for testing.</p>
<p>Computer games take from one to three years to develop (depending on scale). Testing begins late in the development process, sometimes from halfway to 75% into development (it starts so late because, until then, there is little to nothing to play or test). Testers get new builds from the developers on a schedule (daily/weekly) and each version must be uniquely identified in order to map errors to versions.</p>
<p><a href="http://blogs.sierraatlantic.com/wp-content/uploads/2010/08/Game-testing.png"><img class="size-medium wp-image-242 alignleft" title="Game testing" src="http://blogs.sierraatlantic.com/wp-content/uploads/2010/08/Game-testing-300x202.png" alt="" width="300" height="202" /></a></p>
<p>Once the testers get a version, they begin playing the game. Testers must carefully note any errors they uncover. These may range from bugs to art glitches to logic errors and level bugs. Some bugs are easy to document but many are hard to describe and may take several paragraphs to describe so a developer can replicate or find the bug. On a large-scale game with numerous testers, a tester must first determine whether the bug has already been reported before they can log the bugs themselves. Once a bug has been reported as fixed, the tester has to go back and verify that the fix works &#8211; and occasionally return to verify that is has not reappeared.</p>
<p><strong><span style="text-decoration: underline;">Evaluation of game rules:</span></strong> Game rules adequately explain operation of all components of the game including features, free games etc. Consistency with game rules and pay tables</p>
<p><strong><span style="text-decoration: underline;">UI and Functional test:</span></strong> Games outcome and data are correctly shown when games are played. Intermediate and final game outcomes are displayed for a reasonable time.</p>
<p><strong><span style="text-decoration: underline;">Verification the Integration points:</span></strong> Game win determination aligns with game rules.</p>
<p><strong><span style="text-decoration: underline;">Reviewing gaming procedures:</span></strong> procedures will be reviewed by System management, player account management, tournaments and promotions.</p>
<p><strong><span style="text-decoration: underline;">Infrastructure and security review:</span></strong> Secure and reliable operation for example time synchronization and OS reliability and security</p>
<p><strong>You can follow few tips </strong></p>
<ul>
<li> Need to identify the algorithm from Source code to identify issues</li>
<li>RNG seeding checked in source code.</li>
<li> Need to verify the source code appropriate use of random numbers, error handling, no unused variable etc&#8230;</li>
<li> Need to verify the RNG mapping to make sure the output of game symbols, cards &amp; other outcomes</li>
<li> Need to test validate and evaluate the game predefined rules and its consistency</li>
<li> Need to Make sure the indecent or offensive content/material display</li>
<li> Irrespective of Single/Multi player games we need to validate bandwidth and client software.</li>
<li>Reports need to validated with data accuracy Different date and time format, larger win, total money played, total no. of games etc.</li>
<li>Infrastructure plays a vital role need to verify the network architecture and device configuration, OS reliability &amp; security. Need to verify the gaming procedures with change control mechanism, game management and player management.</li>
</ul>
<p>Keep all these tips and regardless of background experience in game programming and testing, anyone can become a game tester successfully.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/08/games-testing-simple-tips-to-get-you-started-with-a-bang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rendering Games On The Cloud</title>
		<link>http://blogs.sierraatlantic.com/2010/07/rendering-games-on-the-cloud/</link>
		<comments>http://blogs.sierraatlantic.com/2010/07/rendering-games-on-the-cloud/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 19:54:55 +0000</pubDate>
		<dc:creator>Chaitanya Munjuluri</dc:creator>
				<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=157</guid>
		<description><![CDATA[Rendering on the cloud is a new concept that has seem some exposure in the recent months. This is my take on what are the possibilities when these services get widely adopted.]]></description>
			<content:encoded><![CDATA[<p>Isn&#8217;t this an interesting idea? Render games on the cloud and stream them, in real time, to the clients. Come to think of it, this is quite similar to what Sun was talking about many years ago &#8211; &#8220;Network is the computer&#8221;. I like this concept where you can stick any game on the internet and it renders straight to the console @ hand.</p>
<p>Here&#8217;s my take on this:</p>
<p>- Perfrect for networking and online games. Think about the architectural possibilities now that all the client side and server side information is on the server &#8211; the cloud. Of course the client side now becomes a video decoder.</p>
<p>- 5 Mbps for an HDTV output is asking for a little too much. It is not always possible for everyone to have this sort of a connection consistently. I know for sure that South Korea, Japan and Singapore can march ahead in this area, especially in the wireless devices space.</p>
<p>- We will slowly be able to move away from a GPU+CPU architecture to one that is purely CPU (hmm or may just be GPU) architecture. Aren&#8217;t we tending towards software renderers here? Ray tracing, although years away, should become a natural progression.</p>
<p>- A more consistent &#8220;Minimum Requirements&#8221; spec for playing games.</p>
<p>- We definitely need to consider the possibility that having a vector graphics processor will lower bandwidth requirements.</p>
<p>- Fatter bills for data transfer <img src='http://blogs.sierraatlantic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I know for sure that this will not make consoles disappear but it will make PC gaming and mobile gaming obtain better market penetration. A few years ago Steam changed the way I played games. I hope a service like Gaikai or Onlive will also change the landscape.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/07/rendering-games-on-the-cloud/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Next Important Step In Game Dev</title>
		<link>http://blogs.sierraatlantic.com/2010/05/next-important-step-in-game-dev/</link>
		<comments>http://blogs.sierraatlantic.com/2010/05/next-important-step-in-game-dev/#comments</comments>
		<pubDate>Thu, 27 May 2010 22:04:43 +0000</pubDate>
		<dc:creator>Chaitanya Munjuluri</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Outsourced Product Development]]></category>

		<guid isPermaLink="false">http://blogs.sierraatlantic.com/?p=130</guid>
		<description><![CDATA[The last game that I had worked on (Magnacarta 2) taught me some valuable lessons in development and management. Since then I’ve been thinking about what would be the next most important step in video game development. In my opinion it is better tools. Better tools make people more efficient. That way they can concentrate [...]]]></description>
			<content:encoded><![CDATA[<p>The last game that I had worked on (Magnacarta 2) taught me some valuable lessons in development and management. Since then I’ve been thinking about what would be the next most important step in video game development. In my opinion it is better tools.</p>
<p>Better tools make people more efficient. That way they can concentrate on making a better quality game instead of fighting to meet the deadlines.  To make this work one needs to slowly chip away at the hurdles that slow the pace of development.</p>
<p>Programmers already have a wide array of tools at their disposal and the tools are getting better. Compilers are getting better so are machines and the processors. Profilers significantly improved over the generations for both consoles and for the PC. Multi threading however is an area that needs significant bump in the tools.  I also think that a different language that supports threading as a core paradigm is better fit than C++. Of course thread profilers and threading libraries (Boost, TBB from Intel) are of great help, especially when combined with some of the design patterns that play well with threading (ex: Producer consumer, command pattern).</p>
<p>Artists, who compose at least half the development team, definitely need better tools. We need tools that revolutionise the way art is generated. The areas where I see significant improvements in the tools are:</p>
<p>1)      Procedural content generation – Great if we want to reduce the time to generate the content, reduce the size of the game (think downloadable content). The 64K competition is definitely a trailblazer in this segment</p>
<p>2)      Gameplay logic – Wouldn’t it be better if the gameplay designer could just create his own gameplay in the game inside of trying to convince a programmer and the team? I am talking about Kismet (Unreal Engine 3)</p>
<p>3)      Lip sync – It is time that we don’t have lip flapping and see good lip syncing especially for non English languages</p>
<p>4)      Automation tools – Tools that will give the artists an early red flag when content they add to a level causes a drop in the frame rate or pushes the memory limits over the boundaries</p>
<p>It is important to understand that a majority of the tools, including the level editor and modeling software are useful for both programmers and artists. Improving these will definitely make things better for artists and for programmers.</p>
<p>I can dream of a day when character rigging happens procedurally but for the next five years, I hope to see and build a lot more of these tools. Tools for creating content have been improving ever since humans desired to create art. From the cave paintings and the crop circles all the way to today’s video games and movies, they show an improvement in the kind of content we create. It thus makes me believe that improving the tool chain opens up new avenues for creating art.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.sierraatlantic.com/2010/05/next-important-step-in-game-dev/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

