Craftd:Main Page: Difference between revisions

From wiki.vg
Jump to navigation Jump to search
imported>Kev009
mNo edit summary
imported>Wallbraker
(spam)
 
(73 intermediate revisions by 6 users not shown)
Line 1: Line 1:
'''Welcome to the craftd wiki page.  craftd lives at http://mc.kev009.com/craftd/.'''
{{Box|
 
BORDER = #9999FF|
You can find the latest source on github: https://github.com/kev009/craftd/.
BACKGROUND = #99CCFF|
 
WIDTH = 100%|
== Introduction ==
ICON = |
HEADING = '''Introduction''' |
CONTENT = 
[[Image:Craftd-login.png|right|320px]]
'''craftd''' is a third-party implementation of the [http://www.minecraft.net/ Minecraft] SMP server protocol.
'''craftd''' is a third-party implementation of the [http://www.minecraft.net/ Minecraft] SMP server protocol.


The goal of craftd is to provide a <u>high performance, low overhead</u> implementation of the Minecraft Survival Multiplayer (SMP) protocol. After implementing the basics, advanced features such as scripting and extensions shall be considered.
The goal of craftd is to provide a <u>high performance, low overhead</u> implementation of the Minecraft Survival Multiplayer (SMP) protocol
 
craftd keeps modern UNIX daemon philosophy in mind. This includes best practice like async polling I/O, multi-threading, and use of high quality libraries whenever possible. craftd is written in C99 and the current plan is to extend it with Python for scripting.


Check back soon for a test world. Shout out to [http://coesquest.com/ Coestar] for providing me with a copy of Minecraft and the motivation for the project.
craftd keeps modern UNIX daemon philosophy in mind. This includes best practice like async polling I/O, multi-threading, and use of high quality libraries whenever possible. craftd is written in C99. Advanced platform features such as plugins and scripting are offered.


== Status ==
Currently, craftd is managed by Precipice Games developers dotblank and HACKhalo2, hopefully to spark interest again :D .
craftd is on [https://github.com/kev009/craftd/ github]. This is a developer preview for feedback. It doesn't currently implement much of the Minecraft protocol, but you can follow along and track progress. Check back later for release tarballs and eventually binaries.


=== Things that have been hashed out: ===
* You can find the latest source on [https://github.com/PrecipiceGames/craftd/ github].  Feel free to watch or fork!
*Autotools build system for cross-platform ease & possible distro inclusion
* The latest roadmap of craftd is [[Craftd:Status#Roadmap|here]].
*libevent2 cross-platform event polling and network I/O
* Want to help?  Need help?  Come talk!  '''irc.freenode.net #craftd'''.
*Fast packet state machine and variable length packet decoder
* A test world is sometimes available at '''mc.kev009.com:25565''' or '''hackhalo2.com'''.
*Pthreads worker pool
*libevent2 integrated httpd
*Daemon basics -- need conventional SIG handlers, SIGHUP, pid locks
*Choose a FOSS license -> Simplified BSD


=== Future directions/TODO: ===
Shout out to [http://coesquest.com/ Coestar] for providing me with a copy of Minecraft and the motivation for the project.
These are future research and development ideas in arbitrary order.
}} <!-- Wiki tables are annoying. -->
*Configuration files
*Logging. XSI/Single UNIX Specification syslog most likely.
*World file format. NBT or custom w/import-export? BerkeleyDB?
*Sparse matrix for ^?
*Binaries for Linux, Win32(MinGW), FreeBSD
*Stress test w/large num users - Goal 100+ simultaneous
*Dynamically tunable worker pool
*Use more zero copy I/O
*JSON-REST admin/status API
*Security audit - perpetual
*Running from a chroot
*Native WIN32 threading & MSVC support - needs a contributor/maintainer
*Protocol testing framework
*IPC to an IRC relay agent
*Alternative/improved protocol for NPCs, bots, scripting?


== User Documentation ==
{| width="100%"
|- style="vertical-align: top;"
| width="70%" | <!-- Section 1  -->
{| width="100%"
|- style="vertical-align: top;"
| <!-- Section 1-1 -->
{{Box|
BORDER = #669933|
BACKGROUND = #99CC33|
WIDTH = 100%|
ICON = |
HEADING = '''User Documentation''' |
CONTENT = *[[Craftd:Installation|Installing craftd]]
*[[Craftd:Configuration|Configuration]]
*[[Craftd:Configuration|Configuration]]
}}


== Developer Documentation ==
{{Box|
*[[Craftd:Thread_Model|Thread Model]]
BORDER = #993300|
BACKGROUND = #CC0000|
WIDTH = 100%|
ICON = |
HEADING = '''Developer Documentation'''|
CONTENT = *[[Craftd:Thread_Model|Thread Model]]
*[[Craftd:Coding_Style|Coding Style and Notes]]
*[[Craftd:Events|Event handling]]
*[[Craftd:Plugins|Writing plugins]]
*[http://www.wangafu.net/~nickm/libevent-book/ libevent book]
*[http://www.wangafu.net/~nickm/libevent-book/ libevent book]
*[http://mc.kev009.com/libevent libevent2 Doxygen] - Local, up to date copy
*[http://mc.kev009.com/libevent libevent2 Doxygen] - Local, up to date copy
*[http://lists.apple.com/archives/xcode-users/2008/May/msg00665.html C99 Info]
*[http://www.unix.org/2008edition/ POSIX1-2008]
*[http://www.unix.org/2008edition/ POSIX1-2008]
}}
|}
| width="50%" | <!-- Section 2  -->
{| width="100%"
|- style="vertical-align: top;"
| <!-- Section 2-1 -->
{{CraftdMenu}}
[[Category:Craftd]]

Latest revision as of 05:30, 18 February 2013

Introduction

craftd is a third-party implementation of the Minecraft SMP server protocol.

The goal of craftd is to provide a high performance, low overhead implementation of the Minecraft Survival Multiplayer (SMP) protocol

craftd keeps modern UNIX daemon philosophy in mind. This includes best practice like async polling I/O, multi-threading, and use of high quality libraries whenever possible. craftd is written in C99. Advanced platform features such as plugins and scripting are offered.

Currently, craftd is managed by Precipice Games developers dotblank and HACKhalo2, hopefully to spark interest again :D .

  • You can find the latest source on github. Feel free to watch or fork!
  • The latest roadmap of craftd is here.
  • Want to help? Need help? Come talk! irc.freenode.net #craftd.
  • A test world is sometimes available at mc.kev009.com:25565 or hackhalo2.com.

Shout out to Coestar for providing me with a copy of Minecraft and the motivation for the project.

User Documentation
Developer Documentation
Menu