-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the official documentation for Cobblit Engine, a high-performance game server engine developed in Go (leveraging the Dragonfly ecosystem) and optimized to run directly on mobile devices and local servers (such as Android/Termux).
Cobblit Engine is designed to bring stability, high speed, and support for dynamic extensions even on restricted hardware, bypassing native Go compilation limitations on mobile through robust software engineering solutions and CGO.
Cobblit Engine manages multiple subsystems concurrently using Go's lightweight routines (Goroutines):
- Network Core: Optimized connection management for Minecraft Bedrock protocol players.
-
Economy & Worlds Subsystem: Integrated control of multiple worlds (e.g.,
world,nether) and persistent player balances. - Command Registry: A wide range of native administration, moderation, status, and game rules commands.
Since Go's native plugin package (plugin) is blocked by the operating system on Android, Cobblit Engine implements a high-compatibility dynamic loader based on CGO (dlopen).
External plugins are compiled in C-Shared format (-buildmode=c-shared), generating .so files that communicate directly with the server engine.
Standard template for creating compatible plugins:
package main
import "C"
import "fmt"
func main() {}
//export OnEnable
func OnEnable() {
fmt.Println("[MeuPlugin] Successfully loaded via CGO in Cobblit Engine!")
}Compilation command in Termux:
CGO_ENABLED=1 go build -buildmode=c-shared -o MeuPlugin.so main.go
Simply move the generated .so file to your server's /plugins folder so the engine automatically recognizes it on startup.
- Phase 1 (Completed): Core Go architecture setup, multi-world support, and operator commands.
- Phase 2 (Completed): Implementation of dynamic .so plugin loading via CGO for Android/Termux.
- Phase 3 (In Progress): Expansion of internal APIs to allow external .so plugins to handle player events and register custom commands natively.