Author | Message | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ![]() ethanmoffat posted: (28th Aug 2012, 01:57 am)Wildsurvival posted: (28th Aug 2012, 01:35 am)ethanmoffat posted: (28th Aug 2012, 01:05 am)Sordie posted: (27th Aug 2012, 12:40 pm)Now if only I knew how to program in pascal/delphi... :P Yeah :D I modeled it after eoserv. Towards the thread for each client, no D:, that's the point of asynchronous sockets, which is really the only way to do this right. You'll use callback functions to handle the asynchronous results. I basically just made my own async WinSock control. --- Andrewbob - I would be on the fucking copter of rofls Programmer, Web Developer, and Graphics Designer
|
| ![]() You guys are no fun :( I was looking forward to having everything on my computer crap out and then do the whole Y U NO WORK thing :-/ Thanks for the tips though xD --- class EOSERV { Programmer | Oldbie Open source EO Client: https://github.com/ethanmoffat/EndlessClient };
|
| ![]()
Have fun xD --- Andrewbob - I would be on the fucking copter of rofls Programmer, Web Developer, and Graphics Designer
|
| ![]() uhm look at pokemon cyrus online or pokemon world get some idea's from there :p
|
| ![]() Tiduss posted: (28th Aug 2012, 04:51 pm) I don't think he's looking for ideas on the game since he's basing it off another game. The thread seems to be about the programming aspect of it anyway since this is the programming section :P --- Andrewbob - I would be on the fucking copter of rofls Programmer, Web Developer, and Graphics Designer
|
| ![]() ethanmoffat posted: (28th Aug 2012, 01:05 am) The idea is that Kalandra II is scripted so you don't actually need to know how to program in Pascal, Just a basic knowledge how programming would be enough to make a unique game. Also, wasn't really aimed at this project. Just saying if you need a client/server packet system then you should look at how KalandraII does it and forget EO. EOServs packet system will always have to be based on the original server to work with the client and if you copy this then you are going to be stuck with an unsecure badly written (Sorry Vult, it just is) communication protocol. KalandraII uses hopping key encryption and a CRC32 signature/digest of the packet. This is totally breakable (as all communications are) but at least stop WPE and other generic packet/proxies from functioning. Divine posted: (28th Aug 2012, 02:18 am) This isn't really a fault of the Windows operating system. "too high" is really a hardware problem and how well the code is written. Windows, in fact, now pre-emptively multi-threads as well (if not better) than most other operating systems. The thread/core affinity masking in Windows is written by experts in this field with the support of the two major CPU manufacturers. The problem is you can only really have NumberOfCores[*2 for HT] concurrent threads running at once. Example Core2 due + HyperThreading = 4 threads. So if your server has 8 connections/1 thread per connection this is 4 context switches per thread "tick" (this is very VERY simplified just to explain). Context switches use more time, memory and often scrub the CPU cache. This is problem for things that often run in a small loop like render pipelines, multimedia or signal processing but for server software written in a managed language like C# then it's actually the best way to go. The operating system can divide your code better than your managed language compiler can. I'd like to see any example of managed code that uses WinSock that manages it's client sessions in one thread that is as efficient as simply multi-threading and letting the operating system sort it out. =P --- http://sordie.co.uk http://twitter.com/@SordieEO
|
| ![]() Sordie posted: (29th Aug 2012, 06:57 pm)I was definitely going to move away from EO's way of doing things when I got to that point. At least as far as encryption goes. But that's still a long way off!ethanmoffat posted: (28th Aug 2012, 01:05 am) The best part of this project so far is that I honestly have no idea how to do any of it. I'm figuring it out as I need it since that's how I learn best. Multithreading, networking (cough encryption and stuff cough), and asynchronous programming are three things I know I'll need that I have no
idea how to do. It's safe to say I'll be consulting msdn a good deal :P Definitely going to stay away from EOSERV's source though - I don't want to be stuck in THAT rut.
--- class EOSERV { Programmer | Oldbie Open source EO Client: https://github.com/ethanmoffat/EndlessClient };
|
| ![]() MSDN has a few very well written articles on asynchronous socket servers and clients, they do need some fixing up tho.
--- Andrewbob - I would be on the fucking copter of rofls Programmer, Web Developer, and Graphics Designer
|
| ![]() Updated the original post with some progress screenshots! I've made a lot more changes than what you can see - this is just a little preview before I get to recording a video of the different features. --- class EOSERV { Programmer | Oldbie Open source EO Client: https://github.com/ethanmoffat/EndlessClient };
|
| ![]()
--- Andrewbob - I would be on the fucking copter of rofls Programmer, Web Developer, and Graphics Designer
|
| ![]() Wildsurvival posted: (5th Sep 2012, 12:34 am) Planning is my greatest weakness.... I'm "planning" on using .NET stuff to store the data in a binary format (sort of like EO does with maps and pubs). I'll use plain text for initial builds and debugging. --- class EOSERV { Programmer | Oldbie Open source EO Client: https://github.com/ethanmoffat/EndlessClient };
|
| ![]()
--- Andrewbob - I would be on the fucking copter of rofls Programmer, Web Developer, and Graphics Designer
|
| ![]() Yeah dude learn how to do that, .net is pretty basic man. --- Hail Satan!
|
| ![]() Omen posted: (3rd Oct 2012, 01:50 am) O.o what? --- Andrewbob - I would be on the fucking copter of rofls Programmer, Web Developer, and Graphics Designer
| |