Remake of the Windows 95 Solitaire game

(github.com)

106 points | by ctippett 15 days ago

19 comments

  • userbinator 12 days ago

        Full installation of Windows 95 - ~64MB
        sol.exe - 167KB
    
        jre-9.0.4_windows-x64_bin.exe - 96.6MB (compressed)
        Solitaire.jar - 463KB
    
    It seems that even a VM containing all of Windows 95 would be smaller than a JRE and this version of Solitaire.
    • samuell 12 days ago
      Not to complain too much on a praise worthy effort, but it would have been so nice if this was coded in FreePascal with Lazarus. Then we would have tiny native binaries for all the desktop platforms, which would feel even more native.
    • qingcharles 12 days ago
      I saw a launcher in Task Manager today using 96MB of RAM. Its only job is to launch another app.

      For a couple of years I programmed on a device where ALL the apps combined had to total less than 8KB.

      • lionkor 12 days ago
        Can we explain what this memory does? Is it just abstractions ontop of abstractions etc?
        • qingcharles 12 days ago
          The app simply has an image and a button that says "OPEN" on it, which launches the other app.

          I'm guessing it is Electron or something and underneath it is loading an entire web browser engine to display the image and the button.

    • rpigab 12 days ago
      That's right, but we have to remember it's not really useful to optimize for binary size or RAM usage for a software that does not need multiple instances on servers, it's an end user app that you only need one of.

      I think Java is a nice choice for a Solitaire game. If you're looking for efficiency, take a look at my command-line Solitaire that you can play in Gitlab pages or in a terminal : https://gitlab.com/rpigab/solitaire-cli

      It's written in Rust so by design, it should be blazingly fast wink wink. Well there are many ways to shrink the binary, I didn't try to yet, the WebAssembly part too is way bigger that it would need to, but still, it's smaller and there's less colors, shapes and animations to display.

      • trallnag 12 days ago
        Instead you end up with 20 Java microservices each taking up a gig of memory
      • tjoff 12 days ago
        ... that sentiment is how we ended up requiring 1GB of ram for sending text...
        • VelesDude 12 days ago
          A slight tangent but it is kind of mind melting that smartphones now do need a minimum of 1GB just to send an SMS. I mean look at any Nokia phone form the 90's and none of them probably had more than 1MB of RAM, many way below that. Yes there is a lot of quality of life and security features but the bloat is real.
        • rpigab 12 days ago
          Is that true or just hyperbole? On what system?

          I love working towards making systems as efficient as possible, but in real life, engineer hours are limited and compromises exist.

          Also, if this is quantitative, we could make the same argument with 1MB, and 1KB, and less. Sending text doesn't require RAM at all, it requires carrier pigeons.

    • qwerty456127 12 days ago
      Nevertheless it's just such a delightful gulp of fresh air to open the repo of a GUI app and see it's not in JavaScript :-) An Electron instance with the same would probably take even more memory, wouldn't it?
      • wolletd 12 days ago
        I recently build some internal app with Qt. Unfortunately, building Qt apps on Windows is somewhat complex.

        Also I didn't find a way to install Qt on Windows without later receiving E-Mails from Trolltech (or The Qt Company, nowadays) trying to sell Qt to me.

        • qwerty456127 11 days ago
          > Also I didn't find a way to install Qt on Windows

          pip install pyqt5-tools gets you everything incl the designer :-)

          It may fail building though.

    • ktosobcy 12 days ago
      Developer should have used jlink to get smaller distribution package, alas it would still be bigger.

      OTOH - I wonder what the size of native binary would be

    • raverbashing 12 days ago
      It would be an interesting exercise to try the port using WxWindows or something similar
    • pjmlp 12 days ago
      That is because they haven't bothered to use jlink.

      Shipping JRE isn't a thing since Java 9, other than for folks stuck in old Java ways.

    • throwawayyy9237 12 days ago
      Imagine an Adobe version of this. 64Gb at least.
  • 39Wc 12 days ago
    Seems the entire game engine is missing from the source code, instead it comes bundled with a jar file in the classpath called "mead.jar".

    I wonder why the author thought that was a good idea. I was actually looking forward to studying the game engine itself.

    • LeFantome 12 days ago
      Unless he took steps to obscure it. you still have the source code. Java is trivial to decompile.
      • 39Wc 4 days ago
        Why not release the source code as an open source project then, and add a proper maven dependency instead of bundling a jar file?
  • bitwize 13 days ago
    Microsoft has added premium subscriptions to modern Windows Solitaire, because it's 2024 and God has forsaken us. So this is a welcome project.
    • appstorelottery 12 days ago
      At first I thought you were joking; however a quick search reveals that indeed God has forsaken us.

      https://microsoftcasualgames.zendesk.com/hc/en-us/articles/1...

      The OS is now "free" and Solitaire is now paid product? Is this the pure definition of irony?

      OP: You've done a wonderful job with this!

      • wiktor-k 12 days ago
        I had to use Windows machine to test an app recently and the amount of ads and other annoyances there is just mindblowing. I wanted to show Solitaire to my kids but it's so ad-ridden it's painful to play.

        I'm strongly considering just reformatting the drive and putting Linux in there.

      • ctippett 12 days ago
        All credit goes to the original creator, I just posted the link :-)
      • bitwize 12 days ago
        Consider Windows a live-service, free-to-play OS.
    • AndrewDavis 12 days ago
      I carry those old games from old windows installs. They won't run "natively" on modern windows, however someone ported a subset of WINE, winevdm, to windows called otvdm.

      I was playing Chips Challenge yesterday!

      https://github.com/otya128/winevdm

    • LeFantome 12 days ago
      $2 a month for solitaire?!?!
  • leighleighleigh 12 days ago
    Hell yes, I just spent half a day theming my Linux box with Chicago95! I've already got Space Cadet pinball from Flatpak, and now I've got Solitaire - nostalgia levels are off the charts right now B-)
    • verve_rat 12 days ago
      I'd like to try this out at some stage. Any tips? Any thing that caught you out?
      • jwrallie 12 days ago
        I also recently tried chicago95, it seems to have some issues with the latest Xfce version, so if you see your notification area icons have squares around them, there is a workaround on the GitHub issues page of the project.

        When I used the workaround, the taskbar lost its 3D border effect, so I recovered that by using a background image that is 1 pixel wide and has the correct colors to have the 3D effect. It’s better if you use something like Xubuntu 22.04 first to see how it should look like without this bug.

  • ctippett 12 days ago
    I came across this project after seeing a mod for the game Balatro [1] that used the artwork from the original Solitaire sourced from this repo.

    The README was so wholesome I thought. The developer obviously put a lot of care and attention into creating something they're proud of and hoped others would enjoy. I hope the person who created this notices the influx of attention its now getting and gets a kick out of it.

    [1] https://steamcommunity.com/sharedfiles/filedetails/?id=32237...

  • LeoPanthera 13 days ago
    A wonderful preservation effort, but I thought Solitaire originated with Windows 3.1. Are there any significant differences to the Windows 95 version?
    • o11c 12 days ago
      Windows 3.0 according to Wikipedia, which mentions no changes until Windows 2000.

      A little googling shows screenshots, obviously the widgets look a little different but no meaningful differences are apparent at a glance.

      • chungy 12 days ago
        Indeed; Windows 2000 changed the card backgrounds, but it otherwise remained virtually unchanged from 1990 until 2007 when Vista changed it to be Direct3D accelerated and new graphics.
    • matttproud 12 days ago
      Indeed. I never played it on Windows 95, but I spent a lot of time playing it on Windows 3.1 (and probably 3.0). This looks essentially like the Windows 3.x version.
  • squarefoot 12 days ago
    Hijacking the thread to ask if anyone could explain why Aisleriot, an otherwise quite good Linux solitaire game, seems to poorly randomize cards, at least when playing the classic Klondike.

    https://wiki.gnome.org/Apps/Aisleriot (no need to run Gnome to play it)

    The apparent bug was already reported 4 and 2 years ago on different games.

  • Dwedit 12 days ago
    Does that mean it has the ending animation that plays way too fast? They fixed that in Windows 2000.
    • jamiek88 12 days ago
      Ha! It wasn’t supposed to be like that crazy flinging of cards?!

      Nice to learn trivia about key memories from your youth.

  • hoyd 12 days ago
    Please, redo Hearts from windows 3.11 too. :-)
  • mrdanielricci 7 days ago
    Original Author of the game here.

    It was a big surprise for me to see a jump in attention that my Solitaire remake got. Thank you all for taking a look at my repo and I hope that you enjoy playing the game.

    Minesweeper was also a lot of fun to remake, interestingly it took around 3-4 months of work to finish that before starting on Solitaire which took a little over a year to complete.

    When I was a young boy we had a Windows 95 machine and an Apple Macintosh at my elementary school, where I got introduced to Solitaire, Minesweeper, MS Flight Simulator, The Secret of Monkey Island, Hit the Road Sam and Max, and a bunch of other games and applications.

    I thought it would be nice to keep a little bit of that nostalgia around so I tried to remake Minesweeper and Solitaire as close to pixel perfection as I could.

    The Solitaire game still has to have the card animation support released which I am in middle of getting done.

    A bit of backstory on the mead.jar reference.

    I started making tic-tac-toe, checkers, and chess to get more into having a few small projects finished that I can look back and be proud of. While I worked on those three small games, I would reference this other Java project that would be in charge of asset management; I called this project Mead, which is the name of my Dwarf Ret Pally back in my WoW days.

    Mead is a code base that has a tile editor that lets you add in images to generate a tile map with simplistic layers, and with code generation support that when referenced from your Java project, would give you access to your tile map through a common interface. Think Tiled for MonoGame, but back in 2012 and with features specific to my games. I will also open source that project for everyone once everything gets upgraded to a more recent JRE.

    If you would like to check out my other games as I go along please feel free to follow my progress on GitHub. If you would like to contact me for questions on things that i did in my games please feel free to message me anytime.

    And it goes without saying that if ever I can help anyone out from the development side with your projects I will do my best just send me a ping.

    Again thank you all for trying out the Solitaire remake.

  • romwell 12 days ago
    I still play the original Win 3.11 Solitaire (same as the Win 95 one, more or less) - which, rather remarkably, still runs on Windows 10.
    • efdee 12 days ago
      Nitpicking but the original is from Windows 3.0 ;-)
  • smusamashah 12 days ago
    There is JS Solitaire as well which looks exactly like win 98 solitaire. https://github.com/1j01/98/tree/master/programs/js-solitaire
    • ygra 12 days ago
      Looks, maybe, but it plays very differently.
  • addminztrator 12 days ago
    So cool! I only started playing solitaire on XP though and it was slightly different
    • accrual 12 days ago
      I enjoyed "speed running" solitaire on XP during my computer classes in school. I kept a .txt files of my scores. Wish I still had it!
  • mvkel 12 days ago
    Why climb Everest? Because it's there.
  • pharrington 12 days ago
    see also https://worldofsolitaire.com/ and https://www.solitaireforfree.com/ ( self plug, it is not my website/domain, but it is my code)
  • tcmb 12 days ago
    (2019)
  • juliusdavies 12 days ago
    You realize copyright applies to an application’s visual representation, too, right? Copyright isn’t just a code thing.
    • ChickeNES 12 days ago
      You could always have the end user drop in their legally obtained copy of CARDS.DLL from older versions of Windows, and then parse the NE to extract all of the card images...at least, that's what I did when I made a clone of Windows Solitaire :)
    • boomboomsubban 12 days ago
      It seems to have survived on github for about 6 years, so the copyright holders probably aren't bothered.
    • saghm 12 days ago
      Such a disappointing lack of regard for the impact this might have on Windows 95 sales going forward