Friday, June 4, 2010

Redirect...

Hi everyone!

This is the final post on this location, I'll be changing hosting to http://www.shadowcovenant.com.

So, update your bookmarks and follow me there!

Friday, May 28, 2010

Sorry...

...about the lack of updates...

I just bought a new webspace, and I'm still getting it up and running, so it becomes the home of my blog, my gallery, bio, etc, etc...

I haven't abandoned this blog, and I have lots of stuff to review and talk about, including games like "Alan Wake", "Darksiders", movies like "Planet 51", "Drag Me To Hell", "Taken" and "Book of Eli", and the end of "Lost"...

Hopefully, I'll have everything up and running by the end of next week and can resume writing as usual! :)

Have fun everyone!

Wednesday, May 19, 2010

Cold Comfort



May 3rd was the release day for Painted Black's debug album "Cold Comfort"... and what an album that is!
Painted Black was elected for 3 years in a row "Best Unsigned Act" on the Portuguese heavy metal magazine "Loud!", and listening to the finished album, it's easy to understand why.
Categorizing their music is hard, as it is a mixture of styles and influences; you have the agressiveness of death metal, combined with the melancholy and melody of doom metal and several others in-between...
The overall result is 55 minutes of the best music I've heard in a long time, capable of triggering emotions of an unusual range.
Special mention must be done to the first track ("Via Dolorosa"), which has an absolute kick-ass feel to it, and the last one ("Inevitability"), which is an extremely strong melodic and melancholic piece.
So head on to http://www.myspace.com/blacktapestry to listen to it, and don't waste time ordering it, so that you support good music everywhere (this way, we might get rid of all the terrible "comercial" music out there!) :)

To the Painted Black lads, I say: Well done... very well done indeed! :)

Monday, May 17, 2010

Drawn - The Painted Tower

Lately, I've been playing "Drawn - The Painted Tower" with my wife, and I must say that once again, the guys at Big Fish Games have done it... And by it, I mean create a casual game that has me entertained for some hours... :)

"Drawn - The Painted Tower" is a departure of their usual "find-the-object" gameplay system present in the "Mystery Case Files" series, being more akin to the "static-screen" graphical adventures of old that to that gameplay mechanisms...

It has the usual puzzle-solving (align colors, do a tangram, etc) and graphical adventure (use object A in spot B). My only complaint is that it's a bit easy so far (haven't finished it yet)... I've only used the hint system once (and I regreted instantly, since I should have tried harder), and although it's a nice touch, I wonder if it doesn't spoil the game a bit (having that help there, without any apparent drawbacks seems like counter-game, but they probably know what their player-base wants, since they've been doing this sort of game for a long time now).

The game theme is also different from their usual fare: a girl is captive in a tower and we have to find out who she is and how to free her... and while the story is kind of simple, it has that fairytale vibe that seems easy to achieve, but isn't.
Visually, they eschewed their usual "realistic painting" look for a more "hand-drawn" approach, which works better for this kind of game... in some moments, it kind of reminds me of Tim Burton's work (for example, the daytime clocktower painting).

All in all, it's a very fun and entertaining game, that sadly is a bit easy (which makes it a great introduction to the genre for newcomers, to be honest)... and for $7 USD, it's a steal! :)

Happy gaming!

Wednesday, May 12, 2010

The Imaginarium of Doctor Parnassus



Finally I got a chance watch "The Imaginarium of Doctor Parnassus"... After the reviews I've saw about the movie, I had low expectations for this, so I was quite surprised to have so much fun with it...
Again, it's the usual Terry Gilliam mixture of insanity, good storytelling, and above all, leaving stuff to the imagination of the viewer...
The film is as good for what it shows, as it is about what it implies... most of the tale of the Doctor himself is hidden and implied, and as such, we can build his entire story in our minds, which for an imaginative person is very cool...
The reviews were a tad cruel to this one (I wonder what exactly were they expecting, to be honest), but for me, the movie hit the mark, with superb acting (even the workaround with Johnny Depp, Collin Farrel and Jude Law to offset Heath Ledger's death), and more importantly, a non-conventional story, which seems to go in the direction of the "love-conquers-all" persuasion, but takes a U-Turn and goes to some very dark and unexpected paths...

All in all, I liked it very much and strongly recommend it to everyone...

To finish up this post, just a nify link: http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html ... This is for programming geeks like myself, but it's a good laugh for those... :)

Tuesday, May 4, 2010

Editor

Hey everyone...

I know, I know, I've been quiet lately... Reason for that was that my World of Warcraft account got hacked last week, and in trying to find how that happened, I didn't trust any of my computers to log on to anything... :\
Still haven't figured out how I got hacked (probably a well hidden worm, trojan or keylogger), so I decided to just format all my PCs...

Anyway, I'm back and been super-busy with my all-purpose editor...
Lifting the veil a bit:


What you're seeing is the 2d map component editor...

What my editor does is handle "components" that have "entities", which in turn have "properties". These properties can be class-driven (so out of the box, my "2d objects" have a size, position, etc, etc... You can see the property editor in the right lower corner of the screen.) or custom added by the user.
This type of system has lots of nifty advantages... one of them is that the properties can be edited in a series of you, from GUI components on the property editor, to directly through the viewport. Another advantage is the fact that the undo system becomes way easier to build... I have unlimited undos/redos on this editor, which will make it easier for content creators to access... I'll probably make a post about my property system in the future, since it has a lot of nifty macro tricks so that adding a property is easy.

All the system is built using the Win32 API (so no MFC, .NET, Widgets or any kind of external tech). Reason for this is that in the past I've used my own library (too much work to add stuff, looked ugly, was unwieldy and unnatural) or wxWidgets (and I usually came midway through the project thinking I was fighting wxWidgets more than the actual editor code).
It has been a fight getting this to work at all (since I just use the Internet as source of information on Win32 API), but I think it's well worth it... I can create a new control type very fast nowadays, after the initial "Where the hell is this?!" or "How can I do that?!?!?!"...

The project managment code was also a bitch to get right, since I wanted this editor not only to encapsulate asset design, but also the project managment part of it. For example, when you want to add a 3d model to the system, you don't just dump the file in a specific directory, you import it to the project, where he does all sorts of nifty things, before storing it in an easily parsed XML format (which is also good to merge using CVS tools). Later, you can invoke the "compile" command which will turn the files into binaries, for faster loading, etc.
It can also launch external applications (for example, the game executable, so the user can see how the level is playing, for example), or text editors (to edit scripts and such).

All of this took a bit in creating, but I'm very happy with the results so far...

Hopefully I can lift the veil a bit on the inner workings when I get some time to write some tutorials... :)

Until then, catch you all later!

Saturday, April 24, 2010

Giving up...

Although I was psyched with this compo, the fact that the theme is islands sapped my will to finish this game...


Nothing wrong with it from a technical standpoint... no bugs, no nothing, it was terribly easy to code, to be honest...


I did an island-based game last time, and bar remaking that one and improving it, I'm not having decent ideas for games, and there's no point in wasting a whole weekend on this if I'm not having fun...


Next competition I'll be back... :) And hopefully, I'll be able to come up with a better idea that I actually want to finish... and I'll practice my sprite animations, so I don't lose 3 hours making a stupid and terrible walk cycle... :)


Good luck everyone! Last screenshot for the road:


screen08.jpg

Cloud-shifting system done

Just added the gameplay system that enables the player to convert clouds into floating islands for a short period of time:


screen05.jpgscreen06.jpgscreen07.jpg


It works great, but I'm not seeing this game turning fun anytime soon... I'll persevere in the hopes that I have a moment of inspiration and I find a way for the game to work as a game (challenging and fun)...


Already thought a lot about scrapping this, but I like taking things until it's bitter conclusion... :)

Movement and collision detection

And once more I've done the most horrible collision detection system ever, a tangled web of ifs and elses, special cases and other horrible things... it works well, though, so I'll probably just touch it the least I can... :)


screen04.jpg


Player can jump and fall, move left and right and that is all animated... of sorts...


Going to add a nice gradient background (that blue is getting on my nerves), have lunch and then get to make our own clouds appear...

Ground sprites done...

At least my ground sprites don't look all that sucky...


screen03.jpg


Now I need to get the wizard moving on these, jumping and falling, with camera tracking... the usual stuff for platformers...

Why stuff always looks better on my mind?!...

Enough said:


screen02.jpg


Just finished the walk cycle of my main character, and it is UGLY! :\


Took me almost 2 hours to come up with something this horrible... I wish I could just steal art from some place so my games don't look so terrible!


Anyway, now to build some "island", "cloud" and "ground" sprites so I can do the actual game work... I'll get back to this later if I find the time...

An idea...

Got an idea... a sort of "Rainbow Islands" game, with some other things thrown into the mix...


The player controls a knigh/wizard and has to get to... somewhere... well, no matter, player will have to transform clouds into floating islands to be able to get to his destination, using the environment as well (floating islands already in place), which can have monsters and stuff...


Still need to clear up lots of details, but in the meantime I can start drawing and stuff...


First step, create the player character, so that I know what size everything will be...


First screenshot:


screen01.jpg


Impressive, I know! :)

Just woke up...

Just woke up and had breakfast, after a quick peek at the theme... Islands?


I won't say I hate islands, but I kind of did a game with islands on the last competition, which sucks...


No idea on what I'm going to do, but I'll try to stear clear of the exploration, Sid-Meier-esque thing...


Time to think about an idea...

Friday, April 23, 2010

Almost ready...

Well, almost ready to go...


Reviewed some details on my base framework, you can get it here.


My framework just features:



  • D3D9 initialization and some helpers

  • FMOD interface for sound

  • 2d Sprites

  • 2d Particle System (very rudimentar, 2 color one)

  • Text (works terribly in fullscreen, hope I have time to fix that during the competition)

  • 3ds file loading (only tested with 3ds generated by 3d Studio Max). Loads lights, meshes and cameras.

  • Small simple math library (vectors and quaternions)

  • Simple 3d camera handling system (just look at operation)

  • XML loading/saving (might come in handy for configuration files, load/saves, etc. The XML loader was created by Frank Berghen, not me... the writer is all me, although the loader also has save functions, but I'm too lazy to figure out how they work)

  • 3d particle system (based on the 2d one, so very rudimentary)

  • 3d sprite system (quads that always face the camera)


This still does much less than the usual game makers, flash, etc, but it really shaves off about 10 hours or so work...


Still want some time to review my pixel-art talent (had good results on my last competition with some static stuff, want to see if I can learn how to animate a simple character... Really recommend this link: http://www.gamedev.net/reference/art/features/CoderGameArt/ , and this sheet for reference: http://pages.cthome.net/mnoni/webpage/finalfantasy.gif ).



cutscene_cursed.jpg


Finally, I still need to go junk-food shopping... you can't have a 48-hour competition without tons of junk food... chips, drinks, chocolate... hum... chocolate....


There's some good themes for the competition this time around... Kind of rooting for "Pretentious Art Game", although I have no idea what to do with that, but it would be fun thinking up... "Forest" might also be nice, as well as "Collecting" (rogue-like, here I go!).


Anyway, I'll be updating my Facebook, my own personal blog (http://www.returnofthespellcaster.blogspot.com) and Ludum Dare's blog (http://www.ludumdare.com/compo) one throughout the competition, as usual...


So good luck everyone!

Monday, April 19, 2010

Some links...

I haven't had anything interesting to talk about in the last days, been über-busy with my new all-purpose editor (I'll do a post on that when I have some screenshots to post that show interesting stuff) and getting ready for the 48-hour competititon of next weekend.


In the meantime, I have some links to share with you guys...


First up, two games from Jake Elliot: "Beulah & the Hundred Birds" and "Dog and Bone are friends":


beulah.jpg


Like "I Can Hold My Breath Forever" (ICHMBF), "Beulah & the Hundred Birds" (BATHB) is a game that has a childhood dream story feel to it, based on exploration rather than conflict, with a nice twist in the end that explains the story... All the comments I've done before stand... BATHB is more "conventional" than ICHMBF from a gameplay standpoint, taking the form of a platform game, and it's definately worth picking up (you should be able to finish it in 10 mins or so).


dogandbone.jpg


"Dog and Bone are friends" (DABAF) is a more "common" game, in the gameplay sense. You control two characters with different skills and have to unite them in each level. The Jake Elliotness of it comes down to the fact that it is a game about friendship, which is a human trait missing in most games... in most games, friends are just there for A) betray you; B) to save; C) as extra arms and legs for fights. It's interesting to see what you can actually do with the friend concept in games, taking it a big further like in DABAF.


towrl.jpg


Was talking to a friend the other day and I remembered Towrl games. From the website:


Towlr are puzzles. Contrary to conventional design wisdom, the towlr games come without instruction and without explanation. Your job is to discover their secret, and score deliciousness. Yes, every Towlr game can be completed.




Towlr are complete audio/visial experiences. They should be played with sound at a reasonable level, and computer monitors turned on.




Towlr may frustrate you. This is normal.


These games are soooooooo frustrating sometimes, but they're quite neat, check them out at www.towlr.com.


Another cool link is the wiki-based "PlayPen" game, a cooperative exploration game, where players can build on a story that's being writen by them... Words can't really explain what's going on, so head on the website and try it out... It's a fun experiment, albeit one that could really be improved with modern technology, i.e. give "players/authors" the tools to build better and more complex worlds and see what they'd come up with... If I was a decent Flash programmer, I'd go for it! :)


Finally, a touch of awesome... After the raging success of "Megashark VS Giant Octopus", get ready for:



Yep, that's a real movie... and if it's not enough for you, head on to http://www.theasylum.cc/ , where you can see the trailers for more of their movies (which are totally full of awesome!).


And that's it for me today... Have fun everyone!

Tuesday, April 13, 2010

Ludum Dare's 48-hour competitions

The weekend after the next (from the 23th to the 25th), there will be another 48-hour competition on Ludum Dare.


In these competitions, you get a theme at an appointed time (3am in the morning of Saturday, in my case), and you have to build a game from scratch in 48 hours based on that theme... By from scratch it means you have to make all code, all graphics, all sound, all design, etc, in 48 hours, and release it with source code.


With time, the rules got a bit relaxed (you can do a code framework beforehand, or use a game maker), but it's all good fun, and I've been participating since the first one (although I stopped for a while in the middle).


Thinking on this, I got this idea of doing a retrospective of the games I made in 48 hours... Note that most of these games were created before Spellcaster Studios even existed formally (only on my mind...), and that I did _everything_ you see in the game, in raw C++ with DirectX.


compo01_Supahero.jpg


Competition 1 (July 2002)- Theme was "Guardian" and I actually did 1.5 games for this one... it was my first competition, and I was overly ambitious, so I had to scratch my first idea halfway through, and try to finish up something... I ended up with "Supahero - Protector of the Panicking Idiots", in which you control Supahero and have to defeat some geometric forms before they kill 3 panicking idiots... If I remember correctly, I won 3rd place in the sound category, using only my electric guitar and my wife to do the sounds... this game is almost 8 years old! :)


compo02_Sheepdome.png


Competition 2 (November 2002) - The theme this time was split between a cosmetic theme ("Sheep") and a gameplay theme ("Construction/Destruction"). I had this idea of building a FPS in which you could destroy and build platforms in which you stand... Again, it was overly ambitious and I ended up with a game that wasn't finished... I just got the construction/destruction part, and it has no AI and gameplay... But still, "Sheepdome" is still an idea I'd like to work out one of these days...


compo03_Battlefield.jpg


Competition 3 (April 2003) - The theme was "Preparation", and I remembered a very old ZX Spectrum game called "Star Trail" (a ripoff of Star Trek in game form, featuring a procedural universe), and I did a game that featured shooting with angles and power to destroy some targets, considering gravity. It was called "Battlefield: Stars" and after that one, I always wanted to revisit that kind of strategic space combat game (with ships moving and stuff).


compo035_Nightmare.jpg


Competition 3.5 (Christmas 2003) - This was not an official competition, more of something to do because there was a big hyatus. Theme was Christmas, and the objective was to make a game in a the whole month preceding Christmas (since people were very busy, nobody could allocate a whole weekend to it)... I finished up doing "The Nightmare Before Christmas", which wasn't completed... the idea was to use influence markers to steer the elves away from traps and into Santa's Workshop, so they could make the toys... Only had about 16 hours to work on this total (in a month... :( ), but the result was some of the best graphics I've ever done!


compo04_Virgil.jpg


Competition 4 (April 2004) - The theme this time was "Infection", and I created a game called "Virgil", in which you controlled a virus that had to infect cells, while avoiding and destroying antibodies... It was the first time I gave up on 3d for a 48-hour competition, and the result was that I actually finished this one... And it was fun playing it at the time... I mostly stayed within 2d games for the next competitions... 3d games might be cool to make, and easy aswell, if you have an engine, but if not, it's just painful and you loose too much time with details, and not enough with gameplay and completion of the game. I went into a two-year hyatus from competitions after this game, for some reasons I can't remember anyway... I came back in:


compo08_AntSwarm01.jpg compo08_AntSwarm02.jpg


Competition 8 (April 2006) - Theme was "Swarms", and I wanted to create something that would incorporate the concept of natural swarms into the gameplay, and hence "Ant Swarm" was born. The idea was to control one of the ants, which would leave a pheromone trail behind her and the other ants will follow to gather food for the winter. The game worked so well, in terms of concept (not implementation, but it served as a proof-of-concept) that afterwards, Spellcaster Studios (as a company now) would take the concept and pitch to a publisher, which actually agreed to finance it and build a "good version" of it. Unfortunately, the publisher ultimately pulled out, and we couldn't figure out how to get the game past some design issues it had... But the game is more or less complete in my hard-drive, with decent graphics (two sets of them actually, since we weren't happy with the first real iteration of them and redone them).


Because of all the Spellcaster Studios issues, I didn't have time to participate in anymore competitions until 2008...


compo12_BrickTower.jpg


Competition 12 (August 2008) - The theme was "Tower", and I was thinking of creating a procedural RPG game for the competition, taking places in the different levels of some mage tower, but I decided against it, for two reasons: one, I was out of practice with this kind of speed-coding, and two, I had a work trip to Dublin schedulled in the middle of the competition, which meant I started the game in Portugal and finished it in Dublin... Anyway, "Brick Tower" was a simple puzzle game, and it was complete, and had some nice ideas in it, although it wasn't very sophisticated design-wise. Unfortunately, I don't have the original version of the game (the competition one), only a version with redone graphics by an artist, so it looks a bit better than the version I submitted...


compo14_AWOD.jpg


Competition 14 (April 2009) - The theme this time was "Advancing Wall of Doom", and it was a small nightmare comming up with something to do with it... I finished up doing an "Indiana Jones" kind of game, in which an explorer goes into some caves and has to fight off ghosts and traps to get the treasure. It was called "The Haunting", and I was quite happy with it... Remindeded me of the spirit of "Rick Dangerous" on the Commodore Amiga, and it is certainly one game I'll revisit when I have the time for it...


compo15_Deepspace.jpg


Competition 15 (August 2009) - The theme was "Caverns", and it marked my return to 3d games for the competitions... and it was a mistake... The game was going very well, it was a game in which the player had to control a robot inside a procedurally generated cavern, to help another robot (AI controlled) get all the minerals in it. Problem was that I wasn't having fun doing the game, for some reason, and I kind of gave up on it in the middle (48-hour competitions are about fun, so just doing something for the sake of doing, and losing a whole weekend at it didn't appeal to me). Out of curiosity, the game was similar to what was the initial pitch concept for "Blitz and Massive", before it turned into a graphical adventure.


compo16_Cursed01.jpg compo16_Cursed02.jpg compo16_Cursed03.jpg


Competition 16 (December 2009) - The theme was "Exploration", and I created "Cursed" for it. The game was about a cursed pirate crew that had to find 8 relics in a procedurally generated pirate world, by getting map pieces, digging around, fighting other pirates, etc. It was one of my best 48-hour games ever, since it was very complete and it really was pleasurable doing... I even did an initial cutscene for this one, and the procedural generated game world and map system was pretty awesome for 48-hours... I even got the hang for some pixel art (hence the cutscene). Hope I can repeate this experience for the next competition...


And that's it, all the 8 games I did for competitions in the last years... Check them out and have fun (if you can, some are terrible and don't work too well in modern PCs)...


Can't wait for the weekend after the next, I'll be doing updates on my blog on the progress of the game I'll build...

Friday, April 9, 2010

The Uncanny Valley

The uncanny valley is a hypothesis regarding the field of robotics. The theory holds that when robots and other facsimiles of humans look and act almost like actual humans, it causes a response of revulsion among human observers. The "valley" in question is a dip in a proposed graph of the positivity of human reaction as a function of a robot's lifelikeness.


Above is the definition of the "Uncanny Valley", taken from Wikipedia.


After robotics, the Uncanny Valley has been refered in fields as computer graphics and audio design; what I want to discuss now is the effects of this in narrative and storytelling in games.


I was discussing with a friend of mine the other day about how the games before (in the 90's, for example) would immerse us more than the games nowadays... Now, I don't want to sound like an old man saying that what was done before was much better than what his done now... this would be a lie and an insult to all game developers out there... Most games nowadays are much more complex and are more evolved in any sense of the word.


So, why would older games make me think back to those days with happiness and fond memories, while I can't remember most of the games I played last year?


First theory: I'm older, so games don't appel to me so much anymore... I don't believe this to be true, or else I wouldn't want to make games so badly... On the other hand, one of the most influential games I played this year so far was "I Can Hold My Breath Forever" (see my last post), which immersed me as much as the old games.


Second theory: By playing so many games over the years, I became more demanding... Still a false proposition, since I loved playing God of War 3, which is not better than any of his predecessors.


Third theory: Older games relied more on imagination, since their graphics, sound, etc, weren't so evolved... Now I think I might be on to something with this!


The third theory shift the game from a "watcher" perspective, in which I play but the storytelling/narrative is all showed to me, to a "participant" perspective, in which I still play, but I have to fill in the blanks in the narrative.


Old games didn't have fancy "facial modelling" technology (some characters had a 8x8 pixel square for a head!), nor "top-notch voice acting" (lots of them didn't even have voices!), "realist physics" (stuff just fell down linearly, if that much!), etc...


That kind of "backwards technology" demanded more on the players... it demanded the players to use their imagination to playout the character's voices, to imagine that the crate actually was accurately falling over, what kind of expression the character was making, etc...


That made us an integral part of the story, the same way a children that can't read gets a book up and starts making up their own story based on the illustrations on it. And by making us integral part of the story, it made us "invest" something of ourselves in it, and that in turn made us want to get a return on our investment, which made us sell the game in our minds better than it actually was...


A good example of this, in my opinion is the "Legacy of Kain" series... the first games was just gastly, graphic-wise. And yet, the story was so rich and powerful that I couldn't help but playing it... And while the "Soulreaver" games were awesome aswell, as an extension of that story, the series lost his flair with the introduction of better technology... maybe the story couldn't keep up with the ammount of games (5 games in all), but it's also possible that when Rhaziel and Kain became more real, they lost some of the allure they had in the first two games of the series... I had to imagine Kain in my mind, in terms of voice and expression... And Rhaziel was just a husk of a character in the first Soulreaver, with not many dialogs and insights into itself...


So we filled in the blanks... And that, as game designers and game writers is a powerful tool... build enough into the game story that players can initially hooked, then enable them (not talking about editors, but narrative-tools) to get engaged in the story themselves, to have a stake in it (either by choices they make, or what they are forced to imagine, or better yet, both!)...


sleep_is_death.jpg


Related to this, lately I've been hearing a lot about a game called "Sleep Is Death", which basically is a two-player colaborative/competitive game, in which one the players creates the story the other player is traversing. You can find it here.


Just to wrap up this post, be sure to check "Pixels" by Patrick Jean... this is one sweet short:





PIXELS by PATRICK JEAN.


Also, getting very psyched for Alan Wake:


Monday, April 5, 2010

I can hold my breath forever...

icanholdmybreathforever.jpg


"I Can Hold My Breath Forever" is a neat game created by Jake Elliott as an entry in the "10 Seconds" friendly game competition that I found in my daily browsing... You can play it here...


The game itself is not brilliant, with dodgy collision detection and too short of a time limit on the underwater breathing mechanism for a kid to play... and kids should play this!


It's the perfect example of a kid story turned into a game... It has a simple gameplay mechanic, and a moving story with a sort of moral into it...


It's one of those games I'd like to have created myself; it's moving, powerful and simple. And it got me thinking of game for kids, and specially in games for kids to play with their parents (or vice versa)...


Like a child's book that a parent read to their children all over the world, I can imagine a parent sitting his 3-year-old in his lap and letting him explore the game, reading to him out loud the letters and the story, both immersed in this small fantasy world.


Got me thinking on narrative-based games for children, and if I ever find the time, I want to do something similar: a game designed so that a parent and his child can play together.


Even the bad graphics add to the atmosphere, since they leave a lot to the imagination, which is one of the parts of human psyche that are more developed in a child.


Ultra-realistic graphics/sound aren't important for a child (just check the work of the well-known illustrators for children's books, for example), it's the story they "read" and create in their mind, sometimes with the assistance of their parents, sometimes by their own. The story should be loose enough so they can fill in the blanks and imagine their own story by giving them a "framework" to build upon... In the above case, it's just a series of letters and some underwater caves with glowy fish. In children's books, we have even simpler frameworks; for example, my wife (a kindergarten teacher) bought a book a short time ago whose framework was just a balloon and his travels! It had very little text, just some tidbits, and the child could create the rest of the story by itself...


I'll state again: I want to design something like this, if I can... I already have a base storyline for a game that has the codename "The Little King". It should take me 3 or 4 days to create the game as I'm envisioning at the moment... I'll probably grow it and make it megalomaniac (as I do to everything) and it will become a 2-year project, unfortunately...


Since I'm on the topic of storytelling, check out Ben "Yahtzee" Croshaw's article on Betrayal on The Escapist here. Very interesting, and while he's focused on the "Betrayal" story archetype, it's really a good eye-opener for storytellers everywhere about the dangers of trying to make your story "surprise" and "have more stuff"...

Tuesday, March 30, 2010

One-Button Gaming

Been been having a bad work week (been doing a lot of DVB related stuff, which sucks), but that's no excuse for not updating my blog... just an excuse to make it small...


I've been looking at the concept of one-button games, and I think it's (conceptually) awesome... I wouldn't do a game like that myself, nor would I consider it commercially, but from a game design standpoint, it's very cool!


onebutton.jpg


Above you can click and play "The Adventures Of One Button Bob", one of the best games of the genre I've seen so far...


What one-button games demonstrate (beyond the usual examples of a character that can just jump, or something like that) is that with good design, and thorough thinking, you can create quite fun experiences with just one button, which is a neat mind-workout...


I've been trying to apply some of the same logic in my own game designs, by asking myself several times "Do I really need this control? Is this adding or detracting from the game?"... By cutting down from the initial design, you might end up with something more streamlined and fun... of course, you might also end up with nothing from a gameplay standpoint (i.e. "The Heavy Rain Syndrome")...


So that's it for this short blog entry... hopefully I'll write a bigger one this week... :)


Ah, BTW, check out the "Splinter Cell: Conviction" launch trailer... It's cliché, but it's awesome... Haven't felt excited by a Splinter Cell game since the first one! :)

Friday, March 26, 2010

2d Polygon-Based Collision Detection

Lately, on the gamedev side of life, I've been working on a platform game structure, so I could create a more or less complete platform game from an editor...


I was considering three engines on which to build the "Game Player" itself: Flash (Flex-based), Torque (Torque Game Builder, more exactly) and Spellbook (my own engine).


One of the most important aspects for me was the ability to use my pipeline to build the game... so that would imply creating the assets in 3d Studio, use a tool we call IBGen to build the sprite images and then use that for the game.


So, I started with a Actionscript exporter for my Flash tries... Although I got a platformer structure working pretty fast, Flash is just too slow for my purposes, which is too bad, since it was going very well:


flash_dev.jpg


Flash would have the advantage of running on lots of platforms (Mac, PC, Linux, and so on), with a huge ammount of compatibility, from a HW standpoint (the old PC-dev nemesis!).


I tried Torque Game Builder (TGB) next, with the Platformer Starter Kit (PSK). And while it had some nice ideas, the ammount of work on the code itself that would have to be done to adjust itself to the needs of my project would have been too big, considering that I would have to learn the inner workings of Torque and PSK... But the state machine that the PSK uses was very nice, so I kind of designed a similar system for my own platform system.


So I decided to go Spellbook, and all was good... until I had to do collision detection...


Normally, I do collision detection in 2d either using tilemaps and circles, or by cheating, testing horizontal and vertical displacements separatly and reacting accordingly, but at the end of all projects, I end up with an extremely ugly piece of code that's too finicky to work with again... and each time I swear I'm going to do a better job at that...


Well, this time I decided to try to do it correctly from the start, using 2d polygons as collision primitives and reacting appropriately (more or less physically correct) to the collisions.


On my initial formulation of the problem, I'd like to find out if a polygon A that will want to move a certain delta will collide with polygon B, and if so, find out when and where.


Some quick searches later, I didn't seem to find a general swept-polygon test, so I had to implement my own.


My own test is not as efficient as it could be, I think... For example, I can probably take advantage of the fact that the polygons are convex to speed up the process, but the algorithm outlined below is fast enough for my needs...


My algorithm is all designed around of checking if the line segment formed from points Pn and P'n intersect any side of the other polygon:


col01.jpg


Pn is the nth point of the first polygon, P'n is that point offset by the delta, so P'n=Pn+delta.


So, check if that segment collides with any of the segments that define the second polygon, taking the one that will take less "time" to hit.


To discover the intersection of two line segments, La and Lb, you just have to solve the equation:


La=Lb


Since La=P1+ua(P2-P1) and Lb=P3+ub(P4-P3), and we're working in 2d, we get the following two equations:


x1+ua(x2-x1)=x3+ub(x4-x3)


y1+ua(y2-y1)=y3+ub(y4-y3)


Solving for ua and ub, we get something like:


den=(y4-y3)(x2-x1)-(x4-x3)(y2-y1)


ua=((x4-x3)(y1-y3)-(y4-y3)(x1-x3))/den


ub=((x2-x1)(y1-y3)-(y2-y1)(x1-x3))/den


If den=0, the lines are parallel and will never intersect, unless the numerator of both equations are also 0, in that case the lines are coincident.


Finally, if 0<ua<1, the lines intersect, and point of intersection is PC=P1+ua(P2-P1).


One thing I've noticed is that since the polygons are convex, you only have test half the segments in the polygon, the segments that are facing the opposite direction from the delta (green ones, in the example below):


col02.jpg


The whole function would look similar to:



t_min=FLT_MAX
For all vertexes(V) in poly A
For all edges(E) in poly B
P1=V
P2=V+delta
t=point_of_intersection(P1,P2,E)
if (in_range(t,0,1) and in_range(t,0,t_min)) then
best_vertex=V
best_edge=E
t_min=t
end
end
end
For all vertexes(V) in poly B
For all edges(E) in poly A
P1=V
P2=V+delta
t=point_of_intersection(P1,P2,E)
if (in_range(t,0,1) and in_range(t,0,t_min)) then
best_vertex=V
best_edge=E
t_min=t
end
end
end
if (t_min==FLT_MAX) return NO_INTERSECTION
TimeOfContact=t_min
PointOfContact=V+delta*t_min
NormalOfContact=E.normal()

One important thing about this routine: it just handles collisions through movement (if the object is already colliding when the test is done, it will acknowledge no collision).


Now, collision response is as important as collision detection, since that's where lots of things can go bad...


When we don't detect a collision on object A moving a certain delta, end position of said object is just:


posA=posA+delta


But what happens if we have a collision?


Well, we have to contemplate some movement and modify the delta, according to the normal:



if (test_collision(A,delta,TimeOfContact,PointOfContact,Normal)) then
posA=posA+delta*TimeOfContact
else
posA=posA+delta
end

But imagine you have gravity and are moving to the right, so that delta=(10,10) and you detect the collision time is 0.2 (from a possible 0..1).


So, you would move down 2 units, and to the right 2 units, and then stop, instead of moving 10 units to the right, since nothing is stopping the player from doing that!


So, we need to account for multiple collisions during the whole time interval, and we get to something like:



float total_time=1
while (test_collision(A,delta,TimeOfContact,PointOfContact,Normal)) then
posA=posA+delta*min(TimeOfContact,total_time)
total_time=total_time-TimeOfContact
delta=delta-normal*dot_product(normal,delta)
if (delta.is_null) break
end

The "delta=delta-normal*dot_product(Normal,delta)" removes the offending movement component from the displacement vector. In the above example, the new delta would be (10,0), and we would only have 0.8 time to move on that vector. This would create the correct final position of (10,2), instead of the incorrect (2,2) of the first version.


Now, there's a final problem with this solution... Since our poly/poly intersection function can't handle cases where a collision is already existing, this would fail, since the first intersection would make the first polygon be lying just on top of the the second polygon, intersecting the edge (correctly), but future movement would pass right through it...


You could handle this case by checking for colinearity and a series of other processes, but I found out that the simpler way to work this through is now to allow the movement that would bring us to that limit case, by just changing the order of a couple of operations:



float total_time=1
while (test_collision(A,delta,TimeOfContact,PointOfContact,Normal)) then
delta=delta-normal*dot_product(normal,delta)
if (delta.is_null) break
posA=posA+delta*min(TimeOfContact,total_time)
total_time=total_time-TimeOfContact
end

While this isn't as correct from a formal standpoint, it works great in practice, stopping those small edge cases that can be quite tricky to get working correctly...






Any questions, or suggestions of improvements, let me know... I'm sure I can make this a better algorithm by taking in account the fact that the polygons are convex.


Note that this algorithm works with concave polygons aswell, but you'd have to remove the dot_product test on the poly/poly intersection test, and make sure the scale of the objects are very different, so that you don't have simultaneous collisions to handle, which happens quite easily in concave polygons.

Wednesday, March 24, 2010

Heroes are jerks!

jerk.jpg


To start off lightly:





But this raises a good point: heroes in most games are mostly jerks...

They scrounge along the possessions of people while they're home and take what they want! While some games penalize this sort of behavior (by not allowing players to do it, or only certain classes), most games are happy with this loot whoring!

And this is not the only instance of heroes being jerks... For example, think of the multi-character games (Baldur's Gate, for example), where you could breeze through the game only worrying to gear up the main character and just passing the leftover pieces to the other members... and none of them got pissed and left! It's funny to think that in MMORPGs, you have to devise pretty complex loot distribution systems so that it is more fair... would be fun a single-player game where players other than your main character could also try to get the loot for themselves, instead of defering to the great hero...

Another example is a kill X of Y quests in most RPGs (especially MMORPGs)... in World of Warcraft, for example, you get a quest where you have to kill some Murlocs because they're being riled by an evil sorcerer... why not just kill the sorcerer?! Oh, wait, you get that quest later, but in the meantime you were a genocidal maniac just killing people because they were of a different, hardly-sentient race!

I'm not saying that games shouldn't have these kind of quests, but make it a moral quandary... give the player the oportunity to not outright slay everything in sight and get different rewards according to the path... Is this boring for most players? Ok, how about we just kill really evil things, instead of this grey moral ground? Or give some penalty to allignment, which influences what you can or cannot use... Would love to see that kind of feature in WoW, to be honest...

I know it's harder on the devs, requires much more game design, but it would definately be interesting...

In most RPGs, heroes are made out to be saviors of all that's good, veritable paragons of virtue; and yet, they are probably responsible for more death than the evil dark lord they're trying to dethrone... but that's allright, 'cos most bad guys are evil because they do evil stuff to innocents...

And hence we come to the crux of the issue: in games, the end justifies the means, which if you think carefully enough, is the reason while most people think violent videogames are the worst thing in the world... While in most movies (the competing media for "Worst Thing In The World"), when the character does something "wrong", it gets to struggle with it for the whole duration of the film, on videogames, the character is you... so, ideally, you would struggle with the decisions you make... but the decision you made wasn't to go postal on evil-controlled race, it was in fact to use your pixels to hit the other pixels, until the other pixels wielded more pixels and you ran away happy...

There is no correlation between what you do in the game and the real life parallels (and that's why that the relations between game violence and real violence are completely blown out of proportion!): if you would feel in the game that you were indeed "killing" something/someone, you would generate an empathic relation that would make you struggle with yourself, negating the positive feeling you get with the "quest achieved"... If that wouldn't happen, congratulations, you're a sociopath and if games don't send you over the edge, probably the wrong type of cereal will!

Games nowadays struggle hard with graphical, audio and physics realism, but they still shy away from the really though concepts of game designing for realism... yes, I know magic doesn't exist, but I'm willing to suspend my desbelief for that... what I'm less inclined to do is to suspend my realism on what I'm supposed to achieve in the game by my victory!

Of course, this doesn't apply to the oh-so-popular anti-hero player character, that isn't a clear-cut good guy as most RPGs have... these are a whole new level, and they're much harder to create as believable characters, in my opinion.

At the end of the day, heroes are indeed jerks... jerks on a mission, but nevertheless jerks...

Changing topics, went yesterday to see "Star Wars in Concert"... and it was frikkin' awesome... John Williams might not be the most original guy in the world (just check out the soundtracks for Star Wars, Superman, Indiana Jones and Harry Potter... they have the same elements), but when it comes to creating movie anthems, he's probably the best in the world in what he does... His sense of melody and grandeur is just breathtaking, and listening an orchestra playing this live just adds to the sense of awe...

To finalize, the dutch metal band Epica doing a cover of the Imperial March (also awesome live, I've seen it, yay!):



Monday, March 22, 2010

Weekend Movies and Gaming

SolomonKane.jpg


Hey all!


First things first - God of War 3 is amazing... I have to review my review... all the faults I pointed out in my early impressions really go away from the middle of the game onward... I've finished it in the weekend and it's the second best game on 2010 so far (only second to Mass Effect 2)... So reviewed scores for it:


God of War 3



  • Gameplay: 10/10

  • Story: 8/10

  • Graphics: 9/10

  • Sound: 9/10

  • Brutallity and Violence: 10/10

  • Overall: 9/10



Next on my playlist: Heavy Rain... again... :\


And since I'm on the topic of games, check out this trailer:




























I'm a sucker for graphical adventures, and this one has a visual style and a humor type that appeals to me... Can't wait to take it for a test drive and see if it's any good...


Weekends are the time for relaxing and movie watching... besides lots of gaming, of course...


This weekend I saw 3 movies: "2012" (which I missed on the movies), "Solomon Kane" and "In the Name of the King: A Dungeon Siege Tale".


First up, 2012... well, as most people on the net probably said, the movie is terrible, but has nice destruction sequences... I didn't follow any of the movie reviews and such when it hit the theatres, to avoid spoilers, but I'm guessing everyone thought the same... the destruction sequences are massive and very well done (Roland Emerich style), but when I thought you couldn't top off the wrongness of plots in disaster movies after "The Day After Tomorrow", Emerich shows us you can always dig deeper! Mutated neutrinos?! Come on, even as a plot basis for a disaster movie, that's pretty week... oscillating in pseudo science like that, and Mayan predictions (why would a damn stellar allignment activate a neutrino cloud?! Wouldn't it just be better to get some pseudo-scientific gravity based connondrum?!). But unlike "The Day After Tomorrow", even the special effects can't save this train wreck, to be honest... most of the good stuff you already seen on the trailer, and from a certain point onwards, it's just filler... I'll give it a 3/10...


Solomon Kane I saw in the cinema, and it was pretty much what was expected... I really like the dark fantasy style of Robert E. Howard, where magic is present but is very subtle, and shows a violent world where the concept of good and evil isn't clear cut.


Problem with the movie, in my opinion, was the editing... I kept feeling they left out parts of the storyline! Add that an erratic pacing, and you have a movie that is "Could be amazing, but...".


For example, they set up the main character, Solomon Kane, as a anguished man, trapped between heaven and hell, good and evil, but then seem to forget that part of the character development altogether, so you end up with an action hero that could have been played by Bruce Willis (no insult intended, but most of his action characters seem a bit undimensional, albeit terribly fun!).


So basically, it all comes down to an editing/directing issue, with is a shame, since I'm guessing no sequels will be come out to correct this (I'm predicting disapointing ticket sales, to be honest)... This one is getting a 7/10...


Finally, I was feeling up for a terrible movie on Sunday, so I decided to watch "In the Name of the King: A Dungeon Siege Tale", which I bought for 1.5€... Good value for money, if you ask me, considering that I was expecting a way worse movie...


Well, I have to admit I'm biased... I was uber-psyched when the "Dungeon Siege" game came out, only to be terribly disapointed by it... While it didn't fail in a big way on anything in particular (and from a technical standpoint it was awesome), the pieces didn't quite add up... The characters were generic, the levelling system was annoying and I just didn't care enough for anything in the storyline to even finish the game, let alone the expansion...


So I was expecting the same from the movie... which was exactly what I got! Generic characters, cliché settings (oh, wow, he was the king's son!?!? I didn't see that one comming... before the start credits!)... But the action sequences are pretty nifty (Jason Statham is awesome!), and even the silly moments (Ninjas?!? Really?!?) aren't enough to offset what is actually an entertaining movie, and probably the best movie in Uwe Boll's career (on par with Postal, to be honest). I know, that's not saying much, but I've seen much worse movies and bought full price ticket aswell ("Dungeons and Dragons" anyone?)!


The cast of actors also help the movie a lot, with stars like Burt Reynolds, Jason Statham, Ray Liotta (Can he do any other role besides raving psychotic bad guy?!), John Rhys-Davies, Ron Perlman, Claire Forlani and Kristanna Loken... It's amazing that Uwe can actually get these people to work on his movies, to be honest... Final score: 5/10


So, this is basically the weekend update... Final report card:



  • God of War 3: GET IT NOW! What you still doing here?!

  • 2012: Avoid at all costs, just watch the trailer, all the good bits are there

  • Solomon Kane: "Could be amazing, but..."

  • In the Name of the King: A Dungeon Siege Tale: It's terrible, but surprisingly entertaining

Thursday, March 18, 2010

Heavy Fail and God of War

god_of_war.jpg


First of all, I got to say I'm pissed...


Yesterday I started playing Heavy Rain, and my PS3 decided to crash during one of the millions of cutscenes... Had to turn it off and on again (in the power outlet!), and when Heavy Rain started again, I'd lost ALL my progress in the game! I have to start all over again! The most boring game in the world, and I have to do it all over again! ARGH!!!!!


Good to know that Yahtzee agrees with me on the game though... But remember, you heard it here first! :)


Thankfully, I picked up my collector's edition of God of War 3 aswell, so I'm going to play that before I go back to Heavy Rain...


Now for my rant: localization...


Ok, I get it, localization makes the games more accessible to the audience and that (supposedly) translates to higher sales and more $$$...


But do they have to do such a poor work on the localization?!


Number 1: my God of War 3 Collector's Edition is more expensive, and it is for collector's... So why do they spoil the cover (which had a nice relief image in golden ink that shines wonderfully) with a stupid logo saying "Game In Portuguese"?!?! I don't care! Specially, I don't care enough for it to be in the front of the game... No, it's not a sticker (that could be placed outside the protective plastic), it's part of the damn cover! Can't be removed and it looks awfull (it's big and has the portuguese flag colors, green and red, which look horrific with the gastly scene in the background!). There's 2000 warnign signs in the back of the game box, along with full portuguese text, why couldn't they put that info (if it was important enough...) on the back! Thank you so fucking much, Sony Portugal, for devaluating my game...


Number 2: I understand "big names" are almost mandatory for voice acting, but was the best it could be done was to cast Ricardo Carriço as Kratos?!?! I don't have anything against the actor, to be honest, he's been involved in interesting projects in the past and has always been a strong supporter of gaming in Portugal, but casting him as Kratos is just wrong!


Kratos is an hyper-violent sociopath that speaks like he has had a cheese grater passed through his throat at a young age... Everything he says is an extension of that, and that's why he is believable when he says he wants to kill Zeus... I wouldn't doubt anyone that spoke like that!


Then we have Ricardo Carriço, which just tries to mimic the general style of the voice and fails miserably, because he doesn't sound like that ever! You notice his voice failing at times because of the exertion of trying to speak violentely...


I know our country is small and all, but in approximately 2 million portuguese of the right age and sex, they couldn't find a closer match?!


Thankfully, the game has the option for english voice, which makes it good again! Yay!


In my view, voice localization is only worth the effort if the game doesn't loose character and intensity with it... Specially in a country like Portugal, in which we don't dub anything, so we are used to listening to movies and content in general to be in English with portuguese subtitles... If you're going to do it wrong, don't do it at all!


From a "review" standpoint, I've played about 3 hours of GoW3, and I must say that it's the same as GoW1 and GoW2... So if you liked that, you'll like this one... The game doesn't feel stale at all, and it's great fun (the ending of the first boss battle is awesome, with the first person view and all).


The only complaint I have (and it's not really a complaint, it's more a statement of fact) is that I don't see a big difference graphic-wise from GotW2 to GotW3... Sure, if has more polygons, and GotW2 was probably the most beautiful PS2 game made, but I was kind of expecting something more... next-gen... It still looks beautiful, but I can't help the feeling that the much-vaunted next-gen isn't really next gen, it's "extended gen"... It's "current-gen" on HD (when the games support it, which GotW3 does).


The storyline is the usual GotW fare, which means starting mega-powerful, losing powers, complain at the Gods, getting powers, more threatning everything that moves (I swear I'll see Kratos starting to threaten rocks for just being there!) and I imagine a climatic ending...


Anyway, time for numbers:


God of War 3



  • Gameplay: 10/10

  • Story: 7/10

  • Graphics: 7/10

  • Sound: 9/10

  • Brutallity and Violence: 10/10

  • Overall: 9/10


It's definately a must have on the PS3, on par with Uncharted 2...

Tuesday, March 16, 2010

Heavy Rain

evolution.jpg


I'm playing Heavy Rain now... but I use the term "playing" loosely...


Heavy Rain is alot of things, but a game it is not... Of course, that depends on the definition of game that we use, but at this juncture I'm just using the definition that stays that a game is something that you play... and you don't play Heavy Rain, you watch it... I'd estimate that the play/watch ratio is about 1 hour of play per 5 hours of cutscenes.


Every action you perform in the game, you are treated with some seconds of cutscene, and this goes through the whole game... the term "game" doesn't suit it, since we watch more than play. A more apt term would be "interactive movie". It's not even a decent exploratory system, since moving in the game is atrocious!


We can argue that the decisions we make on the game are meaningful, and affect the outcome of the game, but even the first proposition (that the actions are meaningful) is subject to discussion: a series of times in the game, I just press the button to see what will happen, since the effect of my button-pressing isn't apparent until I actually press the button (Ctrl-Alt-Del did an awesome cartoon about this here).


So we have a "game" that makes us watch it, and difficults the decision-making process... hardly a game, to be honest...


David Cage several times has said that Heavy Rain would redefine games and the way we feel about them, but to be honest, I think we had plenty of that previously: Steve Jackson's Fighting Games series of books... And even if it was another medium, we have the brilliance of Don Bluth back in 1983, when he released Dragon's Lair on Laserdisc!!!


So, in my opinion, Heavy Rain is just the natural evolution of "interactive movie" games... of course, is is an amazing leap in technology, writing and emotional involvement, equivelent from going from Amoeba (Steve Jackson) to mamals (Don Bluth's games) to Heavy Rain (Cro Magnon)... but still a way off to a true interactive movie experience (where you can really do everything, not just what the game designer thought of).


It has lots of positive points, though... the fact that you don't have a "save game" facility makes you be more carefull with your decisions, since you have to live with them until the end of the game. For example, I shot some guy in the game, and I'll have to carry that around for the rest of the game... downside of this is that I didn't actually wanted to kill him, thought the button did something else, and I wish I could rewind and do that scene as I intended to. But given the tradeoff, it's better like this, since it makes the player/watcher be more empathic with the decisions they take, which is kind of lacking in other games (point in question, the Holy/Unholy thing in Dante's Inferno, which is kind of pointless and doesn't reflect on the personality of the player, but on the concept of beating the game-system). Choices have to be meaningful to achieve some measure of empathy between the player and the game character, and this is Heavy Rain's strenght: make the actions count, make the player question his judgement, make the player part of the story.


Heavy Rain is a very well executed piece of software, with amazing graphics, a compelling story (after the first 1.5 hours though), but still it isn't a game... it's well executed interactive fiction.


Because I like numbers, here's a final breakdown on my rant:


Heavy Rain



  • Gameplay: 3/10

  • Story: 9/10

  • Graphics: 9/10

  • Sound: 8/10

  • Emo-ness: 10/10

  • Overall: 5/10


Try it if you like studying games, otherwise grab a good book or see a good movie...

Welcome!

Hey all, and welcome to "Return of the Spellcaster", my new blog...


Why "Return of the Spellcaster"? Well, considering Spellcaster Studios is no more, I decided to reclaim my old screen name, in the pre-interwebs day (back when BBS were new!), Spellcaster...


Anyway, in this blog (that I hope to keep current and alive, like all bloggers do), I intend to talk about my projects, games I play, movies I see, music I hear, etc...


It's like a media review center to cope with my sudden urges to write some words about any theme...


Hope you all like it and follow this!