Midgarts
Midgarts Client is an attempt to write a modern client implementation of the old classic Ragnarök Online game.
Current Screenshots:
Table of Contents
- Introduction (coming soon)
- TODO
- Dependencies
- Building & Running
- Tools
- Examples
Introduction
TODO
Please have a look at the open milestones:
Milestone | Description |
---|---|
Character Graphics | Everything related to rendering character sprites, including character attachments, sprite animations and such. |
World Graphics | Everything related to world graphics, including 3D objects, terrain, water and lights. |
Dependencies
-
CentOS/Fedora-like Linux Distros:
SDL2{,_image,_mixer,_ttf,_gfx}-devel alsa-lib-devel libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel libXxf86vm-devel
-
Arch Linux:
pacman -S sdl2{,_image,_mixer,_ttf,_gfx}
Building and Running
- Generate and env file by copying the distributed (.env.dist) file:
cp .env.dist .env
- Make sure to alter the
GRF_FILE_PATH
variable on the.env
file:
GRF_FILE_PATH=/path/to/data.grf
- Build the main binary by running:
go build -o midgarts ./cmd/sdlclient/main.go
- Run the binary:
./midgarts
Tools
GRF Explorer
Latest screenshots:
Examples
Loading a GRF file
grfFilef, err := grf.Load("data.grf")
Getting an entry
grfEntry, err := f.GetEntry("data\sprite\ork_warrior.spr")
Loading SPR files
sprFile, err := spr.Load(e.Data)
Generating a PNG from a sprite
outputFile, err := os.Create("out/test.png")
if err != nil {
log.Fatal(err)
}
defer outputFile.Close()
if err = png.Encode(outputFile, img); err != nil {
log.Fatal(err)
}