GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feather/server at develop · Redrield/feather

Expand file tree

/

server

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
 
 
/

server

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
chat
chat
 
 
chunk
chunk
 
 
config
config
 
 
entity
entity
 
 
lighting
lighting
 
 
network
network
 
 
packet_buffer
packet_buffer
 
 
physics
physics
 
 
player
player
 
 
src
src
 
 
template
template
 
 
test
test
 
 
types
types
 
 
util
util
 
 
weather
weather
 
 
worldgen
worldgen
 
 
Cargo.toml
Cargo.toml
 
 
README.md
README.md
 
 

README.md

feather-server and its subcrates, implementing a server on top of feather-core.

Subcrates

Please see the book to find out in which crate new features belong. If you're not sure where to put something, feel free to ask on our Discord.

The philosophy here is to have many small crates to enforce modularity. If a crate starts getting too large, it will be split into subcrates.

To create a new crate, please copy the template directory and update the package name for the new crate.

Note that all crates should have #![forbid(unsafe_code)] at the crate root unless it is made explicit here that a crate contains unsafe code.

  • types: all components and resources which subcrates would like to make available to other subcrates. Acts somewhat like a more elegant C/C++ header file.
  • util: small utility functions as well as trivial game logic which doesn't need to be in its own crate (e.g. world time)
  • entities: entity implementations (items, arrows, falling blocks, mobs, ...). UNSAFE: used for item collection in object::item::item_collect:system.
  • player: logic pertaining directly to players, e.g. chunk sending, chat, the view system. Also contains all packet handlers.
  • chat: chat handling and (soon) commands
  • network: the TCP listener and IO worker implementation for communication with clients
  • config: the configuration file and struct, plus loading/saving logic
  • chunk: the chunk worker and chunk loading/saving logic
  • physics: physics systems, including entity and (soon) fluid mechanics
  • lighting: block and sky lighting
  • packet_buffer: various data structures to buffer packets between the IO worker and the server threads
  • weather: weather handling, scheduling
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.