Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Spirited

Administrator
  • Content Count

    123
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by Spirited

  1. Hi all. A few years ago, I did the research around converting maps for Conquer Online into plain text file systems that can be easily modified by a visual client editor or simple text editor. I started a command-line version of "Architect" to convert maps, but I'm a bit confused about the direction of the project. Overall, I'd really like to get more experience with client-side application development. Keeping Architect as just a command line tool doesn't really get me more experience in anything, nor is it great for the usability of the tool. The problem is, I'm not very experienced in what frameworks are used these days for cross-platform development. I'm thinking about using Angular and Typescript with Electron. That way, I can use a nice UI Framework with WebGL for the visual editor (if I get around to that). Otherwise, just allowing the window to do text editing for now. Again, I'm not very experienced with this, so I'd really appreciate the community's feedback. Thanks!
  2. Spirited

    UI Framework Discussion for Map Editor

    Well, I appreciate the feedback. I think I'm going to try out the Electron approach.
  3. Spirited

    UI Framework Discussion for Map Editor

    Sorry, I meant "unsuitable". So, I think I have two main options now. I tried using Electron and React without Webpack, and I got it working with less memory consumption than Windows 10's calculator app. It loaded UIKit 3 pretty well, but compatibility with JS/CSS frameworks was pretty rough without webpack. If I wanted to use Electron "right" with React, then I'd have to use webpack. I'd also have to make a middleware app just to pipe assets into memory from the filesystem. It's not that big of a deal, but just a hassle for an app that's going to perform worse in all categories. With Qt supporting themes pretty well (didn't know that), I might just go with Qt. I'm looking into that now with QtWidgets and QStyle.
  4. Spirited

    UI Framework Discussion for Map Editor

    Yeah. I'll be working on it on my GitLab and I'll post about it here once I have something to show. Right now, I'm still researching technologies. I really like the idea of Electron and React for a launcher or content focused application (using middleware to launch apps), but may be really unsuitable for a disk heavy application. I may try using Qt as I was recommended to, and just try and theme it. Again though, still looking into it.
  5. Spirited

    Learning the 3D Asset Pipeline

    A lot of people from my work who do game design and modeling use Substance and really like it. It has a really good community for it, apparently. I don't know much about it myself, but my colleagues recommend making a box and applying a wall texture to it using Substance painter. Pretty simple idea to get you started with the controls and workflow. I'd be super interested to see your progress with this, as a non-designer. Good luck and happy learning!
  6. Spirited

    C# Server Application with Win32

    Well, if you'd like some feedback on your routines, let me know. You can always add me to a private GitLab repo, @Spirited. It's hard to squeeze out performance for a single core, one executable server.
  7. Spirited

    [Go] Xor Encryption Issues

    Oh, I don't mind. That's why there're public under an open source license.
  8. Spirited

    [Go] Xor Encryption Issues

    Gosh, it looks so crazy similar to my current implementation of Chimera that I didn't even realize it wasn't. Ok, so it looks like the EO source is using an older encryption. Looking at other server sources though, those counters are unsigned shorts. If you change your data types to Uint16, then you should be good to go. I'll make some changes to Comet to reflect that change. Sorry for the confusion. I blame CptSky's implementation, but it's entirely possible that I just mistyped. 😰
  9. Spirited

    C# Server Application with Win32

    I agree with you, but I think there're better ways to improve the performance of a server application. Appropriate data structures is one thing, like using a dictionary for key lookup rather than doing a search. Linq is a lovely addition to .NET, but usually encourages bad implementations from misuse. Algorithms are also very important, such as knowing your big-O and distributed big-O against a database. Database queries are also very costly in comparison to a cache lookup. So again, I agree with the GUI not being in a server executable, but at the same time I think there's a lot more that could be impacting performance more heavily.
  10. Spirited

    C# Server Application with Win32

    It really depends on how you implemented the GUI. If the window is being created using a single threaded apartment model, then your server could be under very serious performance constraints as it mashes all CLR threads into a single OS thread. You can easily check for this by calling Thread.CurrentThread.GetApartmentState on one of your server threads. Generally, having a GUI on a server executable (especially as the main thread) is bad practice, but if you're not looking for ways to squeeze performance out of every nook and cranny, then having a GUI under a multithreaded apartment model is probably fine for your use case.
  11. Spirited

    [Go] Xor Encryption Issues

    So, potentially my code doesn't handle wrapping and the client is expecting wrapping at an unsigned short range. Let me look into it more when I get home, but the EO source should show what it expects. Maybe it does a mod op that I'm not doing in my implementation. I based mine off of CtpSky's work and never compared it.
  12. Spirited

    [Go] Xor Encryption Issues

    I'm at work right now, but that XOR cipher they made is also a counter based cipher. Do you know what your counters are for the decrypt and encrypt directions when the failure occurs? It might be that the data type is wrong for those counters. I can't check right now, but the EO source should be a good reference for that as well.
  13. Spirited

    UI Framework Discussion for Map Editor

    I see. Wow, that's not well outlined in their introduction article. Oh well, Electron it is then.
  14. Spirited

    UI Framework Discussion for Map Editor

    I could, perhaps. Another option is WPF. Apparently, .NET Core 3.0 has cross platform WPF support now. I'm not sure what requirements the Linux build has or what it looks like, but that might be interesting if it can support OpenGL. I'm probably less excited to use WPF than I am Electron, though. Microsoft makes me uneasy when it comes to cross platform UI.
  15. Spirited

    UI Framework Discussion for Map Editor

    Yeah, I was trying to avoid drawing directly to an HTML canvas. I'll try WebGL. Worse case scenario is that it can't load the map properly and I port it to Qt. Really not that big of a deal. I'm not too excited about using Electron, but UI customization is so much better for web apps.
  16. Spirited

    UI Framework Discussion for Map Editor

    Right now, I don't anticipate supporting 3D models. I'd only like to complete the puzzle and interactive layers, which should be 2D (unless I missed some key detail). In the event that I want to support 3D in the future, I do have the code for that, but I'd have to ask for permission to use it. Thanks for the library recommendations. That's exactly what I need right now, keep them coming if you can. Again, I'm excited to do something other than server stuff for a change.
  17. Spirited

    UI Framework Discussion for Map Editor

    Well, the primary use wouldn't be just a text editor. It's more of "implement a way to navigate assets" and "open raw view of asset". The rest would be a system around other map editing functions and organizing that data to be easily modifiable. I considered Qt for making the editor window, but do you have experience with Qt themes? My understanding was that it uses the system theme by default. I was hoping to have an editor that functioned very similarly to a web app. Since you mentioned you have experience in Angular or React, could you tell me a bit more about why you think this would fall outside of a standard use-case model? Thanks for your feedback.
  18. Spirited

    Latest DBC Structures

    Are you able to debug the tool and step into its decode? If you are, then you could run an old file and a new file and see where it gets confused. I'm looking at the two formats just in notepad++, and nothing immediate jumped out at me. If it's changed, then it's very similar. Then again, I'm looking at patch 6925. What patch are you seeing the change on?
  19. I don't necessarily recommend a separate executable for a web server that speaks to a proxy server via RPC. You can host a web server as part of the proxy. A lot of entry level server apps do that now, and I'm a huge fan. If you went with a web server, suddenly you can make your proxy a docker image that people can just download and use immediately, and not just on their system but any system (like a Raspberry Pi Zero that can be controlled via the proxy's web portal). I think adding a traditional GUI might make your proxy less usable by comparison, but maybe I'm of a very niche mindset.
  20. Spirited

    Client : Editing resolution

    Honestly, the more we can open up client modifications through hooks and reassembly on older clients, the better. I'd love to do a lot more with the client, but my primary focus is on networking and game server programming. It's hard to do everything on your own, which is probably why my map editor has been in a half-done state for years. It'd be super cool if there was just a guide and example project that carves up a popular patch's exe to do some seriously cool custom stuff with. Though, I know I'm asking for a lot. Maybe someday.
  21. I work in C++ professionally and we primarily use Qt for our GUIs. It's a large framework as you said, but it's portable and full featured. You could try GTK, but my understanding is that it's not that much better. At home, I just use a console for my service apps. If I really need a front-end UI, then I usually make a responsive web client and web API server that talks RPC to my other services. It ends up being a bit nicer to use since there're so many responsive UI frameworks out there. If you're looking for a super clean C++ Socket library, then I highly recommend libuv. It implements os-specific socket event loops like completion ports, epoll, and kqueues for you, which is nice if you're looking to make a cross-platform proxy.
  22. Spirited

    Client : Editing resolution

    So, I've never done this before and maybe this is a super naive approach, but you could try debugging the client at OpenSSL's RSA_public_decrypt method and see what the public key is. I can see server.dat's XML reader use that function, so maybe that'd be a good start? Hopefully someone more knowledgeable can answer this better. I guess if you simply wanted to remove the decryption, you could overload the method using a hook to just return the input argument. It looks like that configuration manager for handling RSA decryption is used by multiple client files though.
  23. Spirited

    File Manager - Encrypt/Decrypt Files

    I know with latest, a lot of the files are also LuaVM encoded, and I don't know anyone working on anything close to latest. Maybe someone will pitch in, but you might be on your own.
  24. Spirited

    File Manager - Encrypt/Decrypt Files

    What patch is that for @Super? I've never seen that file before. You might be out of luck unless someone else is working on whatever patch that's from.
  25. Introduction Comet is a Conquer Online server project containing an account server and game server. The account server authenticates players, while the game server services players in the game world. This simple two-server architecture acts as a good introduction into server programming and networking. The server is interoperable with the Conquer Online game client, patch 5017 (not provided by this project). Discussion This project was initially created for an interview as a 3-week programming project. Now, it's a base source that I'm opening up to the community. Feel free to add to it and submit push requests. I'm mostly active on my GitLab account, but feel free to hit me up on Discord or Cooldown if I don't get to things soon enough. Links Source Control: https://gitlab.com/spirited/comet Readme: https://gitlab.com/spirited/comet/blob/master/Readme.md Issue Tracker: https://gitlab.com/spirited/comet/issues Storyboard: https://trello.com/b/tb8ChBlF/comet
×

Important Information

By using this site, you agree to our Terms of Use.