Monday, October 7, 2013

October 2013: Story Frameworks

Recently, game developer Kaolin Fire posed this question in the Game Writers Facebook group:
Do you think there's value in adding a story to a dead-simple puzzle/arcade game (a la Tetris)? If so, where/how would you put it? An optional menu link? A "joining our intrepid adventurer" before the game starts that's skippable? Maybe just in advertising copy/the game description?
To which Altug Isigan responded:
If you have a strategic system that frames the tactical gameplay, then you have already something that functions similar to the frame story technique. İmagine that after every round of Tetris you gain a Tetris token which you use to complete a puzzle, lets say building sort of a key that lets you escape from the Tetris universe. In that sense, many games tend to use multi-layered gameplay architectures in order to achieve a frame story effect. 
I've played several casual games where the story seems to be sandwiched between some gameplay.  Or seemed somewhat ludicrous. 
  • What kind of techniques do you have for stories in casual puzzle games? 
  •  Do these stories feel fulfilling to you?  
  • What's the best way to tackle this issue?
Kaolin Fire is VP of product development at Blindsight. He's been developing software independently since the days of DOOR games, not counting hours entering machine code from the back of COMPUTE!'s Gazette. He's had fiction and poetry published in Strange Horizons, Crossed Genres, and Murky Depths, among others; has taught computer science at high school and college levels; dabbles in cover art and cover design; and obsesses about the human brain.

Altug Isigan is a scholar at the Eastern Mediterranean University, Department of Radio-TV and Film, in sunny Famagusta, Cyprus, where he is writing a dissertation on narrative in games. You can read more of his work at his blog, the Ludosphere. 

Sande Chen is a writer and game designer whose work has spanned 10 years in the industry. Her credits include 1999 IGF winner Terminus, 2007 PC RPG of the Year The Witcher, and Wizard 101. She is one of the founding members of the IGDA Game Design SIG.

Wednesday, October 2, 2013

Is HTML5 Ready for Prime Time? (Part II)

In Part I, game developers Raymond Jacobs and Tom Novelli take a look at HTML5's capabilities and dispel common misconceptions about JavaScript.  In Part II, they propose a solution to HTML5's nightmarish audio problems.

Audio

So I’m gonna come right out and say it, audio in HTML5 sucks. There is no reason to dance around the issue. Before I go any further, let me assure you, you can get a decent audio experience in HTML5, but here are some issues you’ll face:
  • Audio format issues: 
Certain browsers can only play certain audio formats, this means you will have to deploy at least two audio formats (currently .mp3 and .ogg). Blame software patents.
  • Bad Information: 
There is an API to ask a browser what kind of audio formats it can play; sadly this API is horrible with such decoder support responses as “maybe”. Across the myriad of browsers, we’ve also found the API to outright lie about what it can and can't support.
  • Cruddy Implementations: 
Some browsers, even though they swear they can play a format; their decoder/stream implementations are just broken. High start latencies, bad audio quality, incorrect timing. Some browsers (or operating systems) seem to implement the bare minimum just so they can say they support a format.
  • High start latency: 
If you load a sound file via http and hit play, by the time the sound has downloaded the moment has passed. This is okay for background music, but it's unacceptable for sound effects action games.
This all sounds really hard!

Audio is the #1 problem with HTML5 today; thankfully a lot of smart people have come together, and technology is emerging that makes HTML5 audio at least functional, if not feature-rich.

Audio Sprites to the rescue!

Just as the Atlas is a 2D packing solution for images, to reduce loads of http calls and nominal overhead; the Audio Sprite is a 1D solution for sounds. We took our lead from the ground work done by Remy Sharp. The basic idea is that you pack your sound effects into a single audio file, with a half-second of padding (silence) between each sound to allow for timing irregularities. An accompanying .json file lists all of the files contained in the audio sprite, and their start and end positions.

With audio sprites, you only need to convert one file to ogg and mp3, and you only need one http request to download it.
  • Latency b-gone! 
The main benefit of having one large sound file is that we avoid streaming issues with small audio files. The browser preloads the single audio file, then seeks to the beginning of each sound effect when called for, with minimal latency. Our only issue is that we need to monitor and stop the stream after the sound ends but before the next one begins.
  • “What about bad format detection?” 
This is still somewhat of an issue; we’ve found that you can favor MP3 and get coverage on most browsers; but at the time of writing it would not be a bad idea to include an MP3-or-OGG setting in your options menu. Also, make sure you're doing it right; a lot of people cut corners in format detection.
  • “This all sounds like a bit much to handle!” 
Yeah it’s a pain; it took us weeks to develop the necessary tools and tricks. If you’ve got a project in the works and need some help, drop us a line at this e-mail.
By the way, there is hope. Most web browsers already support the new Opus format and/or the spiffy new OpenAL-based WebAudio API. It's probably just a matter of time before they all do.

Raymond Jacobs is the driving force behind Ethereal Darkness Interactive (EDIGames), a western Massachusetts indie developer focused on the Action/RPG genre. Their most notable game is Morning’s Wrath, a fantasy RPG released in 2005. 

Tom Novelli is a game developer and musician in western Massachusetts. He is currently porting Morning's Wrath to HTML5.

Wednesday, September 18, 2013

Is HTML5 Ready for Prime Time? (Part I)

In Part I of this article, game developers Raymond Jacobs and Tom Novelli take a look at HTML5's capabilities and dispel common misconceptions about JavaScript.

I will make the assumption that you, the reader, have already come to the conclusion that writing a game in a single language and releasing it on multiple platforms without porting or even recompiling is a benefit to your business, through greater visibility and empowering the player.

There has been a lot of misinformation floating around the web concerning HTML5. The most important question is, “Is HTML5 ready for prime time?”

The short answer is yes, you can write polished games in HTML5 and have them run across a myriad of browsers, platforms and devices with consistent results.

The longer answer - the subject of this article - is that HTML5 is still young, and there are real-world pitfalls which should be avoided whenever possible.

Beyond the Buzzword

So when we’re talking about HTML5, what we really mean is Javascript (JS) coupled with graphics and interactive APIs exposed to JS by the browser. Like any mature technology, Javascript comes with its own set of dogma and misinformation.

Here is a short list of common misconceptions:
  • "Javascript is slow!"
This was true until the browser makers started pouring R&D into JS optimization, circa 2005. Nowadays, according to this list, it's generally the fastest dynamic language - on par with static languages Java and C#, and only about half the speed of native-compiled C. That's not bad - it's awesome.
  • "Javascript doesn’t have classes!"
We hear this one a lot, and it just isn’t true; the prototypal inhertiance in JS delivers all the basic OO features you’d want in a game: member variables; member functions; sub-classing; static members; polymorphism; reflection; function/constructor overloading; type identification (instanceof).
Check out the object-oriented section of Tom Novelli’s JS reference for more information.
  • "Javascript isn’t secure because it isn’t compiled!"
The use of minification and obfuscation (if reflection isn't needed), turning your code into a whitespaceless, commentless heap of nonsense to the human eye is as effective as native code compilation. Remember, anything run on the client, be it Javascript, Java or C++ is not secure, and obscurity is not security.
  • "Javascript isn't a real programming language!"
This is just silly; look at http://en.wikipedia.org/wiki/ECMAScript. From a language design perspective, Javascript is pretty nice. It's a pared-down version of Scheme Lisp with a C-like syntax and Smalltalk-style prototypal objects.
By the way, the next version of Javascript - ES6 - is going to be sweet.


***

Now that we’ve addressed some dogma concerning Javascript, let’s talk about HTML5. HTML5 simply adds to the existing HTML specification we all know and love, and as game developers we only really care about a few choice bits. So here are some exciting things you can use today with HTML5, and some pitfalls.

Canvas

It’s the feature we’ve all heard about concerning games in HTML5. The Canvas creates a 2D drawing space on your web page. You can control the frame buffer size (pixel width and height) and set the screen size of the canvas element; it will automatically stretch or shrink the buffer to the element size. You can even create off-screen canvases and copy one canvas to another, giving the potential for powerful effects and/or performance enhancements.

With a simple setInterval timer (or better yet, the requestAnimationFrame API) and a canvas, you’re ready to start drawing things in less time it would take to install a typical IDE.

“Pitfalls!” 

Besides blitting bitmap images at lightning speed, canvas includes a robust API (based on PostScript) for geometric lines and fills, and rudimentary text rendering facilities; use these sparingly however, as they tend to sap frame-rate.

Also, canvas likes to draw from a small number of source images and would prefer that you keep your drawImage calls down (this is probably a reality of underlying drivers/API which are 3D in nature). So, atlas those tiny images (you’ll want to anyway to reduce http load calls), and use offscreen canvases to cache unchanging parts of the scene (turn those 6400 drawn tiles into a single drawImage call).

Raymond Jacobs is the driving force behind Ethereal Darkness Interactive (EDIGames), a western Massachusetts indie developer focused on the Action/RPG genre. Their most notable game is Morning’s Wrath, a fantasy RPG released in 2005. 

Tom Novelli is a game developer and musician in western Massachusetts. He is currently porting Morning's Wrath to HTML5.

Wednesday, September 11, 2013

Left Hand Meet Right Hand: Advantages of Distributed Development and Work from Home (Part III)

In Part I, developer Judy Tyrer discusses the disadvantages and disruption caused by mandatory colocation. In Part II, she demonstrates how distributed development can be more productive but cautions that team building is still necessary. In Part III, she lists the benefits of working from home in a distributed development environment.

Work From Home

Studies have shown an increase in productivity when workers are allowed to work from home. One reason for this is how people view their time. When a person is in an office, they view all the time in the office as time worked. This includes gabbing with co-workers, playing ping-pong, mid-day power walks, etc. When people work from home, the only time they view themselves as working is time actually spent working. Breaks to do the dishes, take the dog for a walk, etc. are not considered work time.

Working from home also helps reduce the person's carbon footprint, unless they are the rare individual that commutes by bike or walks. For companies in urban areas such as Los Angeles, where programs to discourage individual commuting are in place, this improves the company's score card. Commuting can also take up to 3 hours of a person’s day. Those hours can be split between the developer’s personal life and the work with gains in each.

Working from home allows parents to be more involved in their families and less dependent on outside care takers. The result is less time spent making arrangement for the children while at work, less anxiety on the part of the parent, and a result in higher concentration and higher quality of work.

Innovation

But what about Ms. Myers’ assertion that people need to be in the same office to innovate? As I know of no studies verifying or denying her hypothesis I will address it with questions about innovation rather than with data.

How much innovation is needed?

Does every single employee at a company need to innovate? Do you want your build system to be innovative or would you prefer a tried and true system that has been doing its job for 10 years. Do you want innovative accountants thinking outside the box on your tax returns? I contest the idea that everyone in the company needs to be innovative.

Do we have to be in the same room to innovate?

Often meetings where brain-storming and innovation take place are dominated by the same loud voices. When one or more members of a team are dominant, others are often quiet and their input gets lost in the noise. While this can also happen in on-line meetings, the ability to type text into a chat field during the meeting allows people who may not be as verbally assertive to still ensure their input makes it into the meeting without having to develop skills in interrupting others. And the record of the meeting allows review which can facilitate greater innovation.

Do we want to innovate for the sake of innovation?

Innovation is the hot new buzzword. But is innovation for its own sake necessarily desirable. Just because no one has ever made an FPS where bullets travel a player defined path rather than a physics defined trajectory does not mean that particular innovation will increase sales, provide a better experience or is in any way a good idea.

Benefits versus Risks

The risks for developers in a distributed model mostly fall on the shoulders of middle management as it requires more than just showing up at the office and delegating tasks. Managers have to be willing to work with their team based on work results alone. No more can a manager say “if I don’t see you working, you’re not working” (a fairly ridiculous assertion in a creative medium as dependent on inspiration as on hard work). The manger must actually look at and evaluate the work of the employees and this takes time.

In addition, since managers don’t casually pass their employees, often giving them the illusion they are aware of what that person is doing, in a distributed environment managers must actually schedule time to sit down with their direct reports. Having worked for 2.5 years at one studio before ever receiving feedback from my manager other than a yearly raise, the value of regular meetings with direct reports cannot be over-stated. Managers and direct reports need to communicate regularly. The processes necessary for a distributed team are those which would help all teams, but the distributed nature of the work requires those processes be in place and be followed.

The benefits to allowing work from home can also be found in talent retention. Better communication, autonomy over work environment, and being judged by the quality of your work and not arbitrary measures are all benefits that help talent remain satisfied with their position. And while all of these can happen in a single location, they can also be easily overlooked in such an environment. Distributed development, when it works, puts these things as top priorities and they become integrated into the corporate culture for the benefit of all.  

Judy Tyrer began in serious games with PLATO in the late 1970s, moved into distributed operating systems and enterprise software before rejoining the game industry in 2005. She worked for Ubisoft, Sony Online Entertainment and Linden Lab before branching out to start her own studio, 3 Turn Productions LLC which is coming out with the virtual world of Jane Austen for Kickstarter this summer.

Friday, September 6, 2013

September 2013: Teaching Game Design

Hello! 

Two weeks ago, I presented, "What's in a Name? Serious Games vs Gamification" at the Serious Play Conference, held at DigiPen, a college focused on game development.  At the conference, there were numerous presentations on how to use games to educate children in topics such as math, science, and history.  Dr. James Rosser, Jr.spoke about how video games could improve the skills of laparoscopic surgeons while Professor Mihaly Csikszentmihalyi unveiled an application to help managers facilitate flow states for employees.  The research indicated that companies actually make a profit while employees achieve flow!

During my time there, I did get to talk to an instructor at DigiPen.  There was not much discussion about teaching game development at the conference, although Lee Sheldon's book, The Multiplayer Classroom: Designing Coursework as a Game did come up during my Q&A period.

When I went to college, there weren't schools like DigiPen dedicated to game development.  Now, it's not odd to see game design offered in various departments, in colleges big and small.  I noticed that while GDAM has covered Game-Based Learning and Game Designer Skills, we have never had  a topic about teaching game design.

As it is the month children traditionally head back to school after the summer break, I think it's fitting that September 2013's topic is Teaching Game Design.

I invite readers to submit an article on this topic. Please read the submission guidelines first. Thanks!

Thursday, August 29, 2013

Left Hand Meet Right Hand: Advantages of Distributed Development and Work from Home (Part II)

In Part I, developer Judy Tyrer discusses the disadvantages and disruption caused by mandatory colocation. In Part II, she demonstrates how distributed development can be more productive but cautions that team building is still necessary.

Making Distributed Development Work

Communication Becomes Top Priority

I doubt anyone will argue that if two people need to collaborate, it is much easier if they are in the same room. But how many times in game development is collaboration limited to two people? Entire teams are collaborating. And while entire teams can be brought into a meeting in the same location, the dynamic instantly changes. There is more discussion. And there is more opportunity for communication failures. Here are some examples:
  1. A meeting is called for 10 minutes from now. The entire team attends, except Bob, who is the only back-end developer on the team. Bob is at the dentist. They make a decision for a new interface. No one tells Bob. Bob continues working on the back-end based on previous assumptions. A month goes by before anyone discovers the problem and a month of development time is lost.
  2. Carol and Alice meet in the hallway to discuss a problem with the controllers. They decide to tweak an algorithm to fix the problem. They don’t realize that the algorithm used for the controllers is also used for AI. When they check in the fix to the controllers, they break AI movement.
  3. The art team is gathered around a monitor to view the latest models. Stan is in the back and can’t see the entire screen. The art director points out an area where there needs to be some work but Stan doesn’t see the entire piece and while he thinks he understands the direction he’s being asked to go, he’s not correct because he missed a critical element.
When the team is distributed across multiple locations and time zones, then how the team communicates becomes a top priority. No one can assume everyone is available for a meeting in 10 minutes; therefore any meeting has to go into the calendar where it would be obvious to everyone that Bob was at the dentist. The meeting would have been held when Bob was available.

Alice and Carol would not have been in the hallway, they’d have met in IRC chat where the entire team would be able to watch the conversation and the AI developer could have pointed out the problem at design time. And Stan would not be huddled around a monitor trying to see around others, but would have the screen he was supposed to be looking at shared on his computer so he can see it clearly.

None of the three meetings in the examples have a record of what has transpired. The tools used in distributed development in some cases automatically record the meeting and in others lend themselves to easy documentation. IRC automatically logs chats. In Skype meetings at Linden Lab there were usually side bars in chat along with the conversation in voice. This allowed everyone to more easily insert their opinions without interrupting and provided a chat log of what was being discussed. Screen shares can also be captured. All of this documentation becomes available to those at the meeting, to ensure everyone understood and also to those who could not attend so that they can quickly get up to speed on any changes. This is invaluable when bringing new people into a project.

Team Building

Having the right tools does not solve problems with attitudes. While people all in the same office can also get into cliquish behavior, when teams are distributed as teams rather than as individuals an “us v them” mentality can easily slip into the culture. This kind of attitude requires management intervention and needs to be aggressively addressed. Team building exercises are critical. Video cameras to bring the people more directly into the room in meetings help, but so do meetings that are just for team building. And if you can meet in a virtual world as avatars that adds a uniquely wonderful touch, particularly when your boss wears a brown paper bag on his head or the CEO is a rocketship. My personal favorite will always be the bloody meat cleaver wielding tiny fairy with the bass voice of one of the rendering devs.

 Judy Tyrer began in serious games with PLATO in the late 1970s, moved into distributed operating systems and enterprise software before rejoining the game industry in 2005. She worked for Ubisoft, Sony Online Entertainment and Linden Lab before branching out to start her own studio, 3 Turn Productions LLC which is coming out with the virtual world of Jane Austen for Kickstarter this summer.

Thursday, August 22, 2013

Left Hand Meet Right Hand: Advantages of Distributed Development and Work from Home (Part I)

In Part I of this article, developer Judy Tyrer discusses the disadvantages and disruption caused by mandatory colocation.

Marissa Meyers recently made headlines with the call for all Yahoo! employees to return to the office. She has dismissed studies of improved productivity when people are allowed to work from home and asserts, instead, that colocation of people is required for innovation. While Yahoo is in the unique position of a company trying to turn itself around, many will be watching to see whether this proves to be a successful move.

The game industry is not Yahoo!, however, and before we jump on board to adapt Ms. Meyers' theories, we need to first examine the cost of having all developers in a single location to the industry as a whole. .

Disadvantages of Colocating 

Personnel Costs of Relocation

IGN reported 20 studios closed in 2012. In addition, it reports 35 incidents of smaller studio closures or significant lay-offs. Speaking from personal experience, I saw one RIF (reduction in force) and one studio closing within a 1 year period resulting in 2 cross-country moves within that same year. Psychologists list the stress of moving as the most significant stressor short of losing a loved one. It is not only disruptive for the employee, but for the entire family. In two-career homes, it leads to arguments over whose career takes precedent. Some careers are only available in limited geographic locations forcing the game developing spouse to stop developing games or forcing the spouse with limited geographic options to forgo their career. When children are involved, it removes them from their schools and friends. For high school students, this can mean having to take extra courses and summer school since standards are local. For example, my son could not count ROTC as his PE requirement when moving to a school that did not have ROTC and would require an additional year of high school to meet that requirement alone. .

Limited Talent Pool 

Thousands of young people fresh out of school are trying to enter the game industry. However, with the Quality-of-Life issues rampant in the industry, we find a shrinking pool of experienced developers. People who start families begin to rethink 12/7 work weeks and leave the industry for a saner lifestyle. According to the most recent IGDA QOL Survey, 74.4% of respondents had less than 8 years of industry experience. The average age of developers was only 31.22 years and 76.9% of respondents have no children. .

If you draw a correlation between the age of developers and their child-free status with the exodus of developers with greater than 7 years’ experience, the logical conclusion is that this industry needs to become friendlier to older developers with children. One way to grow the experienced developer pool of talent is to look beyond the confines of local studios. Experienced developers live in the all the major game hubs, but many are settled in those locations and experienced enough they don’t need to leave for a good job. So a studio seeking top talent will expand its talent pool for developers if relocation is not a requirement..

The Bottom Line 

Next to hardware for server farms, salaries and benefits are the largest expense for a game studio. The more expensive the location of the studio, the higher salaries required. The difference for a developer in Denver and in San Francisco is 55%. So a $50K developer in Denver will cost $77,500 in San Francisco. And yet your game does not sell for 55% more in San Francisco than in Denver. It sells for exactly the same amount. From a simple bottom line perspective, it makes more sense to hire the developer in Denver..

Judy Tyrer began in serious games with PLATO in the late 1970s, moved into distributed operating systems and enterprise software before rejoining the game industry in 2005. She worked for Ubisoft, Sony Online Entertainment and Linden Lab before branching out to start her own studio, 3 Turn Productions LLC which is coming out with the virtual world of Jane Austen for Kickstarter this summer.