X-fight
- 10 Devlogs
- 100 Total hours
i am building a website for gamers were they can join the tournaments ,host tournament and participate in the match and win prizes
i am building a website for gamers were they can join the tournaments ,host tournament and participate in the match and win prizes
Hi, everybody!
In my previous devlog, I mentioned that this would be my last devlog. But unfortunately, while integrating the features, I faced some unexpected issues related to match results, logic, and friendly match integration.
Most of my time went into completing the pending UI work. After that, I started fixing logical errors related to friendly matches and result uploading.
Most of my existing match logic was designed for tournaments, which have an event ID. But friendly matches don’t belong to any tournament, so they don’t have an event ID.
To solve this, I made the event ID optional in the match room function.
def match_room(request, match_room_id, event_id=None):
I also created separate URL patterns for tournament and friendly matches and used conditional logic to handle them differently.
if not match.friendly_match_room:
# Tournament logic
pass
else:
# Friendly match logic
pass
My website uses JSON to pass match and tournament details. Friendly matches caused errors because they don’t have tournament information.
So, I added conditional logic to set tournament-related values to None for friendly matches.
if not match.friendly_match_room:
tournament_name = match.tournament.name
tournament_id = match.tournament.id
winner_team = match.winner_team
else:
tournament_name = None
tournament_id = None
winner_team = None
I then passed these variables into the JSON response.
I also worked on the loot system for friendly matches. Loot refers to the coins players contribute to the match.
For example, if four players contribute 100 coins each, the total loot pool becomes 400 coins, which the winner receives.
I implemented this logic in the views so that loot is transferred only after a valid match result is determined. If a match is cancelled or ends without a valid result, no coins are transferred.
So these are things I have done in this time period and so next will be last devlog I hope
Devlog-9
Hi everyone in my previous develog, I mentioned that this would probably be my last develog . However, after working on the project for several more hours, there are still a few UI improvements left to complete. So, this is approximately the final develog. The next update will definitely be the last one, as only a few UI changes remain. Almost all the major features and functionality are now completed.
What I Worked On After the Previous Update
In the previous update, I mentioned that I had integrated voice and video calling using ZEGOCLOUD. At that point, the calling functionality was working, but the UI was still based around the initial implementation.
So, this time, I focused mainly on creating and integrating a custom calling UI of x-fight the black, red theme with ZEGOCLOUD.
Revealing The Coin Transfer System
One of the major new features I worked on is the coin system. The first part of this system is coin transfer between Game Mates.
Users can now transfer their points to another game mate. The system includes the required forms, validation, calculations, through Django’s database transaction system.
This ensures that the transfer is handled safely and consistently rather than simply changing the balance directly.
##Coin Transfer History
I also implemented a Coin Transfer History feature.
Users can now see their previous transfers and information such as:
-Who they transferred points to
-How many points were transferred
-The transfer record
-When the transfer happened
This gives users a proper record of their coin activity.
Another feature I integrated is tournament entry fees. Tournament creators can now choose whether a tournament has an entry fee or not.
If a tournament has an entry fee, the required points are deducted when the player or team joins the tournament. The points are then handled as part of the tournament system, and the winner can receive the applicable reward mostly will be coins. Now after this feature only free tournaments issue is solved only as free competitions.
Finally, I have been working on connecting the points system with a new stats (ranking system).
The idea is that players can use their coins to build their stats by buying it. These stats will then contribute to their position on the X-fight leaderboard.
This gives the points system a purpose inside the X-fight ecosystem rather than making them simply numbers displayed on a profile.
These are main feature I have worked in this time period
Devlog 8:
Hey everyone! First of all, I’m sorry. In my last devlog, I said that it would be my final one before shipping the project. But unfortunately, I still had a few features left to complete, so I couldn’t finish everything as planned. So, most probably, the next devlog will be my last one, and after that, I’ll be shipping the project. Let me explain what happened.
In my previous devlog, I mentioned that I was planning to integrate ZeeCloud and add voice and video calling to the chat application. My plan was to include voice calls, video calls, group voice calls, and group video calls. I spent almost 10 hours working on this integration. And honestly, I managed to get everything working. The calling features were functional, but I faced one major issue: I couldn’t properly integrate my own UI with the calling system. I tried different approaches and followed several tutorials, but I still couldn’t get the UI working the way I wanted. So, to be honest, I decided to delete all the code related to the calling features and start fresh. I felt that starting from scratch would be a better option than continuing with an approach that wasn’t working for me. That took up most of my time. With the remaining time, I worked on a few other features.
The main feature I added was file sharing in the chat application. Until now, users couldn’t upload files in the chat. So, I integrated file uploading, and now users can send GIFs, photos, files, and other attachments. I also added an animation for the upload feature to make the experience a little smoother and more interactive. So, that’s pretty much what I’ve worked on this time. I couldn’t finish everything I had planned, but I still managed to make some progress.
Hopefully, the next devlog will actually be the final one, and I’ll finally be shipping the project.
Hi I thought this would be the last devlog of this project I thought this project will be finalized but unfortunately, it didn’t finish.
so, in this time, I planned to do like there are some features which are incomplete like in notification, game scoreboard analyzing model, about page etc.
so these are the changes I made.
so, in this I have made in previous I just created it simply like a panel with message display but now i have added these features
Actually, I have some design works to do so I have done that. some page mainly forms lie team register tournament register, so I have applied themes of the whole site
so next I did was not in my plan list, but when I am testing it I notice a drawback like when a user creates a team, they cannot modify it, so I have added that feature, so these are that features
it just like in normal dashboard displaying No. of tournaments, Mathes and members displaying them
this idea sparkled when I was playing football game so in this they who can schedule meetings give directions through team chat room
this was basically an election for team captain everyone has the right to vote there and who has more vote they will be the team captain instead of manual update .
this a place where the team captian can schedule team meeting and a conference window will be opened they can do a face-to-face video call .so here I need to tell you something here Zee cloud helped like instead of writing a huge code of webrtc,django channel it helps to do integrated video conference through Api and it is very useful when we are starting
a place for team members can chat without creating a chatgroup
next I added some more features in Matchroom these are the features in Matchroom
##more game models
I have added like game model option for other it is a general for all games
this was the old same feature, but I have integrated the Django channels and web sockets
here if every player clicks the ready button the 12 sec countdowns will be starting and after that they cannot press the no ready button and the match duration will be done then they have to end it and upload the photo by the persons from two teams and then we will cross check it and it is matched then the points will be credited otherwise it will be rejected and the match may reconduct it will be based on the tournament admins like if they want to conduct then they can otherwise the match will be abandoned
these are the things I have done I think next will be the last devlog
Hi everybody it’s been a while. I was on break for some days due to my exams.
so up to this time I was mainly focused on the design of the website here in many parts I have completely changed the layout in some places, and I came to a final color theme
these are the main color theme
up to this time in dashboard the sidebar was just for a show it doesn’t work but now I made it functional and these are the options
in chat there is like i implemented a minimal clean look and it also has a sidebar whith these options
in right side I has like normal like chat and when a group invite is sent then in a different style in sender the request will be sent
these are major layout changes in all other I just charge the color theme.
hi everybody i have now completed the chat feature in my website. in this there are three types like group chat, privet chat and announcement chat.
in this group chat it’s like normal chat like here you can make groups with the game mates only I have done making this chat system here the flow is like in the the inter face there is a button called create chatgroup if that we click then it will ask for the name, we should enter the name then the group will be created and after that it will take to the chat interface in that we have button called info were all the group members are listed and who re the admins and the group name there we have button called invite when that clicked then ta popup will be coming and all the game mates will be displayed along with send button when the send button is clicked then a special type message will send I call that as a group invite request and if they press the join then they will be added as a member. the group admin has the access to delete or make a member as admin o remove from admin position and users have option to let the group
in this privet chat if like to chat with the game mates. the workflow is like there will be like in the chat interface all the game mates are listed if we click on them then the chatting interface will be opened where we can chat as normal and there is a button indicate online or not
here it like all the tournament owners can create a chat room to announce the news of their tournaments it will be admin message only chat players cannot send any messages if any doubt is there then a chatroom will also open there, they can ask doubt.
the chat interface like I has designed like in dashboard there will be a button called enter the community like all the chat will be listed only one there. and it has button call return to base camp if that press then it will be returned to the dashboard.
while making this like this is the first time I am working with WebSocket’s and Django channels I got many errors so that time I have mainly used the stack overflow and after I got the base of Django channels the first project to try that is this project the uploaded photo is the chat interface and I am not that good Ui design building I find a similar theme in internet I don’t know this is good anyone has suggestion please put in comments
Develog-4 Up to this time as I said in previous develog that planning to integrate a XP point addition no I have done that. if a player one a game that player now will get a 50XP point. but I am planning like for some team game to split the total xp-points to every team member. After that I moved to make the chatting system here up to this time I have done to create a public chatroom were everyone can join and chat but after the creation of this public chat I will be creating a two-type chatroom one is 1v1 chat and group chat and I am doing this with WebSocket’s and Django channels and I have created a friend request method also were every player dashboard has a notification bar and every players can send a friend request to every other players and instead of this normal name called as friend request I named it as game-mate request and every players can chat with their game mate and they can create groups with their game mate and they can reject the request also and if they try to send request multiple times it won’t work it will directly redirect to dashboard and the player search screen will display with the z index in dashboard and I have temporary added this design tike that chat interface al to make the functionalities
Develog - 3 This week I have mainly worked on creating Ai for the updating scoreboard with just a screen shot of the game scoreboard and up to this time I have added only for e-football and I am planning to add specific for some games and one for general. in this journey I tried mainly to create the AI myself so I researched how to do then I came to the idea of like it extract text from the image and I have used these three text excretion library called Easyocr, Pyteseract and Paddleocr but this I tried but here the main problem I faced is that they just extract the text but some time that will not able to I identify some small text and from that I cannot set who is the winner then I came to an idea to create an LLM using Pytorch with these neural network but when I started to do I faced a problem that my laptop is a office laptop so I cannot make such kind of LLM by my own because this lap cannot handle it. so I decided to use the google ai vision tool so now know from the beginning but I just want to create my own but due to this problems I use google ai vision it good by using a specific model I got 500 request per day(RPD) and now I have integrated that withe frontend like when they upload the scoreboard it will say analyzing the match after the Gemini response and save data in Json file in a format with some extra details like which match came the result came then only it will redirect to the main page and now I need to add the scoreboard, I am planning to add XP-points and some special extraction of score for some specific game
Devlog #2
This week, I worked mainly on improving the tournament flow and adding several new features to make the experience smoother for players. The first thing I completed was the User Dashboard and the Tournament Settings Dashboard. I also redesigned their UI to make them cleaner and easier to use. I then updated the tournament listing page so that it only shows tournaments that the user has not joined yet. This keeps the page organized and avoids showing tournaments that are already in the player’s list. On the User Dashboard, players can now see every tournament they have joined. Clicking on any of them opens the Tournament Dashboard, where they can view all the matches scheduled for that tournament. In the Tournament Dashboard, there is a Scheduled Match button that takes users to the Match Creation page. The match list has also been filtered so that only upcoming and currently active matches are displayed. Each match has an Enter button. When players enter the Match Room, they can see all the members of both teams along with their current status. A Ready button is available for every player. Once a player clicks it, their status changes from Waiting to Ready, allowing everyone to know who is prepared for the match.When every player is marked as Ready, a 15-second countdown starts automatically. During the first few seconds, players can still change their status back to Not Ready if needed. However, once the countdown reaches 7 seconds, the Ready status is locked, preventing anyone from switching back. This helps avoid last-second cancellations and keeps matches starting on time. These changes make the tournament system more organized and improve the overall experience before a match begins.
i am building a website for gamers were they can create or schedule matches and win points and they can conduct tournaments and were they can set the price and sent to the winners it has a leaderboard and the top 3 will be displayed on homepage and they can even talk each other via chat message
up to now i have made tournament registration like ere the users can create a tournament and enter the details such as name ,game, name whether is a teams or solo match tournament and the points and i have also created the team creation were every users can create a team by selecting their team mates ani have most of the time for creating this Ui like searching for a good theme and i have added login and registration were users can Create account and they can upload profile picture