Show HN: I've open sourced DD Poker (github.com)
I'm the original author of DD Poker, a Java-based computer game that ran on Mac, Linux and Windows and originally sold in stores in physical boxes.
I shut down the backend servers in 2017 but the game is still functional and people can still play each other online even though the central lobby and find-a-game functionality no longer work.
I've been asked over the years to release the source code, especially during the pandemic, and again this year. I finally got motivated to clean up the code and put it out there.
The code is 20 years old and uses some ancient Spring, log4j, Wicket and other dependencies, but it still works on Java 1.8.
39 comments
[ 3.3 ms ] story [ 87.4 ms ] threadOut of curiosity, do you think the game's architecture and tech stack would be easily portable to a more modern setup, or would it require a significant rewrite?
I bought and played the heck out of that game years ago but never could get anyone to try it multiplayer.
Thanks for the great games!
https://cheerpj.com
Edit: Tool a quick look at the repo, if the game is a Java 8 Swing application (as it seems) then it will most likely work out-of-the-box with CheerpJ
Only criticism is that it can take a few MINUTES to initially load the game and there isn't a loading bar or anything
<smirk>
I realize source releases aren't always possible, so it's a great gift to the community when one can make it happen and they put in the effort to do so.
(My son loves to play.)
BTW, the old Windows installer runs great under Crossover on Apple Silicon.
I'm going to try running this native. I'll file issues for what I can't readily fix.
I just took a very quick scan read, and think by modern standards calling it "AI" would be a stretch ;)
[0] https://github.com/dougdonohoe/ddpoker/tree/main/code/poker/... - I recommend looking at V1Player.java and V2Player.java in particular
BTW, you want to wrap statements like this in a logger.isDebugEnabled() especially in the paint loop because otherwise you always incur the cost of string concat, debug or not!
> logger.debug("REPAINT COMPONENT "+(CNT++)+" ("+ImageComponent.getDebugColorName()+") portion " + bounds_.x +","+bounds_.y+" " +bounds_.width+"x"+bounds_.height);
Anyone have more details about how the above works?
https://static.ddpoker.com/gamehelp/help/hostonline.html
For the person who was having trouble getting this to work on an M1 Mac (flagged, really?), try this (after installing Java 8 and Maven using Homebrew):
I built this before figuring out the OSNAME thing, so I can't actually vouch for the build step working out of the box.Anyway, thank you very much, Doug. This looks really cool.