You are on page 1of 9

Land of Fire

Story
In a world with intense volcanic activity, eruptions are just a part of life — until a
supervolcano erupts, turning hundreds of miles of verdant valley into a basalt desert.
People adapt and go on. The areas around the supervolcano are filled with different
resources now, but the risks in the desert are greater than in the plains as well. Some
adventurers return wealthy; others, dead. Our intrepid players fall closer to the latter
side. Separated from their groups and lost in sandstorm, the desert slowly wears them
down until they fall unconscious. They awake to the soothing hush of a steampunk
medical facility — and the unsettlingly similar hush of their own breathing. They are
soon informed that their body was too damaged to be healed fully, and some organs
like the lungs had to be replaced altogether with mechanical substitutes. A cyborg life of
adventure awaits...

Gameplay
Natural class advancement based on behavior rather than arbitrary point dispersal
Granular multi-source aggression calculation

Stats and Classes

The two core stats are health and stamina.

Three matched pairs of classes/stats:


➔ Body — focus on physicality
◆ Warrior — Strength
● Uses brute force with intent to end conflict before they are in
danger
◆ Breaker — Hardiness
● Emphasize shrugging off blows to outlast opponents (attacks break
over them like waves over a boulder, hence the name) over dishing
massive damage themselves
➔ Deft — focus on speed
◆ Rogue — Agility
● Emphasize being in the right place to strike deep after frustrating
opponents with elusiveness.
◆ Ranger — Dexterity
● Emphasize accuracy from afar and adaptation to the outdoors.
➔ Mind — focus on intellect
◆ Tech — Intelligence
● Greater understanding of tech allows for optimal usage of anything
tech, giving higher crit chances and stat bonuses
◆ Alchemist — Wisdom
● Multipurpose support, can create concoctions on the fly to heal and
damage

Stats don’t increase greatly through character progression; compare more with a classic
dungeon crawler than tmwA. Supposing 100 levels, you might start with 40 base points
dispersed at the start and 50 base points at the end.
But, stats can be improved through class progression. So basically, there isn’t the sort
of thing where you grind a character up to the high levels and then reset stats in order to
jump into a new role. Instead, while you can use your stat dispersal to support your
focus[es], time will be required for mastery.

Skills

Overview
Skills are laid out in multiple trees; for instance, a core progression tree, class trees,
weapon mastery trees, perhaps even role mastery trees. The trees for each class pair
are interwoven in places, as there is synergy between the matched classes. There
ought to eventually be well over 100 skills.
The skill system should support AND, OR, and NOT dependency structures, as well as
levels (that is: Skill A might depend on having Skill B as well as Skill C level 2 if you
don’t have Skill E or Skill D level 3 otherwise).
Skill points will be earned by class and core level-ups. Each level-up will mostly earn
points for the associated skill tree, but will also earn generic skill points to be used
wherever needed.

Tree
● Core
○ Haggling — Slightly better NPC transaction margins
● Warrior
○ Shield bearing — Able to use a shield in the off hand
○ Berserk — Can enter berserk stance which drains health (or stamina, or
reduces defenses, or all of the above?) but causes more damage
● Breaker
○ Reversal — Successful blocks reflect damage onto attacker
○ Stun - Hits enemy in such a way that shortly disables attacking and
defending
○ Endurance — Gives a bonus to stamina
● Rogue
○ Backstabbing — Hits on unaggro’d targets deal more damage
○ Lurk — Enter lurk stance to decrease aggro accumulation at the cost of
decreased evasion and damage dealing.
○ Dual wielding — Able to use a light weapon in the off hand
● Ranger
○ Tracking — Target stays visible at longer distances
○ Marksmanship — Ranged weapons have lower player inaccuracy
component
○ Foraging — Heal faster when not in desert or town (or maybe an active
skill to search for food items?)
● Tech
○ Tinkering — Able to manufacture basic gadgets
○ Weaponry — Able to manufacture weapons
○ Swordsmithing — Able to smith swords
○ Bowcrafting — Able to craft bows
○ Gunsmithing — Able to construct rudimentary firearms
○ Repair/Upgrade - Using resources to repair/upgrade equipment (maybe
vehicles)

● Alchemist
○ Gunpowder — Able to manufacture basic explosives from chemical
components
○ Practical explosives — Able to construct rudimentary bombs from
explosives
○ Potions - Concocting potions to heal one’s self and allies
○ Poisons - Concocting poisons to coat weapons or throw in gel balls
Stances

Stances are a way to shape a character to the moment’s need without refitting. Need to
sneak past enemies? Enter the Lurk stance. Need to rescue an ally about to be
overwhelmed? Enter your Berserk stance and dish out that bit of extra damage.
(Each stance should have pros and cons in combat as well as sneaking etc, such as
Berserk drops def super low, and lurk raises the ability to dodge attacks etc, but drops
something like attack power)

Combat

When fighting, characters will have a default (potentially chooseable) attack, like you
see in tmwA, but usage of other modes and abilities, some of which would then have
cool-downs, can be queued up. These will be based both upon class levels, skills, and
equipment; for instance, a character with a sword and shield equipped might have a
default Sword Slash attack and a cool-down limited Shield Bash.
Attacks may have differing damage types, which will do more or less damage based on
the target’s armor profile.

Damage types:
● Mechanical
○ Piercing
○ Slashing
○ Crushing
● Elemental [need better term]
○ Scorching
○ Freezing
○ Corroding

Economy

A dynamic economy will have prices rise and fall based upon supply and demand; but it
won’t just be affected by players selling goods to merchants. Fix the farmer’s plow? The
base supply of wheat increases. Fix the baker’s oven? His ability to increase his bread
production goes up. Some items might never actually pass through a player’s hands,
but they’ll connect costs from unrelated event to unrelated event to create a vibrant
economic cycle. Model this as a mesh of pure producer/consumer terminants,
input-output rules, and throughput-limited transportation paths.

World
3 contrasting city-states surround the volcanic waste; one agrarian, one industrial, one
aesthete.
Each city-state is associated with two classes:
● Agrarian: Breaker, Ranger
● Industrial:

Technical stuff

Use the ​dulwich​ git library to disperse updates.

Server needs

Resource Consumption
Probably more resource hungry than tmwA — this isn’t for certain, but generally C++
can be quite a bit faster and lighter than Python. Beyond the language difference, the
game server is going to be doing more complex stuff.

Sharding
Sharding support could help quite a bit with the resource consumption issue. Sharding
allows running the game server in multiple discrete segments. To explain using
tmwA-LoF, it’d be like having Hurnscald on one server and Tulimshar on another,
passing the players back and forth as they move from location to location. You have to
be careful to pick good spots to pass players off so that you don’t have annoying waits
in awkward places. EVE Online handles this by having jump sequences each time you
go from system to system, but we’d want to have it more on a regional basis. Things like
private messages and global messages would be handled by a more mono-purpose
server.
Hosting
To start with, a solution like tmwA-LoF’s SpeedyKVM should suffice. However, if the
game grows enough to require sharding and more server space, we should consider
moving to a solution like AWS; SpeedyKVM VPSes cannot be resized. But remember
that AWS is ​expensive​! Digital Ocean might be a better option for going big, and still
offers the ability to get sub-millisecond communication between the servers.

Architecture

AuthServer — The gateway to the system; probably there’d only be one.


ChatServer — Handles long-distance player communication.
GameServer — The sharded portion; handles all local events.

Networking

Networking is a huge pain in tmwA/ManaPlus, stuff is scattered all over. We should


keep a common descriptor module to convert more friendly events to and from an
efficient wire protocol. JSON may be used for the development protocol, but production
will be better for using a custom HDED (high-density event description) format in the
vein of tmwA. For speed we may use ​ENet​ (via ​pyenet​) atop UDP, instead of TCP.

Stack diagram
Server Logic

Server Event System

Netevent Conversion Layer

ENet Code

Internet

ENet Code

Netevent Conversion Layer

Client Event System

Client Logic

Example HDED conversion


Uses an event description map and the ​struct​ library

Packed unsigned short Packed 32-bit unsigned int Packed signed short Packed signed short

0x53 0x3F 0x00 0x00 0x41 0xD8 0xFB 0x4D 0x01 0xE2

Python event name Being ID X location Y location

“being-moved” 16856 -1203 482

Write client using ​Kivy​ — this has the advantage of supporting all platforms easily,
including mobile

Use ​TMX​ maps — Isometric would be nice. PyTMX should provide the support we
need, but that could bear investigation. We might use the json format, but the XML TMX
format tends to have the best support.

Ideas
Monetization should be done with a non-pay-to-win emphasis.
● Item skins
○ Not randomly given from a reward chest
○ Not tradeable currency cost
○ Can be sold to other players for the original premium credit cost
■ Avoids indirect payment (“You sell me that skin for 1 premium credit
and I’ll give you XYZ items”)
○ Can be sold back to the store for the original premium credit cost
● Premium subscription
○ Don’t increase XP gain
○ Do disable any advertisements
○ Do offer a badge in the game and on the forums
○ Do give access to a unique quest to get a skin or a certain amount of
premium credits on a regular basis
● Seasons
○ Makes it easy to have an introductory set of content in a trial upselling to
the full content set
○ Means we can structure content releases
○ Multiplayer and storyline passes can be separate
■ Include some MP and story in free release
○ Give option to purchase complete pass with all content as released

Assets

Art
ManaPlus is a reasonable starting point for NPC interaction dialog design, however the
clicks-per-action seems high. A modernized, single-click design might be preferable,
and should be buildable from the Kivy UI toolkit alone until a theming decision is made.

Every NPC should have an associated portrait to be integrated with the interaction
dialog. Minor NPCs might share generic portraits but key figures should have their own
unique art.

Player portraits could be done with just two fixed options (male/female), but it’d be more
interesting if they were layered like the sprite, with various hair colors/styles, skin tones,
cyborg components, and gear classes. This would have to be done carefully to properly
represent the PC without overburdening the artist.

Sound
Full voice-overs?

Music
It would be very interesting to explore the possibilities using an advanced MIDI
sequencing engine to transition smoothly from track to track.

Consider Mattias Westlund for composition.

Main Theme: “Breathe”


● When you have mechanical lungs, you can’t hold your breath.
● Collaborate with Westlund and Eurielle (vocals) if possible.
● Eurielle example: Luthien’s Lament
https://www.youtube.com/watch?v=4F3X5CrPn8I
● Westlund example: Return to Wesnoth
https://soundcloud.com/mattiaswestlund/return-to-wesnoth-wip

Etc
A conlang could make voice-overs more impressive. It’d also take a ton of work.

You might also like