Inspiration
Our team wanted to develop a game together so we decided to pitch together a bunch of ideas and voted for which idea sounded good. The idea that won out was a website that was based on games that uses playing cards, inspired by gambling websites that use card games for betting and leisure. Our team was inspired by how a simple stack of cards could be used to make a myriad of different games and thus we decided to develop one type of card game each for the website and challenge ourselves to make it as close to the actual game as possible, including as many card games as we can.
What it does
A gaming website which features classic playing card games with both single and multiplayer options, chat with friends and compete with each other in leaderboards.
How we built it
The website was built using the PERN stack (PostgreSQL, Express, React, Node). In addition to that we also used socket.io(for multiplayer and chat), cloudinary (to host images), google sign in, recaptcha, redis (to capture online user names) and lastly anime.js (for animations). We mainly searched through github libraries and also watched online tutorials on YouTube to figure out the extra features that were not taught in classroom.
Challenges we ran into
Alif Asyraaf Some challenges I faced is that I felt that it was hard to find online resources for some coding examples. Etc. when making the hearts game I found it quite hard to make the logic of the hearts game as there were not many or per say no online resources that I could actually use for the game logic thus it took me quite awhile to do the game logic. I felt this lead to me not having enough time to implement stuff like socket.io etc. I also felt due to me not having a solid foundation for coding it took me quite awhile to understand certain concepts of coding and thus some minor problems took me way too long to solve. Another challenge I faced was also not knowing where to find decent online help or resources to look too as I think it took me around 2 weeks before I could make a solid base for my game as I was just scrounging through a lot of youtube videos and online tutorials just for none of them to really help me. I also think I had a problem with my time management and should have handled it better as I felt that I could have done a lot more for my backend coding in ades. I do think this thought me a valuable lesson as i believe the next time i will start a coding project I will be able to properly pace myself and be able to also get all the correct online resources
Zijun The challenge I faced was that I did not have a solid foundation of backend web development so I had to rely on help from my teammates to bug fix my apis and endpoints. The game I took (poker) has a very complicated game logic which I am unable to code currently with my current level of coding so I had to compromise and skimped on some parts of the game logic which means the game currently is not like the real game but I’m working towards getting there. The final challenge I faced was that socket.io does not have many reliable tutorials out there relating to multiplayer games using socket.io so I could not figure out how to convert my game into socket.io.
Elijah Throughout the development of this project, I faced various challenges that I had to overcome. One of them was rewriting and adding onto my game code to include socket.io functionality for multiplayer as I had no prior experience with using Socket.io and not much reliable documentation on certain aspects of implementing socket.io in my game. Another challenge was converting my website to React as I had not used React in a long while and had to revise key concepts in order to maintain the standard of my game. I also had bad time management having to focus on other projects as well and had some trouble keeping up progress with the deadline.
Yuhong I initially struggled with time management and planning when working on this project, which is why I frequently find myself rushing to complete my work at the last minute. Throughout this project, I have learned to pace myself and plan ahead of time, and even though I still ended up rushing to finish some features at the last min I still feel that I have improved significantly in managing my time and planning. Another difficulty I face was getting impatient and lazy when reading documentation. I would end up copying and pasting from the documentation and having to repeatedly rewrite the code. My CA2 experience has taught me to read documentation with more patience.
Accomplishments that we're proud of
- Being able to make correct game logic
- Being able to use anime.js
- Having bots in our games!
- Socket.io Multiplayer (in some games)
- Chat and multiplayer-centric features in our platform
What we learned
Our team project structure was actually not very efficient to do. While our website came together in the end, we could probably have made the games a lot more fancy and complicated if we stuck two people into a game instead of everyone taking a game so we could spend more time on nicer things such as animation, better bot system, missions etc. We also learnt that everyone works at a different pace as some people can get the work done earlier than the rest while some people take a longer time to get things working but will get things done at the end.
What's next for Card Games Collection
We will be working to refine our existing games (adding multiplayer for some games, even smarter bots) and also adding more features for our game which are namely daily/weekly missions, daily free spins to get cosmetics in game and lastly editing our game to use the cosmetics used in the daily free spins.
Built With
- animejs
- bcrypt
- bootstrap
- cloudinary
- css
- express.js
- google-auth-library
- heroku
- html
- javascript
- jquery
- netlify
- node.js
- postgresql
- react
- recaptcha
- redis
- socket.io
Log in or sign up for Devpost to join the conversation.