Source code[edit]
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="http://ftp.cerias.purdue.edu/pub/doc/rfc/authors/rfc2629.xslt"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY rfc6347 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6347.xml'>
<!ENTITY rfc4732 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4732.xml'>
<!ENTITY rfc5694 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5694.xml'>
<!ENTITY rfc5765 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5765.xml'>
<!ENTITY rfc3629 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3629.xml'>
]>
<?rfc symrefs="yes"?>
<?rfc sortrefs="no"?>
<?rfc strict="yes" ?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<?rfc inline="no"?>
<?rfc compact="yes"?>
<?rfc editing="no"?>
<?rfc private="Niotso Project"?>
<?rfc header="Niotso Project"?>
<?rfc subcompact="no"?>
<?rfc toc="yes"?>
<?rfc tocappendix="yes"?>
<?rfc tocindent="yes"?>
<rfc ipr="trust200902" docName="draft-fatbag-niotso-protocol-00" category="std">
<front>
<title>Niotso Protocol</title>
<author surname="Fatbag" fullname="Fatbag">
<organization>Niotso Project</organization>
<address>
<email>X-Fi6@phppoll.org</email>
<uri>http://wiki.niotso.org/User:Fatbag</uri>
</address>
</author>
<date year="2012"/>
<area>Applications</area>
<keyword>Niotso</keyword>
<keyword>The Sims Online</keyword>
<abstract><t>This document defines the Niotso Protocol.
Niotso is an open source re-implementation of the game engine used in
The Sims Online, a massively multiplayer online game (MMOG). The protocol
provides communication for synchronized world simulation without realtime
collision detection.
</t></abstract>
<note title="Status of This Memo">
<t>This document is a working draft which may be edited by anybody visiting
the Niotso website until finalization. It may be amended many times with
or without community approval.</t>
<t>Currently, the bitstream is not frozen.</t>
</note>
<note title="Copyright Notice">
<t>Copyright (c) 2012 Niotso Project and the persons identified as the
document authors. All rights reserved.</t>
<t>Permission to use, copy, modify, publish, display, and/or distribute
this document, including any text and Code Components extracted from this
document, in any medium and for any purpose with or without fee is hereby
granted, provided that the above copyright notice and this permission
notice appear in all copies.</t>
<t>THE DOCUMENT IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
WITH REGARD TO THIS DOCUMENT INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR ACCURACY OF THIS DOCUMENT.</t>
</note>
</front>
<middle>
<section title="Introduction">
<t>Lorem ipsum</t>
<section title="Notations">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" in this document are to be interpreted as
described in <xref target="RFC2119"/>.</t>
</section>
</section>
<section title="Packet Configuration">
<t>The Niotso Protocol functions over the User Datagram Protocol (UDP)
using encryption provided by Datagram Transport Layer Security (DTLS)
as described in <xref target="RFC6347"/>.</t>
<t>The public key of the server used to perform the handshake SHOULD be
distributed alongside the clients through a secure means involving a trusted
third party such as HTTPS. The key MAY be occasionally changed and should
be done so in combination with a mandatory update of the client software.</t>
<section title="Control Modes">
</section>
<section title="Arithmetic Coding">
</section>
</section>
<section title="Sessions">
<section title="Connection Establishment">
<t>Secure communication between the client and server is established
using DTLS version 1.0. The channel is opened when the client logs into
a user account and is closed when the client logs out.</t>
<t>If the server fails to identify, the client MUST close the channel.</t>
</section>
<section title="User Authentication">
</section>
<section title="Closing a Session">
</section>
</section>
<section title="User Controls">
<section title="Global User Controls">
<section title="Profile Controls">
</section>
</section>
<section title="Log-in Controls">
</section>
<section title="Select-A-Sim Controls">
</section>
<section title="Create-A-Sim Controls">
</section>
<section title="Map Controls">
</section>
<section title="Lot Controls">
<section title="User Action">
</section>
</section>
</section>
<section title="World Simulation">
<section title="World Events">
</section>
<section title="Synchronization">
</section>
</section>
<section title="Communication">
<section title="Text Messaging">
<section title="Server Notices">
</section>
<section title="Private Text Messaging">
</section>
</section>
<section title="Voice Chat">
<section title="Private Voice Chat">
</section>
</section>
</section>
<section title="Security Considerations">
<t>None.</t>
</section>
</middle>
<back>
<references title="Normative References">
&rfc2119;
&rfc6347;
&rfc3629;
</references>
<references title="Informative References">
&rfc5694;
&rfc5765;
&rfc4732;
</references>
</back>
</rfc>
Niotso Project Fatbag
Niotso Project
November 17, 2012
Niotso Protocol
Abstract
This document defines the Niotso Protocol. Niotso is an open source
re-implementation of the game engine used in The Sims Online, a
massively multiplayer online game (MMOG). The protocol provides
communication for synchronized world simulation without realtime
collision detection.
Status of This Memo
This document is a working draft which may be edited by anybody
visiting the Niotso website until finalization. It may be amended
many times with or without community approval.
Currently, the bitstream is not frozen.
Copyright Notice
Copyright (c) 2012 Niotso Project and the persons identified as the
document authors. All rights reserved.
Permission to use, copy, modify, publish, display, and/or distribute
this document, including any text and Code Components extracted from
this document, in any medium and for any purpose with or without fee
is hereby granted, provided that the above copyright notice and this
permission notice appear in all copies.
THE DOCUMENT IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL
WARRANTIES WITH REGARD TO THIS DOCUMENT INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
ACCURACY OF THIS DOCUMENT.
Fatbag [Page 1]
�
Niotso Project Niotso Protocol November 2012
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Notations . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Packet Configuration . . . . . . . . . . . . . . . . . . . . . 3
2.1. Control Modes . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Arithmetic Coding . . . . . . . . . . . . . . . . . . . . . 3
3. Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Connection Establishment . . . . . . . . . . . . . . . . . 3
3.2. User Authentication . . . . . . . . . . . . . . . . . . . . 3
3.3. Closing a Session . . . . . . . . . . . . . . . . . . . . . 3
4. User Controls . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.1. Global User Controls . . . . . . . . . . . . . . . . . . . 4
4.1.1. Profile Controls . . . . . . . . . . . . . . . . . . . 4
4.2. Log-in Controls . . . . . . . . . . . . . . . . . . . . . . 4
4.3. Select-A-Sim Controls . . . . . . . . . . . . . . . . . . . 4
4.4. Create-A-Sim Controls . . . . . . . . . . . . . . . . . . . 4
4.5. Map Controls . . . . . . . . . . . . . . . . . . . . . . . 4
4.6. Lot Controls . . . . . . . . . . . . . . . . . . . . . . . 4
4.6.1. User Action . . . . . . . . . . . . . . . . . . . . . . 4
5. World Simulation . . . . . . . . . . . . . . . . . . . . . . . 4
5.1. World Events . . . . . . . . . . . . . . . . . . . . . . . 4
5.2. Synchronization . . . . . . . . . . . . . . . . . . . . . . 4
6. Communication . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.1. Text Messaging . . . . . . . . . . . . . . . . . . . . . . 4
6.1.1. Server Notices . . . . . . . . . . . . . . . . . . . . 4
6.1.2. Private Text Messaging . . . . . . . . . . . . . . . . 4
6.2. Voice Chat . . . . . . . . . . . . . . . . . . . . . . . . 4
6.2.1. Private Voice Chat . . . . . . . . . . . . . . . . . . 4
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 4
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 4
8.1. Normative References . . . . . . . . . . . . . . . . . . . 4
8.2. Informative References . . . . . . . . . . . . . . . . . . 5
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 5
Fatbag [Page 2]
�
Niotso Project Niotso Protocol November 2012
1. Introduction
Lorem ipsum
1.1. Notations
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Packet Configuration
The Niotso Protocol functions over the User Datagram Protocol (UDP)
using encryption provided by Datagram Transport Layer Security (DTLS)
as described in [RFC6347].
The public key of the server used to perform the handshake SHOULD be
distributed alongside the clients through a secure means involving a
trusted third party such as HTTPS. The key MAY be occasionally
changed and should be done so in combination with a mandatory update
of the client software.
2.1. Control Modes
2.2. Arithmetic Coding
3. Sessions
3.1. Connection Establishment
Secure communication between the client and server is established
using DTLS version 1.0. The channel is opened when the client logs
into a user account and is closed when the client logs out.
If the server fails to identify, the client MUST close the channel.
3.2. User Authentication
3.3. Closing a Session
4. User Controls
Fatbag [Page 3]
�
Niotso Project Niotso Protocol November 2012
4.1. Global User Controls
4.1.1. Profile Controls
4.2. Log-in Controls
4.3. Select-A-Sim Controls
4.4. Create-A-Sim Controls
4.5. Map Controls
4.6. Lot Controls
4.6.1. User Action
5. World Simulation
5.1. World Events
5.2. Synchronization
6. Communication
6.1. Text Messaging
6.1.1. Server Notices
6.1.2. Private Text Messaging
6.2. Voice Chat
6.2.1. Private Voice Chat
7. Security Considerations
None.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Fatbag [Page 4]
�
Niotso Project Niotso Protocol November 2012
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security Version 1.2", RFC 6347, January 2012.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
8.2. Informative References
[RFC5694] Camarillo, G. and IAB, "Peer-to-Peer (P2P) Architecture:
Definition, Taxonomies, Examples, and Applicability",
RFC 5694, November 2009.
[RFC5765] Schulzrinne, H., Marocco, E., and E. Ivov, "Security
Issues and Solutions in Peer-to-Peer Systems for Realtime
Communications", RFC 5765, February 2010.
[RFC4732] Handley, M., Rescorla, E., and IAB, "Internet Denial-of-
Service Considerations", RFC 4732, December 2006.
Author's Address
Fatbag
Niotso Project
Email: X-Fi6@phppoll.org
URI: http://wiki.niotso.org/User:Fatbag
Fatbag [Page 5]
�
Discussion[edit]
- Should we include support for TCP to allow people to connect over Tor? Should the whole protocol be TCP-only?
- We can train the arithmetic coding codebooks all the way up until the release candidates.
v · d · eNiotso |
---|
| Articles | | | Status | | | Software | |
|