All Projects → bbodi → Rustarok

bbodi / Rustarok

Multiplayer, fast-paced Moba style game

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Rustarok

Minijvm
Develop iOS Android app in java, Cross platform java virtual machine , the minimal jvm .
Stars: ✭ 127 (-43.05%)
Mutual labels:  game, opengl, 3d, 2d
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+821.08%)
Mutual labels:  game, 3d, 2d
Betterspades
BetterSpades, an Ace of Spades client targeted at low end systems (GL/ES 1.1). Runs on your grandmother's rig!
Stars: ✭ 112 (-49.78%)
Mutual labels:  game, multiplayer, opengl
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+4703.59%)
Mutual labels:  game, multiplayer, opengl
Unitymathreference
Math reference for games and more. All visualized in Unity3D.
Stars: ✭ 166 (-25.56%)
Mutual labels:  game, 3d, 2d
Soldat
Soldat is a unique 2D (side-view) multiplayer action game
Stars: ✭ 1,199 (+437.67%)
Mutual labels:  game, multiplayer, opengl
Visvis
Visvis - the object oriented approach to visualization
Stars: ✭ 180 (-19.28%)
Mutual labels:  opengl, 3d, 2d
Veloren
[Mirror] An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World
Stars: ✭ 868 (+289.24%)
Mutual labels:  game, multiplayer, 3d
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (-38.12%)
Mutual labels:  game, multiplayer, 2d
Ore Infinium
Ore Infinium, Open Source multiplayer Terraria-inspired Sci-fi game, focused on technology, devices and researching. Written in Kotlin (JVM), LibGDX. Cross platform
Stars: ✭ 139 (-37.67%)
Mutual labels:  game, multiplayer, opengl
Fxgl
Stars: ✭ 2,378 (+966.37%)
Mutual labels:  game, 3d, 2d
Craft
A simple Minecraft clone written in C using modern OpenGL (shaders).
Stars: ✭ 8,957 (+3916.59%)
Mutual labels:  game, multiplayer, opengl
Frag.exe
Multiplayer First-Person Shooter written in C++ using my own engine, Qor
Stars: ✭ 8 (-96.41%)
Mutual labels:  game, multiplayer, opengl
Openrct2
An open source re-implementation of RollerCoaster Tycoon 2 🎢
Stars: ✭ 10,115 (+4435.87%)
Mutual labels:  game, multiplayer, opengl
Zemeroth
😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust
Stars: ✭ 940 (+321.52%)
Mutual labels:  game, opengl, 2d
Teeworlds
A retro multiplayer shooter
Stars: ✭ 1,712 (+667.71%)
Mutual labels:  game, multiplayer, opengl
Open Builder
Open "Minecraft-like" game with multiplayer support and Lua scripting support for the both client and server
Stars: ✭ 569 (+155.16%)
Mutual labels:  game, multiplayer, opengl
Openspades
Compatible client of Ace of Spades 0.75
Stars: ✭ 769 (+244.84%)
Mutual labels:  game, multiplayer, opengl
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-6.73%)
Mutual labels:  game, opengl, 3d
Tosios
The Open-Source IO Shooter is an open-source multiplayer game in the browser
Stars: ✭ 157 (-29.6%)
Mutual labels:  game, multiplayer, 2d

Table of contents

Rustarok

A project whose primary goals are to have fun developing it and experiment with interesting technical problems from the world of game development.

It is intended to be a multiplayer, fast-paced Moba style game. Check Background story for details.

Building

  • git clone https://github.com/bbodi/rustarok.git
  • cargo build

Running on Windows

You will need Ragnarok Online asset files to run the game.

  • Download a Ragnarok Online client from some popular private server

  • Install it

  • Check the installation directory for any *.grf files, and put their paths into config.toml, e.g.:

    grf_paths = [
      "d:\\Games\\TalonRO\\rdata.grf",
      "d:\\Games\\TalonRO\\sdata.grf",
      "d:\\Games\\TalonRO\\tdata.grf"
    ]
    
  • Run cargo run from rustarok directory.

Running with Docker

See the README.md in the docker folder for complete instructions.

How to play

  • Move your character with the right mouse button
  • Cast skills with Q (fire wall), W (lightning), E (heal), R (huge boom) keys
  • Spawn entities with the "Players" and "Monsters" sliders in the window
  • Move the camera with the cursor keys

Design decisions

Blog

Current Status and Gallery

Currently the project is in a very early stage. Nothing is set in stone yet, I mostly prototyping ideas and techniques.

List of developed features:

  • [x] Asset file loading (grf, gnd, rsm, rsw, spr, act, str)
  • [x] Rendering
    • [x] Map (ground, static models, lighting)
  • [x] Sprites for UI
    • [x] Sprites in 3D world (animated sprites and effects as well)
      • [x] Different actions (idle, sit, walk, attack, cast etc)
      • [x] Directions
  • [x] Amount of damages, heals, etc
    • [x] Health and Mana bar above the characters
  • [x] Input handling, Control
    • [x] Moving around with your character
    • [x] Assigning skills to Q, W, E, R, etc keys
    • [x] Continuous movement towards the mouse if RMB is down
  • [x] Skills
    • [x] Skill target area/entity selection mode
    • [x] Skill casting
    • [x] Skill manifestations (the manifested outcome of using a skill, e.g. a fire wall in the 3D world which can't be walk through and it damages contacting entities)
    • [x] Quick cast settings (on, on-release, off)
  • [x] Battle
    • [x] Attacking an enemy
    • [x] Attack speed
    • [x] Health, dying
  • [x] Collision
    • [x] Static objects
    • [x] Characters, a.k.a body block

Background story

I play computer games rarely, but when I do, I play 1 or 2 sessions of Heroes of The Storm match.

But still, whenever I play, I am constantly thinking about how I would implement some mechanics of the game.

So finally I reached the point where fantasizing is not enough anymore, and wanted to actually try myself in this area as well.

Don't be surprised if the game is heavily inspired by HoTS, most probably the playable character styles and skills will be based on my favourite characters from it, or the ones whose skill mechanics I find challenging or interesting.

About the used game assets

The visuals of Rustarok might be familiar to you. It is because the game uses assets from an existing game, an older popular Korean MMORPG, Ragnarok Online. The reasons I used them:

  • I am not a graphic designer, I don't have the skills nor the temptation to create the visuals of a game myself.

  • Again, my primary goal is to experiment, learn and have fun while developing something challenging.

  • I am in love with the unique 2D/3D graphic style of the game.

  • Ragnarok Online game asset file structures are known and there are example implementations for processing them.

  • Ragnarok Online had a huge impact on me when I was younger. I played a lot with it, this might have been the only game I was obsessed with.

    Thanks to it, I know all the skills, sprites, maps, models etc, which is useful when I try to come up with visualities of some new skill.

  • The server code of Ragnarok Online has been exposed for a very long time. That was the first professional C source code I studied, hacked and even fixed when I was around 14-15, so it had a huge impact on me as a software developer.

Thanks

  • roBrowser: Its source code was useful for decoding the game asset files
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].