We are looking at improving the core of the server to have child processes for each zone.
This will involve a lot of different parts of the server.
I am thinking of making a diagram showing how all of this will work together before development is started.
I am thinking of making a diagram showing how all of this will work together before development is started.
- winston for logging
- child processes 1 for each zone, 1 for login 1 for world (basically to decide which zone to chuck you in)
- mongoose_rpc for rpc between child processes. (Backup option is https://github.com/c9/smith via stdio and stdout pipes if possible since child and master processes already have those)
- vmscript needs to be modified to decouple file watching from the vm script enviroments.
- file watching for config or script changes, needs to be done on the parent of the server ( Example world watches for changes in scripts / packets that zones use ) (Login manages its self as theres only 1 login server)
- handle login/zone change must be improved for this new design, character would have to be saved/loaded from db accordingly.
- world server should maintain a list of which character is in what zone and the accounts that are online
- login server should know the accounts that are online and if they are on world or not?
- world should keep track of party and guild members, if they are online and what zone they are in.
- gm commands that go across server need to be improved to message via RPC to world.
- 0x54 announcement packet should have a way to construct it as necessary per map/announcement.
- map scripts should have an init and way to start/stop and set timers.
- scheduling should enable events to be emitted at a certain date/time (repeating etc) to manage things such as Nangi track every hour etc. https://github.com/LiamKarlMitchell/InfiniteSky/issues/134
- jsdoc3 should be used for comments/documentation maybe we can get this to work like npm run doc or something?
- should we invest in a testing framework? anyone want to write tests?
Anything else I am forgetting?
Come chat with us here: https://gitter.im/LiamKarlMitchell/InfiniteSky
Come chat with us here: https://gitter.im/LiamKarlMitchell/InfiniteSky
These improvements will take a while but well worth it, we don't want the AI for monsters to lag the entire server, or when the server is heavily populated to have it lag up for everyone when we can avoid that by a better design.
Out of this we also hope for code documentation, cleaner easier to read code and a better installation guide.
And possibly plans for the launcher to actually be use-able it still needs to be coded to get updates from github releases.
And possibly plans for the launcher to actually be use-able it still needs to be coded to get updates from github releases.
We have also started a Wiki for the project here: https://github.com/LiamKarlMitchell/InfiniteSky/wiki
@hobomchobo has found out more about the header prepended to the dds textures in the games .IMG files so we may have a more reliable way to improve game translations/gui/visual things. Maybe even HD textures in the future.
@hobomchobo has found out more about the header prepended to the dds textures in the games .IMG files so we may have a more reliable way to improve game translations/gui/visual things. Maybe even HD textures in the future.
@ane2 has been working on the path finding which monsters will use to walk / chase players around the map.
@liamkarlmitchell has been investigating this stuff^, capturing more packets and looking into how nangi track works :P. Oh and improving the dll to have its dev keys only work on the focused window.
@Retain94 has been figuring out packets for some things. Trader item shop (where players enter items to sell), 0x54 an announcement packet which is responsible for many things. And he is now looking at the Nangi race track packet for having the cats run around the track.
We did get some item use packets for various things and have a list of ones that need to be implemented thanks to @Retain94, @Zodrag @credmann15 and a few others.
https://github.com/LiamKarlMitchell/InfiniteSky/issues/157
Some issues we currently have to consider/fix are:
More can be found here: https://github.com/LiamKarlMitchell/InfiniteSky/issues
- Translation not loading correctly for some things. Need to figure out why and fix it.
https://github.com/LiamKarlMitchell/InfiniteSky/issues/3 - Translation reported not working on windows 8 for the dll.
https://github.com/LiamKarlMitchell/InfiniteSky/issues/151 - Ensure that enchant.js has the enchanting formular implemented correctly.
https://github.com/LiamKarlMitchell/InfiniteSky/issues/158 we recently made a spreadsheet containing the formular. - Fix zonechange back to town map eg walking through portal on Nangi track
It loads the town map visually but server side your still on the 119/previous map. - Code in use able items/effects.
https://github.com/LiamKarlMitchell/InfiniteSky/issues/149
https://github.com/LiamKarlMitchell/InfiniteSky/issues/157 - Fix dice roll game when loosing its not taking money away if you lose.
https://github.com/LiamKarlMitchell/InfiniteSky/issues/148 - Nangi Race Track
https://github.com/LiamKarlMitchell/InfiniteSky/issues/119 - Ensuring guild functionality works as expected, trade shop etc. (Emblems are more tricky it will require us setting up an FTP server or rewriting how emblems are uploaded/downloaded)
https://github.com/LiamKarlMitchell/InfiniteSky/issues/139 - Implement the Pin System (No big deal really)
- Anyone good with maths/formulars? Need to figure out a damage formula for suitable monsters and npc. (So we can have attacking doing propper damages)
https://github.com/LiamKarlMitchell/InfiniteSky/issues/93 - Find a way to automatically get the WAN ip when starting the server, could be scheduled to work/enabled in a config. (Ideally it would ask a server on the internet for its ip)
- Get attack animations working better so you cant just click rapidly to attack someone every time.
There should be a delay.
https://github.com/LiamKarlMitchell/InfiniteSky/issues/63 - Make a better guide for setting up server/simplify setting up server.
- Fix some problems with duel.
More can be found here: https://github.com/LiamKarlMitchell/InfiniteSky/issues
Help on these things it would be appreciated.
If you are interested in helping the project but you cant do any of the following: Programming, Sharing information, improving translations, graphics editing, launcher development (web app dev etc), logging spawn details or capturing and figuring out packets.
Then please consider donating to help the project, who knows maybe we can buy a big bag of Coffee for all our developers eh?
Or we could get some cash points in game and figure out how the XP pots and protection charms work maybe even character transfer scrolls etc.
Cheers,
If you are interested in helping the project but you cant do any of the following: Programming, Sharing information, improving translations, graphics editing, launcher development (web app dev etc), logging spawn details or capturing and figuring out packets.
Then please consider donating to help the project, who knows maybe we can buy a big bag of Coffee for all our developers eh?
Or we could get some cash points in game and figure out how the XP pots and protection charms work maybe even character transfer scrolls etc.
Cheers,