hObbE's blog

Finally a Game from DICE again: Mirror's Edge

In a city where information is heavily monitored, agile couriers called Runners transport sensitive data away from prying eyes. In this seemingly utopian paradise, a crime has been committed and now you are being hunted. You are a Runner called Faith - and this innovative first-person action-adventure is your story.


This is not exactly a review, but rather a ramble. I'm about to give thumbs up for this game anyway Smiling As a Swede I'm of course not shy of bashing our gaming industry Evil , if you can call some 1000(?) people an industry. Swedish gaming industry is quite bleh, pumping out over engineered, technically advanced but alas no fun games (contrary to Swedish indies, with Nifflas and Cactus as examples).

The crown jewel of Sweden's game development industry have been DICE for the last eon or so... I first encountered DICE in their wonderful pinball games that I played like a madman. However, slowly but surely, the soul disappeared from their games and as many other Swedish made games they tasted of dust and mud. I've always been a candy man myself Sticking out tongue

That's until Mirror's Edge! Shocked I've only briefly tried the XBox360 demo version, but hooraaah, finally a GAME from DICE! I think it's great that they have been able to break free from the Battlefield franchise and make something that actually stands out both in terms of game play, and art direction.

The game has got some critique for being too linear, and I think they could have made the ingame graphics even more stylized. But hell, finally something that resembles a game!

Thumbs up for this one DICE!

P.S.
If/When I play the PC version I'll get back with a real review Smiling


users avatar

Review: Archibald's Adventures

Inide game developer Rake in Grass have done it again! This small crew based in Prague, Czech Republic have released a new top notch game; the platformer puzzle Archibald's Adventures.

Just take a look at this game play video and tell me you don't love this game!


To get back on track with the review, Archibald's Adventure is mostly a puzzle game disguised as a platform game. The goal of each level is to guide the hero Archibald to the exit. To do this Archibald must operate various switches, teleporters, and such, all while avoiding acid drops, mutated monsters, stompers and many other deadly perils. Archibald moves about using his skateboard, but using a number of special abilities he can also remotely explore a level, move crates, climb the walls and even fly. This variation makes for some really interesting and cool puzzles!

Graphics are on the happy side, coloful and cheery, and quite an opposite of the graphics in Larva Mortus. As a side note Rake in Grass displays an amazing breadth in their current game portfolio.

If there is anything to complain about in this game it could possibly be that I'd like the controls to be a bit tighter, also personally I'd like the game to be a bit more focused on platforming action. The game is also possibly a bit on the easy side...

Archibald's Adventure is definitely a new classic casual game and I hope it will be a big hit for the great team of Rake in Grass.

The game is available for both windows pc and OsX (there is even an IPhone version in the pipe), and you can of course download a generous demo. Now go and try it out!


users avatar

Game Development Productivity Tips

A few weeks ago a fellow game developer asked me how on earth I can be so productive, having a kid, wife, house, cars, daytime job, etc. I actually did not reflect much on it and I don't feel like I'm some productivity guru. On the other hand I do have picked up some good(?) habits along the way, and I guess making 25 releases of a game in a 50 weeks is somewhat productive. So these are my tips on productivity, they are of course biased towards on making indie computer games in general and programming in particular.

Stay Motivated

Making a PC game is not a 100m dash. At least not if your goal is to release it as shareware and have some people buy it. Making a PC game is more like a marathon, or maybe an ultra marathon. Be prepared for about a year in development time, and the hard part is actually to stay motivated and not jump to another seemingly more exiting project.

For me, key to staying motivated is iterative game development. For years I also kept on developing games, but not making any public releases. Needless to say none of the projects where remotely finished.

You need to find a way to cultivate your burning desire so that you don't spend it all the first month.

Get a Good Laptop

Good tools are a must to stay motivated and there are great productivity enhancing tools out there. I experienced a productivity boost when I got myself a good laptop. It's a high end one, with a full keyboard (including the numpad), good gpu and such. Using it I can stay productive during tv-commercials, 10-minute breaks, when traveling etc.

Leverage Your Compiler

My main tool is my compiler, and I tend to use it as much as possible. Over the years I have developed a style of coding that is intended to produce compiler or linker errors, instead of hard to find runtime errors. I tend to compile and compile for every line I write and having a bunch of compiler errors to fix is an automatic to do list. When I make a code change I want the compiler or linker to tell me where the code is broken, and not have some strange bug show up in some super-generic object oriented piece of over engineered game code.

I also tend to reject script languages for the fact that I don't want another source of bugs. If I need some code, I can simply make it in C++, use the compiler to my advantage and that's it.

Micro Task

To keep productive you need to have a backlog of tasks, and they need to be small. You simply cannot have huge tasks when you get 10 or 20 minutes of coding every now and then. Having a pool of small, micro tasks, that you can just pick up and finish one off is a great productivity enhancer. Also all big tasks can definitely be broken down into many smaller ones.

You should of course use a tool to track and manage your task.

Don't Finish Tasks

You should of course finish tasks, but I have found that the timing when finishing them can increase your productivity.

I have noticed myself is that I have a hard time to start fresh on a new task. It seems as taking those first steps is the hardest part. You can probably get passed this by just using discipline. But I have found that if I don't finish a task completely, (leaving the code broken with some compiler/linker errors) I tend to have a much easier time of picking up the pace. Then I make sure that I start a new task, which now is much easier since I'm already into development mode, before stopping and leaving the code broken for the next time I find a few minutes for development.

Use Source Control

You need to have all files, and I mean all, under some version control. Even if you are the only developer. This also goes for artists creating content and don't forget the original versions of the game assets. Having an optimized, resized texture in source control is actually less important than having the original, huge, layered psd original file under control.

Have a Normal Life

Finally you really need to have an ordinary life, with family, friends, exercise, healthy good food and non development related stuff. You really really need this to not burn out on your first project. I have seen great developers burning out on game projects, leaving their passion for games behind, starting a whole new career.

Making games is at times painful, dreary work, at the same time it can be wonderful, creative, passionate and exiting.

Would be cool to know if you have any similar experiences, or do you have some other productivity tip to share?


users avatar

Indie Game Mag

There's a new kid on the indie gaming block. Indie gaming has boomed the recent years giving uprising to a number of games to download for the PC and other platforms, a number of great websites, pod casts and now also an entire magazine; the indie game mag

I for one think this is a great initiative and I really hope that it will be successful. There could not be a better time to start this kind of magazine and sign up for an entire year of reading about indie games is just $19.95. For this you get six issues digitally distributed as a pdf files. You can also buy a single copy for like $4.

I have of course signed up for a year and I'm already looking forward to the next issue.

The first issue was good, maybe a bit on the safe side reviewing well known indie games, like World of Goo, Mr. Robot and Braid. The language and writing is edgy and I like it! Not often you hear a group of gamers referred to as "the graphics whores of todays consoles". It'd a good start but I hope they get a lite more brave in the future and really dive into the vast pool of indie games. Maybe you'll even see one of our games in there some day Smiling

If you are into or would like to get into inde games do check the indie game mag out!


users avatar

Bejeweled Twist Freeze

I'm a big fan of casual pc games. I just love the type of game you can just drone off into and spend 10-20 minutes and it does not have to be so serious. One of my all time favorites is Pop Cap Games Bejeweled. I even downloaded it to my mobile phone. I guess all the match three gaming is the cause for my little navigation stick being so wonky.

This was probably one of the games that started the whole wave of casual pc games, and the series has been sold in a whopping 25 000 000 copies worldwide. That is what I call success!

Bejeweled was also one of the inspirations for our own match three puzzle game with the added twist of using clues to navigate your pirate ship.

Speaking of twists the newest installment of Bejeweled is just released! It's called Bejeweled Twist. I immediately downloaded and got it up and running. I was really expecting much of this game, and sure enough it delivered. At least in the department of graphics, sound, music and that sort of smoothness you have come to expect from a top notch casual game.

The change from the classic Bejeweled games are that you this time spin four jewels clockwise to make matches. You are free to spin any four jewels at any time, that is your spin does not have to make a match.

This new mechanic has one big advantage, the game as a whole becomes much less random. You can always make a move, and you can line up your matches as you like. This is a very very big advantage as one of the biggest problems in classic match three games are that you can run out of moves and the whole game becomes quite random. Bejeweled Twist definitely brings the need for skill into the match three games.

The drawback is that it takes a bit of time to get used to. It is definitely not as intuitive as the normal match three, and it might have a harder time attracting the hardcore casual player... I don't think that Bejeweled Twist will bring new players into the causal games arena, rather it is a top notch game that is made for current casual players.

And now for the big anti climax...
Bejeweled Twist seem to have some sort of freeze bug in it. Seemingly randomly when playing a level I get unexpected freezes. The game stops, stalls and just won't respond. Gaaaah! I don't know if it is just om my computer, but I have restarted the game several times, and after playing one or two levels. FREEEEZEHTH. I have quite a good and new laptop computer running Vista so there is nothing strange in that department... other games seem to work just fine.

I really expected this game to work flawlessly. Especially considering the time and budget Pop Cap has, but I guess even the big guys have a hard time testing. Especially if you can opt for spending time and money on a big extravagant release party...

Hmmm what should I do today... Test the game some more... or test different champagnes for the release party.... hmmm This testing business is so hard...

Maybe if they had developed games iteratively they would not have this problem.


users avatar

Detecting if a Game Pad is Plugged in or Removed

In the latest download of our shoot em up pc game TWTPB, iteration 23, I implemented basic game pad support. There are a number of issues with this implementation maybe the most prominent one being that it does not handle plugging in and out the game pad during play. I think that it is probably a common scenario to plug in a game pad after the game has started.

This is a short tutorial on how to get your game to react when an usb device, such as a game pad, is plugged in or removed from the computer. This is handy when using the DirectInput api. XInput handles this in a transparent way which is nice, but alas there are many game controls that are not XInput compatible so when developing a pc game you probably need support for both plain DirectInput devices and XInput devices. This tutorial is Windows specific and in the C++ language.

It is not that hard to get a message when a device is added or removed, but it involves some rarely used win32 code that I spent a good few hour trying to get to work.

To start things off Windows sends you the handy WM_DEVICECHANGE windows message message when a device is plugged in or removed from the pc. So in your window message handling function you should have something like this:


WndProc(HWND a_hWnd, UINT a_msg, WPARAM a_wparam, LPARAM a_lparam) {
   switch (a_msg) {
       ...
       case WM_DEVICECHANGE:
           if (a_wparam == DBT_DEVICEARRIVAL) {
               // Device plugged in code goes here
           } else if (a_wparam == DBT_DEVICEREMOVECOMPLETE) {
              // Device removed
           }
       break;
       ...
   }
   ...
}

The there are also a number of other messages sent in the wparam parameter. So the tricky part here is that you won't get the DBT_DEVICEARRIVAL or DBT_DEVICEREMOVECOMPLETE as a default. You will only get a number of DBT_DEVNODES_CHANGED messages whether a device is plugged in or removed and this is obviously not what we want in our game code.

You will have to tell Windows that you want additional information when a device is added. You can do this with the RegisterDeviceNotification function. This function is quite complicated and takes a number of strange parameters. I for one love when a function has a void pointer as a parameter, it's great, you can just send anything down there Eye-wink

Anyway the thing we want is to listen to in our game is the device broadcast messages. The following code sets that up. I added this to my window creation function since you need a window handle to the main window, declared as m_hWnd in the code below. The setup is actually much easier than you think by looking at the docs.


DEV_BROADCAST_DEVICEINTERFACE notificationFilter;
ZeroMemory(&notificationFilter, sizeof(notificationFilter));
 
notificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
notificationFilter.dbcc_size = sizeof(notificationFilter);
 
HDEVNOTIFY hDevNotify;
hDevNotify = RegisterDeviceNotification(m_hWnd, &notificationFilter,
   DEVICE_NOTIFY_WINDOW_HANDLE |
   DEVICE_NOTIFY_ALL_INTERFACE_CLASSES);
 
if(hDevNotify == NULL) {
   // do some error handling
}

By using the handy DEVICE_NOTIFY_ALL_INTERFACE_CLASSES flag we can skip most parameters in the notificationFilter parameter except type and size.

Also for this code to even compile you also need to have WINVER defined >= 0x0500 like


#define WINVER 0x0500

Now Windows will send you all messages when a game pad is attached or removed from the pc and you can take the appropriate action in your game code.

Hope you'll find this short article/tutorial handy! Feel free to comment or suggest improvements.


users avatar

PC Game Packs; Rockstar Collection and ID Super Pack

For some reason I've been downloading and buying a lot of pc games from steam the last few weekends. They just have the greatest weekend deals on games I've been dying to play and downloading from steam is just so frickin' sweet! Though I do thing that steam is a bit bloated as an application...

This weekend I got the Rockstar Collection (deal is valid until monday...) including these games: Grand Theft Auto 3, Grand Theft Auto: Vice City, Grand Theft Auto: San Andreas, Manhunt, Max Payne, Max Payne 2, Midnight Club 2, Grand Theft Auto, Grand Theft Auto 2, Wild Metal. My first game downloads are San Andreas, Max Payne II and Midnight Club 2 (I actually know nothing about this game Sticking out tongue)

I remember playing GTA 3 quite a lot back in the days so I'm looking forward to both Vice City and San Andreas. The price was $43 (including vat)!!!

Last week I got the ID Super Pack including these games: Quake III Arena, Wolfenstein 3D, Ultimate DOOM, Final DOOM, DOOM II, QUAKE, QUAKE II, QUAKE II Mission Pack: The Reckoning, QUAKE II Mission Pack: Ground Zero, QUAKE III: Team Arena, HeXen, HeXen: Deathkings of the Dark Citadel, Heretic: Shadow of the Serpent Riders, Spear of Destiny, Return to Castle Wolfenstein, QUAKE Mission Pack 2: Dissolution of Eternity, QUAKE Mission Pack 1: Scourge of Armagon, DOOM 3, HeXen II, DOOM 3 Resurrection of Evil, Master Levels for Doom II and Commander Keen.

That's a lot of good games! I was especially longing for Quake, Quake III and Doom III. I never really got into Quake II... but I'll probably give it another try! I also wanted to try out the Commander Keen series, mostly to look back at the first ID Games. For all this I paid $43 (including vat).

Some other recent game downloads from steam are DeusEx (I completely missed this classic game) and hacker game Uplink and Darwinia by indie game developer Introversion Software.

One might wonder a bit how steam can sell games so cheap... good for consumers I guess and the games with deals on them are often not the newest releases so the original developers/publishers probably have already got their fair share. Harder to know about the indie games on steam though... But I guess they have massive volumes of sales and digital download sure p0wns retail.

I guess I have pc game downloads to last me a liftime now, especially in the pace I'm playing Smiling But I did finish HL2 ep2 just the other day, just took me about a year!

I'll try to get some more time playing games, autumn is coming so the lawn should at least stop growing soon.


users avatar
Syndicate content