[RELEASE] UNO Web card game + Built in CMS + Source Binaries Source WebGame 

Skilled Illusionist
Joined
Feb 6, 2022
Messages
331
Reaction score
406
1783361772111 - [RELEASE] UNO Web card game + Built in CMS + Source - RaGEZONE Forums

​
I Present you an UNO web game clone! Now, this game is one of my personal ongoing projects, based on an already existing uno webgame, i developed further the game itself. I want to share with you because soon there will be a federation networking version so everyone WILL be able to connect to their master servers to others,(like in an invitation based chat system; its just for uno servers XD :P ) and by that making an endless network. (its a soon to be added feature - comes with an update to the networking also. BUT NOT YET its under programming in this moment too)

As i said, this is my personal project and i am working on it manually, and with one of my close friend; and Claude/Gemini AI also. Its a mixed project, not explicitly AI written, but i am using it actively - AI Architecting also. I am not finished with this yet. It might not seem much but it has about 3 month background work in this already... a relatively good game if you get a hang of it, and who does not know/like the UNO card game? :D​


I must point out this game is under active development, and needs some bugfixing,
but it works well, MORE features are on their way. It HAS bugs, so don't expect 100%
bugfree experience, but it works mostly good. Expect bugs at: Nextgen game mode,
chat and invitation systems, and maybe some achievements - not much but few -
arent implemented yet correctly.
​


GOOD TO KNOW: - NO ITS NOT MOBILE COMPATIBLE(works on most models, especially on brave, but not designed in this spirit, YET....)

Features- deviating from the base project(AKA my additions):

- Bugfixes,(a LOT softlocks and such, Regarding softlocks: COULD happen sometime. yes. But i am working on it. its MOSTLY bugfree.)
- Custom login system (sqlite and token)
- Sounds
- Custom game rules
- AI bots in 3 difficulty
- A Relatively simple Forum system
- Social System (chat, friends, invitations)
- Redesigned UI - sidepanel menus
- Added a turn order panel.
- Effects for events.
- Avatar, BIO and profile system like animated avatar frames and backgrounds for both game and profiles.
- Local storage settings store
- Achievement system
- Level progression
- Daily/Weekly random Chalanges
- Customizable store, with Gold as the money, achievable thru winning challanges, games, achievements(not all, certain)
- Sound effects, announcer speech, Music(New Retrowave Royality free music)
- Added custom animated avatars, backgrounds and such
- New Gamemodes, mutators and cards, and rules
- Chat system (Global, Ingame, PM with others)
- Player Finder-inspector.
- Admin panel for various things.
- Multilanguage, on 25 Languages!(LANGUAGES EXEPT ENGLISH AND HUNGARIAN ARE AUTO-TRANSLATED SO THEY WILL HAVE TO BE CORRECTED!! I DONT SPEAK THAT MANY LANGUAGE XD, Added languages are welcome if there is one missing and someone want to add it!) Some expressions is deviate from the normal uno!
- Offline, portable, independent from ANY third party servers.
- Self-hostable an lightweight-ish... Includes the node+modules for that to just extract and play (you might need vcredist and such though but the stuff itself arent need install...)
- Browser based.
- 5 player max multiplayer including AI bots.(you can mix them with players, yes.)

This base of the project is a webuno game written by a very good programmer, and i took the idea, bugfixed it and developed further...



The technologies are used for creating and altering:

FrontendVue 2 (Options API), GSAP 3, Socket.IO client
BackendNode.js, Express, Socket.IO
DatabaseSQLite via better-sqlite3
BuildWebpack via Vue CLI
Image processingsharp (avatar resizing)
AudioHowler.js


I STRONGLY RECOMMEND YOU TO USE A COMMONLY USED MODERN BROWSER
LIKE CHROME,BRAVE, FIREFOX, OR OTHER CHROMIUM CEF BASED STUFF!
Its a freely usable software. Opensource. Mostly MIT licensed.



INSTALLATION:
1. Clone this repo with git: to a not too-complicated folder structure like C:\ or any other not too deep place in your storage, edit config.json for the admin panel password.
2. Run Build.Bat
3. Run Start.bat
4. Register your first account
5. Open your browser: (or your IP copy from the console)
6. Register, Login, Play, ect... read the manual if you are unfamiliar with this game IRL.
7. You can play with others either from the channel browser in the main menu, or add your friends, and invite them. Others need to use your server's IP/Domain adress to connect the same way!
8. You can play solo perfectly also.

Admin interface is here: (or your IP copy from the console)

NOTE: THE GAME MIGHT BE UNBALANCED AND NOT ENTRELY FIXED FOR PRODUCTION USE!
NEXTGEN GAMEMODE IS NEW, SO IT HAS SOME PROBLEMS! (BALANCE, GAMEPLAY,
AND FUNCTIONS AND **** SUCH) IF YOU WANT RELATIVELY BUGFREE EXPERIENCE, PLAY
ORIGINAL RULES+STACKING ENABLED. NO, THERE ARE NO HTTPS PROTOCOL CURRENTLY
IMPLEMENTED, ONLY HTTP! (you can always use Nginx.)


Screenshots:

1783361485664 - [RELEASE] UNO Web card game + Built in CMS + Source - RaGEZONE Forums
1783361641071 - [RELEASE] UNO Web card game + Built in CMS + Source - RaGEZONE Forums
1783361654079 - [RELEASE] UNO Web card game + Built in CMS + Source - RaGEZONE Forums
1783361867745 - [RELEASE] UNO Web card game + Built in CMS + Source - RaGEZONE Forums


BUGS: ABSOLUTELY!

Some manual instructions and good-to know's:

- DONT FORGET TO PRESS UNO AT 1 CARD OR SUFFER! XD
- BATTLE ROYALE GAME MODE NEEDS AT LEAST 3 PLAYERS! BUT YOU CAN ADD BOTS!
- YOU CANNOT USE OFFICIAL HARDCORE MODE WITH BR, ITS INCOMPATIBLE!
- NEXTGEN GAME MODE POINT IS THER OPPOSITE OF THE UNO GAME: POINT IS TO MAKE OTHER PLAYERS TO PICKUP THAT MUCH CARD THAT THEY DROP OUT FROM THE GAME - REQUIRES OVER 40 IN HAND! LAST STANDING WINS, 3 PLAYERS RANKED!

- Admin pass is in config.js
- You can change the hosting port, open server.js, and find for line 76: const PORT = config.port || 80;
Change 80 to whatever you want.
- In the admin you can alter the store items, prices, multipliers, news, forums, sessions, ect...
- If you copy your own mp3 into the public\snd\music the server upon restart will index it and it can be selected during ingame./menus However it does not handle well variable bitrates. Use fixed bitrates.
- You can add remove avatars and store items in: src\store\ but YOU NEED TO ADD THE ITEMS IN THE ADMIN TOO!!
- Some gamemodes conflicting with others. These changes will grayed out dependin on what gamemode you select.
- Language files can be found: src/lang you can add more in index.js right there.
- Some store items - especialy text effects - are not all finished yet, some of those are bugged!! They do tend to work, but causes color anomalies in profiles.
- Titles from store has not properly CSS'ed yet. So they are misaligned.
- READ THE MANUAL ESPECIALLY THE PART OF THE NEXTGEN GAMEMODE AND FOR STACKING MOD!!!

EVERY ALTERATION IN THE CODE/ASSETS REQUIRES YOU TO RUN THE BUILD.BAT TO MAKE THOSE IN EFFECT!!!

Have fun!

Update:

------------------------
Small quick hot fix on git side:
------------------------
- I added a default database since the store items arent generating automaticly, so if you checkout the git now, it will have a populated store. If you sync now you might need to re-register if you already tried the script...
- Also cause of the previous thing, there are 3 Test accounts but you can ignore them - sadly caused by a bug it cannot been deleted, but you can edit them in the admin panel(name, pass,, stats, rank, - ranks are mostly for the forums. In the main game there are not admins currently.). It will be fixed in some next updates i mean - the admin user deletion.... Until then it is as it is...
 
Last edited:
Added a little bit of an update:
- Some sound and graphical bugfixes.
- Admin User deletion error fixed, you can delete the test users now.
- Layed down the foundation of the federated server network base.
ITS A NOT ENTIRELY WORKING FEATURE! I DONT RECOMMEND TO USE IT YET!
Its on admin interface's Federation tab. Its function-ish...At current state the
handshake happens and the key generation AFAIK, not tested yet.

Federation would work like this (when it will be finished) :
1.-"A" Server owner adds "B" server's domain: Port in admin interface.
2.-"B" Server owner adds "A" server's domain: Port in admin interface.
3.-The sync should commence. If everything is okay, they can use mutualy the channels, users can see each other on the servers ect...
The sync only commences if: - Both server's hash value is the same - no tampering - and they are on the Same version EXACTLY - Open ports on both end.

The base premisses are that if there is a C and D server, they can act as relays between servers and users, so even if A does not add C or D server, but B added C and D and B is with A mutually, and they handshaked, even A players should be able to play with D or C server players, and so on... so it would be a SEMI-MESH p2p system XD No master server, no centralisation, just playing together in a network. And everyone able to do private network, even own mesh network, or connect to an existing one.

WHEN IT WILL BE FINISHED!

admins will be able to chat in admin interface to server2server to discuss stuff :D
 
Last edited:
Hi, I'm using port 80 but my question is how can I get my friends to join up? I gave them the ip it doesn't open the web for them. Just wondering what can I do from here?
 
You need to open port 80(TCP) in your router, and enable on your firewall/antivir.... OCF. If your friend can open this on his browser you are good to go, if not, then the problem is on your network's end. On lan it should work on local IP adress, then you need to let thru port 80 in your windows firewall or any type of firewall/antivir you use... over ISP/WAN you need to forward the port 80 too to your LAN IP if you are not on same lan or vpn.

On how to open ports on the router check your router manual i cannot help with that, every router a bit different.

You need to forward/open port 80 to the IP the server will run. if this is your machine then it is yours, if some other server on your lan, then there.

After the port forward, If your friend is from over WAN/Internet you need to be on the same vpn or you should have a domain name or your friend has to use your public WAN ip - the uno cannot determine that, - you need to obtain it like thru whatismyip erbste or such online... but you still need forwarding/port opening. But for that irecommend to use Nginx with https in that case... you can google that if you want.
 
Last edited:
You need to open port 80(TCP) in your router, and enable on your firewall/antivir.... OCF. If your friend can open this on his browser you are good to go, if not, then the problem is on your network's end. On lan it should work on local IP adress, then you need to let thru port 80 in your windows firewall or any type of firewall/antivir you use... over ISP/WAN you need to forward the port 80 too to your LAN IP if you are not on same lan or vpn.

On how to open ports on the router check your router manual i cannot help with that, every router a bit different.

You need to forward/open port 80 to the IP the server will run. if this is your machine then it is yours, if some other server on your lan, then there.

After the port forward, If your friend is from over WAN/Internet you need to be on the same vpn or you should have a domain name or your friend has to use your public WAN ip - the uno cannot determine that, - you need to obtain it like thru whatismyip erbste or such online... but you still need forwarding/port opening. But for that irecommend to use Nginx with https in that case... you can google that if you want.
Yes, my Lan is working. Everything is port forward and open port. Do i need to put my wan ip in the files somewhere?
 
Last edited:
No you wont need to, it binds on every interface by default... and i cannot help you further i wont solve your local network errors, this script has been tested on multiple occasions in multiple systems (WAN and LAN/VPN alike without any issues) so since god knows what is your network's problem... i cant help you - we are testing it outside lan too without any issue... So sorry that was my idea what i wrote above. All you need is an open 80 port(or any other port that you can edit in server.js)... if you cannot do it, idk why not... We even tested it with Nginx also... i can recommend that to try -AKA: reverse proxy, and it works, so 🤷 you could try that too.

Found 2 new bugs GONNA be fixed soon:
- The Nextgen Rotate Card animations are too slow.
- After every Nextgen round the weeky/daily matches breaks and not counting anymore...

Soon these gonna be fixed!
 
Last edited:
Update, you can grab by checking out from github!

Changelog in 2.0.6:

Bugfixes:
- Fixed: some missing/not completing daily challanges and achievements
- Fixed: Achievements/challanges are counting in Nextgen from now on too - not all but most.
- Fixed: Target 1, 2, if you play these cards last, you will win the game as you should
- Fixed: Punishment + cards ending+stacking game bug, when if it was in stacking and you ran out of cards - aka: won the game - the stacked cards just disappaered.
- Fixed: Nextgen Rotate cards were too slow at passing to the next players.
- Fixed: A Staggering animation at game start when there is 5 AI.
- Fixed: Round end achievement-challanges braking bug.
- Fixed: Some missing translations - Not validated, in theory, those are fixed

Changes:
- New image for trade-hands nextgen card, - > it looks more understandable.

New features:
- Added a new houserule that you can turn on: You can play the same colored+numbered cards at once if you are enable this rule, it means if you have tha same cards at the same time, for example you have: 2x Blue 8, you can play at once. This needs double deck, or Nextgen game mode to be able to activate it. Its toggleable at channel creation/hosting screen
- Added federation's other half.(So in theory the federation script is complete and SHOULD work) BUT : BE WARNED ITS *STILL* NOT TESTED YET AT ALL!! But its in the code as it should,but still not recommended to use it yet!!

And as always: As i fixed bugs, there may others be appearing to their places. Be prepared :D XD

Hotfix Update:
- Added logging functions to all levels to the project,
- Fixed: global chat was not working.
 
Last edited:
Nice update. I have download nginx but i'm not expert in html or etc. I wish you can have a short video tutorial how to set it in nginx (if you have time) :)
 
Nice update. I have download nginx but i'm not expert in html or etc. I wish you can have a short video tutorial how to set it in nginx (if you have time) :)
Well... no. Sorry. You have however all kind of possibilities:
- Google
- Manual for Nginx on their site,
- Lot of AI that can help you with it.(Like: Gemini, GPT, Claude...)

Its a standard program. For example ai will even create you a standard config file and such if you ask and tell you the details. You might need to look around. You'll still need to open ports for it. Dont take it personally, but I cannot and won't help standard network problems for random people for the internet... :\Sorry. I would do that all day if i would begin to do it... XD
 
Last edited:
Back