|By Wayne Ariola||
|November 5, 2006 11:00 AM EST||
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()
- 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
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:
- Apply industry best-practices to prevent common errors and establish a foundation for full-lifecycle error prevention.
- Modify practices as needed to prevent unique errors.
- 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.
- Phase in each practice incrementally.
- Use statistics to stabilize each process, and then make it capable.
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.
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.
The IoT is changing the way enterprises conduct business. In his session at @ThingsExpo, Eric Hoffman, Vice President at EastBanc Technologies, discuss how businesses can gain an edge over competitors by empowering consumers to take control through IoT. We'll cite examples such as a Washington, D.C.-based sports club that leveraged IoT and the cloud to develop a comprehensive booking system. He'll also highlight how IoT can revitalize and restore outdated business models, making them profitable...
May. 29, 2016 02:00 PM EDT Reads: 2,955
The IoTs will challenge the status quo of how IT and development organizations operate. Or will it? Certainly the fog layer of IoT requires special insights about data ontology, security and transactional integrity. But the developmental challenges are the same: People, Process and Platform. In his session at @ThingsExpo, Craig Sproule, CEO of Metavine, will demonstrate how to move beyond today's coding paradigm and share the must-have mindsets for removing complexity from the development proc...
May. 29, 2016 01:00 PM EDT Reads: 1,976
Customer experience has become a competitive differentiator for companies, and it’s imperative that brands seamlessly connect the customer journey across all platforms. With the continued explosion of IoT, join us for a look at how to build a winning digital foundation in the connected era – today and in the future. In his session at @ThingsExpo, Chris Nguyen, Group Product Marketing Manager at Adobe, will discuss how to successfully leverage mobile, rapidly deploy content, capture real-time d...
May. 29, 2016 12:45 PM EDT Reads: 1,674
SYS-CON Events announced today that ContentMX, the marketing technology and services company with a singular mission to increase engagement and drive more conversations for enterprise, channel and SMB technology marketers, has been named “Sponsor & Exhibitor Lounge Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York City, New York. “CloudExpo is a great opportunity to start a conversation with new prospects, but what happens after the...
May. 29, 2016 10:30 AM EDT Reads: 1,301
What a difference a year makes. Organizations aren’t just talking about IoT possibilities, it is now baked into their core business strategy. With IoT, billions of devices generating data from different companies on different networks around the globe need to interact. From efficiency to better customer insights to completely new business models, IoT will turn traditional business models upside down. In the new customer-centric age, the key to success is delivering critical services and apps wit...
May. 29, 2016 10:30 AM EDT Reads: 1,271
Join us at Cloud Expo | @ThingsExpo 2016 – June 7-9 at the Javits Center in New York City and November 1-3 at the Santa Clara Convention Center in Santa Clara, CA – and deliver your unique message in a way that is striking and unforgettable by taking advantage of SYS-CON's unmatched high-impact, result-driven event / media packages.
May. 29, 2016 10:00 AM EDT Reads: 2,510
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, will provide an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life ...
May. 29, 2016 09:45 AM EDT Reads: 2,027
SYS-CON Events announced today that BMC Software has been named "Siver Sponsor" of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2015 at the Javits Center in New York, New York. BMC is a global leader in innovative software solutions that help businesses transform into digital enterprises for the ultimate competitive advantage. BMC Digital Enterprise Management is a set of innovative IT solutions designed to make digital business fast, seamless, and optimized from mainframe to mo...
May. 29, 2016 09:30 AM EDT Reads: 2,307
SYS-CON Events announced today that MobiDev will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. 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 managers to a full-scale mobile software company with over 200 develope...
May. 29, 2016 08:15 AM EDT Reads: 2,750
SoftLayer operates a global cloud infrastructure platform built for Internet scale. With a global footprint of data centers and network points of presence, SoftLayer provides infrastructure as a service to leading-edge customers ranging from Web startups to global enterprises. SoftLayer's modular architecture, full-featured API, and sophisticated automation provide unparalleled performance and control. Its flexible unified platform seamlessly spans physical and virtual devices linked via a world...
May. 29, 2016 07:00 AM EDT Reads: 2,304
SYS-CON Events announced today that Alert Logic, Inc., the leading provider of Security-as-a-Service solutions for the cloud, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Alert Logic, Inc., provides Security-as-a-Service for on-premises, cloud, and hybrid infrastructures, delivering deep security insight and continuous protection for customers at a lower cost than traditional security solutions. Ful...
May. 29, 2016 06:45 AM EDT Reads: 2,956
Companies can harness IoT and predictive analytics to sustain business continuity; predict and manage site performance during emergencies; minimize expensive reactive maintenance; and forecast equipment and maintenance budgets and expenditures. Providing cost-effective, uninterrupted service is challenging, particularly for organizations with geographically dispersed operations.
May. 29, 2016 06:00 AM EDT Reads: 2,175
As cloud and storage projections continue to rise, the number of organizations moving to the cloud is escalating and it is clear cloud storage is here to stay. However, is it secure? Data is the lifeblood for government entities, countries, cloud service providers and enterprises alike and losing or exposing that data can have disastrous results. There are new concepts for data storage on the horizon that will deliver secure solutions for storing and moving sensitive data around the world. ...
May. 29, 2016 06:00 AM EDT Reads: 1,355
SYS-CON Events announced today TechTarget has been named “Media Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY, and the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. TechTarget is the Web’s leading destination for serious technology buyers researching and making enterprise technology decisions. Its extensive global networ...
May. 29, 2016 05:15 AM EDT Reads: 3,274
SYS-CON Events announced today that Commvault, a global leader in enterprise data protection and information management, has been named “Bronze Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY, and the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Commvault is a leading provider of data protection and information management...
May. 29, 2016 04:30 AM EDT Reads: 3,255
SYS-CON Events announced today that MangoApps will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. MangoApps provides modern company intranets and team collaboration software, allowing workers to stay connected and productive from anywhere in the world and from any device. For more information, please visit https://www.mangoapps.com/.
May. 29, 2016 03:30 AM EDT Reads: 1,001
The essence of data analysis involves setting up data pipelines that consist of several operations that are chained together – starting from data collection, data quality checks, data integration, data analysis and data visualization (including the setting up of interaction paths in that visualization). In our opinion, the challenges stem from the technology diversity at each stage of the data pipeline as well as the lack of process around the analysis.
May. 29, 2016 02:45 AM EDT Reads: 1,502
Designing IoT applications is complex, but deploying them in a scalable fashion is even more complex. A scalable, API first IaaS cloud is a good start, but in order to understand the various components specific to deploying IoT applications, one needs to understand the architecture of these applications and figure out how to scale these components independently. In his session at @ThingsExpo, Nara Rajagopalan is CEO of Accelerite, will discuss the fundamental architecture of IoT applications, ...
May. 29, 2016 02:00 AM EDT Reads: 1,348
SYS-CON Events announced today that Tintri Inc., a leading producer of VM-aware storage (VAS) for virtualization and cloud environments, will exhibit at the 18th International CloudExpo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, New York, and the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
May. 29, 2016 01:30 AM EDT Reads: 2,490
In his session at 18th Cloud Expo, Bruce Swann, Senior Product Marketing Manager at Adobe, will discuss how the Adobe Marketing Cloud can help marketers embrace opportunities for personalized, relevant and real-time customer engagement across offline (direct mail, point of sale, call center) and digital (email, website, SMS, mobile apps, social networks, connected objects). Bruce Swann has more than 15 years of experience working with digital marketing disciplines like web analytics, social med...
May. 29, 2016 01:00 AM EDT Reads: 1,434