Code Monkey home page Code Monkey logo

rot-magus's Introduction

Rot Magus

Rot Magus is a classic 8-bit roguelike turn-based role-playing game about an unknown hero who plunged into the realm of the Dark One to face him and his endless army in the hope of fortune and fame. It features dozens of different monsters, items, spells, and an infinite map filled with winding mountains, deep forests, barren deserts, and tranquilizing lakes.

header

This game is an extended, browser-based remake of Ronny Wester's Magus, built with rot.js and Phaser.

Traverse the mysterious lands, acquire powerful weapons and magical artifacts, destroy the endless armies of evil in close combat, or from afar, and gain enough experience to level up and become the strongest and most famous hero of all time.

Controls

  • Click on terrain: move once
  • Keep pushing the button: move continuously
  • Click on the adventurer: rest
  • Click on a monster next to the adventurer: melee attack
  • Click on a monster in the distance: ranged attack
  • Click on a slot on the equipment section: equip or unequip an item
  • Click on a slot of the top inventory section: pick up or put down an item in your inventory
  • Click on a slot of the bottom ground section: pick up or put down an item on the ground

Current features

  • infinite simplex noise-based procedurally generated map with mountains, caves, forests, plains, deserts, wastelands, swamps and lakes
  • 1 adventurer, collecting items, gaining levels, regenerating, slowing down and accelerating based on different internal and external effects, traversing specific terrains that others cannot
  • 17 different monsters, melee and ranged attackers, spellcasters, approaching or attacking from a distance, remembering the last seen spot of the adventurer
  • 90 different items including armors, shields, helmets, gloves, cloaks, amulets, rings, melee-, ranged- and throwable weapons, magic spells, magic potions, and other magic items
  • simple movement and attack animations, special effects
  • inventory management with tooltips
  • weapon-based melee and ranged damage system, dual-wielding, chance to hit, critical hit, armor-based defense system, attribute modifying magic items
  • diverse magic system, single and multiple targets, positive and negative effects, behavior manipulation, transportation, vision, and summoning
  • map seed browser
  • high scores
  • fullscreen mode
  • adjustable game speed

In development

  • structures: river, inn, temple, town, castle, dungeon
  • maze layer with roads connecting each structure
  • 9 different adventurers
  • 32 different monsters
  • Shooting star and Enchant
  • multiple characters controlled by the player
  • character creation
  • trophy room with monsters, items, and personal stats
  • sound effects
  • music

Version history

v0.6.0 (Nov 11 2019) - Magical landscapes

Game

  • Add all magic items except Shooting star and Enchant
  • Add all magic spells
  • Add complete rest
  • Add critical hit
  • Add ranged damage differentiation
  • Add monsters: magician, monk, warrior
  • Add summonable monsters: demon, djinn, fenix, golem, lightning, shadowbeast, undine
  • Add biomes: desert, swamp, wasteland, plains
  • Add structure: portal room
  • Improve ranged attack
  • Improve biomes: mountain, forest

Map browser

  • Add Map browser

Hall of fame

  • Add Hall of fame

Settings

  • Add Settings
  • Add fullscreen
  • Add game speed

Misc

  • Add Restart game

v0.5.0 (Oct 31 2019) - To infinity and beyond

  • infinite simplex noise-based procedurally generated map with forests, mountains, caves, and lakes
  • improved inventory management with tooltips
  • weapon-based damage system, chance to hit, and armor-based defense system
  • dual-wielding modifiers in melee combat
  • depleting and infinity-enchanted arrows, throwing and telekinetic weapons in ranged combat
  • added orchs and orch archers as new enemy types around lakes
  • looting

v0.4.0 (Jun 16 2019) - A new phase

  • 243*243 tile sized simplex noise-based procedurally generated map with forests, mountains, caves, and lakes
  • simple movement and attack animations, special effects
  • improved inventory

v0.3.0 (Jan 5 2015) - Monsters and weapons

This is the first real pre-release of the game, featuring:

  • basic game mechanics
  • some weaker monsters
  • starting equipment
  • a couple of items on the ground
  • essential melee and ranged weapons
  • regeneration, damage, death, XP, leveling

#rpg #roguelike #retro #phaser #2d #classic

rot-magus's People

Contributors

kosinaz avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

rot-magus's Issues

Multiple character control

Requirements:

  • Automatically stop the game to let the player give orders then resume it to show the results.
    • Automatically stop the game whenever there is an idle player character who would be the next to act but has no order.
    • Automatically stop the game whenever a player character notices a new point of interest.
    • Automatically cancel all the orders that the player character has who noticed a new point of interest.
    • Automatically select the mentioned player character.
    • Automatically move the camera on the mentioned player character.
    • Automatically resume the game when the mentioned player character received an order.
    • Show how the characters are following their orders simultaneously until the game has to be stopped again.
  • Let the player manually stop the game to change the orders then resume it to show the results.
    • Let the player manually stop the game at any time to change the given orders.
    • Let the player manually resume the game when it was manually stopped.
  • Let the player order any player characters when the game is stopped.
    • Let the player select and order any number of player characters at the same time including or excluding the idle one.
    • Let the player give multiple orders to any player character except the idle one.
    • Let the player cancel any given order.
    • Show which characters are selected by the player.
    • Show each order given to the selected characters.
    • Show how the characters are planning to follow their orders.
  • Let the player set which point of interest should automatically stop the game when the player character notices it.

Implementation:

  • Calculate and show the FOV of every selected character.
    List of character portraits that become selected or deselected on their own on double click, or with others on click.
    The first selected character's single portrait on the top of character sheets that also activates or inactivates the character.
    An isWaitingForOrder switch, that is turned on when the character is ready to act without a target, and turned off when the player gives an order. This switch determines how the character has to react to the order, execute it immediately or just note it and wait for his turn.
    A question mark overlay on the portrait of the character that is currently waiting for order.
    An exclamation mark overlay on the portrait of the character that is currently executing an order.
    An isSelected switch that is turned on when the player clicks on the character's portrait and turned off when the player clicks on it again. This switch determines when the character has to react to the click event of the active image tiles. It also determines who the camera should locked on, and who it should follow if no characters are left without order and every character is either performing an action or resting.
    A rectangle overlay on every currently selected character.
    A sleep overlay on every inactive character.
    A behaviour button on the top of the character sheet to switch between uninterruptible and interruptible orders.
    In addition to the automatic stop on interruption function, change the existing stop on pointerup function to stop on click.

Projectiles

It's hard to identify the source of ranged attacks. To solve this, half-sized effect images should be added as projectiles. That would clearly show where the attack is coming from. Upon impact the same effect image will be displayed anyways. This way there is no need for new projectile images like arrows, fireballs, etc.

Structures

Structures are built on top of the noise-generated terrain. Mountains, lakes, deserts are all noise-generated, and their small features, the caves, fords, and trees too.

But when tiles with strict rules, like the wall of a house, the roads, or the rivers need to be created, each tile needs to be aware of the nearby tile, and noise is not enough for that.

So a structure layer needs to be created on top of the noise map layer, that will cover the whole map with structure zones, covering a higher number of squares. Each of these will have a single structure strictly inside its borders, like a village, a castle, a dungeon or a temple.

When the player sees the very first tile of a zone, that's when the structure layer of the whole zone will be generated.

The content of each zone is determined by another noise map.

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.