Wednesday, February 22, 2017

The C++17 Lands

The C++17 map is here and it feels like a new map. That's because it's new.

The previous one was made 5 years ago and it looks ancient now. So here is the new one, which is up-to-date with the most recent Holy Standard changes.
We redid most of the graphics, but we kept the same unique style. So we have a proper license now. And soon we will have posters everyone was asking for.


The most common asks:
Can I use it in my slides, partially or as a whole?
Yes, you can!

Can I use it to teach my students?
Yes, you can!

Can I print it and put hang it by desk or in a public place?
Yes, you can!

But you cannot sell it for profit and claim you've made it. Sounds fair?

Tuesday, January 10, 2012

The C++11 Lands

A lot has happened in the C++ lands recently. Our old map has become outdated. During the New Year holidays me and my friend Jim added some new stuff to the map. Well, he is the artist, so he actually added everything. We have a New Standard War now, old territories are significally imroved.

Here is the new version! ~13Mb.


JPEG version, which is smaller

People were very creative and found some interesting ways to use the previous version of the map besides "print it and put on a wall". A German university uses it to teach studens C++. The map was used on conferences. A small Russian store selling knifes used it in an advertisement.
We don't mind, you can do watever you want with it. But remember that some of the elements of the map were taken by Jim from internets and we don't own copyrights on them.

P.S. sources will be published soon

Links:
The C++ Lands. With sources - the old map

Monday, February 14, 2011

Monday, May 31, 2010

Robocalypse - Beaver Defense is out

Updated 07.06.2010
Nintendo Life 8/10
This is a fun tower defence game with enough unique features and strategic elements to keep it interesting and a sense of humour to set it apart from its competitors. While it suffers presentation-wise, don't let that throw you off as for those who enjoy the genre, this one's a must-have.

IGN 7/10
The silly style's still the same, but this is a whole different kind of Robocalypse.



Robocalypse - Beaver Defense is out! I was the lead programmer on this project and also did some management. It's a "tower defense" style game for Nintendo WiiWare.

"Set in a world of wise-cracking, battling robots, Robocalypse - Beaver Defense offers madcap weaponry and uproarious destruction in a “tower defense” style game. Players create and strategically position towers to annihilate waves of enemy robots, while player-controlled Hero robots act as mobile weapons units, bringing heavy firepower to all areas of the battlefield. Players can experience the hilarious Story Mode or face the Beaver's never-ending supply of robots in Survival Mode."



Screenshots




Interview with our producer, Alan Martin


One more interview with Alan
Official site
Nintendo press release

Sunday, May 30, 2010

Uninitialized pointer and member functions

A very unpleasant scenario possible when you forget to initialize a pointer to a class. Let's say, we have class CBase with a member function which doesn't use member data, i.e. it doesn't need this pointer.
class CBase
{
int i;
public:
void f() { std::cout<<"CBase::f"<<std::endl;}
};


And after that you write the following code somewhere:

CBase* p = NULL;
p->f();


This is an undefined behavior by the Standard. But sometimes it works. Visual Studio 2008, for example, generates a working code. The function call is resolved during the compilation, we don't use this. And you remain oblivious for a long period of time. Here is a scarier looking example
((CBase*)0)->f();


But when you try to use this pointer, you program "crashes". Examples:
class CBase
{
int i;
public:
virtual void f() { std::cout<<"CBase::f"<<std::endl;}
};

class CBase
{
int i;
public:
void f() { std::cout<<"CBase::f"<<std::endl; i=0;}
};


All this leads to very interesting, hard to find bugs.

Links:
comp.lang.c++.moderated - Functions that don't use this, called with uninitialized pointers

Friday, May 14, 2010

The C++ Lands. With sources.

This is an old post, I decided to repost this translation here and added sources.

People ask me about copyrights. I don't mind if you use it somewhere... anywhere you like. But some of the elements of the map were taken by Jim from clipart galleries, I don't own copyrights on them.


The map is very popular all over the Internet. It's discussed on reddit and boingboing.


C++ language is quite complicated. It looks like a total mess when you start studying it. That's why I tried to draw a scheme of it. My drawing was real crap and I asked a friend to help me. And now, thanks to Jim, we have a nice and simple C++ language map.

The current version. With templates and Qt. 1600x1110. And for printing 3298×2288.


The previous one. With a typo.


Old version in higher resolution: 2702x1886

Sources: the map and background.