|
のトコだけを読むといいと思います。 |
Kailleraメニュー ココには何を書こうかな... いつもの如く デザイン先行で作ってる ページだから(笑) |
Index:
|
|||
- What is Kaillera?Kailleraって何?Kaillera is software called middleware. Middleware gives applications, such as emulators, the ability to do things not originally supported by the original application. Kaillera makes it possible to play emulators and other applications online. It adds little overhead, and little problem to the developers who choose to incorporate it. In the future, Kaillera may develop into more of a community of users. But first, We will concentrate on making the Kaillera client/server architecture work better and more efficient. Kailleraはミドルウェア(組み込みソフト)と呼ばれるタイプのソフトです。 - Where does the name "Kaillera" come from?Kailleraって名前はどこから来たの?"Kaillera" is a misspelling of a french word that is used for defining bad people who lives in "ghettos"; people who burn cars, kill people, etc.. I think you get the idea. 「Kaillera」は「ゲットー」に住んでいる悪い民族の定義のために使用されるfrench言葉のミススペルです;自動車を燃やす人々は人々などを殺 します。私は、あなたが考えを思いつくと思います。 - Why is my game so laggy when i play?
なぜカクカク(laggy)するの? |
ラグ:
ネットワーク遅延およびピン(Ping)とも言う。「遅れている」とあなたが言えば、ネットワークに詳しい人々はあなたがキーを押した時にあなたのアク
ションが遅れていると考えるハズです。(入力に対し反応が遅れるコト) ラグは、あなたがゲームをしている時にキーのどれもが作動せずゲームがロックしたように見えることではありません。 それは... |
Packet Loss: Over
the
TCP/IP and UDP protocols and the others, data is sent out in little
packets of data. I believe it is approximately a few hundred bytes,
(someone who knows, please let me know). The receiving computer
reassembles these packets, according to stamps on them, into what it
was supposed to be. In UDP, which Kaillera uses, these can be received
out of order and there's a timestamp on them so that they can expire.
Ex.: If you're playing a fighter and you press a punch, you don't want
it to be received after the kick you pressed first; fighting would be
downright hilarious. You may never get a UDP packet since it is just
sent once and that's it. Once it's expired, if your computer ever DOES
get it, the packet is checked against the computer's clock and just
ignores it.
In TCP/IP, packet loss does not happen as often, and the participating
computers' connection seems to last longer, usually until both
computers feel the connection has just been lost. (This is why IRC,
laggy as all hell, still works). TCP/IP replies with what we call an
"ACK" (acknowledgement) when a packet has been received. Until that,
the other computer keeps sending the little packet out until it gets
the "ACK". I don't know the frequency of resending. (Again, someone who
knows, please send the information in. I would imagine it's more than
300 or so milliseconds.) The problem is, this takes up bandwidth on a
connection, thus for things like Kaillera, UDP is much more preferred
so lag can be reduced.
面倒だから訳文を整えません下の説明の方を読んでください。(そ
の方が楽だ)
TCP/IPとUDPのプロトコルおよび他のもの上では、
データはデータの小さなパケット(小包)で発送されます。私は、それがおよそ数百バイト(知っている人、知らせてください)であると信じます、受信コン
ピューターは、それがそうであると思われたものへ、それらの上のスタンプによれば、これらのパケットを再集合します。UDP(Kailleraはそれを使
用する)では、これらは乱れて受け取ることができます、また、それらの上にタイムスタンプがあります、その結果、それらは終了することができます。例え
ば:戦士をしており、パンチを押せば、それが最初に押したキックの後に受け取られることは望みません;戦いは全く快活でしょう。それがかつてちょうど送ら
れ、それだけであるので、UDPパケットを得てはなりません。一旦それが吐き出されれば、場合、あなたのコンピューター、常に、DOESはそれを得ます、
パケットはコンピューターの時計と照合され、それをちょうど無視します。
TCP/IPでは、パケット・ロスが同じようにしばしば起こりません。また、参加するコンピューターの接続は、接続がたった今失われたと両方のコンピュー
ターが思うまで、より長く通常続くように見えます。(これはそうです、なぜIRC、すべての地獄としてのlaggy、まだ工場
)。TCP/IPは、パケットが受け取られた場合、私たちが「ACK」(認識)と呼ぶもので返答します。それまで、それが「ACK」を得るまで、別のコン
ピューターは小さなパケットを発送し続けます。私は、再び送る周波数を知りません。再び、知っている人、情報を提出してください。私は、それが300程度
ミリセカンド以上であると想像しましょう。その問題はそうです、これは、Kailleraのように事態のために接続で帯域幅をこのように取り上げます、遅
れを縮小することができるように、UDPははるかに好まれます。
パケットロス ...他
<翻訳者による説明> 上記の文はKailleraの説明だけでなく TCP/IPとUDPについての説明を含んでいるので思い切って訳文を整えずにこちらで勝手に解説させていただきます。(その方が楽だから) TCP/IP及びUDPなどのコンピュータ通信プロトコル(通信における決まりゴト全般)は 送るデータが大きなものであっても細かく細分化してパケット(小包)という単位にして送られます。サイズは原文の通り数百から数KB程度だったように 思います。 このパケット毎に宛先やデータを復元する順番などの情報を付加します。(有効時間も設定されるので時間が経つと腐ります (笑)) インターネットではデータは直接相手のコンピュータに接続されるわけではなく網の目状につながったコンピュータ上でバケツリレーのようにして送られます。 (学生時代 授業中に「OX君にコレ回して」ってやり取りしてた手紙を想像してください) 直接つながっているように見えてもソレは相手にデータが届きそこから「受け取ったよ」って返事が中 継されているに過ぎません。 TCP/IPではデータを送る際に相手に接 続を確認し新しいデータを送ってもいいと返事が来るのを待ちます。 ですからパケットは1つ毎に受信の確認がないとデータは発送されないのでデータはパケットに分割した時の順番で相手に到達しますし受信できてないときは再 発送もします。ですから確実に相手先にデータが届きますが少々手間(時間)がかかります。 コレに対しUDPでは送り先が判るなら そのままデータは送りつづけ次から次にデータを発送していきます。 ですからある中継コンピュータがパケットを受信したまま停止したり 混雑している為に他のルートを通るように指示されたりするとパケットが届かなかったり順番どおりには到達しないことになります。(インターネットでは茶飯 事(さはんじ)です) パケットロスとはこのパケットの消失のことを言います。 UDPはデータの発送にかかる手間がないため速く発送できます。このためKailleraはこのUDPをプロトコルとして採用しています。 データの確実性を取る為にはしばしばアプリケーションレベルでの整合性のチェックを行いますがKailleraではココまではサポートされていないようで す。パケットロスが発生するとデータがまだ到達しないとみなされてゲームの進行が停止したりします。 ePSXeなんかはゲームルーム閉じないで抜けるという かなり行儀が悪いアプリケーションです。 このためサーバーが無駄なパケット待ちするのでかなりサーバー側に迷惑を掛ける為ePSXe許可サーバー以外では絶対に ゲームを立てないこと。 |
Choppiness:
You will see choppiness in the game
if there is some lag happening. The resulting effect from packet loss
in UDP is that you may have some packets that are not received. This
would not only cause lag, since the timing would be held back, but you
may also miss a transmitted move or button press. One of the benefits
of UDP is that all of the bandwidth of both computers is used to full
and not wasted resending packets. The problem is if a packet is not
received the computer that was supposed to get it has nothing to do.
With the way Kaillera is set up, (which it has to be, or desyncs would
occur whenever a packet is lost) the program is set to stick until it
receives a packet so the other player(s) can move. Work some brain
cells for a second and you can see this was the only sensible thing to
do. This prevents Kaillera from desyncing. Those of you who frequently
get perfect games feel rested: you are getting relatively low packet
loss: less than 5%. 0 is quite uncommon just because there's so much
traffic everywhere. High speed connections usually have much lower
rates of packet loss than dialup. This entire process works so fast
however that even though you think you're playing a smooth game,
packets are still getting dropped and despite the fact that this is
happening, you can't tell Kaillera has stopped working for 2
milliseconds.
In addition, Kaillera implements modern technology which make UDP
packet transmission much more reliable. But even with that, if your
connection is bad, there's no magical way around it.
If your games keep getting choppy, check out what's going on with your
internet connection. For instance, if you're in the middle of any file
transfer while playing with Kaillera or are using other bandwith-eating
applications.
変わりやすさ:
ある遅れ出来事がある場合、ゲームで変わりやすさを見るでしょう。UDPのパケット損害からの生じる結果は、受け取られないいくつかのパケットを持ってい
るかもしれないということです。タイミングが阻止されるので、これはだけでなく遅れを引き起こすでしょう、しかし、さらに、送信された動きかボタン圧迫を
逃すかもしれません。UDPの利点のうちの1つは、両方のコンピューターの帯域幅がすべて十分に使用され、そのすべてがパケットを再び送って浪費されると
は限らないということです。問題は、パケットが受け取られないかどうかです、それを得ることになっていたコンピューターは、することは何も持っていませ
ん。Kailleraがセット・アップされる(それはなければなりません(それ)、あるいは、パケットが失われる場合は常に、desyncsが生じるで
しょう)方法で、プログラムは、別のプレーヤー(s)が移動することができるようにそれがパケットを受け取るまで突き刺さる準備ができています。第2のい
くつかの脳細胞を動かしてください。そうすれば、これが行う唯一の知覚可能なことだったことを理解することができます。これはdesyncingから
Kailleraを防ぎます。あなた方は休止させられたと感じます:比較的低いパケット・ロスを得ています:5%未満。これほど多くの交通がどこでもある
だけで、0は全く珍しい。高速接続は、通常ダイアルアップよりパケット・ロスのはるかに低い割合を持っています。しかしながら、このプロセス工場全体はそ
のように断食します、たとえ滑らかなゲームを行っているとあなたが思っても、パケットはまだ得ています、落ちた、また、これが起こっているという事実にも
かかわらず、Kailleraが2ミリセカンドで働くことをやめたことが分かりません。
さらに、Kailleraは現代の技術をインプリメントします、それはUDPパケット送信をはるかに、もっと信頼できるようにします。しかし、それでさ
え、あなたの接続が悪い場合、そのまわりで魔法の方法はありません。
あなたのゲームが変わりやすくなり続ける場合は、何があなたのインターネット接続で起こっているかチェックしてください。例えば、Kailleraで遊ぶ
間に任意のファイル転送の最中か、他のbandwithを食べる適用を使用していれば、
●カクカクする/重い(laggy) ラグが大きいメンバーが いる時などにはゲーム進行が遅くなりキャラクターがカクカク動きます。この状態をネットゲームでは重いといいます。 (PC性能が足りないときはゲーム進行は遅くならずにフレームスキップが発生するのでゲーム画面が飛び飛びになり ます。) Ping表示が良くても ソレはある瞬間にあなたのPCがサーバーに信号を送って帰ってくるまでに掛かった時間なので常にその速度が出ているわけではないです。ゲーム中に中継地点 で渋滞が発生して重くなることもあります。 またプロバイダによっては秒単位で早く伝達できる瞬間できない瞬間が周期的に来てPing表示は速いのにデータ転送は全然でないとコトかもあるみたい。誰 と遊んでも重いって時は自分のプロバイダを疑ってみる必要があるかもしれません。 また タマに一つのサーバーに何度も出入りして自分のPing表示値を良くしようと する人がいますがソレは無意味なばかりかサーバーの迷惑になるのでしないように してください。 ●ズレ(desync) プレイヤー間で入力情報が不一致になって他のプレイヤーとゲームの進行がずれること。 たとえばあるゲームでプレイヤーが2人いてプレイヤーがそれぞれ Player1: 上,右,右,下 Player2: 下,下,左,右 の様に入力していたとし、コレがちゃんとサーバーに到達していたならばサーバーから各プレイヤーに Server: 上下,右下,右左,下右 の様に各プレイヤーにデータが送られてきますが (ゲームはP1P2のデータを合成した ものを受け取ります。自分の入力であってもゲームは必ずサーバーを経由した入力データを使います。) Player2の3番目の入力データがパケットロスによってサーバーから届かなかった時Player2のゲーム上では プレイヤー1のゲーム進行状態 Player1: 上,右,右,下,… Player2: 下,下,左,右,… プレイヤー2のゲーム進行状態 Player1: 上,右,下,… Player2: 下,下,右,… の様にズレていきます。 ホンの一回のロスでもゲームの進行状況が変わってしまいます。 こうなったらゲームをリセットしてやり直しになります。 (EmeraldMAMEならズレてるかどうかの確認やセーブデータの送信などで少し前の状態で復帰できるのでEmeraldMAMEの使用を薦めま す。) |
Desync is a thorn
in the side of playing emulators over a network. If you want to know
why this also happens in PC games, keep reading this paragraph,
otherwise skip down a bit. This also comes up in real time strategy
games. For example Starcraft, those of you that play(ed) it, you know
each player can have around 100 or more units, not to mention
buildings, at once. Maybe each on screen "entity" takes about 200
bytes. That's 200 entities for each player, 4 kilobytes for those
entities. If there are 8 players, that's 32k. Your 56k modem can not
send 32 kilobytes per second reliably. In the game Black and White, you
can have unlimited amounts of villagers. The more villagers, the more
houses, food, wood, and prayer power you get. That's a ton of data that
needs to be sent to EVERY player. Peer-to-Peer games do not usually
send every single piece of data to each computer. Obviously, that would
be too much data to send consistently, and quite a waste of time. So
instead, they do something like what Kaillera does, send tiny updates.
Desyncはネットワーク上でエミュレータ
をする上でのとげです。
なぜこれがPCゲームでさらに起こるかあなたが知りたい場合、このパラグラフを読み続けること、そうでなければ段落を下ってスキップします。
これは、さらにリアル・タイム戦略ゲームで上がります。例えばスタークラフトのようなものをあなたはプレイしたことがあるならば、各プレーヤーが建物は言うに及ばす約100以上のユニットを持つことができることを知っているでしょう。
恐らく、各々はスクリーン「実体(entity)」上で約200バイトをとります。
それは、それらの実体のために4キロバイト各プレーヤーの200の実体です。
8人プレーヤーがいれば、32kにもなります。
あなたの56kのモデムは、毎秒32キロバイトを安定して送ることができません。
黒く白いゲーム(the game Black
and White)では、無制限の村人を所有で
きます。
多くの村人、より多くのハウス、食物、森および祈願力(prayer power)を得ます。それは各プレーヤーへ送られる必要のある大量の(a ton
of)データです。
ピア・ツー・ピア・ゲームは、通常各コンピューターへデータのすべてのデータの1つ1つを送るとは限りません。
明らかに送るデータは多すぎる上にそれらは時間の無駄になるでしょう。
したがって、代わりに、Kailleraが小さなアップデートを送るコトで済むようにします
In essence, Kaillera just sends keystrokes. The server you connect to
is the host. NOT whoever makes the room for the game. Every key you
press while playing is sent to the server you connect to and it then
routes it back to you and to everyone else. Again, it does not
matter who hosts a game, the playing experience on a single
server will be the pretty much the same unless one
player reconnects to their ISP.
本質的には、Kailleraはキー入力だけを送ります。接続するサーバーはホストです。
NOT、誰かがゲームルームを作ります。
遊ぶ間(ゲーム中)に押すすべてのキーは、接続したサーバーの
もとへ送られ、またそれは次にあなた及び他のプレイヤーすべてにそれを送ります。
再び、誰がゲームを主催したかは重要ではありません、一箇所のサー
バーでなら 違うプレイヤーと繋いだとしても遊ぶ
感覚は殆んど同じになるはずです。
When you press a key while in Kaillera, as stated above, it is sent to
the server and sent to everyone else:
Kaillera中にあなたがキーを押した時 ソレはサーバーに送られそこから以下のように全てのプレイヤーに送られます。
- Player 1If player 1 presses punch, it goes to the server, and then it follows the lines back to each player. If one player is experiencing heavy packet loss, all players stick because as mentioned in the above topic:
/
Server - Player 2
\
- Player 3
No and no.
いいえ。
First, Kaillera itself is NOT part of MAME in ANY WAY, nor is it based
on or contain any code from MAME. We do have a Kaillera-enabled version
of MAME called MAME32k and its source code available for download on
the Kaillera website. The MAME license does not say that every project
based on it has to be open source. Furthermore, MAME is not GPL. Its
policy just asks each "forked" project to change the name so it doesn't
interfere with the MAME name.
最初に、Kailleraはそれ自身ANY
WAYの中のMAMEのNOT部分です、および、上に基づいて、それである、あるいはMAMEからのどんなコードも含んでいます。私たちは、
MAME32k、およびKailleraウェブサイト上のダウンロードに利用可能なそのソース・コードと呼ばれるMAMEのKailleraが使用可能な
バージョンを行っています。MAMEライセンスは、それに基づいたすべてのプロジェクトが開いた出所でなければならないと言いません。更に、MAMEは
GPLではありません。その政策は、それがMAME名に邪魔をしないように名を変更する各「叉状の」プロジェクトをちょうど尋ねます。
Kaillera supports
the MAME project! We enjoy and encourage its further development.
KailleraはMAMEプロジェクトをサポートします!私たちは
その一層の開発を楽しみ促進します。
要するにKailleraはMAMEではなくの
Kaillera対応のMAMEから呼び出されているルーチンなので MAME部分のソースが公開されているのでライセンス違反じゃないってコトです。 KailleraClient.DLLはMAMEじゃないものね! ンなコト言ったら MAMEとは関係ないWin32やDirectXのソース等も公開しなきゃならないって話になるよね。MAMEにそんな権利がないことは誰でもわかるで しょ?当然当然!! KailleraがDLLなのはこういう訳らしいね。おかげでMAME以外でもとても簡単に使えるのでありがたい。 |
So you want to run a
server! Running one off your dsl or cable modem at home is not going to
be the best way to go. It will work, however you will find that you're
quickly up against the limits of the technology.
Your best bet is to find a shell account. What is a shell account, you
ask? Basically its a way of running stuff on a remote machine that is
connected to large amounts of bandwidth. They vary in price. Usually,
you can find one for about $15(US) a month. Call up your ISP and ask
them if they offer shells. If they ask what you want a shell for tell
them that you want to run a cgi shopping cart program, usually ISP's
are very finicky about what runs on a shell because of all the 3r33t
irc kiddies that run bots or eggdrops. Why do they care? Well many
times a person running a eggdrop might have offended someone, in some
way, and the only way to get back at them is to DOS (denial of service)
the machine until it breaks and the bot disappears. Hence, the reason
you don't want to tell them about running a Kaillera server just yet.
Now that you've purchased your shell account, you're probably wondering
how to use it. First thing's first; make sure your isp gives you the ip
or url for the shell server as well as your username/login. To get
there, quickly just click on the Windows Start button, go to Run, and
type in "telnet <your.shell.address.here>" (without the quotes)
and click OK. Now, a window should pop up asking for your username and
password. Enter those as given to you by your service. If successful,
you're now in your shell! The built in windows telnet client is not
very full-featured, we recommend using NetTerm. You can get NetTerm at http://starbase.neosoft.com/~zkrr01/.
Most shells come equipped with lynx installed. Lynx is a text-based web
browser. At the shell prompt type in "lynx" (again no quotes) and hit
enter. Press G then type in http://www.kaillera.com. Use the arrow keys
to go to the different links, find the download page and download
kaillera for Linux, BSD, or whatever OS version your provider's shell
is running on. Save the file and press q to quit lynx.
Type in "ls" (no quotes) and hit enter. Hopefully you're going to see
kaillerasrv.tar.gz. If so, go to the next step. If not, try and
download it again. (Alternatively, you can download it to your local
computer, then use an ftp program to transfer it to your shell.)
Type "tar -xzf kaillerasrv.tar.gz" and hit enter. You should now have a
few more files in your home directory.
Next, type "chmod +x kaillerasrv" and hit enter.
Finally, type "./kaillerasrv" and hit enter. You'll see some stuff
about touching the master server and so on. Congrats! Your server is
working.
So now you've gotten it to run, but every time you quit your telnet
program, your server dies. That's easy enough to fix. Instead of the
above command, just type "./kaillerasrv &". The "&" makes it
run in the background. IMPORTANT: If you get all the touching kaillera
server crud on your screen just hit ctrl-c. Kaillerasrv will still run.
Also, there will be a number given after you hit enter, that's the
process ID. Make a note of it in case you have to bring the server down
later. Alternatively you can use the command "top" to find the process
ID if you forget/lose it.
If you decide you want to log the content of your Kaillera server, use
the following steps to start your server.
First, type "touch kaillerasrv.log", hit enter. Then type
"./kaillerasrv > kaillerasrv.log &". This will log your server's
output to the kaillerasrv.log file. IMPORTANT: This method will make
your log file grow VERY quickly. We suggest periodically clearing out
the contents of your log file.
Do a search for VI faq on Google. (Pronounced vee aye, not vi! Some *nix diehards will take your firstborn child for making that mistake!) VI is much like notepad, a text editor. It's pretty daunting to a first time user, so you may be better off just opening the kaillerasrv.conf file in notepad, then ftp it to your shell account.
Having fun with
a log file:
Ok I'm not a grep master, and I wont pretend to be one. Hopefully
someone will contribute here, but here is some stuff I've done with it.
Count how many visitors you've had:
grep connected kaillerasrv.log -c
You can also redirect it into a text file:
touch count | grep connected kaillerasrv.log -c > count
That's useful if you want to have a web page with a count of how many
visitors you've had. Poke through the log file, there are many
interesting greppy stuffs you can do with it, only limited by your
imagination.
"My log file is
80 megs and my ISP is pissed!"
There is a program out there called logrotate. You can run it as
yourself. I don't think root access is required for it, but you will
have to d/l it to your shell if you're going to use it. Basically it
will rename kaillerasrv.log to something else, touch a new
kaillerasrv.log and compress the old one on a scheduled time.
"Ok, it's been running for a few weeks now and I need to restart it."
Remember earlier when I said write down that number after you did a
"./kaillerasrv &"? Here is where we put it to use:
kill 32134 <----put your own PID in
or you can do a:
killall -9 kaillerasrv
Another tip:
Making the Kaillera server something the ISP wants is easy. Just make
sure you mention their name and URL in either the server name or
location field in the kaillerasrv.conf file. Something as simple as
"(hosted by myISP www.myISP.com)" would suffice. Most of the time, the
shell admin is going to see the kaillerasrv process, then go digging
around in your home directory to find out what it is. If they are smart
enough to put 2+2 together, they'll see its for Kaillera, and they'll
look at your .conf and log file. Once opened, they'll see that you've
been giving them free advertising, and a ton of users have been seeing
it. Hopefully, that'll be enough for them to leave you alone.