opC++ Features

opC++ Compiler

opC++ Language

opGames Company


opC++ Overview

opC++ is a code generation tool with a number of useful features included, and a great deal of versatility:

  • Reflection and Serialization via the Standard Dialect (optional).
  • Extended C++ Syntax.
  • Ability to add code features via Dialects.
  • Useful Multi-file output.
  • Easy Integration along-side Existing C++.

opC++ is written to be useful normal C++ programmers.

  • Standard opC++ uses a few basic keywords, but otherwise reads like C++.
  • Dialect files use simple understandable syntax.
  • opC++ output descriptive, often custom errors.
  • opC++ addin helps to navigate complex generated code.


Our motivation for creating opC++ came from years of experience creating and working with game engines. We identified some of the issues commonly faced working with C++ based gameplay code, and have gradually come up with a number of language extension based solutions. Most of these solutions are also applicable outside the game industry for anyone using C++. Some of the issues we address with opC++ include...

  1. Scripting Barriers: If we can implement most of the benefits of scripting languages in C++, we can eliminate the need to keep mirrored interfaces in sync. Not to mention the performance implications.
  2. Error-Prone Busywork: Often to implement a class registration pattern you have to rewrite types, we eliminate much of the hassle and busywork by generating this information automatically.
  3. Data Reflection: Data reflection is important in games - we've used it to provide documentation generators, to help automate bindings (networking, serialization), and to help extend the usefulness of game scripts.
  4. Data Tagging: Features like xml tag attributes and meta-data help automate common features such as serialization, loading and saving games, and custom editor integration.
  5. Poor Modularity: Patterns like abstract traits, interfaces, and mixin's have known advantages for modular design - but not very good support in C++.
  6. Forgetfulness: Many of the issues w/ C++ are related to the single pass compilation process.
Recent Changes (All) | Edit SideBar Page last modified on December 21, 2007, at 12:08 AM Edit Page | Page History
Copyright 2010 opGames Inc.