Hacker News new | past | comments | ask | show | jobs | submit login
Remake of the Windows 95 Solitaire game (github.com/danielricci)
106 points by ctippett 10 days ago | hide | past | favorite | 55 comments





    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.

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.

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.


Can we explain what this memory does? Is it just abstractions ontop of abstractions etc?

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.


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.


Instead you end up with 20 Java microservices each taking up a gig of memory

... that sentiment is how we ended up requiring 1GB of ram for sending text...

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.

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.


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?

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.


> 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.


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


It would be an interesting exercise to try the port using WxWindows or something similar

wxWindows?

Called wxWidgets now https://www.wxwidgets.org/

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.


Imagine an Adobe version of this. 64Gb at least.

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.


Unless he took steps to obscure it. you still have the source code. Java is trivial to decompile.

Why not release the source code as an open source project then, and add a proper maven dependency instead of bundling a jar file?

Microsoft has added premium subscriptions to modern Windows Solitaire, because it's 2024 and God has forsaken us. So this is a welcome project.

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!


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.


All credit goes to the original creator, I just posted the link :-)

Consider Windows a live-service, free-to-play OS.

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


$2 a month for solitaire?!?!

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-)

I'd like to try this out at some stage. Any tips? Any thing that caught you out?

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.


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...


A wonderful preservation effort, but I thought Solitaire originated with Windows 3.1. Are there any significant differences to the Windows 95 version?

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.


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.

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.

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.


Does that mean it has the ending animation that plays way too fast? They fixed that in Windows 2000.

Ha! It wasn’t supposed to be like that crazy flinging of cards?!

Nice to learn trivia about key memories from your youth.


Please, redo Hearts from windows 3.11 too. :-)

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.


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.

Nitpicking but the original is from Windows 3.0 ;-)

There is JS Solitaire as well which looks exactly like win 98 solitaire. https://github.com/1j01/98/tree/master/programs/js-solitaire

Looks, maybe, but it plays very differently.

So cool! I only started playing solitaire on XP though and it was slightly different

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!

Why climb Everest? Because it's there.

see also https://worldofsolitaire.com/ and https://www.solitaireforfree.com/ ( self plug, it is not my website/domain, but it is my code)

(2019)

You realize copyright applies to an application’s visual representation, too, right? Copyright isn’t just a code thing.

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 :)

It seems to have survived on github for about 6 years, so the copyright holders probably aren't bothered.

Such a disappointing lack of regard for the impact this might have on Windows 95 sales going forward



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: