I really liked the old 2002 show but Yugioh seemed to get convoluted now. The original goal was to build a platform to duel except without the intricacies of the modern game and leave it in what I believe to be 'perfect form.' I also may or may not be obsessed with the app game.
What it does
As of submission, the project has a login, register, announcements, slots (minigame), rankings, chat, logout and profile system. The slots give you coins that were meant to be spent to buy cards but I did not get to this, sadly. The chat is based on jquery and mysqli and ajax which allows it to stay relatively updated in response to the site's strain. The entire chat is filtered and sanitized to avoid a user from causing trouble. The rankings order by ELO (rank, like chess) and coins. The login and register both are also safe and stored in a database (PASSWORDS ARE ENCRYPTED!). The announcements come from mysql database which can be seen by the users as soon as they login. The profile system just offers a way for someone to view another's 'stats.'
How I built it
This is the fun part. I spent a majority of the time trying to learn PHP and jquery. I had no exposure to programming apart from my friends talking about how you can make anything if you put your mind to it and this was my result. Essentially I tried to divide the site into frontend and backend with the backend in PHP and pages in PHP that required sessions, would relocate them to a static page for those not logged in. After creating register and login my focus was on making it secure and then focused on the inside of the website. I was able to utilize bootstrap 4 for all of the website so I could focus on making the site function. I used ajax for the slots to make the cards seemingly refresh themselves without having to refresh the entirety of the page. The chat was tough to get running because of array values and the fact that I tried to use $_SESSION['username']; to make the user not have to type their username but eventually I got it to work after lots of help. I didn't want to use large frameworks like Laravel or angular.js, etc., because I tried to learn the content myself so the code may seem unnecessarily bulky.
Challenges I ran into
The chat and slots were probably the hardest thing I've done for it. The chat required me to have a good understanding of how the client and server interact because for the longest time the chat didn't work due to using slimed jquery with php. The slot was more or less trial and error thanks to ajax but eventually got it working and running smoothly. I did have a little trouble setting up the login and register very early on but fixed things there quickly.
Accomplishments that I'm proud of
The chat and slot systems in specific were new areas and proved to be very difficult at first but through trial and error I got it down.
What I learned
What's next for YGO! Genesis
I want to continue this project outside of Jamhacks because I'm really encouraged by it. I want to finish what I had planned and hope to actually publish this site to the public!