ksudoku's move to kdereview
Johannes Bergmeier
Johannes.Bergmeier at gmx.net
Tue May 8 20:20:38 BST 2007
I did much work on ksudoku the last days, so there
> 1. For a Sudoku game, the interface looks very complicated on
> startup. I think a simple and tidy interface is important not to
> scare away people looking for a distraction ( once you get them
> hooked, they will stay for more ). Some of this I think can be easily
> remedied:
>
> - There is a toolbar with the numbers 1 to 9 on it. Is this really
necessary?
This toolbar might be replaced by a listbox on the left of the screen with all
possible values. It will reflect which value is selected and might get some
other jobs. (I'm currently working on this)
> - The contents of the "Web" menu can be put in the Help menu
Allready done
> - The "Select Number" menu is in the same situation as the toolbar, I
> don't think it is really very useful because selecting an item from it
> is a slow task to perform ( You have to click on the menu item, scan
> for the appropriate letter, move the mouse to it, select it and then
> rinse and repeat )
Is removed now
> - Can the contents of the "Options" menu be put in the Settings menu?
Moved to settings (and will get it own part in the config dialog when i find
time for it)
> - The Undo / Redo actions are duplicated in the Edit and Move menus.
> Since these are the only items in the Edit menu, removing them means
> that whole menu can be removed.
Fixed too
>
> I found the startup screen a little confusing for a couple of reasons.
> Firstly there are a lot of options and other UI elements ( including
> the toolbar which is not relevant outside of actual gameplay ) on
> screen when you start the application. I can think of a couple of
> approaches:
>
> A: Most games tend to take a "story-board" approach to setting up a
> game, where you select the game options on a series of screens. As
> opposed to having all the options on one screen. Each screen is
> typically fairly simple with only one decision available on each
> screen, and only four or five clickable elements on screen.
>
> So for example, on startup you go through a sequence:
>
> [ Game Type Screen ] -> [ Difficulty Screen ] -> Play!
>
> Where the "Game Type" screen would show maybe four or five pictures
> for the different types of Sudoku board available. The difficulty
> screen would then display three buttons - one for "Easy", one for
> "Medium" and one for "Advanced"
>
> A welcome screen was recently added to KBattleShip which implements
> this, hopefully you could make use of that code.
>
> B: Another approach used in other kde games is to start up and go
> straight into the game using sensible default settings. In the case
> of Sudoku, probably a straightforward 9x9 grid with an easy difficulty
> level. The user can then change the game type using the menu.
This was the part, which had most changes... None gave a good result yet...
We had a [Game Type Screen] -> [Options Screen] -> Play! way with only buttons
on the [Game Type Screen] but they werde too much (each game + start them
without game given + the download new games button)...
I will try to improve it, when i finished other parts, as i think the current
version is allready a huge improvement against the older ones.
I think finding a good final solution is rather difficult, as KSudoku will
have many variants, each variant has some configs and there are other
settings. And ksudoku is not only a game but also a puzzle solving and
creation tool.
>
> 2. I found all the colored areas drawn as you move the cursor around
> on the game board quite distracting. There is a strong blue
> background, the current segment highlighted in green and the current
> row in a red color. This makes it harder to read the numbers in the
> cells.
The colors were more or less a mockup by me. I don't know how o combine
oxygen-colors to be usefull in a sudoku. Maybe i replace the current style
completely with another one which would make this easier.
>
> 3. I wasn't sure how to enter numbers int cells at first, because the
> cells do not change their appearance when you click on them to
> indicate that you can enter a number.
With the changes in the interface I'm currently working on, it will be much
easier to understand how numbers get entered.
>
> 4. There are some performance problems. The minor one is the
> perceptible delay after pressing a number before the cell under the
> mouse cursor is filled in ( perhaps 200-300 ms or so ) - especially
> with large games. I think this delay contributed to (3) because I
> pressed a number key on my keyboard and had to wait a moment before
> the cell got filled in. I had a quick look using callgrind and there
> was nothing very obviously wrong, and most of the timer spent in
> SKSolver::solve_engine as one might expect. It looks like you have
> already spent quite some time on this, and Sudoku is a hard problem -
> so perhaps the easiest option is to tweak the user interface such that
> the number appears as soon as you press the key, while any
> computations that it triggers happen in the background.
The problem is only the huge amount of QWidgets :(
>
> Rendering large ( eg. 25x25 ) Sudoku boards is somewhat slow.
>
> Looking at your code, it seems that you are using a QWidget for every
> tile on the board. So for a 25 * 25 board, that means 625 widgets.
> Widgets are heavy resource-wise and not designed to be used like this.
> The Qt 4 Graphics View framework is a much better fit for what you
> are trying to do. With QGraphicsView, you have only one QWidget on
> screen, rendering the contents of a QGraphicsScene. Each tile then
> becomes a much lighter-weight QGraphicsItem object. I don't have
> experience converting games over to the QGraphicsView framework, but
> the kde-games developers do - I would suggest asking them about this.
> I think it is very much worth doing though, not only for performance
> but also for the pretty effects and extras that are made much easier
> with it.
I know this since i started my work on ksudoku (I'm not the author of it).
However other parts were more important to work on. If I find time i will
port it to SVG or something else.
>
> 5. The 3D Sudoku mode is quite interesting - although I didn't know
> >from the game setup screen that is what it was. Perhaps include the
> phrase "3D Sudoku" somewhere?
The list of games is not in its final stage (I started it two weeks ago). The
final version will have icons for the different versions + a short text
describing it. The according data are allready in the code.
Josel
--
Johannes Bergmeier
Johannes.Bergmeier at gmx.net
Jabber: joselb at jabber.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070508/263d0e40/attachment.sig>
More information about the kde-core-devel
mailing list