GTA RP Progress Update #1

`impulse

Head Staff
Joined
Apr 26, 2016
Messages
1,429
Nebulae
5,950
It's been a little while since our GTA RP announcement, so here's an update to what we've been doing. Keep in mind that everything you see here is a work in progress! Anything shown could be changed/removed by the time the release date comes. We are aiming to push out update posts a bit more frequently, but whether we come across technical roadblocks or end up working on backend stuff that most people won't see, it all depends on what goes on as we expand the codebase.

Framework

A good chunk of time since the initial announcement post has been taken up by doing "framework" level tasks - mainly the networking and persistence systems needed to make everything tick. No GTA modding platform has a robust solution for networking, so we've made our own from scratch. We've taken inspiration from Unreal Engine 5's actor replication since (at least from our experience) it seems to be the most reliable way of syncing data to relevant players.

To help facilitate this, we've also created our own code generation solution to remove a large amount of boilerplate required when dealing with network messages (type checking, serialization, data validity, etc). Code generation is also used for database persistence as well; we can easily make any type of object "persistent" and save them to the database without needing to write any extra code. There's always room for improvement, but it's been holding up quite well so far and will hopefully continue to do so for the foreseeable future.

As a side note, our GTA RP repo has reached over 2/3rds the amount of commits as our HL2 RP repo that's over 3 years old!

Inventory

Since the framework is now built up enough to support more complex network scenarios like inventories and items, we've made some good progress on our inventory system. We decided to go with a grid-based inventory with a weight limit, with items taking up a single grid cell (as seems to be standard with other GTA servers). Certain items can be combined (rudimentary crafting!) or stacked onto each other. Held cash is just a regular stackable item so we don't have to explicitly account for its existence when saving/loading.

Items and inventories were made to be as flexible as possible - almost every aspect of them can be customized per-instance at runtime, from game-affecting functionality to UI appearance. Multiple inventories can be attached to any object, instead of requiring a special "container" entity that only holds a single inventory and does literally nothing else.



Interaction

Naturally, you're going to want to interact with these objects, so we went with a context-sensitive radial interaction menu. Nearby objects that you can interact with will populate the interaction menu with their options when you press E, instead of having to precisely aim your (non-visible) crosshair at an object. If there's only one interaction option available, you'll be shown a prompt to interact with that nearby object.



Interiors

In addition to custom standard interiors that anyone can walk around in, we've laid down the groundwork for instanced interiors. Instanced interiors are separate from the rest of the game world and its players, and are going to be used fairly often for things like your character's housing. Level loading and teleporting is hidden behind an interstitial loading screen. We plan to have some level of customization for interiors, but that's much farther down the line.



Vehicles

FiveM seems to be notorious for vehicles randomly disappearing, and that's something that we wanted to have figured out as early as possible. We've mitigated most of the jank and now have the server keeping tabs on all vehicles.

Gameplay functionality for vehicles have been separated from their models to allow for more flexibility when it comes to custom vehicle types. You're not constrained to a taxi vehicle in order to drive people around, and conversely we can have the same vehicle model behave differently depending on things like your current job.

Upcoming

We're also starting work on a few other things that we aren't quite ready to show off just yet, but wanted to mention since they're fairly integral to the core gameplay loop. You might see them in a future update.

Jobs
Jobs are little games you can play throughout the world to earn you some $$$$'s. They aren't "occupations" in the traditional RP sense - your character doesn't have any permanently assigned job, which means you can pick up some garbage during the day and moonlight as a drug dealer. Maybe use your garbage job to sneakily move around your product? ;~)

Minigames
Minigames are even littler games that you can play to complete a small task. You'll probably come across a few of these while completing a job. Minigames are meant to replace your standard "please wait for X seconds" when interacting with something.

Phone
The phone is a huge part of the RP experience; a lot of gameplay systems are going to be tied together using the phone. Accepting and interacting with jobs via the phone, calling/messaging players, banking/finance, "social media", etc.

Finance
Characters will obviously have cash on hand to make transactions, but will also be able to have multiple bank accounts whether it's personal, business, or offshore. Alternate currencies will exist for very legal purposes and are definitely 100% traceable.


That wraps up our first progress update for GTA RP. Hope you enjoyed it, and look forward to the next one!


2IIL308mV_EG7HlDK0i92t1fh93a2vxbT0rmbKzxSjrqg2-Gg2cJl7cTdlfXIGE6hB1Bkf3Kgyhrh68RT9EooTKS-rzcSRYBJDXIwXPFrJyLKxklApfg-gg9jWXHN0Y5u9kHGrvR
 

Northgate

:D
HL2 RP Administrator
GTA RP Playtester
Joined
Mar 25, 2018
Messages
1,818
Nebulae
4,889
gmod tower replaced by nebulous tower

i honestly can't wait, this sounds like a dream come true : D
 
Reactions: List

Johnny B. Goode

Objectively Best MGS poster
Joined
Apr 26, 2016
Messages
6,888
Nebulae
23,483
Is starting businesses and the like going to be an easy task? One thing I always wanted to do in GTA:W was set up a proper taxi company, but the process is so long with so much red tape, it put me off it.
 

alex

I do things.
Head Staff
Joined
Apr 26, 2016
Messages
7,243
Nebulae
24,173
Is starting businesses and the like going to be an easy task? One thing I always wanted to do in GTA:W was set up a proper taxi company, but the process is so long with so much red tape, it put me off it.
Maybe it gets handled almost entirely IC, who knows.
 
Reactions: List

jerry

B A N N E D
Joined
Sep 24, 2018
Messages
2,124
Nebulae
5,599
It's been a little while since our GTA RP announcement, so here's an update to what we've been doing. Keep in mind that everything you see here is a work in progress! Anything shown could be changed/removed by the time the release date comes. We are aiming to push out update posts a bit more frequently, but whether we come across technical roadblocks or end up working on backend stuff that most people won't see, it all depends on what goes on as we expand the codebase.

Framework

A good chunk of time since the initial announcement post has been taken up by doing "framework" level tasks - mainly the networking and persistence systems needed to make everything tick. No GTA modding platform has a robust solution for networking, so we've made our own from scratch. We've taken inspiration from Unreal Engine 5's actor replication since (at least from our experience) it seems to be the most reliable way of syncing data to relevant players.

To help facilitate this, we've also created our own code generation solution to remove a large amount of boilerplate required when dealing with network messages (type checking, serialization, data validity, etc). Code generation is also used for database persistence as well; we can easily make any type of object "persistent" and save them to the database without needing to write any extra code. There's always room for improvement, but it's been holding up quite well so far and will hopefully continue to do so for the foreseeable future.

As a side note, our GTA RP repo has reached over 2/3rds the amount of commits as our HL2 RP repo that's over 3 years old!

Inventory

Since the framework is now built up enough to support more complex network scenarios like inventories and items, we've made some good progress on our inventory system. We decided to go with a grid-based inventory with a weight limit, with items taking up a single grid cell (as seems to be standard with other GTA servers). Certain items can be combined (rudimentary crafting!) or stacked onto each other. Held cash is just a regular stackable item so we don't have to explicitly account for its existence when saving/loading.

Items and inventories were made to be as flexible as possible - almost every aspect of them can be customized per-instance at runtime, from game-affecting functionality to UI appearance. Multiple inventories can be attached to any object, instead of requiring a special "container" entity that only holds a single inventory and does literally nothing else.



Interaction

Naturally, you're going to want to interact with these objects, so we went with a context-sensitive radial interaction menu. Nearby objects that you can interact with will populate the interaction menu with their options when you press E, instead of having to precisely aim your (non-visible) crosshair at an object. If there's only one interaction option available, you'll be shown a prompt to interact with that nearby object.



Interiors

In addition to custom standard interiors that anyone can walk around in, we've laid down the groundwork for instanced interiors. Instanced interiors are separate from the rest of the game world and its players, and are going to be used fairly often for things like your character's housing. Level loading and teleporting is hidden behind an interstitial loading screen. We plan to have some level of customization for interiors, but that's much farther down the line.



Vehicles

FiveM seems to be notorious for vehicles randomly disappearing, and that's something that we wanted to have figured out as early as possible. We've mitigated most of the jank and now have the server keeping tabs on all vehicles.

Gameplay functionality for vehicles have been separated from their models to allow for more flexibility when it comes to custom vehicle types. You're not constrained to a taxi vehicle in order to drive people around, and conversely we can have the same vehicle model behave differently depending on things like your current job.

Upcoming

We're also starting work on a few other things that we aren't quite ready to show off just yet, but wanted to mention since they're fairly integral to the core gameplay loop. You might see them in a future update.

Jobs
Jobs are little games you can play throughout the world to earn you some $$$$'s. They aren't "occupations" in the traditional RP sense - your character doesn't have any permanently assigned job, which means you can pick up some garbage during the day and moonlight as a drug dealer. Maybe use your garbage job to sneakily move around your product? ;~)

Minigames
Minigames are even littler games that you can play to complete a small task. You'll probably come across a few of these while completing a job. Minigames are meant to replace your standard "please wait for X seconds" when interacting with something.

Phone
The phone is a huge part of the RP experience; a lot of gameplay systems are going to be tied together using the phone. Accepting and interacting with jobs via the phone, calling/messaging players, banking/finance, "social media", etc.

Finance
Characters will obviously have cash on hand to make transactions, but will also be able to have multiple bank accounts whether it's personal, business, or offshore. Alternate currencies will exist for very legal purposes and are definitely 100% traceable.


That wraps up our first progress update for GTA RP. Hope you enjoyed it, and look forward to the next one!


2IIL308mV_EG7HlDK0i92t1fh93a2vxbT0rmbKzxSjrqg2-Gg2cJl7cTdlfXIGE6hB1Bkf3Kgyhrh68RT9EooTKS-rzcSRYBJDXIwXPFrJyLKxklApfg-gg9jWXHN0Y5u9kHGrvR

:ok: nice
 
Reactions: List