Fallen-Citadel is not a 718 loading 742, It is a custom framework that emulates the 742 revision of Runescape. We are also looking for some more Graphics Designer/developers/Website Developers.
At the current time in our development stage we are still thinking about where we want to take this in the future, Our goal at the moment is to develop two worlds that support cross communication. World 1 will be a eco based server with player influenced grand exchange and world two will be a spawn pvp server, Nothing will be off limits. You can prove yourself and become the PVP champion.
Project: Fallen-Citadel |-| Founded: August 2019 |-| Start: 01/08/2019 |-| Build: 742
Source: Framework Custom wrote by: @Brimhaven
Update Log 1.00
/-/ King Dean |-| Updates /-/
- Started work on the landing page made by King Fox,
- Installed IPB forums - Created all Ranks,
- Setup Discord Server,
- Started work on highscores,
- Developer @Brimhaven, Has started to rewrite the entire server code to ensure we do not have any memory leaks or using useless code.
/-/
Spoiler for Update Log 1.01:
Update Log 1.01
/-/ Brimhaven |-| Updates as of 9/8/2019 /-/
Server Management
[Server Management] - Necessary steps have been performed to maintain a secure and stable server environment
[Server Management] - Started work on server configurations to allow us to setup different game types (PVP, PVE)
[Server Management] - Setup a system that allows us to manage a DEVELOPMENT, TEST and LIVE server efficiently.
Cache
[Cache] - Started working on a custom RS cache library, this will be used to link the cache to the server and allow us to modify the cache as much as we desire (Add custom objects, maps, ect..)
[Cache] - Current cache library features:
The cache library has the ability to read files from the cache, remove files from the cache, and pack files into the cache (Add files to the archive, add an archive to a specific cache index and remove an archive or a file)
XTEA encryption and decryption (in simple terms this means that I am able to load MapData from the cache)
Custom hashing algorithms (This allows me to collect data of a random size and map it onto data of a fixed size)
GZIP, BZIP2 and LZMA compression and decompression (This allows me to decompress/compress cache archives)
Network
[Network] - Setup a basic networking framework using the netty.io - Netty-3.9.0.Final library
[Network] - Built a networking system that allocates a specific host and port to a different 'Network' which allows for multiple servers to be hosted at the same time, this way we will be able to run different game types more efficiently.
[Network] - Started work on a NetworkManager that handles all tasks involving our new networking framework, and performs the necessary actions to link to our server and client.
[Network] - Started working on handling the way the network decodes and encodes information from the client (This means that it will be easier for me to setup packet handling, world login, lobby login, ect..)
/-/ TODO LIST /-/
Cache
[Cache] - Actually link the cache to the server (Should only be a one minute task)
[Cache] - Add another feature that allows for copying specific files from one cache to another (This will allow me to add any form of content from newer RS3 content, ect..)
Network
[Network] - Add more functionality to the basic networking framework
Handle packet encoding and decoding
Handle handshake session (client + server)
Handle update server (I will go into more specifics when it has been released)
Handle login packets
Handle Lobby Login packets
Handle World Login packets
Implement a channel-handler for all incoming connections
Secure the connection so that the server can only be connected by people using our own client
Secure the connection so that the server cannot get flooded or DDOSed
Handle more specific network logic (I will go into more specifics when it has been released)
Spoiler for Update Log 1.02:
/-/ Mod Dan/Brimhaven |-| Updates as of 19/8/2019 /-/
Server Management
[Server Management] - Developed a new LogicEngine to handle multi-threaded tasks
Cache
[Cache] - Temporarily using Dragonkk/Alex's Cache library until I feel comfortable with my own library
Network
[Network] Functionality Checklist
Developed a codec that handles the client's Handshake request
Handle incoming handshake opcode requests
Update Server (This allows the server to communicate with the client, mostly to configure Cache related management)
Game Connection (This allows the server to communicate with the client, to configure what happens after the Update Server process)
Handle incoming World Login opcodes
Handle incoming Lobby Login opcodes
Developed a channel handler that handles all incoming connections
Channel connect - Connect the Player to the Channel
Channel disconnect - Stop all incoming game tasks and Disconnect the Player from the channel securely
Channel security - Checks if any messages received from the Player's clients may be malicious and also checks if the Player is using our specific Client
Developed a decoder model to handle an incoming Login Request
Handle incoming login opcode requests
Lobby Login - The lobby login opcode has been added to the module and handled accordingly
World Login - The world login opcode has been added to the module and handled accordingly
World Reconnect - The world reconnect opcode has been added to the module and handled accordingly
Handle login
Lobby Login
World list
World Login
Load into the world
Map region encoding
Player interface encoding
Window Pane encoding
Packet codec
Developed a packet handler that requests all incoming packets from the client
Default packet - This allows us to handle all incoming packets that aren't currently being used for anything
KeepAlive packet - This allows us to keep the Server->Client connection alive during gameplay
WorldList packet - This allows us to send a world list to the Lobby
Interface Packet - This allows us to display Interfaces on the Player's screen
WindowPane Packet - This allows us to display a WindowPane on the Player's screen
Config Packet - This allows us to configure information and send it to the client for processing
MapRegion packet - This allows us to deploy the Map region based on the Player's current location
PlayerUpdate packet - This allows us to display Character appearances
Player
[Player] - Deploy the Player to the World after login
[Player] - Send default Player configurations
Send Window pane based on client options (Resizable/Fixed Screen)
Send default Player Interface (Inventory interface, Equipment interface, ect..)
Send the player to encode the current Map region
/-/ TODO LIST /-/
Network
[Network] - Finish loading more incoming packets from the client
PlayerUpdate packet - TODO handle animations, graphics, walk direction, face direction masks
Other packets are required for me to handle, but I will get into more detail about them once I get to it.
[Network] Login Packets
Lobby Login
Handle Friends chat
Handle Clan chat
I will keep my TODO lists specific to what was in the updated changes, and what of those changes may still need work or specific work based on their heading (Server, Cache, Network, ect..) This way it will be much easier to track my work based on each release!