• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Add-on [XF]Video Game Top-Site: Development Tracker

Andrew

Well-known member
#1
Hi everyone,

I am creating this thread to track the progression of a Top-Site add-on that I am developing. This add-on was originally requested here. I will update this thread often with planned features and development progress. Don't know what a top-site is? Here is an example.

Current Goals and Objectives (in no particular order):
  • Design classes and methods for output (top site style) - In Progress
  • Design classes and methods for server input (adding to db/list)
  • Implement mySQL database - In Progress
  • Integrate GameQ library files - In Progress
  • Code in server list Sorting Options
  • XF plugin coding/implementation research
  • Code server list layout
  • Explore Ajax/JS options for smoother list/submission display
  • Add voting system (for ranking)
  • Add comment system per server
  • Add rating system per server
  • Add trophies
  • Add Advertisement Auctioning system
Below are some of the planned features for server listings/display.

Server Entries will include:
  • Server Banner
  • Server Rating
  • Server Ranking
  • Server Name (title)
  • Server Description
    • Includes normal XF Editor (which supports video's and bbcode, etc)
  • Comment System
  • IP & Port & Online Stats
  • Voting w/ Spam Protection (w/ user permissions, example unregistered voters or usergroup specific voting)
  • Configurable Voting Times (example: 6, 12, or 24 hour intervals etc)
List of Supported Games:
  • Age of Chivalry
  • Alien Swarm
  • America's Army
  • America's Army 3
  • Armed Assault
  • Armed Assault 2
  • Armed Assault 2: Operation Arrowhead
  • Armed Assault 2: DayZ Mod
  • Brink
  • Battlefield 1942
  • Battlefield 2
  • Battlefield 2142
  • Battlefield 3
  • Battlefield Bad Company 2
  • Battlefield Bad Company 2: Vietnam
  • Battlefield Vietnam
  • Call of Duty
  • Call of Duty 2
  • Call of Duty 4
  • Call of Duty: Modern Warfare 3
  • Call of Duty: United Offensive
  • Call of Duty: World at War
  • Counter-Strike 1.6
  • Counter-Strike: Condition Zero
  • Counter-Strike: Source
  • Crysis
  • Crysis 2
  • Crysis Warhead
  • Crysis Wars
  • Day of Defeat
  • Day of Defeat: Source
  • Doom 3
  • Enemy Territory: Quake Wars
  • F.E.A.R.
  • Fortress Forever
  • Garry's Mod
  • Ghost Recon: Advanced Warfighter
  • Ghost Recon: Advanced Warfighter 2
  • Gore
  • Half Life Deathmatch
  • Half Life 2: Deathmatch
  • Homefront
  • Insurgency
  • Killing Floor
  • Left 4 Dead
  • Left 4 Dead 2
  • Medal of Honor: Allied Assault
  • Medal of Honor: Spearhead
  • Medal of Honor Warfighter
  • Minecraft
  • Multi Theft Auto
  • Natural Selection
  • Natural Selection 2
  • Quake 2
  • Quake 3
  • Quake 4
  • Red Orchestra: Ostfront 41-45
  • Red Orchestra 2
  • Return to Castle Wolfenstein
  • San Andreas Multiplayer
  • Soldat
  • Soldier of Fortune 2
  • Team Fortress Classic
  • Team Fortress 2
  • Teeworlds
  • Terraria
  • Tribes 2
  • Unreal Tournament
  • Unreal Tournament 3
  • Unreal Tournament 2004
  • Warsow
  • Wolfenstein Enemy Territory
  • Zombie Master
  • Zombie Panic: Source
Current Development Notes:
10/10/2013:
Today I was able to get the results of a ping, and add them to a database. Then display the results on another file. Next thing to do, is have the script loop through the database and update all servers, instead of just one, like I have it working right now. I'll save this for tomorrow.

10/9/2013:
Today I have been working with the library to grab server results. I am successfully able to ping a server and display them. Step one of the server-top list complete.
http://i.imgur.com/vzWao03.png
The left screen shows my test code for pinging a server and the right screen shows the results. I may not do to many more code screen shots, but this should let you see what I have working so far. There is a LOT more to do, but this proves that the library indeed works :D
Theory:
MCS = Minecraft Server (but can be any type of supported game server)
GQ-Ping = GameQ Library & my pingServer.php file
Cron = Automatic calling of pingServer.php file
DB = Database
Server List = top site version of the list (what the user see's)

To try and save server resources this is what I have come up with. Every X amount of time, we will run a cronjob that will trigger our "pingServer.php" file. This file will communicate with the database and figure out which server needs to be pinged (next). Once the ping is done and the results are back, we update the database with the new server stats (players online etc). Then when a user wants to see those stats, they will invoke a different file (serverList.php) and it will return to them a list of game servers. This seems to be more efficient than letting the user ping game servers directly. If you have a popular website and you have 200 users trying to ping a list of 1,000 servers, that is 200,000 pings. Not cool. If anyone has any additional infomation they would like to add to this, please don't hesitate. But remember to play nice :D



If you have any questions or feature requests, please post them below. Thanks for viewing.
 
Last edited:

intradox

Well-known member
#4
If it comes with enough features I'll be happy to pay as it looks promising! :)

- I would recommend a way to have customfields per game category.

If you run into trouble for querying servers let me know.

eidt:

Also, I would recommend a tab interface like in resource manager.
Overview Tab for server description, etc.
Thread/Comments/Reviews Tab
Embed Tab:
contains bbcode, script tag, image banner, etc. for suers to embed the server across the web.
Stats Tab: show ping, uptime, players online, etc over the past day, week, month, etc.
Gallery Tab?: allows users and server owner to upload images from server. Could allow the server community to share their in-game experiences.
 
Last edited:

Andrew

Well-known member
#6
I'll see what I can do :D

Update:
Today I was able to get the results of a ping, and add them to a database. Then display the results on another file. Next thing to do, is have the script loop through the database and update all servers, instead of just one, like I have working right now. I'll save this for tomorrow.

Going to update original post with this new info.

Cheers!
 

Andrew

Well-known member
#11
I would love to finish this project, but there doesn't seem to be really that much interest in this. If people want this I would be happy to finish it for a fee. :D
 
#12
This is my second day with Xenforo. I have no idea how to put together a plugin for Xenforo. However, I do know PHP and I have good idea how to make the server page. I'm working on such a page right now:



I've got the rough page up and running. Mine only supports querying Source Engine servers (CSS, CSGO, NMRiH, etc). I did not know about the GameQ lib. I will switch now.

One feature I implemented for my page is automatic linking for HTML MOTDs (with the option for manual override). That is, based on the IP and Port of the server, I check for a corresponding HTML page containing the MOTDs (E.g. http://site.com/motd/192.168.0.51.27015.html). If the MOTD page exists, it is linked to the server's MOTD.

Another feature is automatic grouping of servers of the same type with the option of manual override. The page checks the mod each servers is running and groups together servers running the same mod. The mod can be manually specified/overwritten. This is useful for me because I only want to specify the server's IP and port, and nothing more. (This works because I query Source servers only... one protocol)

I'm working on implementing cache for the page so that the servers (or database for that matter) need not be queried every time someone visits the server page.

I'm also working on displaying full servers first (that is servers that have the most players in them).

If/when I learn to make Xenforo plugins, I might make this into a plugin. For right now, I will keep it as a standalone PHP script and run it in Xenforo using something like Kotomi (a generic script bridge).
 
#13
I would love to finish this project, but there doesn't seem to be really that much interest in this. If people want this I would be happy to finish it for a fee. :D
Hey Andrew I would have shown a lot of interest in this if I knew about it! Funny thing is I bet there are 100 and possibly 1000 of people wanting this but for whatever reason nobody seen this? I just found it today searching outside of Xenforo! :eek: