EOSERV Forum > Programming > More Pokemon!?!?
Topic is locked.
Page: << 1 2 3 >>
More Pokemon!?!?
Author Message
Post #162138 Re: More Pokemon!?!?
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)

This is exactly the kind of game that could easily be built using the Kalandra II engine, once it's in a usable state. ;]


Keep up the work! It's good to finally see people moving away from EO and writing their own games!



Now if only I knew how to program in pascal/delphi... :P

Wildsurvival posted: (27th Aug 2012, 02:18 am)


Well, if you ever need help with it, you can add me on msn at a_choate@live.com. I'm working on my LOTO server at the moment in c# as well so. The only hard part is the understanding of how a packet system system completely works. That and getting a multi threaded client and an asynchronous socket server to work with each other. Database support is a little annoying without 3rd party libraries but I think I've got a database class written already.


I'm learning multithreading in C# out of necessity right now - the program I'm working on for my internship requires two background workers and the threading aspects are proving to be a total pain in the ass (synchronizing, invoking on controls etc). It's not even that advanced, but I still managed to spend most of the day debugging today...it's fascinating, but it's a difficult topic to learn as I write. Which is exactly why the client and server are coming AFTER the map editor :D

Speaking of the map editor, I've made a lot of progress since the first screenie. I'll probably upload another screenshot once I have most the major features implemented.


Yeah that's exactly why I made a packethandler. For the server, it calls a handler depending on the packet received from a client. If the client meets the state requirement and that packet for the family and action exists, it calls that function handling the packetreader. The client will handle it the same way.

From what you're describing that sounds like what eoserv does. I haven't browsed the source in many a revision though so I'm not too sure. That's probably the way I'd go about things too once I get to that point (handling packets from each client on a separate thread, of course)

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
12 years, 42 weeks ago
Post #162182 Re: More Pokemon!?!?

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
};
12 years, 42 weeks ago
Post #162188 Re: More Pokemon!?!?


Lol anytime ;)

Have fun xD

---
Andrewbob - I would be on the fucking copter of rofls

Programmer, Web Developer, and Graphics Designer
12 years, 42 weeks ago
Post #162191 Re: More Pokemon!?!?

uhm look at pokemon cyrus online or pokemon world get some idea's from there :p

12 years, 42 weeks ago
Post #162215 Re: More Pokemon!?!?
Tiduss posted: (28th Aug 2012, 04:51 pm)

uhm look at pokemon cyrus online or pokemon world get some idea's from there :p



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
12 years, 42 weeks ago
Post #162403 Re: More Pokemon!?!?
ethanmoffat posted: (28th Aug 2012, 01:05 am)

Now if only I knew how to program in pascal/delphi... :P


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)

Putting each client on a separete thread is highly resource intensive and wouldn't work. Windows likes to bitch once the thread count gets too high.

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
12 years, 42 weeks ago
Post #162558 Re: More Pokemon!?!?
Sordie posted: (29th Aug 2012, 06:57 pm)

ethanmoffat posted: (28th Aug 2012, 01:05 am)

Now if only I knew how to program in pascal/delphi... :P


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.


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!

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
};
12 years, 42 weeks ago
Post #162587 Re: More Pokemon!?!?

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
12 years, 42 weeks ago
Post #163294 Re: More Pokemon!?!?

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
};
12 years, 41 weeks ago
Post #163296 Re: More Pokemon!?!?


Progress is looking good. How do you plan on storing map data?

---
Andrewbob - I would be on the fucking copter of rofls

Programmer, Web Developer, and Graphics Designer
12 years, 41 weeks ago
Post #163311 Re: More Pokemon!?!?
Wildsurvival posted: (5th Sep 2012, 12:34 am)


Progress is looking good. How do you plan on storing map data?


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
};
12 years, 41 weeks ago
Post #166613 Re: More Pokemon!?!?


Any progress?

---
Andrewbob - I would be on the fucking copter of rofls

Programmer, Web Developer, and Graphics Designer
12 years, 37 weeks ago
Post #166614 Re: More Pokemon!?!?

Yeah dude learn how to do that, .net is pretty basic man.

---
Hail Satan!
12 years, 37 weeks ago
Post #166615 Re: More Pokemon!?!?
Omen posted: (3rd Oct 2012, 01:50 am)

Yeah dude learn how to do that, .net is pretty basic man.



O.o what?
---
Andrewbob - I would be on the fucking copter of rofls

Programmer, Web Developer, and Graphics Designer
12 years, 37 weeks ago
Post #166616 Re: More Pokemon!?!?

He's trying to code in .net to store less data in files while still allowing the program to complete said tasks using said ammount of data

I think o.o

---
Hail Satan!
12 years, 37 weeks ago
Page: << 1 2 3 >>
Topic is locked.
EOSERV Forum > Programming > More Pokemon!?!?