List Info

Thread: Re: KSirtet & libksirtet updates for KDE4.0




Re: KSirtet & libksirtet updates for KDE4.0
country flaguser name
Germany
2007-04-04 16:57:26
Hi,

On Tuesday 27 March 2007 10:18, Nicolas Roffet wrote:
> KSirtet and all other games depending on libksirtet
like KFoulEggs and
> Klickety are not in a good shape for KDE 4. :(
> (But Klickety seems at least to work. It's slow on my
computer, but it's
> working... KSirtet and KFoulEggs are not working...)

just in case you'd like a few more ideas, here's a mail with
some suggestions 
for KSirtet, I sent to Nicolas Hadacek some time ago.

Regards
Thomas

----------------------------

Hi Nicolas,

first off: Thanks a lot for a nice game of tetris!

A few suggestions that came to my mind while playing, maybe
some of those are 
worth implementing:

* Key handling:
I haven't read the code, but it seems KSirtet uses
Keypress-Events directly. 
This is a fairly straightforward approach, but I think it is
limited, and 
could be improved. Two problems: 
a) When I need to move a tile fast and far, I tend to keep
the key pressed, 
instead of trying to press the key repeatedly at a high
rate. However, this 
won't work well, unless I adjust the keyrepeat delay and
frequency before 
playing KSirtet. It would be nice, if this was configurable
inside the game.
b) When trying to slide a tile beneath another tile at high
levels, timing is 
difficult to impossible. Suppose the falling block that
should be slid under 
a block already there. However, the sliding can only be done
at the very last 
point of movement, right before the block has
"landed". Currently you need to 
get lucky (or be really good at it) to produce a keypress
event exactly at 
the right moment. Instead, it would be nice, if you could
start pressing the 
key earlier (while the block is still next to the block it
should be slid 
under), and right before KSirtet considers a block as
landed, it will check 
whether a key is currently pressed, and if so, move it one
step.

Both of these (in principle, the details may be slightly
hairy) can be 
achieved by using a method like this:

MyWidget::keyPressEvent (QKeyEvent *event) {
        KKey key (event);
        if (leftAction->shortcut().contains (key)) {
                left_key_pressed = true;
        }
        [...]
}

MyWidget::keyReleaseEvent (QKeyEvent *event) {
        KKey key (event);
        if (leftAction->shortcut().contains (key)) {
                left_key_pressed = false;
        }
        [...]
}

void QObject::timerEvent ( QTimerEvent * ) {    
        // or some slot called by a custom timer

        if (left_key_pressed) moveLeft ();
        [...]
}

(See also http://edu
.kde.org/development/kaction.php, or ask for more info.
I 
used something like this in a game I wrote)

* Tile generation
Randomness is a central part of the game, but I've often
wondered, whether it 
would be possible to reduce the influence of luck. E.g.
sometimes a good game 
is ruined by a long streak of bad luck (series of wrong
tiles), and of course 
the other way around. I suggest two new game mode (with
separate highscores):
a) Reduced randomness: Instead of generating truely random
tiles, maybe you 
could generate blocks of 24 tiles or so, with each of the 7
different tiles 
guaranteed to appear 3 to 4 times in that block. Then the
next block would be 
generated according to the same rules. This should rule out
long streaks of 
bad/good luck, but still be random enough not to be
predictable. Of course 
the numbers are just a wild guess, and may have to be
tweaked.
b) Replayable games: Might not be an equally good idea, but
here it goes: 
Would it be possible to play two games with the exact same
random seed, i.e. 
the exact same sequence of tiles? This might - for instance
- be a nice idea 
for competitive plays: Two players would both get the exact
same sequence of 
tiles, and so the scores would be more comparable.

* UI
- When I started playing KSirtet, the first problem was
figuring out, how to 
adjust the starting level. I suspected it in the Mode-Menu,
and I think 
that's where it should be.
- I think it would be cool, if the window was simply
resizable instead of 
having a view menu with zoom in / out.

Well, that's it for now, hope you find some of these
comments useful. Thanks 
again for your work on KSirtet.

Regards
Thomas Friedrichsmeier

_______________________________________________
kde-games-devel mailing list
kde-games-develkde.org
https://mail.kde.org/mailman/listinfo/kde-games-devel

Re: KSirtet & libksirtet updates for KDE4.0
country flaguser name
Germany
2007-04-05 16:43:24
Hi Thomas, hi everybody,


Thanks for the e-mails and the encouragements so far!
Because of many different reasons, I could code really few
this week. :( 
Anyway. I managed to commit my first patch to libksirtet
tonight.

> On Tuesday 27 March 2007 10:18, Nicolas Roffet wrote:
> > KSirtet and all other games depending on
libksirtet like KFoulEggs and
> > Klickety are not in a good shape for KDE 4. :(
> > (But Klickety seems at least to work. It's slow on
my computer, but it's
> > working... KSirtet and KFoulEggs are not
working...)
>
> just in case you'd like a few more ideas, here's a mail
with some
> suggestions for KSirtet, I sent to Nicolas Hadacek some
time ago.
> [...]

Thanks for the many suggestions. I'll have a look on them
and see what I can 
do.


> * UI
> - I think it would be cool, if the window was simply
resizable instead of
> having a view menu with zoom in / out.

I think also, and that's the 1st thing I changed with my
first commit on it 
tonight. 
It's not perfect yet, there is still a lot to do with the
layout engine, but I 
think it's going in the right direction... 

Next, I'll try to fix the crashes and the problem, that the
pieces don't 
fall... (!)

-- 
Nicolas
_______________________________________________
kde-games-devel mailing list
kde-games-develkde.org
https://mail.kde.org/mailman/listinfo/kde-games-devel

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )