|
Subcategory: Code Design |
Topic |
Author |
Description |
|
Removing The 'Tech' From 'Design Document' [Added: 2/20/2002]
|
Michael Sikora
|
Explains what a technical document is, and how it can speed up the development process. |
|
The C++ Pimpl [Added: 4/2/2002]
|
Sobeit Void
|
Describes a method allowing you to modify the private interface of your class while avoiding recompilation of code using the public interface. |
|
Using PDL for Code Design and Documentation [Added: 6/13/2001]
|
Drew Sikora
|
Describes how Program Design Language can be used to improve your code design. |
|
Subcategory: Design Patterns |
Topic |
Author |
Description |
|
Patterns FAQ [Added: 6/19/2001]
|
Kevin Hawkins
|
Explains the basic concepts behind the patterns listed here. |
|
Appearance Map [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Isolate Model state from Model appearance to minimize impact on controllers when art changes. |
|
Context/Virtual Self [Added: 6/19/2001]
|
Mat Noguchi
|
Sharing state data between multiple objects, either to implement a finite state machine or to compose multiple objects to perform a particular task. |
|
Controller [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Update a Model's state based on circumstance. |
|
Controller State Machine [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Track a complicated state process with a controller. |
|
Creating a Generic Object Factory [Added: 5/19/2004]
|
Robert Geiman
|
Provides an explanation and implementation of object factories. |
|
Design Pattern: Variant [Added: 12/24/2003]
|
Ernest S. Pazera
|
Presents a pattern useful in message handling and AI. |
|
Double Buffered State [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Track an old and new state for multi-Model Controllers. |
|
Gateway [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Isolate database changes for index and/or client/server synchronization. |
|
Mini-kernel [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Provide each Controller with a chance to execute once per game frame. |
|
Model [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Store the state of an object which exists in the game world. |
|
Model Database [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Aggregate the Model objects into one database. |
|
Reflective Factory [Added: 6/19/2001]
|
Chris Hargrove
|
Treat the class of an object as its own object, serving as both a factory for runtime instantiation and a mechanism for simple reflection services like runtime type identification.
|
|
Render Delegation [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Pass-off special render cases to Model code. |
|
Spatial Index [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Speed searches by position in a Model Database. |
|
The One: A Singleton Discussion [Added: 5/24/2002]
|
Robin Tan
|
Discusses some of the problems encountered when using the singleton pattern, and suggests some solutions, including nifty counters and Zerob singletons. |
|
The Singleton Class Cluster [Added: 7/6/2005]
|
Tristam MacDonald
|
Suggests an optimal implementation of the singleton and a way to combine it with the class cluster design pattern. |
|
Trigger [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Provide a simple mechanism for building geometric game puzzles. |
|
Type Database [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Store information which is common to Model types. |
|
Usecode [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Create a simple and safe embedded language with which game designers and (potentially) end-users can build game logic. |
|
View [Added: 6/19/2001]
|
Zachary Booth Simpson
|
Render the visible Models given a P.O.V. |
|
Subcategory: Design Patterns Links |
Topic |
Author |
Description |
|
Design Patterns Tutorial [Added: 6/20/2001]
|
|
Gives an introduction to the concept of design patterns in programming. |
|
Gamasutra: Patterns [Added: 6/20/2001]
|
|
Game development patterns, updated monthly. |
|
Patterns Home Page [Added: 6/20/2001]
|
|
The centralized home of everything patterns. Includes a list of general software pattern resources. |
|
Subcategory: Formal Methods |
Topic |
Author |
Description |
|
A Review of Formal Methods [Added: 8/29/2001]
|
Robert L. Vienneau
|
This report overviews the technical basis for formal methods, while critically noting weaknesses. |
|
An Analysis of two Formal Methods: VDM and Z [Added: 8/29/2001]
|
Thomas McGibbon
|
This paper compares and contrasts the strengths and weaknesses of the Vienna Development Method (VDM) and Z in the software design life cycle phase, and compares and contrasts VDM and Z to other formal models. |
|
Beyond the black box: Open implementation [Added: 8/29/2001]
|
Gregor Kiczales
|
Open Implementation is a software design technique that helps write modules that are both reusable and very efficient for a wide range of clients.
|
|
Blind Man's Bluff [Added: 3/20/2004]
|
Dean Margerison
|
Provides a brief insight into the current problems that many projects face, and what can be done to transform the situation for the better. |
|
Game Unified Process [Added: 5/14/2003]
|
Kevin Flood
|
Describes how the author applied Rational and XP development processes to game development. |
|
Incremental Development [Added: 6/24/2002]
|
Drew Sikora
|
This article will introduce you to a method of development that will supplement skill, knowledge, dedication, and goals in order to enable you to achieve your goals. |
|
Test Driving Expression Template Programming [Added: 6/27/2004]
|
Kent Lai
|
In this article, you will be introduced to the concept of writing unit tests for your projects, and going a step further, to begin driving your development process with the test first, code later concept. |
|
Subcategory: Object Oriented |
Topic |
Author |
Description |
|
A Laboratory for Teaching Object-Oriented Thinking [Added: 8/29/2001]
|
Kent Beck and Ward Cunningham
|
Description of software design technique for both novice and experienced procedural programmers to the anthropomorphic perspective necessary for object-oriented design. |
|
Building bug-free O-O software: An introduction to Design by Contract [Added: 8/29/2001]
|
ISE
|
The notion of Design by Contract is central in the systematic approach to object-oriented software construction, as embodied in the Eiffel method. This article presents the key ideas.
|
|
Design Principles and Design Patterns [Added: 8/29/2001]
|
Robert C. Martin
|
A brief explanation of the ten Principles of OOD with supporting patterns. |
|
No Silver Bullet Reconsidered [Added: 8/29/2001]
|
Brad Cox
|
Superdistribution could let software engineers overcome the software crisis as tangible domains surmounted the same problem, by encapsulating complexity so thoroughly that everyone else can forget it. The solution requires enforcing property rights in digital goods as robustly as conservation of mass enforces them for tangible goods. |
|
Object Oriented Game Programming: Robot Functions [Added: 5/1/2008]
|
Paul Stevens
|
This article explains "Robot Functions," special objects which can be used to automate variable manipulation in your game. |
|
Object Oriented Game Programming: The GUI Stack [Added: 5/1/2008]
|
Paul Stevens
|
This article explains how a stack data structure can be a useful way to organize interfaces in your game. |
|
Object Oriented Game Programming: The Scene System [Added: 5/1/2008]
|
Paul Stevens
|
This article presents an object-oriented structure for managing the various scenes in your game, from title screens to option screens to gameplay. |
|
Object-Oriented Metrics: People and Publications [Added: 8/29/2001]
|
Empirical Software Engineering Research Group
|
This annotated bibliography is meant to offer an authoritative coverage of what is known about measurement of object-oriented technology and its use. |
|
Object-Oriented Scene Management [Added: 5/2/2002]
|
Jeff Kershner
|
This article will present an abstract, expandable, object-oriented method to handle generic objects for a practical and organized game engine. |
|
Object-Oriented System Development Method [Added: 8/29/2001]
|
Dennis de Champeaux, Douglas Lea, and Penelope Faure
|
Complete description of a object-oriented software development method. |
|
Principles of Object-Oriented Design [Added: 8/29/2001]
|
Robert C. Martin
|
|
|
Structuring Use Cases with Goals [Added: 8/29/2001]
|
Alistair Cockburn
|
This paper introduces a theory based on a small model of communication, distinguishing "goals" as a key element of use cases. The result is an easily used, scaleable, recursive model that provides benefits outside requirements gathering: goals and goal failures can be explicitly discussed and tracked; the goals structure is useful for project management, project tracking, staffing, and business process reengineering. The model and techniques described here have been applied and evaluated on a relatively large (50 work-year, 200 use-case) project. |
|
The UML v1.1 and Beyond: The Techniques of Object-Oriented Modeling [Added: 8/29/2001]
|
Scott W. Ambler
|
This white paper describes the object-oriented (OO) modeling techniques employed on large-scale, mission-critical (MCCR) applications using the Unified Modeling Language (UML) v1.1. |
|
Subcategory: Viva64 |
Topic |
Author |
Description |
|
32 OpenMP traps for C++ developers [Added: 7/28/2008]
|
Alexey Kolosov, Andrey Karpov, Evgeniy Ryzhkov
|
Since multi-core systems are spreading fast, the problem of parallel programming becomes more and more urgent. However, even the majority of experienced developers are new to this sphere. The existing compilers and code analyzers allow finding some bugs, which appear during parallel code development. However, many errors are not diagnosed. The article contains description of a number of errors, which lead to incorrect behavior of parallel programs created with OpenMP |
|
A Collection of Examples of 64-bit Errors in Real Programs [Added: 8/4/2010]
|
Andrey Karpov
|
This article is the most complete collection of examples of 64-bit errors in the C and C++ languages. The article is intended for Windows-application developers who use Visual C++, however, it will be useful for other programmers as well |
|
Adaptation of the technology of the static code analyzer for developing parallel programs [Added: 3/12/2008]
|
Andrey Karpov, Evgeniy Ryzhkov
|
In the article the question of use of the static code analyzers in modern parallel program development processes is considered. Having appeared in 70-80s as an addition to compilers, the static analyzers stopped to be popular with the developers in 90s. The reason was probably the increase of the errors diagnostics quality by the compilers. But in 2000s the interest to the static code analyzers started to increase again. It is explained by the fact that new static code analyzers were created, which started to detect quite difficult errors in programs. If the static code analyzers of the past made it possible, for example, to detect an uninitialized variable, modern static code analyzers tend to detect an unsafe access to data from several threads. The modern tendency of static code analyzers development became their use for diagnosing errors in parallel programs. In the work the situations are considered, where the use of such tools makes it possible to considerably simplify the process of creating parallel program solutions
|
|
AMD64 (EM64T) architecture [Added: 3/4/2009]
|
Evgeniy Ryzhkov, Andrey Karpov
|
The article briefly describes AMD64 architecture by AMD Company and its implementation EM64T by Intel Company. The architecture's peculiarities, advantages and disadvantages are described. |
|
Building of systems of automatic C/C++ code logging [Added: 7/28/2008]
|
Andrey Karpov
|
Sometimes logging of an application's events is the only debugging method. The logging method's disadvantage is the large size of the code which you have to write manually to save the whole necessary information. The article touches upon the method allowing you to build a system of automatic logging of C/C++ code |
|
Debugging and optimization of multi-thread OpenMP-programs [Added: 3/4/2009]
|
Andrey Karpov, Evgeniy Romanovsky
|
The task of familiarizing programmers with the sphere of developing parallel applications is getting more and more urgent. This article is a brief introduction into creation of multi-thread applications based on OpenMP technology. The approaches to debugging and optimization of parallel applications are described. |
|
Detection of vulnerabilities in programs with the help of code analyzers [Added: 9/3/2008]
|
Elena Haritonova
|
At present there are a lot of tools intended for automating search of program vulnerabilities. This article describes some of them. |
|
Installation of PC-Lint and its using in Visual Studio 2005 [Added: 3/12/2008]
|
Andrey Karpov
|
The article is devoted to the first acquaintance with the PC-Lint 8.0 static analyzer of C++ code. The process of the tool installation and its initial setting is described. |
|
Introduction into 64 bits for the beginners or where's again the 64-bit world? [Added: 3/4/2009]
|
Evgeniy Ryzhkov
|
There were 64-bit processors, the operational systems, some programs. However completely all users have passed to 64 bits still far not. In article the reasons of it are considered. |
|
Introduction into the problems of developing parallel programs [Added: 3/4/2009]
|
Andrey Karpov
|
As developing parallel software is rather a difficult task at present, the questions of theoretical training of specialists and investigation of methodology of projecting such systems become very urgent. Within the framework of this article we provide historical and technical information preparing a programmer for gaining knowledge in the sphere of developing parallel computer systems. |
|
It is difficult [Added: 9/3/2008]
|
Andrey Karpov
|
The article concerns the problem of excess of program creation terms as a result of a prejudice that programming is simple and even simpler. |
|
Optimization of 64-bit programs [Added: 11/24/2008]
|
Andrey Karpov
|
Some means of 64-bit Windows applications performance increase are considered in the article. |
|
Software Code Metrics [Added: 1/6/2010]
|
Anton Milutin
|
The article describes 7 types of metrics and more than 50 their representatives, provides a detailed description and calculation algorithms used. It also touches upon the role of metrics in software development. |
|
Some examples of the 64-bit code errors [Added: 3/12/2008]
|
Evgeniy Ryzhkov
|
While porting 32-bit software to 64-bit systems there may appear some errors in the code of applications which were written in C++ language. The cause for these hides in the alteration of the base data types (to be more exact, in the relations between them) with the new hardware platform. |
|
static analysis, a view from aside [Added: 3/4/2009]
|
Andrey Karpov. Konstantin Knizhnik
|
The article is an interview with Konstantin Knizhnik taken by Andrey Karpov, "Program Verification Systems" company's worker. In this interview the issues of static code analysis, relevance of solutions made in this sphere and prospects of using static analysis while developing applications are discussed |
|
Testing parallel programs [Added: 11/24/2008]
|
Andrey Karpov
|
Testing parallel software is a more complicated task in comparison to testing a standard program. The programmer should be aware both of the traps he can face while testing parallel code and existing methodologies and toolkit. |
|
The essence of the code analysis library VivaCore [Added: 3/12/2008]
|
Andrey Karpov, Evgeniy Ryzhkov
|
The article tells developers about VivaCore library, preconditions of its creation, its possibilities, structure and scope of use. This article was written simultaneously with the development of VivaCore library and that's why some of the details of the final realization may differ from the features described here. But this won't prevent the developers from getting acquainted with the general work principles of the library, mechanisms of analysis and processing of C and C++ source code. |
|
The forgotten problems of 64-bit programs development [Added: 3/12/2008]
|
Andrey Karpov
|
Though the history of 64-bit systems development makes more than a decade, the appearance of 64-bit version of OS Windows raised new problems in the sphere of development and testing applications. In the article there are considered some mistakes connected with 64-bit C/C++ code development to Windows. The reasons are explained according to which these mistakes didn't find their reflection in the articles devoted to the migration tasks and are unsatisfactorily detected by the majority of static analyzers. |
|
The use of the code analysis library OpenC++: modifications, improvements, error corrections [Added: 3/12/2008]
|
Andrey Karpov
|
The article may be interesting for developers who use or plan to use OpenC++ library (OpenCxx). The author tells about his experience of improving OpenC++ library and modifying the library for solving special tasks. |
|