Welcome!

Open Source Cloud Authors: Derek Weeks, Pat Romanski, XebiaLabs Blog, Elizabeth White, Yeshim Deniz

Related Topics: Open Source Cloud

Open Source Cloud: Article

The Challenges of Developing Games & Other High-Resolution Graphics

Developing technical and process improvement strategies

Technical Solutions
Standard industry best-practices were able to help game developers prevent and detect many errors that C/C++ developers commonly encounter. Practices such as coding standard enforcement, unit testing, runtime error detection, and regression testing help the developers - ranging from inexperienced to expert - produce better code. With these practices, many errors are prevented, and the errors that were introduced are rooted out as early as possible - when they are fastest, easiest, and cheapest to fix.

Considering the tight timelines that are characteristic of the gaming industry, it is critical that attempts to improve quality do not impact the gaming developers' already busy schedule or disrupt the creativity that is critical to keeping ahead of competitors. That's why it's critical to automate these practices. For minimal disruption, the practices are configured to run behind the scenes - for instance, overnight, as part of an automated build process - then alert developers only if a problem is found. Much testing can be done without user intervention, by scanning the code and executing it with automatically-generated test cases. Of course, the more effort developers put into the testing, the greater benefit they get out of it. For instance, to improve code coverage, developers could analyze the coverage achieved by automatically-generated unit tests, then extend these tests to cover a larger percentage of the code and/or to verify specific functionality requirements.

Automating the implementation of these key industry practices helps the gaming developers overcome many of the challenges associated with producing top-quality software in a high-pressure environment and working on teams that have many inexperienced developers. However, it does not help them with one of their toughest tasks: correctly interacting with graphics libraries.

As I mentioned earlier, there are two main graphics libraries used by game developers and other developers creating high-resolution graphics: OpenGL and DirectX. OpenGL, introduced by SGI in 1992, is the most widely-used and supported interface for realistic 2-D and 3-D high-resolution graphics. It is an open, vendor-neutral graphics standard that works on a wide variety of platforms, including Linux. DirectX is a group of technologies for running and displaying multimedia applications on Microsoft Windows and Xbox. We found that the best way to prevent errors related to library misuse was to customize the coding standards analysis practice and technologies to automatically check OpenGL and DirectX rules as well as the standard C/C++ rules. The basic set of rules, based on the guidelines set forth in the libraries' specifications, includes over 30 rules for avoiding pitfalls with OpenGL and DirectX API development. DirectX rules checked include:

  • Use the macros SUCCEEDED() and FAILED() to check if a DirectX function has failed
  • Include stdafx.h at the beginning of the file
  • Use D3DVALUE instead of float
  • Effects should be closed (End()) in the reverse order in which they were opened (Begin())
  • Use Pass() between Begin() and End()
  • Don't call other functions in the same line as a Begin call
  • Don't call other functions in the same line as an End call
  • Don't change Effect ::Technique between Begin() and End(); call End() first
  • Don't use #include more than 10 times
  • Use an equal number of lock calls and unlock calls
  • Don't use exclusive mode
  • Don't call BeginScene() twice without first calling EndScene()
OpenGL rules checked include:
  • Use the appropriate number and order of "Begin" and "End" functions calls
  • Use the appropriate number and order of "NewList" and "EndList" functions calls
  • Use GL commands between a Begin/End pair
  • Use GL commands between a NewList/EndList pair
  • Don't use designated functions in Begin/End blocks
  • Don't use designated functions in NewList/EndList blocks
  • Don't use designated functions outside Begin/End blocks
  • Don't use an End block without a Begin in each NewList/EndList block
  • Don't use forbidden bracket commands between a Begin/End pair
  • Don't use forbidden bracket commands between a NewList//EndList pair
  • Use only GL functions between every Begin/End block
  • After every Begin(GL_LINES), use the count of "vertex" function calls divided by 2
  • After every Begin(GL_TRIANGLES), use the count of "vertex" function calls divided by 3
  • After every Begin(GL_QUADS), use the count of "vertex" function calls divided by 4
  • After every Begin(GL_POLYGON), use more than 4 vertexes
  • Don't use the function ÔLoadMatrix' to initialize a matrix
  • Don't use the function ÔMultMatrix' to change a matrix
  • Don't use negative vertex and texture coordinates
  • Don't use more than one GL command in a single line
  • Don't use more than five levels of functions calls
This set of rules can be extended with rules that check additional guidelines, such as the guidelines for avoiding Open GL pitfalls described in Mark Kligard's "Avoiding 16 OpenGL Pitfalls (www.opengl.org/resources/features/KilgardTechniques/oglpitfall/), as well as guidelines in the growing set of resources for these libraries. Most gaming developers are aware of these guidelines. However, due to the extreme working conditions and time constraints mentioned earlier, they sometimes make mistakes and they simply don't have the time to verify that the guidelines are followed.

In addition, we provided the game development organization with a technology that allowed them to design and check custom rules that verify compliance with additional guidelines. These custom rules could be used to check additional OpenGL or DirectX guidelines that the team decides are helpful, check guidelines for custom graphics libraries, and check additional requirements unique to their organization, technologies, projects, etc.

Process Improvement Solutions
Truly implementing a practice in a team requires not just the appropriate tools, but also the team culture, workflow, and supporting infrastructure required to embed the practice into the team's development process.Teams that attempt to implement practices with tools alone typically do not achieve the expected quality improvement benefits. For instance, assume that a team tries to implement the coding standards enforcement practice by only purchasing a coding standards enforcement tool and asking each developer to use that tool. Over time, it's likely that most of the coding standard violations will remain in the code. Why? Without additional team-wide support for the coding standards enforcement practice, developers typically become overwhelmed by the number of problems reported and do not know how to approach them. The tool helps the team members recognize the faults in their code, but if the developers do not have the necessary support, the faults remain and the code quality does not significantly improve.

The Parasoft AEP Methodology details one strategy for embedding best-practices into a team's development process. In a nutshell, the AEP Methodology is a new methodology for improving software quality and increasing the efficiency of a team's software development lifecycle. It is based on the AEP Concept, which is essentially to learn from your own mistakes and the mistakes of others, and then automatically apply that knowledge in the software lifecycle to make software work. The basic principles of the AEP methodology are:

  1. Apply industry best-practices to prevent common errors and establish a foundation for full-lifecycle error prevention.
  2. Modify practices as needed to prevent unique errors.
  3. Ensure that each group implements AEP correctly and consistently.
    a. Introduce AEP on a group-by-group basis.
    b. Ensure that each group has an appropriate supporting infrastructure.
    c. Implement a group workflow that ensures error prevention practices are performed appropriately.
  4. Phase in each practice incrementally.
  5. Use statistics to stabilize each process, and then make it capable.
For a detailed discussion of how this methodology works, see http://www.parasoft.com.

By applying the previously mentioned best-practices within the AEP methodology, gaming development organizations gain the following benefits:

  • Higher quality: Fewer errors are introduced into the code, and introduced errors are identified and fixed early in the cycle (when fixing them is generally less difficult, time-consuming, and costly).
  • Fewer schedule slips, faster time to release: Because of the improved error prevention and error detection, less time is required for end-of-cycle debugging, and games are more likely to pass the independent validation in the first attempt.
  • Easier, faster software updates: Team code reflects a standard style, not individual preferences, and meets a predetermined quality standard. When an organization wants to enhance or extend popular game, misunderstandings/buried errors don't impede the process.
  • More proactive management: Increased visibility into code quality, test scope, project readiness, and team productivity helps management identify problems as they arise and start resolving them as soon as possible.
Learning From the Game Development Industry
Even if you're not one of the relatively few developers working on games for Linux, you can still benefit from the lessons we learned by working with gaming organizations.

There is a growing tendency to use Linux for high-resolution graphic development, which shares many of the same challenges as game development. As many industries working on high-resolution graphics are looking to move from SGI systems, they are finding that porting legacy code to Linux is much faster and cost-effective than porting it to Windows. Linux is already emerging as the platform of choice for developing and running graphical work for animation projects (including major projects at DreamWorks, Pixar, and Sony Pictures), special effects, and film production. In addition, Linux is becoming a popular operating system for other high-resolution graphics applications, such as computer aided design, medical devices, and geographical imaging systems.

Developers in these industries face many of the same challenges as developers in the gaming industry. For instance, developers working on high resolution graphics in any of these industries are all too familiar with crazy deadlines, long hours, low tolerance for graphical errors or other errors, and the need to master standard graphics libraries (for Linux, OpenGL) and/or custom graphics libraries.

Consequently, the same technical solutions and process improvement solutions that help developers in the gaming industry can help developers working on other high-resolution graphic projects - or even in other industries with similar pressures and development environments. The automation of practices such as coding standards analysis, unit testing, runtime error detection, and regression testing helps ensure that common coding problems don't delay intense production schedules. To verify compliance with guidelines for standard graphical libraries, guidelines for other technologies that the application interacts with, and unique organizational or project requirements, the coding standards analysis practice can be extended to check custom rules. And, to ensure that these practices become an enduring and seamless part of the development process, they can be implemented within the AEP framework.

More Stories By Wayne Ariola

Wayne Ariola is Vice President of Strategy and Corporate Development at Parasoft, a leading provider of integrated software development management, quality lifecycle management, and dev/test environment management solutions. He leverages customer input and fosters partnerships with industry leaders to ensure that Parasoft solutions continuously evolve to support the ever-changing complexities of real-world business processes and systems. Ariola has more than 15 years of strategic consulting experience within the technology and software development industries. He holds a BA from the University of California at Santa Barbara and an MBA from Indiana University.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
SYS-CON Events announced today that MobiDev, a client-oriented software development company, will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. MobiDev is a software company that develops and delivers turn-key mobile apps, websites, web services, and complex software systems for startups and enterprises. Since 2009 it has grown from a small group of passionate engineers and business...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
SYS-CON Events announced today that Dasher Technologies will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Dasher Technologies, Inc. ® is a premier IT solution provider that delivers expert technical resources along with trusted account executives to architect and deliver complete IT solutions and services to help our clients execute their goals, plans and objectives. Since 1999, we'v...
SYS-CON Events announced today that Ayehu will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Ayehu provides IT Process Automation & Orchestration solutions for IT and Security professionals to identify and resolve critical incidents and enable rapid containment, eradication, and recovery from cyber security breaches. Ayehu provides customers greater control over IT infrastructure thro...
SYS-CON Events announced today that Elastifile will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Elastifile Cloud File System (ECFS) is software-defined data infrastructure designed for seamless and efficient management of dynamic workloads across heterogeneous environments. Elastifile provides the architecture needed to optimize your hybrid cloud environment, by facilitating efficient...
SYS-CON Events announced today that Grape Up will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company specializing in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the U.S. and Europe, Grape Up works with a variety of customers from emergi...
SYS-CON Events announced today that Grape Up will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company specializing in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the U.S. and Europe, Grape Up works with a variety of customers from emergi...
SYS-CON Events announced today that Golden Gate University will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Since 1901, non-profit Golden Gate University (GGU) has been helping adults achieve their professional goals by providing high quality, practice-based undergraduate and graduate educational programs in law, taxation, business and related professions. Many of its courses are taug...
When shopping for a new data processing platform for IoT solutions, many development teams want to be able to test-drive options before making a choice. Yet when evaluating an IoT solution, it’s simply not feasible to do so at scale with physical devices. Building a sensor simulator is the next best choice; however, generating a realistic simulation at very high TPS with ease of configurability is a formidable challenge. When dealing with multiple application or transport protocols, you would be...
21st International Cloud Expo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Me...
Recently, WebRTC has a lot of eyes from market. The use cases of WebRTC are expanding - video chat, online education, online health care etc. Not only for human-to-human communication, but also IoT use cases such as machine to human use cases can be seen recently. One of the typical use-case is remote camera monitoring. With WebRTC, people can have interoperability and flexibility for deploying monitoring service. However, the benefit of WebRTC for IoT is not only its convenience and interopera...
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, will introduce two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a...
When shopping for a new data processing platform for IoT solutions, many development teams want to be able to test-drive options before making a choice. Yet when evaluating an IoT solution, it’s simply not feasible to do so at scale with physical devices. Building a sensor simulator is the next best choice; however, generating a realistic simulation at very high TPS with ease of configurability is a formidable challenge. When dealing with multiple application or transport protocols, you would be...
SYS-CON Events announced today that Secure Channels, a cybersecurity firm, will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Secure Channels, Inc. offers several products and solutions to its many clients, helping them protect critical data from being compromised and access to computer networks from the unauthorized. The company develops comprehensive data encryption security strategie...
SYS-CON Events announced today that App2Cloud will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. App2Cloud is an online Platform, specializing in migrating legacy applications to any Cloud Providers (AWS, Azure, Google Cloud).
WebRTC is the future of browser-to-browser communications, and continues to make inroads into the traditional, difficult, plug-in web communications world. The 6th WebRTC Summit continues our tradition of delivering the latest and greatest presentations within the world of WebRTC. Topics include voice calling, video chat, P2P file sharing, and use cases that have already leveraged the power and convenience of WebRTC.
Internet-of-Things discussions can end up either going down the consumer gadget rabbit hole or focused on the sort of data logging that industrial manufacturers have been doing forever. However, in fact, companies today are already using IoT data both to optimize their operational technology and to improve the experience of customer interactions in novel ways. In his session at @ThingsExpo, Gordon Haff, Red Hat Technology Evangelist, shared examples from a wide range of industries – including en...
Detecting internal user threats in the Big Data eco-system is challenging and cumbersome. Many organizations monitor internal usage of the Big Data eco-system using a set of alerts. This is not a scalable process given the increase in the number of alerts with the accelerating growth in data volume and user base. Organizations are increasingly leveraging machine learning to monitor only those data elements that are sensitive and critical, autonomously establish monitoring policies, and to detect...
To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. Jack Norris reviews best practices to show how companies develop, deploy, and dynamically update these applications and how this data-first...
Intelligent Automation is now one of the key business imperatives for CIOs and CISOs impacting all areas of business today. In his session at 21st Cloud Expo, Brian Boeggeman, VP Alliances & Partnerships at Ayehu, will talk about how business value is created and delivered through intelligent automation to today’s enterprises. The open ecosystem platform approach toward Intelligent Automation that Ayehu delivers to the market is core to enabling the creation of the self-driving enterprise.