on joining the LuckyV GTA-RP developer team

Disclaimer: I’ve joined for fun and not for profit – this is a new hobby.

For about a year now I was regularly watching some Twitch streamers go along their business and it spawned my curiousity when some of them started to do something they called “GTA V roleplay”.

Grand Theft Auto V (GTA V) is a 2013 action-adventure game developed by Rockstar North and published by Rockstar Games. Set within the fictional state of San Andreas, based on Southern California, the open world design lets players freely roam San Andreas’ open countryside and the fictional city of Los Santos, based on Los Angeles. The game is played from either a third-person or first-person perspective, and its world is navigated on foot and by vehicle.

Wikipedia

So these streamers where mostly using an alternative client application to log into GTA V online servers that where operated by independent teams to play the roles of characters they created themselves.
It started to really get interesting when there is dynamics and interactions happening between those characters and whole stories unfold over the course of days and weeks.

It’s great fun watching and having the opportunity to sometimes see multiple perspectives (by multiple streamers) of the same story and eventually even to be able to interact with the streamers communities.

One such fairly big german server is LuckyV. It’s an alternative GTA V hardcore role-play server creates by players for players.

The hardcore here means: the characters are supposed to act as much as possible like they would in the encountered situations in real life.

So in order to play on this server you have to create a character and the characters background story. You gotta really play that character when on the server.

When you play it’s not just a vanilla GTA V experience. There are lots of features that are specific to the server you are playing on. Some examples are:

  • Communication: you are communicating with people in your vicinity directly – you can hear them if they are close enough to be heard and you can be heard when you are close to people
  • Jobs: there’s lots to be done. Become CEO of your own company and manage it!
  • Social Interaction: there’s probably an event just around the next corner happening. You are able to meet people. Crowds of people even. Remember: There are usually no non-players. Every person you see it a real human who you can interact with.

The LuckyV community made a great overview page where you can watch other people playing and live streaming their journey. It’s extensive – over 200 streamers are online regularly and the screenshot below shows a mid-week day right after lunch…

LuckyV Streamer overview page

Anyhow. This is all great and fun but plot twist: I do not play it. (yet)

So what do I have to do with it except I am watching Streamers? Easy: Behind the game there’s code. Lots of code actually.

In a nutshell there’s a custom-GTA V server implementation that talks to a custom GTA V client. LuckyV is using the altV server and client to expand the functionalities and bring the players into the world.

It allows for 1000 simultaneous players in the same world at a time. So there could be 1000 people right there with you. Actually since LuckyV is about to have it’s first birthday the regular player numbers are peaking at around 450 simultaneous players in Los Santos at a time.

The whole set-up consists of several services all put together:

  • altV server + custom gamemode code (written in C#)
  • web pages for game overlays, in-game UI and administration tools (PHP)
  • a SQL database that holds the item, character etc. data
  • a pub/sub style message hub that enables communication between in-game UI, webpages and the gamemode
  • a TeamSpeak 3 server that allows players to join a common channel (essentially one teamspeak room) and a plug-in called SaltyChat that mutes/unmutes players in the vicinity and allows features like in-game mobile phone etc.
  • everything of the above is in containers and easily deployable anywhere you got enough hardware to run it – when there are 100s of players online the load of the machine grows almost linear – and the machine is doing it’s moneys worth then…

So after the team announced some vacancies through those streamers I watched I contact them and asked if I could help out.

And that’s how I got there working on both the gamemode code as well as helping the infrastructure become more stable and resilient.

For my first real contribution to the gamemode I was asked to implement secondary keys for vehicles as well as apartments/houses.

Up until now only the owner / tenant of the vehicle or apartment had access to it. Since this game is about social interactions it would be a good addition of that owner could hand out additional keys to those they love / interact with.

And that I did. I worked my way through the existing code base – which is a “grown codebase” – and after about 3 days of work it worked!

Most impressive for me is the team and the people I’ve met there. This current team welcomed me warmly and helped me to wrap my head around the patterns in the code. Given the enthusiast / hobby character this has it’s almost frightening how professional and nice everything works out. I mean, we developers had a demo-session with the game design team to show off what our feature does, how it works and to let them try it out to see if it’s like the envisioned it.

They even did a trailer for the feature I worked on! And it is as cheesy as I could only wished:

So far so good: It’s great fun and really rewarding working with all these nice people to bring even more fun and joy to players. Seeing the player numbers grow. Seeing streamers actually use the features and play with it – handing over keys to their partner. Really rewarding.

Like this example:

just at 2hrs 5 Min Ariane Barnes is handing over a key to her loved one.

Leave a Reply

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

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.