11/Jan 2008
By admin
4 min. read
Yesterday I had one of my weirdest debugging sessions in the last few years. Background: for some time we’ve been having problems with a third party library that comes without source code, only .lib/headers (no names given to protect innocent). It seems like not all objects were deleted after deinitialization. After basic investigation it turned out to be some kind of problem with reference counting, objects couldnt be removed because they were still referenced.
9/Jan 2008
By admin
2 min. read
I’ve found an interesting bug in a very old code today. Consider the following code snippet: 1struct foo
2{
3 void* operator new(size_t t);
4 void operator delete(void* p);
5 int i;
6};
7[...]
8{
9 foo* f = new foo();
10 ::delete(f);
11} Can you spot a bug here? Read rest of the article for an answer. It all boils down to those two ‘:’ chars. It forces compiler to call global operator delete instead of this defined for class foo.
8/Jan 2008
By admin
1 min. read
Something we’ve been wondering at work one day (just for kicks, but being resident template freak I couldnt resist to give it a try). Challenge: given STL collection, find a way to determine ‘compatible’ iterator type for it. Example of intended usage: std::vector v;
for (ITER_TYPE(int, v)::iterator it = v.begin(); it != v.end(); ++it)
; // do something here. Do not read further if you want to try it by yourself, solution follows.
7/Jan 2008
By admin
1 min. read
“The Witcher” Cinematic intro by Platige Image has been nominated to VES awards! More info at http://www.visualeffectssociety.com/. Congratulations to folks at Platige (…and pat on the back for my collegues as well, as they’ve been coordinating it).
6/Jan 2008
By admin
2 min. read
It dawned on me when I’ve been trying to find a good place to upload my photos to. Most known service is probably Flickr, it may be the best even. Thing is, I hate registration process. I’m registered to 20+ different places and if I can avoid another one - I will. It turns out that if you have a Gmail account (which is worth to get, because as far as free accounts go, it’s a very good one) - you have access to virtually every service Google offers, without further fuzz.
5/Jan 2008
By admin
1 min. read
Copy-on-write behavior of the string class is implemented as policy now as it may or may not be desired. I’ll add “standard” storage policy as well, so it can be easily switched between.
Old comments sconosciuta 2010-04-01 03:24:27 […] new products and limited editions of international brands as well as independent ones. We…RDESTL string class | .mischief.mayhem.soap.Copy-on-write behavior of the string class is implemented as policy now as it may or may not be […]
3/Jan 2008
By admin
3 min. read
The day has come to pay small tribute to my demoscene roots. From time to time I’ll publish short article about some of the most interesting productions/groups (in my subjective opinion of course). I’ll try to avoid the most famous demos and focus on those that may be not known to the mainstream audience (so no kkrieger, even if it’s amazing).
We’ll start with Swedish group Rage. It’s one of my (if not THE) favourite PC groups, even if they hail from Amiga scene.
1/Jan 2008
By admin
1 min. read
Brilliant. Saves money as well, because now you dont have to go to GDC2k8 :>
30/Dec 2007
By admin
2 min. read
As lead gameplay programmer, my ‘main’ responsibility is still coding (thanks God), but in the meantime I pretend to do some managing as well. I dont really feel as comfortable here as with programming, so during Xmas holiday I’ve been reading “Peopleware”, very interesting. Two most striking issues I found so far are:
crunch (of course) - authors write about obvious problems with productivity and morale, but they also notice a very important thing that’s not mentioned - crunch tends to have a negative effect on team spirit in the long term.
19/Dec 2007
By admin
1 min. read
Everyone’s writing about that, so I will as well. After 6 years another teaser trailer of Duke Nukem Forever has been released! Sadly, it doesnt show much gameplay. It’s good to hear that they’re still trying to finish it…
18/Dec 2007
By admin
1 min. read
Instead of uploading complete code package every time, I set up SVN repository for RDESTL. Click here for the latest version of the code. Progress will be a little slower now, that I’m back at work, but I managed to add first, very basic version of COW string class.
Old comments admin 2010-05-15 20:00:29 Pavel: Personally, never used it as a whole package and sole container/algorithm library, so more of a playground.
29/Nov 2007
By admin
2 min. read
While developing/optimizing RDESTL I found two funny curiosities in Microsoft Visual C++ 2008 (Express). All my home projects are compiled with maximum warning level and warnings treated as errors. One of the additional warnings in this setting are unused variables. MSVC is a little bit oversensitive, though, because it doesnt treat calling a destructor as ‘using’. Example: template<typename T>
void destruct(T* mem, int_to_type)
{
mem->~T();
} Compiler will complain about ‘mem’ not being used.
27/Nov 2007
By admin
2 min. read
I’ve some days off after finishing the project, flying to warm countries for holidays soon, but in the meantime I started reinventing the wheel for n-th time. I was inspired by EASTL (Electronic Arts’ version of STL) and tried to create small subset of STL, aimed at game development. I started with stuff that I knew would be needed, I dont plan to add multiset equivalent soon :). Main goals were:
24/Nov 2007
By admin
1 min. read
Seems like I should add some more info about previous note. There are two applications:
memtest.exe - C++, it acts as a server, starts and waits for connection. As soon as it’s established it starts sending info about memory operations.
MemTracer - C#, client application. It connects to the server and perform all the analysis of memory allocations/frees. In real world scenario memtest would be our game, role of MemTracer stays the same as it is.
19/Nov 2007
By admin
4 min. read
As we’re more or less done with The Witcher, I’ve some time (and energy) to do some hobby coding again. Recently I’ve been toying with a new approach to memory allocations tracking. “Traditional” way is to overload new/delete operators, so that they take additional arguments (file+line) then use some preprocessor magic to call them with __FILE__ + __LINE__. Best known example of this approach is probably Paul Nettle’s Memory Manager.
16/Nov 2007
By admin
1 min. read
Tabview must be a program with one of the best size:usefulness ratios out there. I’ve been searching for a way to examine our profiling data and it’s just perfect.
24/Sep 2007
By admin
1 min. read
..or so it seems. Need sleep.
24/Jun 2007
By admin
1 min. read
We’ve entered the final stage with The Witcher. This means optimizing & bug fixing. Right now I’m mainly working on the optimization side. So far I’m rather happy with the way I modified our old AI update system (it was legacy code from Aurora), it saved up to 5-7ms at big levels with lots of objects (we’ve up to 200 AI controlled citizens in Wyzima for example, not even counting other types of objects here).
27/May 2007
By admin
1 min. read
Someone seems to be doing MMO football game. That’s the kind of game I’ve been dreaming to play since several years. Visit: http://www.footballsuperstars.com/ for details.
15/May 2007
By admin
1 min. read
I’ve been getting this strange “Can’t open file: ‘wp_comments.MYI’. (errno: 144)” error in WordPress recently. The fix is pretty easy, you log in to phpMyAdmin, select wp_comments table and repair it (choose from the drop down menu).