Apr 28, 2012

Working with Subversion from Mercurial

My favourite VCS is Mercurial. Before that I used SVN, and I have no regrets about it. But it's still popular, and from time to time I have to use SVN. Here is solution how you can work with SVN from Mercurial. I didn't tried it myself yet, but will certanly try it then time comes.

Updated 02.05.2012. So, the need has come early, and I tested it. It works! I'm almost sure it's buggy to work flawlessly with advanced reps, but if you need to just grab some repo it's definetely enough.

Apr 25, 2012

Game development podcasts, videos, etc.

This article data (and much more) can now be found here. I find that blogger platform was not suited well for managing of this kind of list.

Apr 24, 2012

Minecraft: The Story of Mojang

Nice video about Minecraft creator Marcus Persson and his new Mojang company. Fairly recent which is good. I'm impressed how 'Notch' is open about success of Minecraft. "It's almost impossible to repeat such success" he says, "it was sort of luck and right time" so modest. I'm just bumped first time to this site BTW, but it sertanly deserves some digging around, looks like an interesting place.

Apr 21, 2012

XNA articles beginner should not miss

This article data (and much more) can now be found here. I find that blogger platform was not suited well for managing of this kind of list.

You may also find useful:
- XNA tutorinals beginner shouldn't miss
- XNA tools 2D game developer should not miss

Apr 19, 2012

If your hard drives are identified as removable

I've noticed that in my Windows 7 installation all my hard drives are shown as a removable drives. This is not only looks incorrect, but it also permanently occupies your system tray with Safely remove hardware icon.

After some investigation I've found that this indicates that not all required drivers are installed on an operation system. On my Intel chipset you were need to install Rapid Storage Technology driver. After that, and a two reboots (duh!) hard drives are identified correctly as not removable. You also got some RAID caps via Intel app, but I wasn't really interested in that for now.

Be aware however that this driver installation procedure can trigger activation for some protected software applications!

Apr 16, 2012

Street of Rage Remake v5

Holy sh*t! Have you seen this? Never believed this will ever will be possible, but it's true! The project page will say it all:

It has been 8 years of work, but the final version is here, this is complete and ready for download, Surprised? :-)

Eight years! That's a truly dedication to one of the best action games ever. I don't know why SEGA or someone else didn't already do the same thing, create a sequel using all power that is available now. Being an extreme fan of original SOR series I don't know how I missed such a huge thing, looks like it was around from about 2009 already. Yet it better to play that game then it's finished and polished.

The remake is absolutely wonderful! It doesn't seem like a amateur fun-project at all, on the contrary all assets looks like a professional quality, better than many commercial games. Music remastering is of wonderful quality. You should absolutely give it a try, it's free! The only sad thing it's not opensource in any way. But who knows, maybe in better future it will be?

Apr 15, 2012

Digger.NET in development, part 5

Well, I extremely satysfied right now, since I've done complete main screen of my XNA port of a Digger Remastered. The currently main page looks like:

I'm impressed how easy it's for a complete gamedev noob (like me) to do things in XNA. So, original internal framerate for Digger is something like 15 frames per second. Question: how much it takes to set it in XNA game? Answer: one line, just add this to your main Game class:
// original frame rate is 15 fps (67 ms per frame)
this.TargetElapsedTime = new TimeSpan(0, 0, 0, 0, 67);
So-o-o nice! So nice I will count the XNA one of the best frameworks which comed from Microsoft (I'm hoping Microsoft will not slow down or stall the thing with it's new Metro-Shmetro and all the native stuff which it puhing quite intensively lately, IMHO).

This is especially evident if you look at the original C code, it's so complex. The graphics and drawing code is incredibly complex. I'm not going to blame the author, seems like he did much more complex job than I but this:
bool sprrdrwf[SPRITES+1];
bool sprrecf[SPRITES+1];
bool sprenf[SPRITES];
Sint4 sprch[SPRITES+1];
Uint3 *sprmov[SPRITES];
Sint4 sprx[SPRITES+1];
Sint4 spry[SPRITES+1];
Sint4 sprwid[SPRITES+1];
Sint4 sprhei[SPRITES+1];
Sint4 sprbwid[SPRITES];
Sint4 sprbhei[SPRITES];
Sint4 sprnch[SPRITES];
Sint4 sprnwid[SPRITES];
Sint4 sprnhei[SPRITES];
Sint4 sprnbwid[SPRITES];
Sint4 sprnbhei[SPRITES];
is just nonsence. At least you can pack each x, y, wid, hei etc. coordinate like data in a structure with two fields. And this is just a tip of an iceberg. Consider this young fella from sprite.c:
void drawspr(Sint4 n,Sint4 x,Sint4 y)
{
  Sint4 t1,t2,t3,t4;
  x&=-4;
  clearrdrwf();
  setrdrwflgs(n);
  t1=sprx[n];
  t2=spry[n];
  t3=sprwid[n];
  t4=sprhei[n];
  sprx[n]=x;
  spry[n]=y;
  sprwid[n]=sprnwid[n];
  sprhei[n]=sprnhei[n];
  clearrecf();
  setrdrwflgs(n);
  sprhei[n]=t4;
  sprwid[n]=t3;
  spry[n]=t2;
  sprx[n]=t1;
  sprrdrwf[n]=TRUE;
  putis();
  sprenf[n]=TRUE;
  sprx[n]=x;
  spry[n]=y;
  sprch[n]=sprnch[n];
  sprwid[n]=sprnwid[n];
  sprhei[n]=sprnhei[n];
  sprbwid[n]=sprnbwid[n];
  sprbhei[n]=sprnbhei[n];
  ggeti(sprx[n],spry[n],sprmov[n],sprwid[n],sprhei[n]);
  putims();
  bcollides(n);
}
no comment (pun here!). How many global variables you can count here? Maybe you want to know that ggeti is? Actually it's a function pointer, to another function (which is actually quite an elegant solution to switch CGA and VGA graphics mode):
void vgageti(Sint4 x,Sint4 y,Uint3 *p,Sint4 w,Sint4 h)
{
  Uint5 i;
  for (i=0;i<h*2;i++)
    if (i+y*2 < 400)
      farmemcpy( (char far*) (p + (Uint5) i*w*8l), back_bitmap_bits+ (Uint5) ((y*2l+i)*640l + x*2l) , w*8);
}
how many magic numbers you can count here? Developer suggests contacting him in case of any questions. But last modification date for source is year 2004. I feel it's little rude to notify person on his completely forgotten project. This is so sad he didn't leave enough comments then he could.