Craftd:Status: Difference between revisions
Jump to navigation
Jump to search
imported>HACKhalo2 |
imported>HACKhalo2 |
||
| Line 28: | Line 28: | ||
=== 0.2 - In Progress === | === 0.2 - In Progress === | ||
'''Experimental Branch can be found [https://github.com/HACKhalo2/craftd/tree/experimental here]''' | |||
GOAL: Stable core and operation with 100 players over 30 minutes | GOAL: Stable core and operation with 100 players over 30 minutes | ||
* Simple world modifications (digging/placing blocks) ('''In Progress''') | |||
* Simple world modifications (digging/placing blocks) | ** World saving ('''Currently in Memory''') | ||
** World saving | |||
*** Implemented Crimity's seemingly faster chunk hashing code ('''Experimental build in progress''') | *** Implemented Crimity's seemingly faster chunk hashing code ('''Experimental build in progress''') | ||
*** Basic digging ('''Experimental Build | *** Basic digging ('''Experimental Build Done, needs overview''') | ||
*** Basic block placement | **** Creative Mode ('''Done''') | ||
**** Survival Mode ('''Done''') | |||
*** Basic block placement ('''Experimental Build in progress''') | |||
**** Creative Mode ('''Buggy, but Working''') | |||
**** Survival Mode ('''Same as Above''') | |||
*** Chunk Saving/Loading | *** Chunk Saving/Loading | ||
* Implement Protocol 17 (MC 1.8.1) Structs | * Implement Protocol 17 (MC 1.8.1) Structs | ||
** Update survival plugin to 1.8 specs (currently is 1.4) | |||
** Packets ('''Almost Done, need packet [http://wiki.vg/Protocol#Item_Data_.280x83.29 0x83]''') | ** Packets ('''Almost Done, need packet [http://wiki.vg/Protocol#Item_Data_.280x83.29 0x83]''') | ||
*** Check packets against newest protocol for accuracy | *** Check packets against newest protocol for accuracy | ||
** Mobs | ** Mobs | ||
** Per-World Dimension and Mode ('''Partially Complete''') | |||
* Improved Error handling | * Improved Error handling | ||
** Catch socket errors | ** Catch socket errors | ||
Revision as of 07:14, 19 September 2011
|
Status
craftd is on 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.
Roadmap
0.3 - Future (May change)
GOAL: Stable core and operation with 100 player over 24 hours
- Complex world modifications
- Implement simple World Block Actions
- Grass Spread
- Fire Spread
- Water/Lava Spread
- Fix Implementation of Time
- Implement Lighting Engine
- Implement Block Identifiers (Wood, Stone, etc)
- Implement simple World Block Actions
- Basic Mobs
- Implement Pigs
- Implement Cows
- Implement Sheep
- Implement mutant duck/bird thing we call Chickens
- Correctly Implement Creative Mode
0.2 - In Progress
Experimental Branch can be found here
GOAL: Stable core and operation with 100 players over 30 minutes
- Simple world modifications (digging/placing blocks) (In Progress)
- World saving (Currently in Memory)
- Implemented Crimity's seemingly faster chunk hashing code (Experimental build in progress)
- Basic digging (Experimental Build Done, needs overview)
- Creative Mode (Done)
- Survival Mode (Done)
- Basic block placement (Experimental Build in progress)
- Creative Mode (Buggy, but Working)
- Survival Mode (Same as Above)
- Chunk Saving/Loading
- World saving (Currently in Memory)
- Implement Protocol 17 (MC 1.8.1) Structs
- Update survival plugin to 1.8 specs (currently is 1.4)
- Packets (Almost Done, need packet 0x83)
- Check packets against newest protocol for accuracy
- Mobs
- Per-World Dimension and Mode (Partially Complete)
- Improved Error handling
- Catch socket errors
0.1a - Released
Experimental release exploring the Minecraft protocol and various libraries. Basic support for loading worlds and walking around.
Unplanned
These depend on developer interest and current needs.
- Proxy (dotblank?)- re-implement proxy support to front-end other servers for multi-world, protocol optimization, etc.
- InfiniCraft - if this isn't dead, implement it some time https://github.com/InfiniCraft/
Dev stuff
Things that have been hashed out:
- Autotools build system for cross-platform ease & possible distro inclusion
- libevent2 cross-platform event polling and network I/O
- Fast packet state machine and variable length packet decoder
- Pthreads worker pool
- libevent2 integrated httpd
- Daemon basics -- need conventional SIG handlers, SIGHUP, pid locks
- Choose a FOSS license -> Simplified BSD
- Logging. XSI/Single UNIX Specification syslog most likely. -> syslog with alternative stdout selector at runtime.
- Configuration files -> JSON formatted
- Chat, motd, string handling (bstring)
- Basic NBT read and write support
- Chunk sending
- Dynamically tunable worker pool
Future directions/TODO:
These are future research and development ideas in arbitrary order.
- World file format. custom w/import-export? BerkeleyDB?
- Sparse matrix for ^?
- Binaries for Linux, Win32(MinGW), FreeBSD
- Stress test w/large num users - Goal 100+ simultaneous
- Use more zero copy I/O
- JSON-REST admin/status API
- Security audit - perpetual
- Running from a chroot
- Native WIN32 threading with MinGW - needs a contributor/maintainer
- Protocol testing framework
- IPC to an IRC relay agent
- Alternative/improved protocol for NPCs, bots, scripting?