Jump to content

Community

Some news about the poker game!


Recommended Posts

Hi,

A while ago, I had completed the push of a working poker source code based on Cubeia Open AGPL3 on my private bitbucket repository now run on my vps so it will not be lost and I could easily deploy it again.

Few have asked me if the game is still alive, I was not able to release it to the general public due to the complexity of configuring the game  and I don't want to end up having the nightmare of giving support to every problem of configuration which differs from an distro to an another.

Lack of time besides some family issue, I dropped everything back then.

Sine then, it has been quite a year by now, I found a safe and reliable way to make distribution available but had not much time to learn the new technology.

I  did put some spare time beginning of this year but ran into a lot of issues that I could not understand how to fix it due my lack of experience of the tool.

Never I have given up, so I took more free time to debug and now I believe I'm starting to get some good results at least the hardest part of the game configuration which is database and game rest services which the poker game heavily communicates.

No wonder why Cubeia shuts down the open source repo due to not the direction they wanted to go but the AGPL3 source code left behind is a gem not to use it. But may be not everyone could  know how to get it up and running . It will surprise me and specially add custom code to use IPS Oauth 2 for authentication to the game.

Well this technology has been out for a while, but I just had to learn until recently to be able to target the game release to the public and this freely of course.

Besides the Cubeia poker game, there is notorious module which may not needed but for management and configuration purposes, they are handy like the backoffice and the poker-admin. Those 2 allow table config, timings config, scheduled tournament, sit-n-go tournament,  monetary transactions and hand history data if enabled.

Imagine I had to install the game fresh which will take me a day or more and if lucky I can get it working and I will probably won't remember tomorrow how I did it today.

And picture if everyone can hit the same button to install the entire game and it will take just a little bit of time to have the game up and running with the same code guaranteed to be
exactly the same for everyone.

There will be no more support if not little of external configuration such as IPS private secret key. 

Well, enter Docker which is open platform which allows to build containerized apps as container images which deploy required packages the game needs to run.

Again, it still work in progress, but it looks promising as I try to add app by one and retest the whole pipeline til I got the desirable state of a working delivery method.

The only requirement is to have Docker installed on your OS, either windows or linux distro.

I will post soon a clip of this great tool of automation as I wrapped up the first milestone today and have 5 more applications left to pack.

There is strong hope that it will happen as I am going to make sure of it.

Stayed tuned!

Link to post
Share on other sites
  • 3 weeks later...
45 minutes ago, SammyS said:

Will this be available in the marketplace?

Yes. It will be free to download in the market place whenever I have  completed satisfactory testing and installation instructions.

As dev is on Windows, I need to find a vps which supports Docker so I can test its deployment on Ubuntu.

Still a lot of works to finalize but I am working hard towards making this a reality.

Thus, I don't have any release date right now as I do only this as an hobby in spare time.

 

Link to post
Share on other sites
  • 2 weeks later...

Man, the recent Docker update breaks my dev badly as Nat driver no longer exists, breaking a lot of things which I had to deal for the last 2 weeks with bridge network.
Somehow I manage to get further as I pull my hair out trying to figure out how to get different container communicating each other in isolated bridge network.
There is still tournament issues I need to debug to fix the registration. It will be on next demo if I get it working though.
But comparing to last demo, I had made a lot of progress as you can look of game play of diversity of poker type as I test them.
Til then, here you go for an another work in progress preview. It's getting there ...
 

[YouTube]

 

Link to post
Share on other sites
2 hours ago, Rugger said:

I would love to help test out a demo when its ready. 

Its looks great so far!  Can't wait to play it with my community

Any interest in merging with the Members Shop point system so people can use the points they earn on the website to play with? https://invisioncommunity.com/files/file/8833-members-shop/

Thanks for your interests. I don't own that point system add-on to give a good answer.

But generally, if it has exposed API I can call to persist point equivalent to play cash money amount, then it is easy to do.

You will need to ask the dev of that Members Shop add-on the info how other external system can be integrated to persist point data.

In the case if it does not have, it needs to have at least a database table you can do update query to set member's amount.

But I do not own that add-on to be able to tell and do work on it. But it is not something difficult to add code to manage member's point earned but these points can only be based on the play cash amount earned, so if you lose money, the points will be reflected to the same amount.

It does fall into custom work which I don't have any plan to do in short term since my focus right now is to get this game widely distributed to everyone.

Link to post
Share on other sites

I had some motivation tonight to pursue work on the game as it annoys me these couple days that tournament was not working at all and this feature is probably the most fun part of the game as it puts players to compete with for big prize payout. 

There are two types of tournament and it will depend on how you configure it. Sit'n'Go and scheduled types. The former is a no brainer, they are always there for you to jump in until it is full, while the latter is scheduled to trigger at a specific date and it can be as many as you want. 

Furthermore, you have seen so far the game in action but probably wonder how table and timings are made, in this new clip, it will show you how powerful Cubeia poker admin allows one to manage poker configuration with specific game play parameters, payout structures among many of the configs you want players to enjoy. 

If texas holdem is the only game you like to have, just do not create others. Simply as it sounds.

Well, enough said, another milestone is made for me. I keep on last feature as a surprise on next clip. This feature does not come out of the box from Cubeia AGPL code, it requires custom work I've added to make it possible.

Until then, enjoy watching tournament play. 

[Youtube]

 

Link to post
Share on other sites
8 hours ago, LuckyRiver said:

I had some motivation tonight to pursue work on the game as it annoys me these couple days that tournament was not working at all and this feature is probably the most fun part of the game as it puts players to compete with for big prize payout. 

There are two types of tournament and it will depend on how you configure it. Sit'n'Go and scheduled types. The former is a no brainer, they are always there for you to jump in until it is full, while the latter is scheduled to trigger at a specific date and it can be as many as you want. 

Furthermore, you have seen so far the game in action but probably wonder how table and timings are made, in this new clip, it will show you how powerful Cubeia poker admin allows one to manage poker configuration with specific game play parameters, payout structures among many of the configs you want players to enjoy. 

If texas holdem is the only game you like to have, just do not create others. Simply as it sounds.

Well, enough said, another milestone is made for me. I keep on last feature as a surprise on next clip. This feature does not come out of the box from Cubeia AGPL code, it requires custom work I've added to make it possible.

Until then, enjoy watching tournament play. 

[Youtube]

 

You've made some great progress!! The admin controls look great and very easy to use. The tournament lobby is well put together. 

I will ask the Dev on the members shop point system how its setup and let you know. 

Thank you

 

Link to post
Share on other sites

Sometimes it is difficult to bring a friend a long to play with. This feature has been implemented long ago by Cubeia for testing purposes. Probably at huge loads to test server's capacity and response time. You probably guess it is about bots accounts. Some big gambling online sites probably do use them but how can you know? 

I face a new problem which is how to give bots infinite cash to play and how log them in. Furthermore, I wanted them to have ghost avatars. This not only will attract players to see there is live in action.

So here is the surprise I mentioned in my previous post which is playing with bots! 🙂

Believe it or not, those bots do play well. You do beat them but sometimes they can beat you badly! 

I still have few things to wrap-up with Docker to synchronize order of deployment which plays a big part of automation process but summer is hot and humid and it's hard to work with little free time of my own. 

Until then, I will still be busy with poker as I really want to get this done.

[YouTube]

 

Link to post
Share on other sites
18 minutes ago, Rugger said:

WOW! The bots seem to work great! The split screens are nice, even with 3 tables open you can still see the cards easily. Really great work!

Thanks! The next clip I'll  explain how IPS authentication works and how the application retrieves the Oauth2 keys that are configured in the admin console.

As each site owner has different keys, I have made easy each one to put their own keys. It was one of the challenges I face to make the distribution possible since this information is private.

Furthermore, site context root varies, either no context root or like IPS, forums is used here. So all these are configured dynamically.

Important to note that in local environment, I have to disable HTTPS, but you will need to have HTTPS when you deploy this on production otherwise authentication will not work.

Link to post
Share on other sites

In the old days, the only solution I came up was to query IPS own database on some specific table, and using some bcrypt code to match a member's password. While this solution works, it requires site owners exposing database credentials in some property file to access the database. Even though with restricted grants, it still was not a clean and secure way, and dealing with a lot of hard coded config files was also not a joy even for the developer and the client ending up more documentation on configuration.

Nowadays, with the Oauth2 Rest API, it is no longer the case. Facebook, Google and the like have it. But other forum software I was looking lack or don't implement like that way except IPS. What's a treat!

Thus I found an opportunity to use it and redo the implementation of the authentication to the game. It took me time though. 

As you can see in the clip, it only needs the key pair private and secret keys values and voila!

How nice not to have member registering again. They already have their accounts, why not use it.

Of course this is the IPS part of Oauth2 implementation, I do have to implement my own app too to interface with the response returned by IPS such as the autorization code and the token to validate who I really say I am.

See it for yourself the magic of Oauth2. 

No more database config, no string attached. 

The game server runs as a stand alone application providing only the authentication by IPS site owner to his/her members to acces to the game. 

No harm can be done to the site operations as private and secret keys are kept at private repository.

But I must warn that in order to install and use the game, you will need memory and at least 5gb of ram to use it alone. I haven't tried with docker yet on a vps to get some memory stats.
However, cutting unneeded modules can bring memory down like poker-admin, you only configure table and timing only once, bots may not needed but fun though. Hand history may be disabled too.

There is no way, one can install this on his own. Even myself, I make mistake, there will be no doubt there will still be support to give but little since at least the big part is automated by Docker to handle that big operation.

If I did not discover Docker, probably no work has been accomplished that far and probably poker will never see the day. But I do like poker, so I can install to play with my friends whenever I want.

My big thanks to Cubeia team to have made that AGPL3 open source code public back then. 

Well, summer is really here and I really need  a vacation. 

[YouTube]

 

Link to post
Share on other sites

This looks almost completed and ready to go, you have made some crazy progress in a short amount of time. I would love to be a beta tester for you on our site when you are ready for that step

 

Link to post
Share on other sites
4 hours ago, Rugger said:

@LuckyRiver Any new updates?

I have been so busy these days to spend much time on this hobby of mine. As you have seen, the game functionality is fine and running well locally.
 
But to get the poker game out is far from ready due to the fact there is still work left to be done.

As the game consists of several containers, each of those containers runs and communicates themselves in concert, each of those containers needs to be converted in image.

I have started some work onto it the last couple days which consists of learning how to do that with Docker. But as I start to play around with it, I noticed that running directly from image is not exactly running in dev environment as I need to fix code when facing issues to get it working as I go and also keep in mind that I'm far from mastering the tool, learning and looking for answer takes a lot of time and sometimes there is no much help.

So, basically, when those containers are built into images and retested fully, I will be able to move to the last step which is to push those images into DockerHub or the like for distribution.

As those images contain only compiled code and dependencies modules for each of the application to run, when they get downloaded when the game is ready, they will be able to execute automatically without the need of compiling.

That's the beauty of Docker. I surely also hope that running those images later will be working out of the box for everyone no matter which distro you are using, this is the reason Docker exists for.

I'm still working on it whenever I have free time and also looking way to host those images probably on Gitlab or Dockerhub. 
 

Link to post
Share on other sites
Posted (edited)


As explained previously, some updates with more preview of working in progress with a clip of doing a spike running docker image as it will be in production stage.

I have been struggled to build a docker image of the poker server for almost a week and no luck. I have tried all kinds of tips from the web and end up
error by error at run time.

Yesterday as I wanted to ask help from Cubeia as I had help from them 6 years ago, I started to draft my questions to the gurus to help me with those particular exceptions, and as I was about to send, I decided to run one more test which turns out successful. 

I would'nt be able to carry out the next step if I can't get the images created and working. They are created easily but to run them is a different story.

The cubeia AGPL poker code contains a lot of proprietary dependencies which can not be pulled out the web since they simply don't exist. 
The only thing it works in local dev env is because I had grabbed them 6 years ago while their repos were still public before close down. This force me to modify the deployment process. 

While dealing with this, I had also to deal with the synchronization of the order of the startup of the server. 

In the clip, you will see each application has to wait for its prerequisite apps to finish first before it can start. 

Now, you can see that the server is running from an image file which is a whopping 2 gb file size. 

Size matters, not really, I will have to do some cleaning of every unneeded module to reduce space, since space is expensive in term of cost and download time

Thus, more polish work waiting for me. The next step is to build the client image which I hope does not have to be as so difficult as the server one so that testing can be restart over to ensure that it is working fully as non image mode. 

Things are going good but painfully though. There is still hope! 🙂

Until my next working image of the client, here is some reading about Cubeia announcement of closing the AGPL source code 6 years ago. As stated, the AGPL source code I used is allowed to use it as long as it adheres to the AGPL licence.

Cubeia AGPL Poker

Here you go:

[YouTube]

 

Cheers!

Edited by LuckyRiver
Fixed link tag
Link to post
Share on other sites
  • 2 weeks later...
Posted (edited)

Some updates of my ongoing work.

I have completed all docker images needed to go to production. That can only mean it's near release. As I retested the whole thing again with docker images hosted on my local hard drive. So it will be transparent once I push them to Dockerhub site, once you grab them it's like you grab them from my local hard drive. 

Bots component was my last integrated image docker which gave me a little bit of code modification but to retest to see if bots are working, this time I had a chance to have them played in tournament as I did not quite get them working in my previous demos.

Something I forgot to mention, my demo deals with custom cities and custom skin. I will remove the custom skin in my demo when released so it will be red background and the default cities set by Cubeia.

There is a custom thing I still have to deal with is testing the same images files from Dockerhub and make sure they are working fine. They should work out of the box.

Also most importantly by Cubeia AGPL licence, custom code modification I've made to the poker client and the bots need to be released as well as with the entire poker product although I have not modified the other modules, so things like that I will need to make them public available. Hopefully then open source developers can continue my work.

There is another big feature missing that Cubeia did not make it as open source which deals with gamification that truly motivates participation and engagement.
So how game elements can be used in poker?. When asked Cubeia back then, they explain how one can implement them and since the AGPL code already supports it. 

Developers can add this feature pretty easily. But they do fall to custom work though. I recall using tips from them, how game notification is sent during game, and though they are for show, they do nicely show the level of your game play as how many medals you have collected so far. I'm not sure though with an image of a Bacardi bottle is one to have but they will show nicely in your achievements list.

Apart that, I can see interesting to have the notion of level up, which will allow one to play more games not available until you have reached a certain level. For example , to unlock a certain game. eg. Hold'em is level 1, Crazy is level 2 and so on. Or simply with IPS rest api, one can define VIP-1, VIP-2 and VIP-3 and have poker client unlock the games based on member's status or based on number of posts he or she made. 

I sure like to code that which I think a nice challenge but really I don't have much time as I am much burned out already with getting docker image working. It has been exactly 2 months since I post news on poker and have worked non stop since then on my spare time. I did skip a lot of movies and shows to make it happen.

As I can say, the release date is near as testing has been pretty good on objective I have set using Docker images. 
Docker is here to help to deliver something big like Cubeia poker that I was not able to do a year ago as those containerized applications are guaranteed to work on any distro, and if there is a fix, everyone will get another version of the image and you're all set.

Finally, I still have to figure out a way the app is going to grab each site owners url which contains game configuration such as IPS Oauth public and private keys.

I almost forgot that some documentation write-up how to install this.

Until then, here is a tournament playing with bots using near production docker images.

[Youtube]

 

Edited by LuckyRiver
Link to post
Share on other sites
Posted (edited)
2 hours ago, Rugger said:

Do we get to choose our own Avatar if so is there an option to change it later? Can we add our own?

Your avatar comes from IPS. Whatever you had set in your profile, it will be displayed in game. The IPS rest API will retrieve it so whenever you changed the avatar, it will be automatically updated.

You may want to force at new sign ins to make new member upload their photos or picture so that it will be displayed in game, otherwise it will be displayed as a no avatar pic.

I'm going to order a KVM vps to test out the docker images on Ubuntu 20.04. Will see how it goes.

Btw, you will need a KVM vps to use docker since non KVM can not upgrade kernel, thus you can not install docker to install the game.

I haven't done yet but this is to read for different versions of distro for Docker requirement: https://docs.docker.com/engine/install/

Stay tuned.

Edited by LuckyRiver
Link to post
Share on other sites
  • 3 weeks later...
Posted (edited)

Just when I thought it will work out of the box, I was dead wrong. After installing docker engine on a fresh Ubuntu 20.04, following the guide from Digital Ocean, it is pretty straight forward. 

Although, Docker engine is fully functional on KVM vps I ordered. the same image files which are somehow working rock solid under Windows, do not work quite well on Linux due to special DNS name host.docker.internal not working on Linux. 
 
Well, it turned out I am not alone, after days of looking for solution from many people who encounter the same issue and trying randomly tips, there is no good solution until Docker fix this. I ended up hardcoding the docker ip which is supposed not to be changing so testing can resume. 

I also ran other issues which need to be fixed from code in particular mysql driver versions due to Ubuntu 20.x using higher version of mysql than 5.7.

Once I got rid of these issue, I encounter bigger never expected show stopper which happens on the server side. Whenever I started the server, I got database connection exception, preventing me from doing anything good with not functional game server. After manipulating different driver version, my attempts were still unsuccessful. 

Tiring of not being able to understand why I always got PersistenceException no matter how I tried, the connection to database could not be opened. Surfing forum discussions for same issue did not end up anywhere since they are unrelated to my problem. Reading one post seems that I need to use mysql 5.7, so I downgrade Ubuntu to 18.04 and reconfigure the entire whole thing again like reinstalling docker engine.

Luckily, rebuilding docker images were easy and automation has been throughly tested under windows. I cross my fingers to hope it will work with mySQL 5.7, but still same hibernate connection error I seem not able to get rid of. I have lost 2 weeks of investigation and even hardcoding docker ip address due to linux not supporting host.docker.internal, it clearly is not from mysql versions but something inside docker networking which differs from windows.

Running out of solutions, I had no choice to look at Cubeia source code where the connection failed to open. Two main modules are definitely candidates to modification to run on linux distro, for obscure reasons, jdbc/datasource just simply do not work. Damn, I had to change the configs not to rely on remote datasource but direct connection to database. And here we go again for more tests I hope would be the last. I was not completely sure it is going to work.

Guess what, it just does. Now, I lost nearly two weeks. As I now had the server up and running, I did the test on client part and encounter login issue and not able to join a table due to insufficient funds. At least the real main issue is now solved.

I have learned the minimum configs one needs through this ordeal. The vps I ordered is borderline for docker to run besides mongodb issue I notice with docker volume increasing abnormally. So I would says 3.5GB memory is really borderline since with docker game up, there is no much left. 40GB storage is not enough too. I would recommend at least 5GB RAM and at least 60GB. But again it's up to you.

From local development to real world environment, it's day and night! 

This is why I need to get this work flawlessly before releasing it. Basically, if one wants to install the game, it will go like this, have a good KVM vps, install the game. The current IPS forums whatever it is hosted just remain unchanged, one will only need to configure authentication data so the game vps will use it to authenticate player.

One can use probably the same server but I do not recommend it. Poker players will be playing in an another server which can be restarted when necessary without disrupting the main forum site. This is how I'm testing the game server now.

Til next time, those are my rants and I have to catch up lost time and fix the client bugs. It simply is going taking longer, there is no doubt about it. But I believe the big part is pretty well done. It's close to release!

I'll let you with a clip that everyone will need to install docker to be able to deploy the game images.

[YouTube]

 

Edited by LuckyRiver
Link to post
Share on other sites
  • 3 weeks later...

My first try with beta testing the game with a member here on his live site who kindly offers me to test drive the game deployment with docker.
Actually, it has first started two weeks ago as I judge it was ready to give it a try but it did not go quite well and brought to me a new bug to fix to make the game more solid and stable than ever before.

As a matter of fact, my very first problem costs us a week to troubleshouting what went wrong.

On my side, it could be anything, from network connection, code or some server bad configuration to database connection.

So we went back and forth for several days trying different configuration.

From IPS admin console in Oauth2 with different keys and one of the redirect url to allow me do remotely debugging what went wrong. Furthermore, I spend sometime looking of other  fallback login scenarios like resource password credential alternative, but this option seems to be less secure than one with authorization code.

On my side, it was reading from the web all kind of similar issue but all try out but no luck. 

The error clearly indicates that something was not on my end but on the host site one. 

So after several days went by, I crossed read an article on github people having similar issue but very long replies to read, about that particular 403 Forbidden error and similar to the situation I was in. The weird thing is, why I did not get that error the very first time I called IPS for an authorization code which it returns correctly which I call back for
a token to access protected resource. The second pass seems suspicious that something is happening out of my control.

While I was not sure if IPS's later Oauth2 fix brought on rest oauth on latest release of IPS 4.4 which I don't have l as the latest version, anything is possible but I don't want to upgrade since authentication to my site was working fine and not the beta site.

So this makes me looking on whitelisting ip path and ask them if they can put the server game ip on whitelist since it's trusted ip and we both know it's only game server. I ran out of clue til I got a reply from them that they may find out the problem and had put the game server ip on whitelist for me to retry.

Bingo, that was it! I was able to authenticate. Hurray! 

As I started testing, I can log in to lobby, but when I tried to join a table, server responds that I don't have enough money to buyin. 

The worst just to come. What's wrong now?  That was last Thursday.

So now, my laptop seems to be broken, I've tried something last time I've debug the forbidden error and don't recall much what I did.

My other vps has the same problem leaving me no choice to go on no docker mode to debug. 

Murphy's law, sound familiar? 

Could it be from database? I checked this, I give every new player 500000 $USD play money, so I have plenty. So why was it working before and not now. Something I know, I had to put more trace on Cubeia code and rebuild database from scratch. 

From Cubeia log, it is asking balance for external id which is IPS member id. 

As database rebuild, I have no record of member in Cubeia back office, so my test users number assignment was sequential. Until, I start login with out of sequencial number, joining just failed. 

That explains, host beta site return a big number in the 280000 range which is impressive huge community which was the test account they create for me. So, persisting this id, Cubeia has no clue of balance I have. 

It was working all along on my dev laptop, because the id is matching one on one. And not some huge number 280000 with 1 and sometimes it took someone else's id instead of his own showing different balance which had me pull some hairs to understand what's going on.

That is it, this was the problem which was always there a year ago for code I just resurrected. 

Well, one big milestone has been reached. I've played some hands with the members of that beta site and they seem to having fun!

Later, I've explained how to transfer cash to players who runs out of money and can no longer play. 

Now, I still have minor issues to deal with like avatar not showing up and server not startup inside docker. 

Til then, beta site is up and running and I'm going to play more poker and not with bots but with real people and these guys are good as you can lose your money in no time!

Hopefully, there is no more big issue so I can keep focus on next step. As I can tell, the KVM is running smooth with fast response and it feels good to see people enjoying playing poker!

Stay tuned!

Link to post
Share on other sites
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy