Skip to content

giancosta86/solvenius

Repository files navigation

Solvenius

Logic game in modern Elm

Game screen

Introduction

Twenty years ago, in 2001, I created the very first version of Solvenius: it was a simple videogame, written in Visual Basic 6, but it still contained most of the game dynamics - in particular, the user had to deduce sequences of digits, à la Mastermind.

About fifteen years later, I discovered Elm, a sublime functional programming language: after the initial challenges due to the new paradigm, I was definitely excited about the well-structured nature of the Elm architecture, so I wanted to try it on a project I knew very well - so, why not Solvenius?

Solvenius 3, which I published in January 2016, was an invaluable breakthrough - which even inspired later projects like EighthBridge; however:

  • it lacked proper build automation
  • it was based on the ancient, signal-based Elm architecture
  • its mobile usability, despite media queries, was limited - which is why I later created a Kotlin wrapper to publish the game to Google Play: but what about iPhone users and non-Android users in general?

Solvenius 4 addresses the above points:

  • package dependencies are ensured by Yarn and Elm, while the build process - from code to website - runs via Webpack and GitHub Actions

  • the code is written in modern, message-based Elm - after 5 years of courses and experience in the domain of functional/hybrid programming; part of the app is also in TypeScript - and the two languages are elegantly mixed by Webpack

  • in lieu of addressing specific stores, Solvenius is now a Progressive Web Application - that can be installed to a range of different devices!

Running the game

Solvenius is an HTML 5 game- so you can run it just by pointing your web browser to:

https://gianlucacosta.info/solvenius

Furthermore, your web browser might even suggest that you install Solvenius - making it feel like a native application! ^__^

Online help

The game is fairly straightforward - but you can find detailed instructions in the online help, accessible from the title screen.

Frequently asked questions

  • What's new in this major version?

    Solvenius 4 introduces the following technical enhancements:

    • Portable Web Application (PWA) - to make the game compatible with a wider range of devices, and to make it available even when the user is not connected to the Internet

    • Far more elegant codebase, rewritten in modern Elm

    • Enhanced user interface:

      • Multiple background music tracks
      • Sounds
      • Game pausing
      • Confirmation messages before exiting the game
      • Path-based page routing - which enables bookmarks to specific pages
    • Browser integration (e.g.: multimedia, local storage) via a thin layer of TypeScript code

    • Webpack to unify the two different languages into a single JavaScript bundle

    • Tests, to check the core parts of the game engine

    • Simple and elegant build process, supported by Yarn, Webpack and GitHub Actions

  • "Solvenius" - what does that mean?

    Solvenius is short for solving genius - focusing on the deductive nature of the game and the fact that everyone can master its mechanics by applying logic! ^__^

Audio credits

NOTE: the original audio files have been compressed when creating the game.

Special thanks (for Solvenius 4)

The author would like to thank:

  • Marco Mengoli and Elisa Bruzzi: for testing this new release on iPhone, as well as for providing hyper-valuable feedback

Special thanks (for the legacy version 3)

The author would like to thank - in order by surname:

  • Massimiliano Corsini: for his valuable testing of both the HTML 5 and the Android version

  • Alberto La Mantia: for suggesting that game clues on sequence attempts should employ not only colors but also other visual elements

  • Kevin MacLeod (incompetech.com): for the excellent soundtrack

  • Salvatore Munaò: for his valuable testing of both the HTML 5 and the Android version

  • Ivano Pagano: for suggesting keyboard input support

  • Carmen Squillaci: for her valuable testing and suggestions on the Android version

  • Paolo Tagliapietra: for his suggestions and infrastructural support for an older major version (Solvenius 2)

Further references

About

Logic game in modern Elm

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •