A toy implementation of the FusionFall Packet Protocol in Go
Go to file
unknown 8f00a0c492 movement.go: added support for basic movement packets
you should be able to view other players and jump around together,
although while testing locally one of the clients would always trigger
the "Some irregularities have been found with your connection to the
server, so your game will be closed" speed check for some reason ???

really not sure, might just be my machine

chunking uhhh works ? kind of, not tested for more than a few seconds
before one of the clients disconnects
2023-06-25 04:27:42 -05:00
cmd Switched to redis/postgres, major refactoring 2023-06-22 01:53:38 -05:00
config god forgive me for this commit 2023-06-25 01:51:21 -05:00
core movement.go: added support for basic movement packets 2023-06-25 04:27:42 -05:00
login god forgive me for this commit 2023-06-25 01:51:21 -05:00
shard movement.go: added support for basic movement packets 2023-06-25 04:27:42 -05:00
tools refactoring; moved client to protocol package 2023-03-07 17:04:57 -06:00
.gitignore removed test.db 2023-03-09 15:33:39 -06:00
build.sh Switched to redis/postgres, major refactoring 2023-06-22 01:53:38 -05:00
compose.yaml split redis.go 2023-06-22 18:05:02 -05:00
Dockerfile dockerfile: switch to scratch 2023-06-20 18:33:29 -05:00
go.mod Switched to redis/postgres, major refactoring 2023-06-22 01:53:38 -05:00
go.sum Switched to redis/postgres, major refactoring 2023-06-22 01:53:38 -05:00
README.md started docker image 2023-06-20 02:12:15 -05:00

gopenfusion

A toy implementation of the Fusionfall Packet Protocol written in Go.

Landwalker demo

An implementation of a landwalker server is located in login/ && shard/. This includes a functional login server and a dummy shard (supporting the minimum amount of packets necessary). The DB implementation in core/db/ matches the OpenFusion 1.4 SQLite tables, which the login server uses. There's no support for NPCs nor other players, and is liable to softlock the client.

Startup the environment using

$ chmod +x ./build.sh && ./build.sh
$ docker compose up

login server is hosted at 127.0.0.1:23000, just join from your favorite client

Generating structures

Dump and decompile the Assembly - CSharp.dll assembly from the fusionfall main.unity3d, using a tool like ilspycmd. The full output source can then be passed to genstructs.py script located in tools/, which will handle scraping constants and calculating structure padding. See the script for details on usage.