Posts by Beta

The server was closed on April 2nd, 2023
https://pwmirage.com/forum/thread/342-we-are-closing/

    21/02/2020 done:

    * send out new patcher


    It took me a few days to get this patcher done.


    It features:

    * asynchronous patching -> the window is no longer frozen after clicking the update button

    * it uses one server connection to fetch all changes -> so it's quicker

    * there's a custom text displayed inside the patcher that's fetched directly from the server

    * when there's a new patcher version, a popup window will ask you if you want to download it now. If you click yes, a browser window with a new link and install instructions will open

    * there's some image in the patcher -> on every update it's downloaded from the server

    * there's a progressbar that reflects the update progress

    * the patcher no longer leaves temporary files around, it only stores the current game version in patcher/version

    * a patch log is now saved in patcher/patch.log. It contains detailed information about all custom content on the server

    Acc-binding.... That's actually a downside of having in-game vote shop. You can edit each item to be acc-bound, but you don't want to do it to *every* item of that type in the game. We could clone each item, make it acc-bound and then put in the vote shop. But if we want the vote shop to be this rich, this process is going to be problematic. Maybe we'll reconsider sending all the vote rewards by mail -> those can be made acc-bound without any effort.


    As for the project itself, I feel like it's extremely OP compared to other custom things we added (like mats exchange NPC next to every teleporter). Although it is a good base for discussion. Approved! We'll be adjusting this later on.

    It would be so nice if we had another server to test any new projects. But it's extra cost ($$), so we won't have it.


    We will be forced to test new content on the public, production server. At least to some extent.


    I propose the following schedule:

    We review and approve projects anytime during the week without disrupting the server, then we merge them all at once during the weekend.


    I can do a basic smoke test on Friday evenings (central EU time) on my local machine. If server works for me - that is, it doesn't crash on startup, lets me log in, the new NPC/monsters are visible, etc - then I can stop the public server, pull the new changes there, and start it in maintenance mode where only maintainers can log in. We test it for about an hour, maybe fix minor glitches (like floating NPCs) (or maybe we decide to drop some projects if they're too broken), and then restart the server in a normal mode where everyone can log in. Then we can do additional testing during the weekend as a part of normal gameplay.


    If my local smoke test reveals some critical issues e.g. in the patcher code, we could move the public tests to Saturday or Sunday so that I have time to debug and prepare fixes. Either case, public downtime should be minimal.


    Any comments are appreciated. Exact hours are still to be set, although I don't expect to be 100% punctual. Delays happen.

    11/02/2020 done:

    * look into securing the server, restrict database access, read some guidelines on PW server security

    * implement server API for remote management - it will be used e.g. for user registration. (we'll also create a GM panel from this later on)

    It's very wonky atm. Gameserver needs some app to expose:

    * server online status

    * ability to schedule a restart and cancel it


    the same app could be later expanded to:

    * show logged-in players

    * show their location (maybe?) -> would be nice to show that in the editor and be able to create NPC with player's position and rotation.

    * send system chat messages

    * send mail

    * read and write character data

    * ban players

    * register

    08/02/2020 done:

    * parse item changes in the game patcher

    * add a few checks for game data to prevent gameserver crashes (learnt the hard way)

    * parse removed objects in the patcher (so they won't appear in game anymore)

    * published new patcher version 0.2

    How can we provide stable gameplay if we're always open to changes and we're constantly evolving? We have discussed this with foxi some time ago and I need to read that discussion again, but now I just wanted to write down an idea I just had: what if we limit the max level to .e.g 50 for the first few weeks after the public server launch? During that time we could focus on designing the level 50-70 gameplay, once that's finished increase the max level again, and so on.


    On levels 20-50 we won't have to worry about any dragon orbs or so, they would just come later.

    I haven't tried, but I'm guessing you can spawn monsters in any faction base (with GM commands), so you should be just as well able to spawn dynamic objects like gates seen in dungeons that disappear after some mob is killed). Same goes for NPCs, I hope.

    It would work same as current guild bases. Terrain is the same for everyone, but there are different NPCs basing on your guild level and you can find different people in different faction bases.

    I think this is a gold mine right here.


    Since we have the editor, we can allow absolutely everyone to design their own faction bases.


    Quests for guildmates, custom mob arenas

    + potentially custom walls (not sure yet how to do it programatically, but it's definitely possible)

    31/01/2020 done:

    * work on some admin panel to merge any project and automatically restart the server


    to do:

    * look into securing the server, restrict database access, read some guidelines on PW server security

    30/01/2020 done:

    * prepare the client and upload it to google drive

    * fix some issues with other ppl not being able to create characters

    * run some stress tests on the server

    * play the game for a while ;)

    29/01/2020 done:

    * finish up the server. it's up and it's working :)


    to do:

    * prepare the client and upload it to google drive

    * prepare an admin panel to merge any project and automatically restart the server

    28/01/2020 done:

    * prepare a public database for the project list (currently the patcher fetches from pwmirage.com just a few hardcoded projects)

    * start working on some cache for those projects to speed up updating - we don't need to have the cache finished now, but at least designed so that I can make proper assumptions in the patcher executable (so that I don't need to distribute an updated version anytime soon)


    //EDIT

    The patcher also launches a modified version of PW that has TAB-select support :)