Downhill Dino
Premium
- 11,753
- Maryland
- DownhillDinosaur
I did not see that coming.
It’s all data available when browsing gran-turismo.com’s GT Sport Community Features.
The site is built as a web app, so instead of loading a complete web page from the server, everything is rendered client side (in your browser) with the only requests/reponses to the server being for raw data. When you first load the community section you also download all the metadata, localisation info and logic that presents the data as the UI.
I was curious to see if there was anything interesting in the metadata and noticed an entry for KYOTO DRIVING PARK - SQUARE. Here’s where it’s actually displayed to users:
From there I explored the main Javascript bundle to see how/where the metadata was processed and found some UI helpers that collate it + image URLs (bundled with the JS) which are then passed onto the renderer to be displayed somewhere—in this case, the replay thumbnails.
Here’s an example of the data for the Nürburgring Nordschleife Tourist Layout. The weathers’ type integer corresponds to localisation strings such as Cloudy, Fine Weather, Sunny etc…
Code:{ "code": "b4004dfa9108d7f290f04e6a3ea58891", "country_code": "DE", "country_tag": "77", "tag": "4347", "length": 20832, "weathers": { "1598": { "startTime": "12:00:00", "type": 1, "isDefault": false }, "1599": { "startTime": "20:30:00", "type": 5, "isDefault": false }, "1604": { "startTime": "10:00:00", "type": 3, "isDefault": false }, "1610": { "startTime": "08:00:00", "type": 2, "isDefault": true }, "1611": { "startTime": "19:30:00", "type": 5, "isDefault": false }, "1619": { "startTime": "17:00:00", "type": 2, "isDefault": false }, "1688": { "startTime": "15:00:00", "type": 2, "isDefault": false } }, "code": "b4004dfa9108d7f290f04e6a3ea58891", "name": "Nürburgring Nordschleife Tourist Layout", "imageThumbnail": "/common/dist/gtsport/community/images/ff35f86bde9f667d2d5f647eba1bae52.jpg", "imageThumbnail2x": "/common/dist/gtsport/community/images/25c7bb1e1ba86e8de1397c14b7d073a3.jpg", "imageOriginal": "/common/dist/gtsport/community/images/33ab3fbce86d49c0afdb88f81918a0d5.jpg", "imageOriginal2x": "/common/dist/gtsport/community/images/c6040c9e2ac228f77ef3a28a151f4106.jpg", "logoSmall": "/common/dist/gtsport/community/images/5bedb64eb7da45cff4fc329a30c58a85.png", "logoLarge": "/common/dist/gtsport/community/images/57a78f02719e808510357624be729975.png", "map": "/common/dist/gtsport/community/images/4379af0e6b207ca0fae1b46d0469b5fc.png", "map2x": "/common/dist/gtsport/community/images/55c8c7970b1e19b7c129116ac38cec06.png", "replayThumbnail": "/common/dist/gtsport/community/images/bd3f880d39a1921c75687cea5d0206d5.jpg", "replayOriginal": "/common/dist/gtsport/community/images/6d967eb0f528220b28419cdaae76d929.jpg" }
Some highlights from the metadata:
The existence of GR.2 and GR.A classes
Code:"gt7sp.game.COMMON.CarClassName.Label_GR1":"Gr.1", "gt7sp.game.COMMON.CarClassName.Label_GR2":"GR.2", "gt7sp.game.COMMON.CarClassName.Label_GR3":"Gr.3", "gt7sp.game.COMMON.CarClassName.Label_GR4":"Gr.4", "gt7sp.game.COMMON.CarClassName.Label_GRA":"GR.A", "gt7sp.game.COMMON.CarClassName.Label_GRB":"Gr.B", "gt7sp.game.COMMON.CarClassName.Label_GRN":"GR.N", "gt7sp.game.COMMON.CarClassName.Label_GRX":"Gr.X"
Mission challenge types:
The unfamiliar ones could be ideas that were discarded during development, and should in no way be treated as a guarantee for future inclusion.
Code:"gt7sp.game.COMMON.EventTargetType.CAR_CHASE":"Car Chase", "gt7sp.game.COMMON.EventTargetType.CATCH_UP":"Catch Up", "gt7sp.game.COMMON.EventTargetType.HIGHWAY_STAR":"Highway Star", "gt7sp.game.COMMON.EventTargetType.LAST_NLAP":"Last N Laps Battle", "gt7sp.game.COMMON.EventTargetType.MISSION_RACE":"Mission Race", "gt7sp.game.COMMON.EventTargetType.OBSTACLE":"Obstacle Course", "gt7sp.game.COMMON.EventTargetType.ONELAP_CHALLENGE":"One Lap Challenge", "gt7sp.game.COMMON.EventTargetType.OVERTAKE":"Overtaking Challenge", "gt7sp.game.COMMON.EventTargetType.PYLON":"Cone Challenge", "gt7sp.game.COMMON.EventTargetType.RACE":"Race", "gt7sp.game.COMMON.EventTargetType.SECTOR":"Sector King", "gt7sp.game.COMMON.EventTargetType.SPECIAL_CDT":"Special Condition Race", "gt7sp.game.COMMON.EventTargetType.SPECIAL_RALLY":"Special Rally", "gt7sp.game.COMMON.EventTargetType.SPEED_CHALLENGE":"Speed Challenge", "gt7sp.game.COMMON.EventTargetType.STOP_GO":"Stop and Go", "gt7sp.game.COMMON.EventTargetType.TEAM_BATTLE":"Team Battle", "gt7sp.game.COMMON.EventTargetType.TIME_RALLY":"Time Rally", "gt7sp.game.COMMON.EventTargetType.TOP_SPEED":"Top Speed Challenge", "gt7sp.game.COMMON.EventTargetType.VS_BATTLE":"VS Battle"
There’re also a few legacy entries for features such as COURSE_EDIT, GPS_REPLAY, LICENSE which’ll be carry-overs from previous GTs. Again I can’t stress enough that these are merely fragments of text that’ve likely stuck around throughout GT’s continued development.
Code:"gt7sp.game.COMMON.GameModeName.ARCADE_STYLE_RACE":"Time Rally", "gt7sp.game.COMMON.GameModeName.CIRCUIT_EXPERIENCE":"Circuit Experience", "gt7sp.game.COMMON.GameModeName.COFFEE_BREAK":"Coffee Break", "gt7sp.game.COMMON.GameModeName.COURSE_EDIT":"Test Drive", "gt7sp.game.COMMON.GameModeName.DRIFT_ATTACK":"Drift Trial", "gt7sp.game.COMMON.GameModeName.ETIQUETTE":"Racing Etiquette", "gt7sp.game.COMMON.GameModeName.EVENT_RACE":"Event Race", "gt7sp.game.COMMON.GameModeName.FREE_RUN":"Free Run", "gt7sp.game.COMMON.GameModeName.GPS_REPLAY":"GPS Visualiser", "gt7sp.game.COMMON.GameModeName.GT_LEAGUE":"GT League", "gt7sp.game.COMMON.GameModeName.LAN_PARTY":"Online Battle", "gt7sp.game.COMMON.GameModeName.LICENSE":"Licence", "gt7sp.game.COMMON.GameModeName.MISSION":"Mission Challenge", "gt7sp.game.COMMON.GameModeName.ONLINE_BATTLE":"Quick Match", "gt7sp.game.COMMON.GameModeName.ONLINE_DRIFT_ATTACK":"Online: Drift Trial", "gt7sp.game.COMMON.GameModeName.ONLINE_ROOM":"Lobby", "gt7sp.game.COMMON.GameModeName.ONLINE_SINGLE_RACE":"Online: Single Race", "gt7sp.game.COMMON.GameModeName.ONLINE_TIME_ATTACK":"Online Time Trial", "gt7sp.game.COMMON.GameModeName.PRACTICE":"Practice", "gt7sp.game.COMMON.GameModeName.RACE_EDIT":"Custom Race", "gt7sp.game.COMMON.GameModeName.SCHOOL":"Driving School", "gt7sp.game.COMMON.GameModeName.SINGLE_RACE":"Single Race", "gt7sp.game.COMMON.GameModeName.SPLIT_BATTLE":"2P Split Screen", "gt7sp.game.COMMON.GameModeName.SPORT_CHAMPIONSHIP":"Point Race", "gt7sp.game.COMMON.GameModeName.SPORT_DAILY_RACE":"Daily Race", "gt7sp.game.COMMON.GameModeName.SPORT_DAILY_RACE_PRACTICE":"Daily Race Qualifying Time Trial", "gt7sp.game.COMMON.GameModeName.SPORT_LIVE":"Sport Live", "gt7sp.game.COMMON.GameModeName.SPORT_POINT_RACE_PRACTICE":"Point Race Free Practice", "gt7sp.game.COMMON.GameModeName.TIME_ATTACK":"Time Trial", "gt7sp.game.COMMON.GameModeName.VR_TOUR":"VR Drive"
Some other things:
- The course/manufacturer codes are no longer straight md5 hashes and look to be salted
- The metadata continues the same car database from previous GTs:
- ID 205 "Mazda RX-7 Spirit R Type A (FD) '02" matches the hex equivalent (00CD) from the GT6 memory dump
- There’re working API endpoints for retrieving past Sport Mode results, championship rankings and the daily races. Everything looks ready for a switch to flip them live in the UI.
- Now these are some orphaned brand central images found in the Javascript bundle and have no corresponding metadata unlike the other brands/manufacturers.
- Goodyear
- Italdesign Giugiaro (Vision GT)
- Pininfarina (replaced by Fittipaldi Motors?)
- Pirelli
- Red Bull
- Ayrton Senna
- Shell
****ing hell
Yes I agree, the HUD is often to cluttered.. I would like it to be more customizabledAnybody find out that the game looks prettier when driving without HUD ? the interiors especially but even the tracks all around the car.
Yes and i notice that i'm even driving more faster and risky without constantly looking at the speed meters.Yes I agree, the HUD is often to cluttered.. I would like it to be more customizabled
****ing hell
So uh, GT just posted this........
Me either.The tweets aren't loading for me
Me either.
But do they know da waeGet swifty, the Veyron Glide (Slay), deep fried Supras and now Tide Pods. PD is acquiring the latest meme technology
But do they know da wae
guys, a little reminder.hey guys, please advise best t300rs settings per current patch. thanks in advance.
Design Challenge
i didn't assume anythingy’all need to stop assuming everything that has the GT logo on it is a VGT
Why? It says a small advance, maybe you're right but it's very valid to think about ity’all need to stop assuming everything that has the GT logo on it is a VGT