Open source reimplementation of GTA San Andreas game engine in Unity
fix quick state/animation switching of ped - prevents flickering
new ped AI behavior:
upgrade Unity to 2020.3.26
huge performance and memory optimization for dedicated servers: rendering meshes for world objects are not loaded anymore, therefore not using CPU for mesh conversion and not using memory to store those meshes
use navigation mesh to move NPCs
upgrade Mirror to v66.0.0 - this brings many performance improvements regarding networking
improve network synchronization of peds, vehicles, and other objects
destroy player's vehicles when he disconnects
add "paintjob" command which changes color of current vehicle
support changing vehicle's color after vehicle is created, on clients
assign LastTimeWhenDamaged
on clients - peds' healthbar is now visible on clients
disable labels: current ped state & velocity
fix quick state/animation switching of ped - prevents flickering
apply initial velocity to destroyed vehicle parts
ped AI: ignore Emergency nodes unless they are the only ones connected
peds react to nearby gun shots
implement Surrender ped state
peds react to being under aim of other peds
implement Panic ped state
when escaping, peds do not sprint, but run in panic
add ability to play sound from ped mouth
play screaming sound while panicing
add NavMesh generator tool in Editor
add menu tool in Editor which can enable infinite draw distance
add AssetExporter tool in Editor which can export game assets into Unity project
add EditorLoader tool in Editor which can load game data in edit-mode
add Editor window which can draw in-game windows inside of it
add some menu tools in Editor to work with world objects
upgrade Unity to 2020.3.26
paths can be calculated between nodes, in background thread
map window calculates a path to waypoint, with 3 types of path
water colliders can be generated
add menu tools in Editor for working with water
interior waters are offsetted to higher Y position
add setting to control if rendering meshes are loaded
huge performance and memory optimization for dedicated servers: rendering meshes for world objects are not loaded anymore, therefore not using CPU for mesh conversion and not using memory to store those meshes
water faces with 3 vertices are supported
use navigation mesh to move NPCs
create MovementAgent script to control Ped based on input from NavMeshAgent
add script for generating nav mesh from command line
prefer Vulkan over OpenGL on Linux
if path to game is not set, and we are running in headless mode, exception will be thrown during loading process
add navmesh to the project as part of a submodule
upgrade Mirror to v66.0.0
add NetworkDiscovery as a submodule
fix for arm rotating in wrong direction when holding a single-arm weapon
fix for spawning "yellow chicken" model for every ped, on clients
improve ragdoll network sync
when player disconnects, destroy peds spawned by him
players can be server admins ; add command to authenticate player
rework Stats: they can output to StringBuilder and also use imGUI
add "stats" command which shows stats
don't modify chat messages that are sent from server - messages are sent as they are
add "cmd_server" command which can run a command as server
add "say" command which sends a chat message
use snapshot interpolation for network syncing of transform of peds, vehicles, vehicle's detached parts
increase interval for detecting dead connections to 20 seconds (was 6)
change ping sending frequency to 0.5 seconds (was 2)
change ped & vehicle sync rate to 30 (was 20)
change vehicle's rigid body interpolation mode on server to Interpolate (was None)
fix problems with floating-point numbers precision when game uptime is high (eg. 1 month)
change ped's input upload rate to 60 (was 30)
peds (NPCs)
new world loading system
day-time system
lights
night colors
added player names
implemented infinite water (water around the map)
new world loading system
day-time system
lights
night colors
remove OutOfRangeDestroyer from vehicle, and destroy vehicle if it falls below the map
don't save setting if it's equal to default value and it's not saved already
changed angle of Sun around Y axis
if there is only 1 player, always spawn him on the same place - no randomization
merged water meshes into one
don't load water in headless mode
added player names
implemented infinite water (water around the map)
imported paths
peds (NPCs)
added "enemy" command which spawns ped with a weapon who attacks the invoker of command
peds are spawned right above the ground, so they are not falling after being spawned
smoothed out drive-by animation changing, and exiting from drive-by state
healthbar above peds is only shown for small time interval after ped is damaged
removed anim group file paths from config file - this also fixed bug with il2cpp
change Android target to Android 9 - fixes problem with permissions
master server implemented (#100, #102)
ragdoll implemented (#103, #34)
improve vehicle network synchronization
fix FPS drop on Android when player is close to a vehicle
add support for plugins/game modes
run commands from chat messages
implement a simple deathmatch game mode
send chat on Enter
add setting for global sound volume
add setting for radio volume
font loaded (#101, #78)
master server implemented (#100, #102)
ragdoll implemented (#103, #34)
config is loaded in ConfigManager.Awake()
fix bug when world could not be loaded with some system languages (#39)
more error-prone asset loading - will make the game work better with mods (unsupported archive version, duplicate archive entries, bad lines in weapon data, arrow textures, cursor texture, duplicates in car colors, support extended PedestrianType, duplicate object definitions, not found item files)
add config option to skip minimap load
load all IMG archives that are found in game directory
set default FPS on mobile to 30
disable Start button while server is active
improve vehicle network synchronization
set default physics update rate to 60
improve network synchronization for vehicle leftover parts
set collision detection mode of vehicle leftover parts to ContinuousDynamic - seems that they no longer can pass through ground ; change sync interval to 15/s
set vehicle's rigid body CollisionDetectionMode to ContinuousDynamic
add support for short names in top panel of file browser ; add some common folders on Windows
fix FPS drop on Android when player is close to a vehicle
set vehicle lights' intensity to 0 by default
fix for wrong position of detached vehicle parts
add support for plugins/game modes
add Ped.onDamaged event
add SyncedBag to Player
add info about attacking player to DamageInfo
implement SyncedServerData - it's used to sync global data from server
display player stats dynamically based on data from server
add SpawnHandler - spawn positions can be overridden
implement command processing ; add some basic commands
add chat preprocessing
trim chat messages
run commands from chat messages
add rate-limit to commands
adapt all scripts to command system - stop using PlayerRequests
players can specify model id for their ped or stalker
unsupported vehicles will not cause spamming error messages - they are destroyed
exit drive-by state if ped doesn't have gun weapon
don't display inflicted damage for the same player
exit aim & fire states if ped is not holding a weapon
make "Internet" the default tab in JoinGame window ; automatically refresh master-server when JoinGame window is opened
increase rocket speed
remove new line & tab characters from chat messages
don't update chat UI in headless mode
improve chat UI
improve chat text escaping - markup tags are now visible in a chat message
chat is visible when local ped is dead
console subscribes to log event before any other script executes
game modes can be selected ; selected game modes are activated when server starts ; allow selection of game mode via command line
implement a simple deathmatch game mode
inflict damage to ped based on part of body that was hit (#46)
weapons are raycasting against vehicle's high detail mesh - peds can be damaged while being in vehicle (#85)
vehicles can be damaged and destroyed (#49)
vehicles can explode - during explosion, vehicles parts are detached, physics force is applied to all nearby objects, VFX is displayed, explosion sound is played, and all nearby objects are damaged
when vehicle's health reduces to certain level, smoke/flame is emitted from vehicle (#49)
implement rocket launchers (#98)
ped characters now have ragdoll colliders (#46)
inflict damage to ped based on part of body that was hit (#46)
implement on-screen messages (#72)
display inflicted damage as on-screen message
weapons are raycasting against vehicle's high detail mesh - peds can be damaged while being in vehicle (#85)
peds can not damage other peds in the same vehicle (during drive-by)
change camera aim offset
fix for bug when peds could spawn at the same position
use random rotation when spawning players' peds
fix for a bug when ped always spawned at initial teleport position, because ray was hitting ragdoll colliders
vehicles can be damaged and destroyed (#49)
vehicles can explode - during explosion, vehicles parts are detached, physics force is applied to all nearby objects, VFX is displayed, explosion sound is played, and all nearby objects are damaged
when vehicle's health reduces to certain level, smoke/flame is emitted from vehicle (#49)
put all Unity Standard Assets into a submodule
ped damage handling is done by State classes
ped can not be damaged by explosion while he is in vehicle
vehicle's health is synced
vehicle's detached parts are synced
explosion is synced
color of vehicle's detached parts is synced
remove Light component from explosions - it looked ugly on Fantastic quality level
implement rocket launchers (#98)
change default quality level on Standalone platform to Fantastic
add setting for vehicle's detached part lifetime
vehicle's doors are closed
Texture data is no longer kept in memory. It's released after the texture is loaded. This will greatly reduce the amount of memory the application uses. (#42)
Big peformance and memory optimizations for model loading. (#59)
Radio stations implemented. (#69, #29)
Implemented network discovery - the game can now automatically find servers on LAN and connect to them. (#38)
Chat implemented. (#44)
Interiors are implemented. (#60)
Player can recruit NPC peds to follow him, by aiming at them and pressing G.
Drive-by implemented. (#45)
All GUI in the game (except windows) is re-designed for the new Unity UI system (uGUI). This means it looks better, scales with screen size, is easy to modify, leaves less garbage. (#52)
SanAndreasUnity.Utilities
and SanAndreasUnity.Importing
are separate assemblies.
Texture data is no longer kept in memory. It's released after the texture is loaded. This will greatly reduce the amount of memory the application uses. (#42)
Big peformance and memory optimizations for model loading. (#59)
Changed the way how distance is calculated from division to point.
Improve teleportation of peds.
Ignore culture when saving int and float settings. This should fix the bug related to loading of float settings. (#64, #65)
Settings can now be reset to default values. (#66)
Radio stations implemented. (#69, #29)
Implemented network discovery - the game can now automatically find servers on LAN and connect to them. (#38)
Chat implemented. (#44)
Interiors are implemented. (#60)
Switch to sprint state from aim state if Sprint button is being held.
Player can recruit NPC peds to follow him, by aiming at them and pressing G.
Animations window can display all loaded IFP packages.
Fixed loading animations which have invalid bone ids (some of these anims are drive-by anims and FLAME_fire anim).
Refactor aiming/firing system - ped's state classes now control firing position and direction, not the Weapon class.
Drive-by implemented. (#45)
Don't read input on some places when not allowed (spawning ped with P, spawning vehicle with V, minimap controls).
Don't show flying state label.
Added search box to vehicle spawner window.
FPS display: remove milliseconds from display ; added "Display FPS" setting ; Don't toggle FPS display with F10 ; don't display it by default ; use correct delta time value for measuring (don't apply smoothing) ;
Optimize functions for getting the current zone - they don't allocate memory anymore and are faster.
Various improvements for minimap.
Update controls window text.
Fixed bug when peds were not able to enter any vehicle when there was a vehicle with no seats spawned.
All GUI in the game (except windows) is re-designed for the new Unity UI system (uGUI). This means it looks better, scales with screen size, is easy to modify, leaves less garbage. (#52)
Only toggle map window if it is opened or if reading input is allowed.
Now detecting when ped is assigned to vehicle and removed from vehicle.
Added stats about current vehicle's radio.
Display current radio station name.
First release that includes build for Linux desktop.
remove unused asset packages added by Unity
SFX sounds fully supported (removed file for SFX timings)
don't disable vehicle's rigid body on clients (should result in better vehicle sync)
GXT can be imported (temporarly disabled)
sync aim direction for host's ped (fixes a bug when clients were spammed with errors when host's ped started aiming)
optimized FPSCounter - reduced GC allocations (for 50KB, of total 70KB) ; texture is updated only once per frame ;
all windows are drawn from single OnGUI() function - reduced GC allocations
assign script execution order to all scripts - the game should not behave differently on each build
added support for case-sensitive filesystems - Linux users no longer need to perform any setup - the game works out of the box
Make sure to read instructions before installing on Android.
Changes:
Touch controls implemented - game can run on any touch enabled device
GUI adapted to high density displays
Some improvements for mobile platforms
Multiplayer implemented
2.0