Category Archives: C++

Scripting is Fully Functional

In an earlier post, I have written that I have implemented Lua script support in the engine. Now it reached its full power since I have added a proper callback mechanism to it. It makes possible for the triggers in the engine to call user specified Lua functions on firing. Unfortunately, SWIG does not help to implement such callbacks, so I had to do it by myself.

Read the rest of this entry

Porting Back to Linux II.

This post is the second part of another I posted earlier.

The detection of uninitialized class members is one of  of my recurring problems with C++. The language standard does not guarantee anything about member variables so I should initialize them myself. Unfortunately, VC++ compiler does not warn me if I forget to initialize a class member variable, even if I set the highest warning level. GCC detects this kind of sloppiness and reports them to me keenly, making great improvements in code quality. Furthermore, GCC goes one step beyond and warns me if the initialization order differs from the declaration order (see Effective C++ about this).
Read the rest of this entry

Lua Scripting Just Have Been Added

While I was doing the porting, I have found SWIG, a very useful tool for Lua integration. Actually it supports so many other languages and interfaces, but I was interested only in game scripting so far.

Why scripting? Scripting is an important feature of a typical game engine, and Merlin3D is not an exception. Prototyping, game and GUI coding is much more easy if I do not have to recompile the whole game engine or DLL. With SWIG adding scripting to the engine is quite easy, so it seemed to worth a try.
Read the rest of this entry

Porting Back to Linux I.


Several weeks ago I have taken over a small C project from my colleague. This project was almost totally unrelated to computer graphics or game development, and it was cancelled later, but it ran on Linux, so I had to install Linux on my computer. Aside from the compatibility problems of different Ubuntu releases with my old ATI card, and not counting the six fruitless attempts to get a working Linux on my machine, it was a pleasant task for me because it recalled some old memories about the early days of the engine development. The engine coding was started on Linux originally, but I am developing it under Windows for long time.

So the project gave me the idea to port my game engine from Windows back to Linux again, or at least to see that whether it still compiled. So I copied the Makefile from the old Linux version and the sources from the Windows version, fired up Emacs, my old favorite editor, and started to wrestle with the compiler… 🙂 Read the rest of this entry