A more serious development in 3D OpenGL then Snap! Klondike Solitaire is one of the most popular games in the Android Market, and yet none of them really appealed to me visually.
Latest features included High Definition graphics, an online leaderboard high score chart, user definable images of both card backings and backdrop.
This app has been recognised by its excellence on this site https://gameskeys.net/under-the-radar-games-that-you-should-play/#Solitaire under the entry of Solitaire 3D Classic Klondike+. Thanks for your keen observance and obvious good taste! 🙂
An independent reviewer has taken the time to write a thorough review of which I appreciate very much!
Check out Daria’s review here: https://freeappsforme.com/solitaire-3d-app-review/
Thank you very much for doing that. 🙂
I wanted a clean looking interface, that didn’t require popup columns. Basically you should be able to play it as you see it without the need for tricky interfaces. I wanted to show off some of OpenGL animation, especially with the shuffle and deal, and specifically the winning sequence.
Here are some screenshots: –
And a video: –
The images below of the app are older than the current version, but I like to leave them here to remind me of how far the application has progressed!
Solitaire 3D was added to the list of the Best Free Solitaire Game Apps where you’ll see it listed as the 4th item.
This release is principally done so I can flag the Google Play Store that there is an update. “Why?”, I hear you ask! Google removed the Pro version because the app description violated the store listing requirements. And how? Because I used stars ★ as bullet points for the app’s feature list. Using “special characters” in the description is now a violation (I apologize to Google for making them feel violated) so they removed the listing. No warning. No chance to fix. Just, delete. The joy of being an independent developer means they don’t need to pretend to care! So of course I fixed the listing immediately, but I need to release a new version of my app for them to recheck the store listing. I’m sure there are some really good words in the dictionary to describe this level of intelligence and pedantry.
But, nevertheless, I took this opportunity to update all the SDKs I use – why not!
Reviews take up to 7 days…
5 stars for Google’s review process, yay. (Just to clarify this is a different 5 stars to those which got me banned.)
Edit: In all fairness I have to state the review process took 2 days – sad it had to happen, or more precisely it happened the way did – but happy it wasn’t for a whole week.
I greet you. The game in this format is excellent. I’m having a good time. No comments. I wish you a lot of health in the New Year.
Thanks mate – I really appreciate you taking the time to write. Makes me very happy – have a great year yourself 🙂
Updated to all the latest libraries. Mostly this is fix bugs in the existing SDKs, but could also have extra privacy data protection.
The big news with this release though is I found a command which plays the ads at the same volume set internally within the app, with the upshot being the ads will now be a lot more quieter 🙂
Read the new review done here https://freeappsforme.com/solitaire-3d-app-review/
Google has changed how the Google Play Services interactions worked, a complete rewrite. There were also changes to the leaderboard and achievements, they completely rewrote how the interface was to work.
Now ordinarily that would have been OK, I would have rewritten the code to support the new libraries & SDKs.
The issue is at the same time they decided to block apps which use older libraries, which is to say block older Android SDK versions – this will make any Android device 2 years old obsolete and from the developers point of view any app which was designed to work on those (via Target SDK) would be removed from the Play Store.
I used this library: https://cloud.google.com/blog/products/application-development/sync-google-drive-files-to-apps-using-the-drive-rest-api-bidding-farewell-to-the-drive-android-api
And here is their ruling that come November any app supporting older SDKs will be removed : https://android-developers.googleblog.com/2022/04/expanding-plays-target-level-api-requirements-to-strengthen-user-security.html
This left me with no time to rewrite those significant portions of the app and not get blacklisted; my only go-to was to stop using features which were no longer backwardly compatible.
At this time I decided to also link in a couple of sites [from off the menu] which have games and quizzes, as they looked interesting.
I’ve restored Google Play sign-in with leaderboard and achievements; as the winning sound effect says: “YAY!”
This was a complete rewrite of the GPS sign in process, I am now using version 2. Note that there is no sample code out there to work off (which is much easier, seeing an app use features than reading the cold documentation about it). In fact, I’m the first to actually post useful code: https://stackoverflow.com/a/74757993/530047
There is a rare bug which lost sync of the score with the current deck position. I feel this came about due to me using threads to save the game, settings, player move history and solutions – and I think some threads finished and others did not, thus a partial save. So I’ve stopped using threads for this and put all the save routines in one call – hopefully that will solve this!
I analyzed the main game loop to knock out any repeating code, any unnecessary checks and fine-tuned the processes I had already in place to save CPU, which should make less demand on the device and therefore battery.
I removed those quiz links put in the last version. There was minimal directed traffic, and I wasn’t going to throw up full screen messages. Also, the company I was linking to have no dashboard login so I have no means of seeing any cumulative figures of usage. I would need to manually add up the automated emails I receive each day!
As usual, I updated to all the latest libraries and fixed any bugs received by Google’s crash handler.
The routine used to build the solvable decks and their relative difficulty has been rewritten. The internal database used to build these was changed to carry the load instead of using the device’s processors. This means it runs quicker, less overheads and some rather obscure bugs were removed. The only possible downside is the upgrade process doesn’t overwrite the older redundant database.
On occasion the Aces on their bases (when the base sort switch is on) get can tapped and the game was interpreting that as to change the base the ace is on. So that tap is now ignored. If the player wanted to they could drag an ace onto any base or change that base order, which will put aces on bases which weren’t selected for them – and if the player really wants to do that it is allowed – it’s only accidental taps which are ignored.
Google Analytics tracking was removed. The events it was tracking weren’t even being monitored anymore and the library would crash on rare occasion – so it was removed.
A few other bugs identified in the Play Store crash reporter were removed or otherwise bypassed. And of course, as usual, all support libraries have been updated to the most recent version.
Finally found and fixed the bug which at times could redeal the same deck. This happened if after about a hundred games played on casual difficulty of 3 card deal of normal scoring. The first few deals are angled towards easier shuffles, but the count of how many should be granted wasn’t being kept properly so it kept looking for very easy deals eve when there were none left, so it just pulled the last one played. And could do that a few times in a row. The counter has been fixed and this won’t happen any more,
The usual updates were made to all the support SDKs and bugs identified by Crashlytics have been resolved, or at least written around!