Jump to content

while

Members
  • Posts

    12
  • Joined

  • Last visited

  • Days Won

    1

while last won the day on March 28 2015

while had the most liked content!

Reputation

14 Good

About while

  • Rank
    Booma
    Booma

Profile Information

  • Gender
    Male
  1. How much of Tethealla's original server code is still in use? The more I read that stuff, the shittier the code appears. The causes can't be limited to only the client and the physical distances to the servers. It's been a year since I last posted anything, but I am still here. I am also still willing to do what I can code-wise to improve the server. I still wish to help.
  2. Thanks, both of you. I think the biggest problem I was having was with simply trying to approach you guys. I don't fully know what you've already discussed amongst yourselves since I'm late trying to get in on this. It sounds like you like Java a lot, Soly. And chuk doesn't care for C++? Where's the C++ love? Regardless, I'd be glad to check out whatever new things you guys are putting together. What languages are you actively using the most now? chuk, If you do bother with a git repo, please let me know. I hope it's not C# though... not a fan. I know the Tethealla source that's available is old but it was all I could get access to. And I know that I really shouldn't have access to anything for Ultima. Indirectly making contributions that are filtered through a git repo or somthing like that would be totally fine by me. I shouldn't be allowed to charge in and ruin everything forever anyway. You made my day responding though. Please keep me informed on whatever may be going on. And I'm sticking to my opinion of the main() loop reusing the buffers!
  3. I just won't shut up about this stuff and go away! I've been looking more through the Tethealla source here and there since last weekend. Here are my thoughts on it. Does this all apply to Ultima's code at all? I don't know. At minimum, I'd like to show that I am serious about contributing my time. Anyway, here's what I've been poking through. The login server allocates memory up front for the maximum possible client connections. Each connection is about 2Mb. That is far too much for what it's used for. The majority doesn't need to be held onto. In main()'s socket loop, each client has its own set of data buffers which are populated and later processed. Memory usage could be cut down by reusing a single buffer for all clients: populate the buffer and process the data immediately, then who cares about holding onto that buffered data? Just move on to the next connection. The setup and the processing are pointlessly disconnected from one another and wasting all that memory. The login server has 46 unique MySQL queries in its source file. The queries are all for the most part formatted by sprintf() and directly executed. This method sends the query string to the server, which has to parse it every time. Prepared statements could help improve this situation, at the expense of some of the MySQL server's memory. Prepared statements are parsed by the MySQL server a single time, data is bound to placeholders in the query, and only the data itself needs to be transferred. This would benefit queries that are executed many times. Drawbacks would be setting up the prepared statements in the server code and the fact that the MySQL server has to store the statement handle. MySQL transactions might worth using for certain database actions (they are not used in the Tethealla source I'm looking at). These can make a series of data changes atomic. Performing multiple steps like "remove an item from the player's bank" followed by "place the item in the player's inventory" would be guaranteed to never perform one action without the other; either both happen or neither happen. The item is properly moved or safely stays in the bank. Despite how it sounds, this is the least important of these things I'm bringing up. Numerous chunks of code are copied and pasted in multiple places throughout the source files. This is a nightmare to maintain. Better be sure that if you update one, you update all the other instances of the same function! Help keep earth.c clean and recycle. There's no excuse for slapping multiple copies of the same code everywhere and pointlessly bulking up the source files. Also, there are many massive functions that should be broken down into several smaller functions. Existing libraries could be used to cut down on the server's code. Two prime choices for removal are the MD5 and the Mersenne Twister implementations. MD5 can be done for a Windows platform through the Cryptography API or for linux through libgcrypt. The Mersenne Twister is available from <random> in C++11. Both the crypto and the twister libraries are available in Visual Studio 2012. If using C++, the MySQL C++ connector library could be used in place of the C API. This would greatly simplify the MySQL interface, especially for prepared statements. I will always be pushing for C++ here. The STL would be hella sweet to be using: easier to manage containers of objects like the client connections, easier to parse the configuration files, easier to break peoples' spirit by using templates, etc. C++, awwwyissss. As a side note, fuzziqer's newserv is in "C++" but makes absolutely no use of anything C++ that I could see when browsing through that project. Kind of depressing. Aside from the Tethealla source, I've been thinking about the PSO control panel, which can easily be done from the database viewpoint. Honestly, the only hard part would be the user interface. Exactly as chuk stated in that original thread about the panel, knowing if an account is online is the single most important part of this. And to be a complete jerk about it, I will tell you right now that I am keeping the specifics to myself to attempt to gain leverage for myself. I also began looking into the client's disassembly but am not yet in a position to report anything since I just started looking at a few functions of interest. So yeah, the whole point of this nonsense is to get the admins' attention and let them know I do mean business. If you say no to me, I will stop whining about wanting to do development stuff and just chill. I will be quite disappointed if I only get silence from the admins here, like at how it seems to be at pioneer2. If you say yes, I will try my best.
  4. Thanks for the kinds words. The intention is not to start a brand new server, new community, or new competition, but to work with what is in use. I'm concerned about the stability of the server and integrity of the data here. I would look into creating patches if the code was available to me. Is it open source here? I haven't seen anything pointing to it being open source. pioneer2's latest code I could find looks 5 years out of date and I don't even know if Ultima forked from it. I had been looking through it anyways, however, there's no point in suggesting changes unless it's actually compatible with Ultima. If I do find anything to share, I really would want it to be something that could be put into use.
  5. To be pretty blunt, I would love to work on Ultima's server code. Is there a non-zero chance of that happening? Whether you're looking for people or not, it would be nice to get a discussion going. Hopefully some talk will start up at the very least. Here are a few driving forces behind me wanting to work on the code: First off, it's sad to see threads about character resets and inventory corruption. Ever since I registered on the forum here in mid January, those types of threads keep on popping up. Is this stuff being looked into? I don't recall hearing about preventative action being taken, only cleaning up problems after the fact. It sounds like the community has just fallen into dulled acceptance of it, which is a little disappointing. Please do not take this as "u suck admins" or a negative, personal attack like that. The reality is that it is a ongoing, highly visible issue. If there is a solution in the works then the solution should be just as visible as the originating issue, which doesn't seem to be the case. At any rate, I offer my time towards this and any other work. Secondly, I saw that pioneer2.net had forum posts late last year about starting a new server source base from the ground up. Soly (thanks again!) kindly prodded the admins at their forum so I could get an account activated there and ask them if I could help with development. It's been about two and a half months since I first asked, but that forum feels too dead. Nobody ever responded in all that time. There wasn't even a "No, we don't want your help." As unlikely as it would've been, the initial hope was to later attempt to have Ultima migrate to fresher code, but I'm flat out giving up on those guys. After re-reading some of their ideas and seeing so little activity, I think their new server is not going to happen. And if it manages to happen, I believe some of their ideas are steps in the wrong direction. Plus I'm guessing you guys wouldn't have gone along with migrating anyway and I do very much wish to stay with Ultima. Lastly, my day job is to mess around with code. I guess it's in my blood. Sometimes digging through source is more enjoyable than playing games for me. butnotformycurrentprojectatworkholycrapthatoneissobadihateitugh I realize I keep very quiet and nobody here knows me at all. As such, you admins have absolutely no reason to trust me. But I've got to start somewhere. Even if you start thinking about any of this, it's a win for me. I've been turning it all over in my mind for the past couple of months and couldn't keep silent any longer. I want to help. May I? What would it take to convince you I could or should? is this thing working yet? Thanks for your time. Please add your thoughts, everyone. I'm very curious as to what'll happen here.
  6. Thanks, man. Now it's just a waiting game.
  7. Yeah, it'd be a lot of work. And on that topic, similar to how I was trying to contact the Tethealla devs, I am interested in contributing something useful to the server and helping with development, if that is at all possible.
  8. If multiple accounts are to be linked together, forum accounts could be a good candidate for tying it all together. There's also the potential to manage accounts/banks/whatever through a web interface. Maybe get more use out of the PSOBB CP link up top of the page here.
  9. while

    Hello

    Thanks for the warm welcome, everyone.
  10. while

    Hello

    It's fun stuff, both the game itself and development things. Why not get the best of both worlds? That would be greatly appreciated.
  11. while

    Hello

    Yup, the posts over there caught my eye, plus I also saw usernames used both on this forum and theirs. I hope to catch some of the people using both forums on this end for info since the registration wasn't activated yet.
  12. while

    Hello

    Hey, folks. In a car ride right after new year's, my friend and I were reminiscing about PSO. We used to play it in highschool on his GC. The conversation prompted him to find the Ultima server here, which was excellent news to me. The community here appears pleasant and helpful. Although I tend to keep to myself, that atmosphere is greatly appreciated. So far, it has been rough with the DDoS attacks generally ruining free time that could've gone to PSO. I decided that if I can't play the game because of that, I will instead offer to help with server development to eat up some of my spare time. I had seen recent talk of active development over at pioneer2.net and tried to register on the forums there. The intention was to ask if they would want me around to do anything. Unfortunately, the account registration has to go through admin approval and the account has been stuck in limbo for two weeks. Not knowing where else to go, I'll ask here instead: Would Tethealla be interested in picking me up as a dev? I ask specifically for Tethealla because less server forks would be better, imo. It would be pretty sweet to give back and help with what brought everyone together here. Long live PSO.
×
×
  • Create New...