January 26, 2012

Bastion



This game invented a whole new genre: voice-over games.
Worth mentionning also its colorful illustrative art.



January 16, 2012

Dealing some trailers

Love this...

(Nice pacing, writting and color grading) 

And that...

(Val Kilmer and Elle Fanning, really?...) 

Oh, and this one too...

(Craziest dialogs! Did I mention Charlize Theron?)

Is it me or trailers are the new opium ?

(...yes I did. Best Snow-White-soundtrack ever)


August 14, 2011

Bilan de l'intelligence

"Il y a un peu plus de deux ans, à cette même place [...], je m'inquiétais de l'état actuel des choses de ce monde et j'interrogeais les faits dont nous sommes les témoins et les agents, en me préoccupant, non tant de leur caractère politique ou économique que de l'état dans lequel ils mettent les choses de l'esprit [...].
Nous le trouvons autour de nous comme en nous-mêmes, dans nos journées, dans notre allure, dans les journaux, dans nos plaisirs, et jusque dans notre savoir. L'interruption, l'incohérence, la surprise sont des conditions ordinaires de notre vie [...]. Nous ne supportons plus la durée."

- Paul Valéry, 1935

November 8, 2009

Braid

keywords: Irish folk music, fading-painting-style graphics, time control, XBox360/PC/Mac


Not exactly an "undergound" video game; Braid won the design innovation award at the 2006 IGF (Independent Game Festival), so I won't spend too much time here acclaiming this magum opus... yet -and it's pretty sad- now that the PC/Mac version is out, I realize how Braid still didn't fully reached the widespread notoriety it diserves.

Part of that maybe due to the wrong perception that this is "just another" plateform game disguised in some nice hand-drawn rendering.
Well, trust me, this is really not "just another plateform game". Sure Braid uses common gameplay mechanics one can see in hundreds of mario-like games: a princess to be saved, ladders to be climbed, deadly enemies to be scared of, and doors to be opened (through keys to be found). Sure...
But this is just the canvas underlying the real nature of Braid.

Braid is in essence a time-based game.

Throughout the adventure you'll be given 4 different time-bending capabilities.
When you pick up one of these manipulation techniques for the first time you quickly figure out the way it works... but then, confronted with some tricky situation, and after a few (enjoyable) headaches you'll find yourself looking at this same technique in a very weird way.
You'll merely start to understand how bad your brain is when it's time to think out of the box and almost feel it awaking as if it were an atrophied muscle.

Braid will make you realize how time is a very simple yet powerful game-mechanic largely underused in the video game history.

Portals, Trigger-Zones, Shadow Projections, 3D Prespectives, Time... etc; we are just starting to unveil how concepts we once thought basic in their usage are in fact latently powerful in their nature; if only we'd dare look at them from a different (yet humble) viewpoint.

Enjoy Braid (and kudos for its creator).

September 24, 2009

Where XUL meets an extension in the biosphere...

IMG_0739

Two years ago I started sharing/backing up some photos/textures on Flickr. Like many others I used Uploadr to do this, and the more I was using it the more a felt annoyed by the lack of a simple yet invaluable feature: being able to zoom into a thumbnail (or at least launch a native OS preview)... you know, just like when you're parsing a bunch of small 100x100 picture's thumbnails on your hard drive and naturally expect that double-clicking one of them would obviously open a wider version (deadly useful to compare pictures quality). Well, Uploadr just doesn't do that.

I first thought that Yahoo (makers of Uploadr and owners of Flickr) would quickly "fix" that. Then I tried a bunch of third party software to replace Uploadr, but none of them was able to cover my needs as well as Uploadr did. In the other hand, I didn't wanted to spend any time in modifying the Uploadr's source code as I really thought the guys at Yahoo would quickly come with a nice and sustainable solution (far better than the ugly hacking bypass I was going to inject).
Two years later, I came to the conclusion that they would probably not add this feature anytime soon. So I decided to dig a little bit in the source code and get that thing done.

I feel at ease (or at least pleased) when I do shaders, game prototypes, and 3d related stuff in general; but going into modifying Uploadr was pretty far from my usual confort zone... yet, in many ways it remained an interesting experience.

Javascript was ok, but XUL is a framework you have to learn and understand at a very least in order to create some extension (for Uploadr or Firefox).

At first, I just started hacking and poking around, hopping I could do some tricks without diving too far into the XUL documentation. And that was true thanks to the powerful openness of Javascript and the data-driven nature of XUL.
But as soon as I wanted the "hacks" to be packaged into some kind of plugin (called extension here) I found myself a little bit lost as I didn't knew how to cross-communicate variables between XUL windows.

And so here I came reading and trying to find my way to reach this little piece of information so relevant to me at that moment. It took me some time of googling... I didn't knew that each XUL window had its own javascript execution context, so I couldn't even google "cross window context communication in XUL" (which would quickly gives relevant results for sure).
The answer came when I finally decided to start reading the documentation from the beginning as if I was planning to follow a 3-weeks XUL course.

Sure once you know where to find this simple information the path looks bright and obvious and you just feel dumb not having started reading "the fucking manual", but if I hadn't said to myself "ok, you'll have to be prepared for a long run into that learning process", I would probably not found the correct way and just given up ('cause after all, my goal was not to get a degree in XUL programming!). The fact is I didn't had to invest 3 weeks into learning XUL at the end, but everything was like I should have been mentally prepared to do so.

The pain of "searching and learning" is intrinsic to big-frameworks. And this is not just about XUL, it's about almost any framework (and to be really sincere, XUL is pretty easy to learn in fact).
The bigger the framework is, the more you have to read the documentation in order to use it and fulfill even the simplest tasks.

That's an ugly and tangible truth, and yet it seems to be a common sense shared by most programmers used to navigate among huge projects or huge companies...

And I can almost say it's hopeless because us, as programmers, we love to build solutions that would solve as many issues as possible, and we love to factorize algorithms so that one can serve many.
But the more we enlarge the scope of a framework, the bigger the framework becomes and the harder it is to be understood (that's the main reason we like to throw away other's work and reinvente the wheel again and again).

It seems obvious and natural to fall into this pattern, creating bigger and bigger... but if that was really the solution there should exist a godfather-framework, able to contain every kind of design pattern and providing kernel solutions suitable for any kind of program. This god-father framework would then get rid of the OS itself and become at the same time the OS and the unique programming language.
Such a framework would be to programs what the earth is to life: the most complex biosphere.

Most programmers can "feel" that such a thing would be a real nightmare to solve and maintain, and nobody would seriously think about creating this; because life (program) is intended to be functional and local to a given environment. There's no such thing as an ubiquitous intelligent machine driving everything, because life pops up everywhere and results in a local adaptation to the context.
So does a program.

If I was to get really extreme in that direction I would even say that there should only be environments (contexts) and tools (snippets); let the life (program) create its own complexity through DNA grammar (language).

Bigger frameworks means;

- Slower innovation to modify the framework (cautions has to be taken to maintain global coherence)
- Slower bug fixes (caution not to break any cross dependencies)
- Spending entire days glueing the framework together instead of implementing features and algorithms, or bug fixes.
- Cumbersome back-compatibility issues.
- Bigger latency to answer user requests (due to numerous time leaks)
- More time spent writing the documentation for the author (in order to glue concepts together and create a coherent hierarchy)
- More time spent reading the documentation for the user (as the user must find his way into the hierarchy and concepts)
- Steeper learning curve for anyone who wants to join the "big" project, or often just use it.
- Endless build processes.
- ... And so on.

I can't find as many arguments to sustain big-framework-addictions (but I do admit and understand there is positive arguments).

10 smaller frameworks/libraries will always give more satisfaction to authors than one unique Über framework -- unless you early dedicate yourself to the exclusive study of this Über framework and quickly become a Jedi master!

Did I said "satisfaction" ? Hey, who ever said software engineering was about satisfaction anyway [sic] ?


Ok, I will end up here this little digression, and for what it's worth, if you're looking for a complete data-driven, open source and robust framework to create cross-plateform applications, XUL/XULRunner seems to be a wise candidate (especially if you want to take advantage of the huge pre-existing Firefox extensions community).

... and would you be curious about this tiny-ugly extension of mine, just look at ZoomThumb Uploadr extension.

August 29, 2009

Elora, Google Insight and FAME

As I was playing around with Google Insight, I felt upon a nice piece of "future archaeology" micro event...

For those who didn't knew, Google Insight is a service showing the fluctuations in people's search terms around the world. For instance, entering the term "gift" will generate a nice periodic curve with peaks around christmas eve, highlighting the fact that people tend naturally to postpone gift quest until the last day (and who don't).
The nice thing is you can filter the results regions by regions.

As soon as Google Insight appeared in 2004, I've been fascinated about the side effects and correlations retrieved from the simple analysis of those curves. One of the most famous example is the propagation of flu activity that can be deduced from symptoms people tend to search on google before going to the doctor.

But additionally to this amazing data mining aspect of Google Insight, I found that it could also be used to report and keep track of a few micro event (if not absolutely personal ones).

My daughter's name is Elora, she was born on the year 2005 at the end of december.
Searching for its (not so common) name in Google Insight, I discovered that there wasn't any single activity around the term Elora - for the entire region I lived in - before she was born. And obviously, activity becomes noticeable around her birth date, revealing her (proud) parents searches as well as those initiated by their friends and familly.


Elora-Google-Insight


Even without having done anything on this purpose (intentionally I mean), my daughter's birth is now traceable on the internet... which is a real "micro event" compared to the global event's patterns usualy revealed by Google Insight!

In one thousand years -- provided google databases survived in some manner -- an archaeologist, without any knowledge about this event, could yet deduce that a girl once called Elora was born there on the year 2005 at the end of decembre.

That's what one could define as a "Future Archaeology" Micro Event (or F.A.M.E... pompously).


April 29, 2009

Windosill



I'm currently playing Windosill, a flash-based game bundled in a small executable.

Trying to give you a taste of it...

Ok, it's a point & click (& drag) game where there's nothing to do but try to discover what kind of interaction hides behind each game scene.

No UI, no documentation, no rules; even the title screen is smartly embeded inside the game progression.
Every object stands here for a good reason... or maybe not -- after all you are the only human in this place who can figure it out. All around there's only strange resting entities awaiting for you to make them "live" and interact (always in the most unexpected manner).

There's physics everywhere; rigid AND soft bodies so you can very naturally feel contacts, collisions and friction.

But the most impressive part comes from the refreshing aesthetic game design and artistic viewpoint the author injected in the whole process. By no way Windosill looks like anything you've already played before. It's perfectly tilted and shifted in just the right proportion to be defined without any doubt as a brilliant put-a-smile-on-your-face game.

Finally, the only regret comes from it not having been programmed in a faster language than flash, which can definitely not compete with low level compiled languages when it comes to skinned meshes and heavy physics (for now).
Result is a quite slow frame rate [15fps] on a 3 years old laptop... it hurts.

But if you have a decent hardware, like most people do, my final word is that you have absolutely no reason not to enjoy this masterpiece (and buy the full version for only 3$ !).