Wednesday, August 21, 2013

KDE Games on SoK

If you're willing to be part of this year's SoK then don't be so eager to pick a project, consider working with KDE Games having fun with one of the coolest parts of programming: game development.

I wrote the following proposals related to KBounce and KNavalBattle, which are the games I currently maintain and therefore feel more confident regarding mentoring related projects. However this is not a problem, if you have a project or at least a good idea for a project related to any game in KDE, then feel free to talk to me and submit your proposal.

This is just an "official" post for publicizing the proposals to the KDE community, you can also find them on SoK's wiki.

1: Reveal opponent's ships when losing a game in KNavalBattle.

Brief Explanation: After losing a game it would be interesting for the defeated player to see the opponent's ships. This way a player is allowed to study the adversary and plan ahead for future matches.

Currently there's a branch on KNavalbattle's repository with some code that implements this feature. However, it only works on single player mode and has no entry at the settings menu. Some polishing and a thorough review is needed

Expected Results:
  • The feature shall be optional, with a correspondent entry at the settings menu. 
  • It shall work in all game modes.
Knowledge Prerequisites: C++ and Qt focused on QGraphicsView.

2: Make the number of ships and size of grid configurable in KNavalBattle. 

Brief Explanation: Currently the player has not the option to decide how much of each ship will be placed on the sea before a match. This way many users complain that KNavalBattle has basically become a game of luck, not allowing a player to define a good strategy for guessing where the smaller ship is hidden. 

Implementing this feature can be accomplished by letting the players individually select the quantity for each kind of ship -- something ranging from zero up to a number still undefined -- through a new special menu that will appear during the pre match stage.

Expected Results
  • A new dialog menu shall be designed. This menu must contain a chat widget case the game is being played through a network, as well as a system allowing a game to be played only if both players agree on the selected set of ships.
  • The new feature shall work in all game modes.
Knowledge Prerequisites: C++ and Qt.

3: Fix as much KBounce's or KNavalBattle's bugs as possible.

Brief Explanation: Simple as the title says. The accepted student will pick a game and within two or three months, with my help naturally, will try to fix as much bugs as possible.

Expected Results: At least three bugs fixed within the scheduled planned.

Knowledge Prerequisites: C++, Qt and a basic notion on how to use Review Board and generate diffs.