SanAndreasUnity Versions Save

Open source reimplementation of GTA San Andreas game engine in Unity

v4.0

1 year ago

Major changes

  • fix quick state/animation switching of ped - prevents flickering

  • new ped AI behavior:

    • peds can hear nearby gunshots and react to them
    • peds react to being under aim of other peds - they will surrender or attack back
    • run away in panic and scream
  • 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

    • NPCs will now be able to find path to almost any point on the map
  • upgrade Mirror to v66.0.0 - this brings many performance improvements regarding networking

  • improve network synchronization of peds, vehicles, and other objects

Full changelog

  • 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)

    • weapons have normal fire rate now (previously their fire rate was slow (~ 4 bullets per second for AK))
  • change ped's input upload rate to 60 (was 30)

v3.6

2 years ago

Major changes

  • peds (NPCs)

    • peds are now spawned around the map
    • they have AI behaviors: can walk around, be recruited by player (follow and protect him), do drive-by, attack player, run away
  • new world loading system

    • buildings are now properly loaded and displayed based on their draw distance
    • much higher draw distance allowing player to see much larger part of the world
  • day-time system

    • in-game clock with day/night cycle
    • sun changes it's position and intensity based on current time, giving different shadows
    • objects are now correctly displayed based on whether it is day or night (TOBJ objects)
  • lights

    • lights implemented as 2d effects
    • traffic lights implemented
  • night colors

    • objects are drawn with night colors (this gives lighting effect during the night) - this is so called "per-vertex baked lighting"
  • added player names

  • implemented infinite water (water around the map)

Full changelog

  • 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

v3.5

3 years ago

Major changes:

  • 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

Full changelog:

  • 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

v3.4

3 years ago

Major changes:

  • 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)

Full changelog

  • 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

v3.3

4 years ago

Major changes:

  • 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)

Full changelog:

  • 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.

v3.2.1

4 years ago

Changelog:

  • fixed sound loading on Linux

  • audio library is replaced with it's source

v3.2

4 years ago

First release that includes build for Linux desktop.

Changelog:

  • 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

v3.1

4 years ago

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

v3.0

4 years ago

Multiplayer implemented

2.0

5 years ago

2.0