Language: PHP // Created On: March 13th, 2015 // URL: https://lfh.cxkes.me/ // Status: Finished (minor fixes here and there)
GTA: Online LFH was inspired by the very successful Destiny LFG site that was created for avid players of Bungie's newest game, Destiny. With Rockstar finally releasing the long awaited Heists mode for GTA: V, there was a new requirement to have 4 player teams. Not everyone has three friends to play with, unfortunately. That's when Destiny LFG came to mind, and I thought: "Why not make one for GTA?" That's how it started. By utilizing the knowledge I had of PHP, and Laravels gracious framework, I was able to throw up GTA: Online LFH in about 4 hours. Of course, some initial development was needed after the initial launch to accompany the needs and wants of the people using it.
A simple bulletin board type website; post your game session details and wait for someone to contact you. Users of this site can easily get in touch with others who're wanting to do the same Heists mission. Not only was it compensating for the somewhat poor matchmaking system in GTA: V, it was helping build better Hiests teams, and was even able to bring some new friends together.
GTA: Online LFH is powered by Laravel 4.2 and a few open source packages. After a listing was submitted, we would save it to our database and display it for other users when they came to visit our site. I suppose I'll mention some of the stuff that goes on in the background with the website.
After a few days of the site running, I noticed that there was a large volume of listings coming in. Quite a lot more that I expected. So, with saving disc space, and keeping the site running fast, I decided to set up a Cron job to remove listings that are older than two hours. This was rather simple to add to the site. Thanks to Laravel's timestamps, it was very easy to compare them to the current time.
LFHBlacklisteris the custom class that I wrote in order to replace the need for
pragmax/firewall. With the custom written class, we're able to blacklist (ban) an IP address from accessing our website, or a specific username from posting a listing. Both of these became something that we needed to have as the amount of shenanigan listings only seems to increase.
This was probably the last addition that I made to this project that was needed. When GTA: V PC launched, Steam users would also be playing Heists now. You can imagine that if finding players on a console would be hard, PC must be even harder. So with
koraktor/steam-condenser, I was able to integrate Steam links directly into the site. When a user submits their username as a PC player, our backend will use this package to return the users
steam64 IDand then associate it with the listing. Using the users
steam64 ID, we were able to make direct links to their Steam profiles, and create a Steam application link. Meaning that clicking the add friend button would open Steam and add the user.