Skip to content

TacoGuyAT/SharpMinerals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SharpMinerals License: Apache 2.0 .NET 8.0 Status: early / WIP Discord

An experimental ECS-based voxel simulation engine and framework, primarily focusing on implementing a future-proof, extendable and moddable Minecraft: Java Edition server in C#.

Current state

While clients can connect to the server and interact with the world, keep in mind the project is in its very early stage. Player can connect, break/place blocks, use inventories, drop items, use commands, chat and it all will be saved onto disk. It's compatible with MCJE 1.19.4-1.20.1 using a version-agnostic protocol abstraction and we also have modding, including custom blocks and items.

I primarily design it with API in mind first, and optimizations later, but it doesn't mean we're running slow, especially since server supports NativeAOT. It should be easy and straight-forward to create and implement new content, constructing it from a pre-made components or making own ones if necessary. Sample mod got a few examples on how can you use existing ones and how to create your own object components.

Priorities

  • Gamemodes
  • Better type mapper
  • Refactor version-specific code into Vanilla mod
  • Feature parity with Vanilla server
  • Entity AI components
  • Bedrock Edition support
  • Runtime generated resource packs
  • More async and multi-threading
  • Many many more features and enhancements!

Performance

While it's too early to talk about performance, I still find it impressive to be able to show you this demo, which runs an AOT build:

demo.mp4

I will focus on performance after finishing basic feature set.

Quick start

Building from source

  1. Install the .NET 8.0 SDK.
  2. Clone the repository:
    git clone https://github.com/TacoGuyAT/SharpMinerals.git
    cd SharpMinerals
  3. Build the solution:
    dotnet build SharpMinerals.sln
  4. Run the server:
    dotnet run --project SharpMinerals.CLI
  • Or run build using NativeAOT:
     dotnet publish -p:AOT=true
  1. Launch Minecraft: Java Edition (version 1.19.4–1.20.1) and connect to localhost:25565.

Contributions

To help this project you can open issues, submit code or support me with a small donation.

Credits

License

Apache License 2.0 — see LICENSE and NOTICE.

Minecraft is a trademark of Mojang Synergies AB. SharpMinerals is an independent project, not affiliated with or endorsed by Mojang or Microsoft.

About

An experimental ECS-based Minecraft server.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors