As I was playing a game online, and lag came along, I started thinking why it's there. The games definitely aren't using the Cry Engine or anything, nor are there 100's upon hundreds of people in each game? So what about BYOND is causing the lag? Is it old networking? Is it that the way BYOND processes graphics is no OpenGL equal? Maybe that it's language is a third party language(or whatever you would call it), and isn't accessing machine code directly like most high-level languages? Perhaps a combination of the above? Or what?
Thank ya,
Prodigal Squirrel
ID:275997
![]() Mar 24 2005, 11:06 am
|
|
I've probably missed some, but here are the main reasons I can think of right now:
Firstly, BYOND does very little client-side processing. A game like, say, Quake III Arena does a huge amount of client-side processing; movement prediction, all the graphics calculations, and so on. BYOND doesn't have the luxury of doing this; each command (verbs, moves, etc.) has to be sent to the server, processed, and returned before it takes effect, meaning that BYOND games can't be as tolerant of network latency as games written in another language. Secondly, most people who host BYOND games aren't using dedicated servers. They're usually hosting on their home connection, from a home computer, which is doing lots of other things at the same time; or they're using a relatively cheap remote server which also has other servers running on it (not only game servers, but also web/mail/ftp/etc. servers) and is usually a shared server. Thirdly, BYOND is internally restricted to operating at 10 frames per second, which means that even single-player games have noticeable "interface lag". It doesn't help that the graphics code relies on an ancient technology (BitBlt), and that HUD drawing is inefficient. A game written in another language will usually be faster than BYOND; but then again, you have to program it all yourself, which takes aaaages. Especially if you're trying to implement network support. (Believe me, I know; I've done it.) |
I'm not sure we can place Java on the same level as C and C++.
C and C++ source files are compiled to machine code. Java, on the other hand, is compiled to a bytecode, which is later interpreted and converted to machine code by a VM on the machine it's run on. DM is a compiled language as well, so might be a bit lower on the chart. |
I agree, Java is higher level than C/C++.
Java and DM are both bytecode-compiled languages that run on a virtual machine (though Java's is more complicated and more abstracted - which are not necessarily good things, IMO), so they'd be at similar levels. C and C++ are quite low-level. |
Well, I didn't think you were an adult or anything, and yet you seem to have a lot of experience with programming under your belt. I'm 17 also, and the extent of my programming is what HTML I did, BYOND, and a few C++ programs -- The best of which still doesn't do anything but color a console window, draw text borders with the different line character, and resize it to be full screen.
So yeah, I envy that sort of talent at such a young age. Prodigal Squirrel |
A low level language is something like C++, Java.
A high level language is something like DM, PHP.
Observe!
DM is pretty much slow at stuff- it's not built for speed. But if you program efficiently and well, you won't notice any difference.