Puwang is out on the App Store

So tonight, while I was sleeping, Puwang was approved and released on the App Store. I made a small gameplay video where, directly from the screen. and there’s another one, offscreen, on a real iDevice here Spread the word, buy it if you like =) ...

October 10, 2012 · 1 min · 49 words · David Amador

Puwang - a 5 day work

Hi, how’s everyone doing? So this was a different week for me. It’s been a long time that I had the chance to work on a small prototype or a 48H competition because of my work on Dary’s Legend so I decided to stop for a couple of days and do something else. Also my cat’s been quite sick, and between the Vet and taking care of him, working on a fun project gave me more time do everything. ...

September 28, 2012 · 2 min · 369 words · David Amador

How to take screenshots in opengl

So here’s some quick code to save a screenshot of your OpenGL game in a TGA file. bool save_screenshot(string filename, int w, int h) { //This prevents the images getting padded // when the width multiplied by 3 is not a multiple of 4 glPixelStorei(GL_PACK_ALIGNMENT, 1); int nSize = w*h*3; // First let's create our buffer, 3 channels per Pixel char* dataBuffer = (char*)malloc(nSize*sizeof(char)); if (!dataBuffer) return false; // Let's fetch them from the backbuffer // We request the pixels in GL_BGR format, thanks to Berzeger for the tip glReadPixels((GLint)0, (GLint)0, (GLint)w, (GLint)h, GL_BGR, GL_UNSIGNED_BYTE, dataBuffer); //Now the file creation FILE *filePtr = fopen(filename.c_str(), "wb"); if (!filePtr) return false; unsigned char TGAheader[12]={0,0,2,0,0,0,0,0,0,0,0,0}; unsigned char header[6] = { w%256,w/256, h%256,h/256, 24,0}; // We write the headers fwrite(TGAheader, sizeof(unsigned char), 12, filePtr); fwrite(header, sizeof(unsigned char), 6, filePtr); // And finally our image data fwrite(dataBuffer, sizeof(GLubyte), nSize, filePtr); fclose(filePtr); free(dataBuffer); return true; } I’ve been using this on my projects and it works, although I read a couple of times it’s better to use p-buffer or FBO, but I leave that for you to research. ...

September 8, 2012 · 1 min · 199 words · David Amador

QuakeCon 2012 - John Carmack Keynote

I usually don’t do this, but come on, it’s John Carmack, and this 3h30m keynote given at QuakeCon 2012 is fascinating.

August 4, 2012 · 1 min · 21 words · David Amador

Gamedev is like a house of cards

It all starts so pretty isn’t it? A clean project, a quick prototype, it works! It’s beautiful. Now it’s time to add more features, everything is planned out, all cogs have a place to be, it goes smoothly for a while. Now you realize other small components are needed, no problem, let’s make them… Eventually you do need to plug them into the game itself, and that’s when the problems start, most of the other stuff wasn’t built considering these new components. Will they break? ...

July 30, 2012 · 1 min · 156 words · David Amador

Dary's Legend development Timelapse sample

Working on Dary’s Legend has been my daily routine so I decided to make a time lapse. So this is a video compiled using Chronolapse, by taking a screenshot every 60s during a couple of days while I’m working on Dary’s Legend, the new game from Different Pixel. The video is being played back at 10 real minutes per second. This was recorded between 14-06-2012 and 30-06-2012 (some days are missing) ...

July 1, 2012 · 1 min · 71 words · David Amador

Detecting C++ memory leaks in Visual Studio - again

I made a small post about detecting C++ memory leaks in Visual Studio in 2010. At the time that seemed to suffice, but some months ago someone told me about Visual Leak Detector and boy does it work. According to the website itself Visual Leak Detector is a free, robust, open-source memory leak detection system for Visual C++. It’s pretty easy to use. After installing it, you just need to tell Visual C++ where to find the included header and library file. ...

June 3, 2012 · 1 min · 154 words · David Amador

Dary's Legend First Teaser

So, yeah I know I’ve been a little lazy about my blog it’s for a good cause. We decided to release a small teaser showing what we have. I can’t stress this enough, it’s a work in progress. I can’t find out how to embed the video with HD by default so don’t forget to see in 720p Lately I’ve been working mostly on small UI stuff, pixel tuning every menu/button and graphical interfaces in the game. It’s a bit hard mixing a lot of menus keeping a consistent and nice user experience. ...

June 1, 2012 · 1 min · 148 words · David Amador

Xbox 360 Controller Input in C++ via XInput

So you have that Xbox360 controller laying around and want to connect it to your game? On XNA this is an out of the box option but if you’re using C++ you have a bit more work to do first. First of all, you will need the DirecX 9.0+ sdk. The includes. #define WIN32_LEAN_AND_MEAN // We don't want the extra stuff like MFC and such #include <windows> #include <XInput.h> // XInput API #pragma comment(lib, "XInput.lib") // Library. If your compiler doesn't support this type of lib include change to the corresponding one Let’s define the buttons ...

April 15, 2012 · 4 min · 842 words · David Amador

Screenies time...

We finally released some screenshots of Dary’s Legend. Lately I’ve been working on the light system and fog of war for the game, it’s visible on the images. Here’s the official post but I’ve placed the images here for convenience.

March 30, 2012 · 1 min · 40 words · David Amador