Nov 20, 2011

Nubee skype interview questions

std::map vs std::hash_map

code (cross platform x64 compatible)
tests insertion and search timings:

Asynchronous non blocking curl multi example in C++

link

NVidia NSight

I was very disappointed as it cant debug/profile OpenGL/CUDA/CL applications on same machine.

Good question to fail ;)


External properties for classes (C++)

Once working on some MMO project based on Reality Engine. Engine has Actor class and its derivatives. Each of them has some amount (> 10) of properties (scale, color, ...). As we had big word (MMO game!) so smooth and fast loading was very important. But I noticed that engine spend some significant memory and loading time on creation abstract class properties.
Lets do some calculations - when need to load 100 Actors its allocate 100*10 = 1000 properties, each property has std::string for it's name and another std::string for description. So loading 100 Actors involves ~3000 additional allocations.

As engine uses that properties them for xml serialization and Editor bindings it was impossible to easily remove them....
That project was closed ^( due to economical crisis.
But recently I got flashback and decide that will be useful to use it in some of my pet projects.

So here is draft version of external properties:

Sep 15, 2011

A Drinking Club with a Running Problem!

Club for walking/running and drinking :) Found one in Moscow. I planning to take part in one of closest club meetings.
http://www.moscowh3.com/index.htm

Windows UI evolution


VS11 for graphics programmer


Enhancements for Game Development:
* Viewing and basic editing of 3D models
* Viewing and editing of images and textures with support for alpha channels and transparency
* Visually designing shader programs and effect files. (!)
* Debugging and diagnostics of DirectX based output.
Also some smart code analyzers added...
NICE!
http://blogs.msdn.com/b/jasonz/archive/2011/09/14/announcing-visual-studio-11-developer-preview.aspx

Jul 28, 2011

C++ trick

const T& get() { const static T empty_value; return condition ? real_value : empty_value;}

it's helpful when T is std::container or so on.

Jun 27, 2011

RGDEngine + OpenGL

I'm start working on Linux/OpenGL (ES) support in RGDEngine (http://rgdengine.googlecode.com) Involves new shader material system and (I hope) iPhone and Android support.

May 24, 2011

Good gamedev blog

http://repi.blogspot.com/

May 23, 2011

DOM wrapper for lighting fast JSON parser

vjson-wrapper/
Sample use:
#include "json.h"

int main()
{

 json::document doc;
 const char* filename = "./test/pass1.json";

 bool res = doc.load(filename);

 json_type type = doc.type(); //JSON_ARRAY

 bool value0 = doc[5].as_bool(); //true
 const char* value1 = doc.array_first().str(); //"JSON Test Pattern pass1"

 const char* name1 = doc[1].child().name(); //"object with 1 member"

 int value3 = doc[8]("integer").as_int(); //1234567890


 for (json::value v = doc.child(); v; v = v.sibling())
 {

  switch(v.type())
  {
   //...
  }
 }
 return 0;
}