Winter Holidays and Server Improvements

For the last 2 weeks I’ve been on the Winter Holiday break from Uni. Which has given me a lot more free time than I would usually have, so I’m not terribly sure why it’s taken a little over a month to sit down and write out what I’ve been up to, but here we go.

Since Mid to Late 2012 I’ve ran a Team Fortress 2 Community, SimplyTF in part where my nickname ‘SimplyJpk’ was created, I currently run a 24/7 HighTower server running a custom Map built from a stock map in Hammer which is quite popular, as well as a ‘Jump’ community called JustJump which was very popular before I started Uni, but with limited free time has dropped a bit in popularity, However, still maintains a strong user base.

The Servers themself run a few Custom made Plugins coded in Sourcepawn, which is a fairly simplistic language but a good spot for side-projects as it is quite flexible. Today I’ll be talking about my Timer plugin I built a couple years ago and how bad I made it, okay, I won’t, as that would likely bore just about anyone including myself. The idea with the timer for those not familiar to ‘Jump’ communities I strongly suggest checking out this video which gives a better all round understanding of what it is I’ll be talking about.

Jumping, put very simply, is getting from Point A to Point B as quickly as possible, a lot of maps have been created which expand upon this and is further complicated by obstacles.

My Timer records when a user starts, when they reach milestones and when they complete the map, storing their time as either a Personal Time (Non-Competitive) or a Time (Competitive), users in the server can see all competitive scores using commands in the server and can see some information such as below.

Information Displayed to User

This had been the main way of displaying information, as SQL feedback from within the game is quite time consuming and cpu intensive if not operated correctly and can lag the game server which is not ideal.

I fixed up a lot of the code within the timer as over the last 2 years I had learnt a lot of techniques from my course which made certain things go ‘wow, I programmed that terrible’, one such mistake was setting up 32 (Max Players) independent timers to run on the server for each player. When I could use 1 system based timer and just store the start and end time and calculate the differences. It’s not rocket science, but when I first made the plugin, I was still learning a lot of the SourceMod API and as such, my early plugins suffered.

With my free time from the Holidays in hand, I decided to make a simple website that the VPS is hosted on to display information to users in a simple way that they could browse around. When a User clicks on a SteamID (64Bit) it will use PHP to fetch SQL data related to only that user.

All Scores of Certain User

Similar PHP _Get calls can be made for MAP and CLASS, an example of map is shown below, but for certain classes isn’t quite polished

Scores By Map

When a User visits the website or goes to the page without PHP lines added, just a plain list of the server is given, currently not very well formatted or shown in any order.

List of all highscores

This still remains a fairly sized side-project, and as it becomes more fleshed out I may include it on my portfolio side-project but for the time being, this timer project has been a project taken up to fill the void of missing plugins for the game. It very much isn’t a public release kind of project, not at its current state. My skills in PHP, SQL and Javascript are fairly limited, and hopefully making something like this will help to improve those skills.

For the time being however, it’s a fun little project that I have a number of regulars on my servers who are happy to test, all-though they just think they’re using tools to help them!

My Lack of Skills

Here is hoping my next post is not a month away,
James.

Leave a Reply

Your email address will not be published. Required fields are marked *