Sculptris

ust saw this video about Sculptris, which is described as a sculpting tool which main feature is doing "dynamic mesh tesselation that will provide additional detail where necessary, without the user needing to worry about it"



It looks very promising. And useful ;)

Posted at at 11:03 AM on Sunday, December 20, 2009 by Posted by Rui Pires | 0 comments   | Filed under:

Indie games that caught my attention

Some of these games are no longer indie, and have gone "mainstream" (like Fez, that was just a concept and is now being actively developed).

This is a list of the indie games that caught my attention in the past year. Unfortunatelly I still haven't played most of them, but the videos are impressive nontheless.

Fez - A fresh take on "2D" platformers.

World of Goo  - A physics puzzle where you control smiley balls of goo.


Brainpipe - Playing it should feel like you took LSD




Mightier - A new way to intereact with computer games (needs webcam + printer)



Osmos - This is what I was expecting for Spore's first level... (instead of the creature creator!)


PixelJunk Eden - This looks great, but I think the gameplay can be confusing ...


And, off course, You Have to Burn the Rope!
No video link for this one, as it is a short web-based game.

It's nice to see there is still some room for creativity these days!

edit:
Forgot about (altought these are not indie, I think they are original enough to be here)

Castle Crashers


and Patapon - Who said sony doesn't know how to do fun games ?

Posted at at 11:28 AM on Thursday, February 05, 2009 by Posted by Rui Pires | 0 comments   | Filed under:

Yuji Naka

Gamasutra has a nice interview with Sonic the Hedgehog creator/programmer Yuji Naka.

Sonic was one of the first games to leave me in visual awe. I fell in love with the fast paced gameplay, and how fun it was to run through the levels, once I mastered them.
Nowadays it's hard to see a game that is just fun to play.

It is always nice to see Yuji Naka leave his hierarchically high position at Sega to create his own game studio (Prope). Even if it is a sub-company of Sega, he is now able to be more involved in the creation of the new games. I think this quote say's it all:

"It's better to keep yourself directly involved with the actual game process, you know? Directors are pretty high up the job ladder in the movie industry, but they're still involved with every aspect of the film they're working on; they're still making movies their entire careers."


Also, their project for the Wii called "Let's Tap" looks fun to play, and uses the wiimote in an original way! Just check the video:

Prope's Let's Tap.
Be sure to read the full interview, it's worth it!

Posted at at 3:15 PM on Monday, February 02, 2009 by Posted by Rui Pires | 0 comments   | Filed under:

Fez

This little independent game called Fez has a great concept.
Flat a 3d world and only allow the player to move in 2d. Except ... the player can rotate the world.

Watch the trailer, its a lot easier to see than to read about it ;)

Posted at at 4:38 PM on Wednesday, November 26, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

David Perry at Leipzig GC '08

I just finished going through this presentation from David Perry at Leipzig GC '08.

For those of you who don't know him, here are a few titles you might just recognize:

  • Earthworm Jim
  • MDK
  • Enter the Matrix
I'm a great fan of his work and this presentation shows some of his current projects (not just games).

One of the key points is the way games are headed, with some enphasis on ad-supported games.


TenTonHammer (via DPerry.com)

Posted at at 11:33 PM on Tuesday, August 26, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

Monitoring memory usage

This article at gamasutra covers some interesting stuff (memory usage, fragmentation ...).
It's not for the faint of heart, but for those wanting to delve deep into the inner workings of their application, this is a great way to do it.

This should be in every game platform SDK ... or in every game developers toolkit.
Maybe one day we'll get there.

Posted at at 5:34 PM on Thursday, July 03, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

story is the antithesis of game

After reading this post from Jamie Fristrom, and agreeing to most of what he was saying, I decided to read the article that originated his post.


This article by Greg Costikyan nails it down perfectly. If you are interested in game design, you should really read this.

I recently played a lot of Super Mario Galaxy, and this makes perfect sense. I was not really interested in the story, what kept me wanting to play more was just having fun and seeing what they would think of for the next level.
The game reinvented itself at almost every new galaxy I found...
I don't think it needs to be infinite (it was big enough!), it just needs to be fun.


But truth be told, I never really dedicated myself to playing RPGs (I did play a few) so one might argue I don't know what I'm missing ...

Posted at at 1:40 PM on Tuesday, July 01, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

blender-ogrexml

Getting on with my project, I decided it was time to try and export something from blender, which I want to learn to use at some point in the not too distant future.

The default scene (a cube) looks perfect for a test drive.
But ... I found a bug in ubuntu.
The package blender-ogrexml is installing the export scripts in the wrong directory, so blender does not load them. And I don't feel like fixing this manually. At least not now...

I guess tomorrow I'll see if this is a know issue and if not open a bug report.



EDIT: apparently this bug is already reported for ubuntu (and has a workaround).

Posted at at 12:31 AM on by Posted by Rui Pires | 0 comments   | Filed under:

Object ownership

Ogre3D's object ownership policies are really getting on my nerves ...
Maybe I just skipped the wrong piece of documentation, but being rewarded with a segfault kind of sucks ...



Edit: this post on the ogre forums says it all... why, oh why didn't I see this on the documentation? I was expecting to see it somewhere around here

Posted at at 11:21 PM on Monday, June 23, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

Getting back to Ogre3D

It's been a while since I've used this.
Setting up the Ogre3D SDK is always a tough job, so I decided not to get all smarty-pantsy and to just install 1.4.5 from ubuntu's repositores (instead of 1.4.8 from svn ...).
Well, now it's working, and now I'm going to take some time to get to know this sucker a little better than I did last time!


Ogre3D

Posted at at 10:08 PM on Tuesday, June 17, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

OpenAL and error handling

I'm writing a thin wrapper for OpenAL that only does some basic checking after doing some work.
After writing a few modifier/inspector methods, one thing is impossible to miss. The error handling mechanism in OpenAL is not exactly the most user (in this case user-programmer) friendly.

OpenAL was designed as a C library (which I fully support, although I would like an official C++ wrapper, so that there was no need to reinvent the wheel). After that decision, using C++ exceptions was really not an option anymore. So they were left with returning NULL/an error code or going the errno way. Set an error code and leave it up to the user-programmer to poll it.

Why, oh why did they not put a return code in every function so that one would now when to poll for errors ? Oh no, just return void and force the poor programmer to poll for errors after every call.
Now that hardly seems efficient ... Maybe if I was using OpenAL directly, I could do the error checking after a block of OpenAL instructions ...

My options now ?
1 - check for errors after every OpenAL call (at least the ones with no return code)
2 - implement some mechanism to check for errors at appropriate times (a sentry class? a simple function?)

I'm following Donald Knuth's advice and keep optimization to a later stage.
After all, that's what profilers are for.

Posted at at 10:17 PM on Wednesday, June 11, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

OpenAL up and running

Well, not quite yet, but I managed to play a wav file wohoo!!!

...It's about time! I'm getting rusty at this stuff!
The problem was all mine (as usual when coding alone ;) )
And I was blamming ubuntu for it! Shame on me :(

Now I'm just going to create a thin wrapper around openal so that I can make it a little bit more object oriented. And also error safe. I'll check for errors after each method call and launch a nice descriptive exception when something fails.

Posted at at 11:58 PM on Friday, June 06, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

Havok is free

At least for non-commercial use.
The announcement is here (via gamedev.net).

Thank you Intel!

I hope pal takes advantage of this ;)

update:
I guess pal support for havok is confirmed and will take about 3 weeks...
Thank you adrian!

Posted at at 10:22 AM on Tuesday, June 03, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

OpenAL in Ubuntu

I still didn't get this to work :(

alcGetString (NULL, ALC_DEVICE_SPECIFIER)
always returns NULL.
My problem is similar to this, except in my case it's not for capture, but for output.
I'm hoping this is related to this bug (that didn't get corrected for Hardy Heron).
Let's see ...

Posted at at 10:02 AM on by Posted by Rui Pires | 0 comments   | Filed under:

OpenAL does not like me

It seems either I'm doing something wrong, or OpenAL does not like me and does not want to work on my default sound device.
I guess I need to read the manual again ... :(

Posted at at 10:12 PM on Monday, June 02, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

Concurrency and paradigm shifts

I had this article in my google reader starred items for over one year ... and for a good reason.
The different way of thinking to successfully exploit concurrency fascinates me.
In this article Kristian starts by comparing software state variables to moving parts in hardware. They might seem to be working ok, but chances are they will be the first ones to fail. Ok, it makes sense to me ...
The suggested solution is not easy to accept (as an efficient solution), basically because it is a different paradigm (functional programming) than most of us are used to.
As an alternative, for when mutating data is a must, he suggests using the active object pattern. I like that ;)
In the end, I see his solution as a trade of memory for computing speed (the oldest trick in the book?) Anyway, it's a nice point of view, and I would like to give it a shot ... when I get my hands on something with more than 4 cores ;)

Posted at at 2:46 PM on Thursday, May 08, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

Burn the Rope

I really needed to share this here.
Burn the Rope is a nice game, with a great sound track.
Try it!

Posted at at 4:18 AM on Saturday, May 03, 2008 by Posted by Rui Pires | 1 comments   | Filed under:

Clutter

An experimental version of Clutter running on the iPhone.


With support from the gtk community, but not related directly, it looks like a great project to keep an eye on. I hope this plays nicely with openmoko ;) (I know it will)

On the techy side, it's nice to see it runs using OpenGL, and even nicer to see support for OpenGL ES. This means it is ready to run on a bunch of embedded OpenGL implementations!

Posted at at 10:35 PM on Thursday, April 10, 2008 by Posted by Rui Pires | 0 comments   | Filed under:

Agile in game dev

This article at gamasutra is a very nice introduction to agile (specifically eXtreme Programming).

I am trying some of the techniques described there even though I'm not (professionally) working in an agile project (we're getting there...).

Some of the topics that got my attention:
Test Driven Development (I'm a sucker for this ;) )
Pair Programming (great Idea, bad for my last.fm stats ... )
Continuous Design (because it just makes sense)
...

Posted at at 6:53 PM on by Posted by Rui Pires | 0 comments   | Filed under:

lambda side effects

When writing my previous post, I was thinking of lamba expressions in C++0x simply as syntactic sugar, a nicer way to express what I wanted to do, without the need to constantly create helper functors.

In this post, Dean Michael Berris talks about a nice way to exploit lambda expressions and take advantage of the high level you are writing code at.
If you consider intel's TBB, and think of how they implement it, having built in support for lambda expressions in C++ is a great way to allow the compiler to decide how parallel the execution should be.
This is a nice example of just how big the implications of a new language revision might be. And why they should be well though out before releasing them.

Posted at at 4:51 PM on Tuesday, April 08, 2008 by Posted by Rui Pires | 0 comments   | Filed under: