Log in

No account? Create an account

Previous Entry | Next Entry

Gnometris on Clutter

After months of delays, a few false-starts and a weekend of hard, long coding (and hating--no loathing--C++), the Clutter-ization of Gnometris is feature complete. Some polish remains to be done (like the preview widget). And feel free to suggest improvements to the effects. Perhaps some particle shaders would be neat (little flecks that fly out from the impact point). I think I should use a quadratic ramp for the block explosions so they are visible longer and slow down as they get further from their explosive origin.

Gnometris on Clutter on Vimeo.

Also notice that this is running on DRI2 with a compositor--so that's something to look forward to. I have an Intel GM45 and am running video-intel-2.6.1; it's very stable and I'd highly recommend checking it out. The Linux 3D situation is looking brighter every day! (Thank You, Intel!)

For Gnome 2.26 this will only be enabled in Gnome Games if it is built with --enable-clutter. So it's up to your distro to turn it on. I recommend doing so. For 2.28, it will be the default and the old, unplayable, sluggish 2D engine will be ripped out. At that time, there will be a huge opportunity for cleaning up the code base, removing #ifdefs and getting rid of C++.


( 16 comments — Leave a comment )
Feb. 9th, 2009 05:36 pm (UTC)
F**** Flash
I really wanted to see it, but it doesnt work in swfdec :(
Feb. 9th, 2009 06:30 pm (UTC)
Re: F**** Flash
When ffmpeg + Ogg Theora doesn't spectacularly fail, I'll be happy to upload a new screen cast in OGV. For now, all I could upload would be an MPEG4 Part 2 file which is actually more encumbered than Flash because, with Flash you are licensed to be using the codec; with MP4 on Linux you have to get use an unlicensed player.
Feb. 9th, 2009 07:02 pm (UTC)
Re: F**** Flash
Have you tried oggconverte? http://oggconvert.tristanb.net/
To my mind it is very easy to use. It uses gstreamer as backend.

BTW. Congratulations to the new Clutter Gnometris release ;-)

Feb. 9th, 2009 07:30 pm (UTC)
Very nice !
but maybe the rotating tetrino is a bit too much ?
Feb. 9th, 2009 07:38 pm (UTC)
Very cool, but effects distracting to Tetris
Hey Jason, this looks really awesome. But I've got to say, some of the effects would bother me if I was just trying to play the game.

Stuff I like:
* Smooth piece movement
* Line obliteration animation

Stuff I don't like:
* Bounce when piece is placed
* Rotating piece preview

Looking forward to seeing more cool uses of clutter throughout GNOME. :-)

Feb. 9th, 2009 08:15 pm (UTC)
what technology did you use?

JavaScript like the other guy who reimplemented Tetris with Clutter?
Feb. 9th, 2009 08:26 pm (UTC)
The original codebase (from years ago) is C++; so I just upgraded to clutter it keeping with C++. I will convert it to C/GObjects during 2.27.
Feb. 9th, 2009 08:20 pm (UTC)
It needs to be fast
I'm a hardcore tetris player (my high score on gnometris is over 700K IIRC) and i've been longing for a playable version ever since it was ruined back when cairo was introduced. Before that it was one of the best tetris implementations available.

In Tetris, there is only one thing that matters. Speed, speed and speed. Effects on the disappearing pieces are ok, since you are not actually controlling them, but the falling piece should move when you tell it to and as quickly as possible. There is little time for animations and the smooth movement looks as if it will feel less responsive.

The "next piece" thing is a really important part of the game. That is where you devote a large part of your focus, since that is actually the only place where you get new information, so the rotation just feels like a distraction to me.

I realize some people like the eye cany, so It would be great if there was a "simple" mode. Both for people without good video driver support and people like me who want the game to be as fast and responsive as possible.

Feb. 9th, 2009 08:31 pm (UTC)
Re: It needs to be fast
Ok, I can definitely make the ramp time a few tens of milliseconds (maybe 60ms) instead of the longer time it is now. I can also make it massively speed up the motion if the piece movement lags behind the keypress repeat settings; so, at most, it would take the 60ms to arrive at the final resting place. (Typemattic rate delays vary a lot but usually are in the 120ms range).

As for the preview, instead of a rotar, what about a pulse/zoom/pop when the new piece is displayed? I was thinking it would be about 120ms and then immediately thereafter be static until the next preview event.
Feb. 9th, 2009 08:39 pm (UTC)
Re: It needs to be fast
I think they are both excellent ideas. Thank you for listening! :)
Feb. 9th, 2009 08:51 pm (UTC)
Re: It needs to be fast
Really nice work Jason! And these changes sound perfect!
Feb. 9th, 2009 10:22 pm (UTC)
As someone wrote above, it really doesn't matter what the preview does, but everybody loves eye-candy.
I would suggest a bounce effect similar to the one Compiz has when you maximize a window.

Just my two cent.
Feb. 9th, 2009 11:56 pm (UTC)
Why the C++ hate?

This may be a slightly flame-fanning question but is it the *existing* C++ code that has been the problem or do you have a distaste for C++ in general? Also, why did you choose not start from scratch *now* using the existing code as a template if you intend to do a rewrite in C/GObject later anyway?

P.S. The "C++" tag on your Blog is broken :-|
Feb. 10th, 2009 03:34 am (UTC)
Rudd-O here
hey dude, you're a helluva hacker, but you really suck at tetris! :-)
Feb. 10th, 2009 01:45 pm (UTC)
It rocks, it would be cool to have an animation like on this video (http://www.hortont.com/blog/2009/02/planet-same-game-and-more/) when you change configuration of the piece.
Feb. 10th, 2009 10:09 pm (UTC)
no OpenGL
What if you don't have direct rendering due to some reasons?

Would you be able to run such tetris at all?

P.S. C++ looks much better than GObject. Even assembler does I guess...
( 16 comments — Leave a comment )


color, uphair, smile
Jason D. Clinton

Latest Month

September 2011


Page Summary

Powered by LiveJournal.com
Designed by Tiffany Chow