Coder Social home page Coder Social logo

drgomesp / midgarts Goto Github PK

View Code? Open in Web Editor NEW
119.0 14.0 18.0 2.09 MB

Multi-platform Ragnarök Online MMORPG client

License: GNU General Public License v3.0

Go 95.84% GLSL 2.41% Makefile 1.75%
ragnarok-online ragnarok game-engine ragnarok-script mmo mmorpg mmorpg-client grf grf-explorer ragnarokonline

midgarts's Introduction

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

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

  1. 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

  2. Arch Linux: pacman -S sdl2{,_image,_mixer,_ttf,_gfx}

  3. MacOS:

brew install sdl2{,_image,_mixer,_ttf,_gfx} pkg-config

Building and Running

  1. Generate and env file by copying the distributed (.env.dist) file:
cp .env.dist .env 
  1. Make sure to alter the GRF_FILE_PATH variable on the .env file:
GRF_FILE_PATH=/path/to/data.grf
  1. Build the main binary by running:
go build -o midgarts ./cmd/sdlclient/main.go 
  1. Run the binary:
./midgarts

Tools

GRF Explorer

Latest screenshots:

image image

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)
}

midgarts's People

Contributors

drgomesp avatar greenstage avatar jonfriesen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

midgarts's Issues

GRF file support

This is already implemented, and the issue was created for documentation purposes only.

2D Character Rendering

We need to support rendering of all kinds of character sprites, considering initially - but not limited to - the following requirements:

  • Body
  • Head and rest of sprites
  • Character actions (idle, sit, walk, attack, etc) and their animations
  • Directions

The current implementation in the examples shows a very naive way of rendering character sprites and how primitive they currently are, holding no state whatsoever (they are essentially just engo Entities with rendering and animation components that are dinamically built based on their action frames. This is how it currently looks like:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.