This release brings a lot of basic placeholders for the various APIs, fixes quite a few glitches and technologically, switches to the superior AeroMessages library, for all the UDP communication.
Usage
Note: If you want to play around with the configuration, see the Development section below
- Install Firefall via Steam
- Edit the
firefall.ini
located insteamapps\common\Firefall
- Add content from below
- Download the latest PIN release
- Make a backup copy of the original
FirefallClient.exe
inFirefall\system\bin
- Replace the
FirefallClient.exe
with the patchedFirefallClient.exe
from the PIN release - Make sure the .NET 6 Runtime is installed
- Trust self-signed development certificates by running
dotnet dev-certs https --trust
- Start all three applications:
- GameServer
- MatrixServer
- WebHostManager
- Start Firefall
- Login to the server:
- If Steam auto login has been enabled, you will directly be navigated to the character selection screen
- Otherwise, leave the login fields blank or enter anything you want and click "Login"
- Load into the game by pressing the "Enter World" button
firefall.ini
[Config]
OperatorHost = "localhost:4400"
[FilePaths]
AssetStreamPath = "http://localhost:4401/AssetStream/%ENVMNEMONIC%-%BUILDNUM%/"
VTRemotePath = "http://localhost:4401/vtex/%ENVMNEMONIC%-%BUILDNUM%/static.vtex"
[UI]
PlayIntroMovie = false
Changelog
Added
- Add support for calling down a LGV
- Add documentation to explain the architecture
- Use Autofac for dependency injection in UdpHosts
- Add basic endpoint for character creation handling
- Add or extend the API endpoints
- api/v2/accounts/current/status
- api/v2/accounts/character_slots
- api/v3/characters/{character_id}/garage_slots
- api/v3/ui_actions
- api/v1/characters/{character_id}/data
- api/v3/characters/{character_id}/inventories/bag
- api/v3/characters/{character_id}/inventories/gear/items
- api/v1/zones/queue_ids
- api/v2/zone_settings
- api/v1/item_display_attributes
- api/v1/market_categories
- api/v1/characters/validate_name
- api/v3/characters/{characterId}/titles
- api/v3/characters/{characterId}/garage_slots/{frameId}/perks
- ...and more
- Use AeroMessages as submodule instead of a binary reference
- Use range indexer
- Modernize code base with support from Rider auto format and clean up
- Handling of the Steam user id. Currently, it is only held internally and not persisted.
- Basic GitHub Action to ensure continuous integration
- Individual .bat files for each game service pointing directly to the respective
bin\debug
folder. - Configuration for the game server. You can edit the
App.config
file in theGameServer
project root for local settings and add working defaults inApp.Default.config
.
App.config
will be generated fromApp.Default.config
if not present before build.
Currently, the only option present is the Serilog log level. - CLI options parsing. Currently, the only option is the log level. Specifying wrong options will not stop the server from starting.
- 404 handling to the web server pipeline which prints the contents of 404-producing requests as warnings to see what's missing.
- ClientEventController with a corresponding endpoint to receive the events from the client. Currently, only the client uptime seems to be posted on exit of the game
Changed
- Jets rendering correctly
- Use AeroMessages for nearly all packets
- Clean up some of the code flow, for easier understanding
- Use long speaking names for variables
- Started transition to AeroMessages, this is an incremental process
- Replace SharedAssemblyInfo with a targets file
- Update to .NET 6
- Changed 'missing MSGid' logging to include the details (1st message) in log level warning instead of verbose
- Update documentation regarding the usage of web hosts
- Turn Firefall specific location finder to a common location provider
Fixed
- Fix IndexOutOfRangeException being thrown by the Matrix server
- Fix string deserialization and corrected Matrix Login packet