Need help porting an MMORPG client

Member
Posts: 72
Joined: 2004.06
Post: #16
http://www.evula.org/corun/elscreen.jpeg

:-D

Problems at the moment:

- Music is off
- There looks to be some weird z buffer fighting with the snow..Is that a mac os x bug or is it on the pc version aswell?
- Bags never seem to contain anything... Is that right or am I doing something wrong?
- Probably an endian swap or two that I missed out.
- The "overall" bar at the bottom shows a minus number... Is that right?
- No pasting yet
- Delete key doesn't work.
- Loading seems slow... Possibly because I have to endian swap a lot.
- Anything else look wrong from that screenshot?
Quote this message in a reply
Radu
Unregistered
 
Post: #17
Wow, that's great! Smile
The music is not distributed by default, because it's big. You can try getting it from: http://el.tfm.ro/music.zip
Here is more info on how to isntall the music, if there are probems: http://www.eternal-lands.com/forum/index...topic=9891

There is some Z fighting in the game, but that depends on the video card, video mode, etc. Is it really bad, or just some 2d objcts flickering?

The bags always contain something, otherwise they dissapear (if you take everything out)

The bars should always be positive, except for the food bar (the one that is -1 in that screen shot)

How slow is it? Like how many seconds until the game loads, after you press the "done" button?
Quote this message in a reply
Puzzler183
Unregistered
 
Post: #18
For the record, endian conversions shouldn't be too slow... I know on x86 platforms there is the bswap instruction which ine 1 clock (IIRC) will do an endian swap. If there isn't something like that on Mac, you might be better off storing as big endian and then doing conversions on x86 stuff since it's fast and big endian is network byte order anyway.
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #19
PowerPC has load word byte reversed instructions, but they're probably no great win.

Make sure your endian conversion routines are inlined Wink
Quote this message in a reply
Radu
Unregistered
 
Post: #20
Well the thing is that we load the some files from the disk as a structure. So on x86 and other little endian CPUs you can just load the file in the memory, and there you have it. But on big endian CPUs you have to process the files as well, not just load it in the memory, and that takes some time.

Anyway, we can't change the order of the bytes we send, would require a lot of work (server and client), and most of our players use little endian CPUs anyway.
Quote this message in a reply
Member
Posts: 72
Joined: 2004.06
Post: #21
Ok, most things are fixed now. I can't do any work on it during the week though. I will be done by the weekend.
Quote this message in a reply
Radu
Unregistered
 
Post: #22
Great, thanks a lot and take your time!
Quote this message in a reply
schnarr
Unregistered
 
Post: #23
I thought I should warn you that BIG_ENDIAN appears to be defined in GCC 3.4, as I found while the port I'm working on. Basically, it compiled fine on mac, but when I tried the same code on my little-endian Mandrake 10.1 box it failed to compile (more specifically, it interpreted BIG_ENDIAN as true, which it wasn't! I even tried passing the undefine BIG_ENDIAN macro flag into the compiler without luck). Another developer running gcc 3.3 on his SuSE linux box compiled the code without a hitch, as did I a few months back running GenToo (also 3.3, I think - lost the drive, so I don't remember) so it appears to be something added between 3.3 and 3.4.

I would strongly recommend using a different name or at least testing the code on a little endian linux box with a 3.4 compiler and making sure I wasn't just seeing a quirk (I was running 10.1beta and upgraded to 10.1, so there is potential).
Quote this message in a reply
Radu
Unregistered
 
Post: #24
Thanks for the warning. Perhaps we can name the define something like EL_BIG_ENDIAN
Quote this message in a reply
Member
Posts: 116
Joined: 2005.02
Post: #25
Hey, Corun and Radu, how do you like the game? I've been waiting to play and need a little background info

Last login: Sat Aug 6 09:15:05 on console
Welcome to Darwin!
Matt-Chelens-Computer:~ matthew$
Quote this message in a reply
Radu
Unregistered
 
Post: #26
Well, I am not the best person to ask on how I like the game, since I am the project manager, and was, until recently, the lead programmer (right now I am working at another game, but still oversee the EL development).
Corun didn't have much time to actually play the game, so he can't really say how he lieks the game. But anyway, a lot of people like it, and a lot of people don't like it, so you'll have to see for yourself, once it's ported Smile
Quote this message in a reply
Member
Posts: 116
Joined: 2005.02
Post: #27
Where's Corun? He was going to update us on what's going on this weekend...I wonder what kept him

Last login: Sat Aug 6 09:15:05 on console
Welcome to Darwin!
Matt-Chelens-Computer:~ matthew$
Quote this message in a reply
Radu
Unregistered
 
Post: #28
He is posting on our programming forums.
Basically he got almost everything (important) working fine, hopefully next week or so there will be an alpha binary for OSX.
Quote this message in a reply
Member
Posts: 116
Joined: 2005.02
Post: #29
Ok, that works...didn't notice that he went on the EL forums

Last login: Sat Aug 6 09:15:05 on console
Welcome to Darwin!
Matt-Chelens-Computer:~ matthew$
Quote this message in a reply
nabobnick
Unregistered
 
Post: #30
If you want examples on how to incorporate the reversed load assembly instructions check out the file (and related files in i386/ppc/machine):

/System/Library/Frameworks/Kernel.framework/Headers/libkern/OSByteOrder.h

You cannot link to this framework and use it directly but you can copy the code and modify it to suit your tastes. If you just need little endian support you can simplify the code a bit. Also included are the #define's to check to see if the system is little or big endian and to check if the processor/compiler supports the assembly instructions. And lastly there is a generic implementation of byte swapping if you don't want to use the assembly instructions.
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  P2P or Client/Server? TokyoDan 2 4,647 Aug 3, 2009 06:15 AM
Last Post: georgiph
  Client side prediction in a networked top-down game AndyKorth 0 3,929 Jun 30, 2009 08:35 AM
Last Post: AndyKorth
  how does bind() work in relation to a client. BinarySpike 3 4,156 Aug 23, 2006 02:44 PM
Last Post: OneSadCookie
  Subversion Client BeyondCloister 8 4,133 Jun 7, 2006 01:04 PM
Last Post: ravuya
  host-client matchmaking "server"... dave05 3 4,302 Sep 15, 2005 04:03 PM
Last Post: Steven