The Conference

About the Event

Euro Games Technology

May 25, 2008

Sessions

Program

11:20-11:30 – Opening Ceremony

Sessions

C++0x: The New Standard of C++

The C++ Standards Committee is preparing the final draft for the new and revised C++. This document has turned out to be far more ambitious than the previous revisions of the standard. The desire of the committee is to transform C++ into a modern language, with respect to all contemporary programming concepts and techniques, while in the same time getting rid of all the flaws still inherent in the previous standard.

Many suggestions have been taken into consideration and experience is being drawn from the highly successful Boost library and other independent libraries such as Loki. The committee’s members are having a hard time to decide what should make it in this draft. They will also want to keep to the spirit of C++ as a general-purpose language with an emphasis on high performane and maximum programmer’s freedom.

This lecture will cover the current progress on C++0x, along with the proposed changes to the standard library. It will review the novelties and let you decide for yourself if the goals of C++0x will be fulfilled and if the language will possibly regain positions as a weapon of choice in the commercial sector.

Concepts: Extending C++ Templates for Generic Programming

Generic programming has emerged as an important technique for the development of highly reusable and efficient software libraries. In C++, generic programming is enabled by the flexibility of templates, the C++ type parametrization mechanism. However, the power of templates comes with a price: generic (template) libraries can be more difficult to use and develop than non-template libraries and their misuse results in notoriously confusing error messages. As currently defined in C++98, templates are unconstrained, and type-checking of templates is performed late in the compilation process, i.e., after the use of a template has been combined with its definition. In this talk the Concepts system proposed for the new C++0x standard will be reviewed in detail. It will be shown why and how template type checking makes templates easier to write and use.

Effective C++

It is a common belief that writing computer programs in the C++ language is an unnecessary hard process as compared to the other contemporary languages. This is mainly due to the fact that C++ is a language, which has no built in garbage collector, unlike Java and C#, and hence leaves the memory management to the developer.

In the current lecture we show that following a couple of simple rules makes the writing of C++ programs with no memory leaks as easy as writing them on any other language. Since the memory is not the only resource we should take care of, we will show how to prevent other resource leakages in the presence of exceptions. In other words we will show how to write exception safety code in C++.

Excel in the Craft and Prevent RSI with Boost

It only takes pliers to get quite a few things done – you can use them to grip, turn, pull, crimp or cut a variety of things. That’s being productive with C++ and STL. With the appropriate patience and force you can even use pliers to hammer in a nail or drive a screw… or stop fooling around and start using more and better tools for your craft.

Boost is a set of free, high-quality, portable C++ source libraries designed, developed and peer-reviewed by some of the best C++ experts around the world. Boost exists to help you do your job as a C++ programmer better and faster.

This lecture will introduce you to Boost and teach you how to:

  • Simplify object lifetime management and resource sharing with
    Boost.SmartPtr
  • Define function objects at call site and bind arguments to
    N-arity free functions, member functions and functors with Boost.Bind
    and Boost.Lambda
  • Define, store and implement callbacks with Boost.Function
  • Trigger and handle events (multicast callbacks) with Boost.Signals
  • Store and retrieve values of any type with Boost.Any and Boost.Variant
  • Process text efficiently with Boost.Tokenizer, Boost.StringAlgo,
    Boost.Regex, Boost.Xpressive and Boost.Spirit
  • Write portable multithreaded code with Boost.Thread
  • Marshal and unmarshal objects in a versioned and platform-independant manner with Boost.Serialization
  • Use specialized containers when STL’s are not (efficient) enough
    from Boost.MultiArray, Boost.MultiIndex and Boost.Intrusive
  • And more!

C++ Performance Optimizations

Problems with the sluggishness of software applications sometimes cannot be solved only by the means of a costly fast hardware and needs the software to be written with performance in mind. In this talk attention will be paid to the most often mistakes of software design and implementation which lead to slow performance as well as solutions on those problems. Some ideas will be revealed on how to significanly improve the performance of software applications by using the hardware correctly and how to make use of the OS kernel.

Frankenstein C++: A Well Meant Experiment, Gone Horribly Wrong

C++ is a modern language that is continuously getting more modernized. It is a powerful tool, that, when used wisely, can significantly boost the performance of a team. C++ helps programmers write good object-oriented code according with the most recent standards…

NOT! C++ was designed to be perfect, but ultimately failed to complete this noble goal. Through the years it has been promoted as the best choice for most programs while the problems were widely underestimated. Workarounds were developed, making the language harder and more inconsistent. It has gradually turned into a Swiss Army knife with thousand implements.

This lecture will summarize the major problems with the C++ programming language. It will contain direct and circumstantial evidence, proving that there is no reason to use C++ for new projects. It will list alternatives. But most of all, it will show how, despite all that, you can still love C++.

Model-Driven Engineering

Software engineering is one part science, one part pure art. The code written by an engineer is the fantasy formed in his mind, but what is missing most is the visual expressiveness of the brush in the hand of an artist sharing his fancy ideas with the team. The talk will focus on a new approach in software engineering where the model is the center of the software product universe, easing and unifying the development process.

How to Create a Video Game in C++ in 45 Minutes?

Game development is the front line of programming. Every day thousands of programmers push the limits of high-end PC’s in order to provide visually stunning masterpieces of real-time rendering and physics. Games are always made for the PC’s that will exist when the game is done. That’s why there is no paved road ahead.

So how is a game made? How can C++ help? How can C++ get in the way? This lecture will tell you how. And also:

  • How does the basic 3D rendering pipeline work?
  • Why script languages?
  • Why C++ ?
  • How to be conservative while being on the front line?
  • What is out there – third party libraries and tools that make our lives easier?