About Vienna MineSweeper

Features

Vienna MineSweeper has all features required for a Minesweeper clone that can be used for competitive play, and a few more:

  • Emulation of the original Winmine's behavior
  • Creation of checksummed replay files
  • Replay viewer
  • Counters for the most important stats:
    • Time/Estimated Time
    • 3bv/3bvs
    • L/D/R Clicks
  • History
  • NF mode
  • Flag analytics (shows unused flags)
  • Scoreganizer compatibility
  • Runs (and is officially supported) on Linux with WINE

However, it is fairly minimalistic in general. It is an alternative for players who prefer a no-frills experience.

Vienna MineSweeper and VSH running on Windows
Vsweep and VSH on Windows
 

A brief history

Vienna MineSweeper playing a replay file
Vsweep showing a replay
Vienna MineSweeper running on Linux/WINE/Openbox
Vsweep on Linux/WINE/Openbox

Vienna MineSweeper was originally created by Christoph Nikolaus as a client for Minesweeper tournaments.

Later, a Home Edition was released. This version featured support for all of the above features, as well as time trial modes.

In time trial modes, the player attempted to complete a set amount of games in as little time as possible. ViennaSweeper automatically switched level as required, and the timer only stopped once all games were completed.

The two modes available were 10 Beg (10 beginner games) and Time Trial (15 beginner games, then 6 intermediate games, and finally 2 expert games) - the format used for the 2008 World Championship.

Christoph eventually broke with the Minesweeper community and left development and maintenance of ViennaSweeper to Thomas Kolar (aka ralokt).

When an exploit was found, a new release needed to be made. Unfortunately, the source code was not in a compilable state and contained half-implemented and broken features. In the rush to get a working patched release out, the time trial code was also removed and has since not been re-added.

ViennaSweeper is also used for the official Scoreganizer client, making it the version of choice for taking part in online tournaments.

For this purpose, a new Scoreganizer client edition was created that disables features that could break client integration.

This was the state ViennaSweeper was in since 2013. However, in 2024, after more than 10 years, version 4.0.0 was released; hopefully, it will have been worth the wait!

As of late 2024, KharadBanar is also contributing to development, in particular, he is providing the default assets for larger square sizes, contributing to the implementation of scaling support, and co-specifying the new version of RMV, the replay file format.

4.0 release

ViennaSweeper 4.0 features a number of, ahem, sweeping changes:

  • Custom mode:
    • Boards can be between 1 and 100 squares (inclusive) high, and between 8 and 100 squares wide
    • Boards can have a minimum of 0 and maximum of (height-1)*(width-1) mines
  • A new history tool, VSH (short for ViennaSweeper History), written in Python
    • Will speed up further development significantly
    • Will support plugins
    • Will be open sourced as soon as it has a stable plugin API
  • sqlite3 as a storage format for settings and replays
    • Enables custom history tools that can use the full power of SQL
    • Updating in place will become seamless, as settings and history will be migratable
  • UTF-8 as an internal string representation
    • All player names can be supported without any conversion issues
    • Preparation for translation in a future release
  • Video format: An arbitrary token can now be embedded into replays
    • This token can be used by tournament organizers to verify that a game was played after a tournament started. Organizers can only accept games with a certain token that remains secret until the tournament starts
    • It will also be used by Scoreganizer instead of mangling the player data to do the same thing
    • Currently, there is no way to set this token via the UI. A future VSH release will allow plugins to do this.

A large custom board on Vienna MineSweeper
A large custom board on Vsweep 4.0.0
The default skin for 24x24 sized squares
The future default skin for 24x24px squares
An early development version of Vienna MineSweeper with 24x24 sized squares
Early dev version of vsweep with 24x24 squares - almost ready for release!

Future plans

Development of ViennaSweeper is ongoing. Plans for the next respective releases of ViennaSweeper and VSH are:

  • VSWEEP: Scaling support
  • VSWEEP: Skin support
  • VSWEEP: Some small QoL changes (setting for space=f2, setting for entire top bar=f2, etc)
  • VSH: Python plugin support:
    • Plugins will be able to extend VSH and add or replace functionality. There will be APIs for plugins to store data, specify Python dependencies, extend the UI, react to events (like completed games), set the player token, and possibly more.
    • Plugins may be featured and made downloadable on this site, if they pass code review by ralokt (standards to be announced).
  • VSH: Open source release:
    • VSH will be released as open source. This isn't being done right away because the codebase needs quite a bit of polishing and refactoring
      • Become stable/a proper foundation for other developers to build on
      • Prevent an ecosystem of obsolete legacy plugins/extensions that need to be rewritten or supported
  • VSH: Scoreganizer integration via default plugins
    • No more separate client edition
    • No more throwaway instances per tournament
    • No more clunky separate command line based client app

In short, ViennaSweeper is attempting to become a minimalistic core that can be built on, extended, and customized to serve any player's needs.

Planned features for later releases:

  • VSWEEP: Translation support