Key Questions
Are the following questions important to you:
- Is the complexity of multi-threaded programming constraining (stifling) your current game design?
- Does your game functionality actively scale with an increasing number of cores?
- Do you expect to re-implement your games for each new generation of multicore (4, 8, 16 .. 80 cores)?
- Is your design pro-actively taking advantage of dynamism and resource utilization during the game-play?
- Do you have a plan in place to overcome the many-core "parallelism wall" that is a couple of years away?
If so, then please read on
^ TOPVision

Key technology
Our key innovation, the Opportunistic™ Computing paradigm, is the "one unifying technology" to solve all the above problems. Our tools and C++ libraries are tailored for the unique requirements of the gaming and real-time multimedia domains. The Opportunistic™ Computing paradigm introduces simple programming techniques to allow the scaling or enrichment of game semantics based on the dynamic availability of compute resources (like multiple cores). Our technology of dynamically scalable game semantics sidesteps the problems associated with traditional parallel programming approaches that put hard-limits on useful parallelism. Opportunistic™ Computing provides the ability to scale a given game design across generations of multi-cores and many-cores (10's of cores).
Opportunistic™ Computing aims to make full use of the many/multi-core resources and utilize any slack that might appear in meeting real-time deadlines (such as frame-rate deadlines in a game). This is achieved by allowing the programmer to use extended program semantics in a manner that allows additional computation or more intensive versions of computation to be launched based on the dynamic availability of computing resources. Opportunistic™ computing also allows active provisioning of the design to take advantage of dynamic interactions amongst the different components, such as AI versus Physics. Our tools and APIs allow the programmer to control Quality-of-Service and adapt computation based on the dynamic evolution of the game context.
Founders' Message
Quad-core processors are becoming commonplace, octa-cores will be introduced in the marketplace soon and many-core processors (processors with tens of cores) are closer to reality than you may think (Intel has announced a 80-core chip and others will follow soon). In short, the technology curve for multi-cores is evolving at a much faster rate than anticipated and if the trend continues, the power of today's server-farms will soon be available on a personal computing platform such as a game console, PC, laptop or a home entertainment system. Such power enables highly exciting possibilities for enriching game semantics and real-time media applications that almost signals an imminent paradigm shift for newer generations of such software. In other words, opportunities for making games veritably interesting in terms of AI, story lines, and special effects (that used to be limited only to offline animation) are here and will in fact abound on future platforms. On the other hand, such a rapid evolution of multi/many-cores also means a shorter and shrinking life-cycle for a given generation of such software. The obvious key question: is your game design cycle actively provisioned to ride this wave or will it simply follow like everybody else trying to play catch-up? Games or software designed for one generation of multi-cores will not scale in terms of their functionalities and semantics to the next generation unless a paradigm shift takes place in the design and implementation process. Multi-core software development is a highly complex, expensive effort and a re-design effort for every new generation would not succeed in the marketplace due to the high cost associated with it. On the other hand, in the absence of such an effort, game titles would not use the full power of the newer platforms and would severely lag behind titles designed for the newer platforms. An approach that allows automatic scaling of game functionalities and semantics across multi/many core generations will help recoup large investments. Also, games will incorporate more interesting elements in terms of story-lines, etc., thus boosting their popularity. Devising solutions that go to the heart of these problems led to the formation of Coreopsys Software Labs, Inc., a start-up founded at Georgia Tech.
Coreopsys Software Labs, Inc. offers you the multi-tier solutions to get the right competitive edge to scale your game software design with that of multi/many cores through the introduction of a new technology based on Opportunistic™ Computing (patent pending). Through its offering, you will be able to retrofit your existing C++ software with minimal effort. The end result is a game software design that scales across generations of multi-cores and a game title that allows a rich game-play experience.
Key innovation
Coreopsys's tool-chains are based on the key invention of Opportunistic™ Computing paradigm (patent pending) that allows a programmer to take advantage of many-cores with very simple programming efforts (such as libraries). Opportunistic™ computing aims at making full use of the resources that have become available at runtime by dynamically morphing the program. The key idea behind Opportunistic™ Computing is extensible program semantics. The goal of extensible program semantics is to allow the programmer to reason about the possibilities, in terms of quality of result (given time or space constraints), that exist for his application at a given design point. Today's programming methodologies in gaming and real-time multimedia focus on having the programmer decide on a feature set for an application and then writing the application to specifically match it. In games in particular, the development team settles on a set that will bring value to the game while still being able to execute quickly enough on a given target platform. Inevitably, certain features get simplified or eliminated in order to meet the constraints of the current platform and game design lacks the ability to scale with the evolution of the platform. With extensible semantics, the programmer does not have to compromise on a feature set. Instead, all features can be implemented as improvements or add-ons to the minimal feature set chosen that can scale with dynamic availability of resources on the same platform and across several generations of multi/many cores.
Current practices that simply rely on the secondary artifact of exploiting as much underlying parallelism as possible do not address the issue of scaling the game semantics/functionalities. Moreover as parallelism hits the wall (which will happen around 16 core processor), new ways and means must be found to usefully tap the power of available cores. Since Opportunistic™ Computing (patent pending) does not bind itself with the issues of parallelism, it allows the programmer to get around the parallel programming wall. Coreopsys technologies are based on standard C/C++ language extensions and a simple yet powerful library and runtime system.