|
I've been doing some work to improve our music system.
Firstly we've now got data detailing all 623 music tracks and 278 jingle tracks in the game.
Our music data looks a little like this:
This data provides us:Code:SUBTERRANEA( id = 517, trackName = "Subterranea", duration = 462, hint = "Unlocked in the Waterbirth Island Dungeon" ), SUNBURN( id = 267, trackName = "Sunburn", duration = 487, hint = "Unlocked in the area north of the Jaldraocht Pyramid" ), SUPERSTITION( id = 265, trackName = "Superstition", duration = 439, hint = "Unlocked during Legends' Quest" ),
- Plain english name we can use for unlock notifications
- Hint text to use for unlock hints
- Duration meta data for every jingle and track
The duration meta data makes our system intelligent enough to know when tracks start and stop, and allow us to queue up tracks based on a couple of criteria which result in a non-stop, accurate and precise stream of music in our game world.
Here are some other fascets of the system:
1. As you expect from osrs, music has a relationship with the world - we unlock and select music to play based on where you are in the world:
Entering a MapSquare (64x64 area of the world) with a track you don't have will trigger an unlock and make it available in the music player. As you traverse the world, the music you hear will depend on where you currently are.
2. In some cases (such as certain caves) a MapSquare may have multiple tracks assigned to it, and when it does the system will select tracks in a random fashion while disallowing the same track to be played twice in a row.
3. MapSquares can be grouped together into a music region, this is for areas that share a pool of tracks and will allow players to travel freely between the MapSquares without music being interrupted.
Prifddinas is an example of an area where many MapSquares share a pool of music.
4. When a jingle plays (level up, boat travel, death) the music system understands when the jingle starts and stops, and considers this when deciding when a music track will end (and when a new one is selected to be played)
5. Regional music can be overriden at any point via the music player, or via game events.
6. Our newly added tile trigger system provides a new game event which allows us to force a track to be played (set as the override) as a result of entering or exiting a building. You see this used in the varrock museum, and the warriors guild for example.
This image demonstrates how the museum music can be triggered on and off with little overhead, because we don't need to persistently check player coordinates to see if they're within an area (green on, blue off).
A little hard to make audio interesting via images and text, but I hope that sheds some light on how our music system behaves.
We plan on releasing a closed alpha at the end of the month, you can apply via our discord! (feel free to pm me for it)
This alpha will be a F2P experience of OSRS; you will only be able to access F2P areas and use items of the same category. There will be some selective P2P items available like some weapons so we can test PvP.
This includes the following:
Melee skills: Attack, Strength and Defence (and Hitpoints)
- Basic weapons and armour made of bronze, iron, steel, black, mithril, adamant and rune, but some specifics like metal gloves, halberds and metal boots are not included.
- Additional items include hill giant club and shaman mask.
Ranged
Ranging gear includes leather armour, studded leather armour and green dragonhide.
Normal, oak, willow and maple bows are available with ammunition up to adamant arrows.
Crossbows and phoenix crossbows can be used with normal bronze bolts.
Magic with limited access to standard spells
- Strike, bolt and elemental blast spells plus Crumble Undead.
- Confuse, Weaken, Curse and Bind spells.
- Level 1, 2, 3, and 4 enchantments (limited to amulets for free-to-play).
- Home, Varrock, Lumbridge and Falador Teleports.
- Telekinetic Grab.
- Bones to Bananas, Low Level Alchemy, High Level Alchemy and Superheat Item.
- Magic armour is limited to blue and black wizard robes and Zamorak monk robes, and staves are limited to the four elemental staves, Magic staff, basic staff, and Skull sceptre.
Prayers
- Available up to level 45 Mystic Might.
- Monastery or Prayer Guild becomes available at level 31.
- Prayer items include: Holy symbol, Monk's robes, Priest gown and Shade robes
Runecrafting
- Elemental, mind and body runes
- Pouches and the Abyss are not available to F2P, but tiaras are.
Mining and Smithing
- Access to metals from bronze to rune.
Crafting
- Pottery: pots, pie dishes and bowls
- Soft leather items (except for Coif) and hardleather body
- Silver: holy symbols and tiaras
- Gold, sapphire, emerald, ruby and diamond rings, necklaces and amulets
Fishing and Cooking
- Available fish are: shrimp, anchovies, sardine, herring, trout, salmon, pike, tuna, lobster and swordfish.
- Cooked meat and cooked chicken.
- Redberry, meat and apple pie.
- Plain pizza, meat pizza and anchovy pizza.
- Cake and chocolate cake.
- Wine.
Woodcutting and Firemaking
- Trees: oaks, willows, maples and yew trees
Monsters
There are relatively few monsters in free-to-play, partly due to there being only seven dungeons in the free-to-play map.
These dungeons are:
- Asgarnia Ice Dungeon (except the Skeletal Wyvern area)
- Crandor and Karamja Dungeon
- Dwarven mine
- Edgeville Dungeon (except the section that is in the Wilderness)
- Stronghold of Security
- Varrock Sewer
- Corsair Cove Dungeon
- Some monsters have restricted drop tables in F2P, and not all areas contain all of the monsters found in P2P servers.
The highest level free-to-play monsters are Evil Chicken and shades. There are 2 bosses with broadcast loot and kill counters, the first being Obor, who can be killed in Edgeville Dungeon after having retrieved the key to his lair. The second being Bryophyta, who can be found in her lair in the Varrock Sewers after the player had obtained a mossy key from a moss giant.
Other notable higher level monsters include ankous, lesser demons, greater demons, ogress shamans, ogress warriors, and the quest boss, Elvarg.
We'd love any help we can get, testing some of the more complex stuff with confidence in isolation can be really hard!
It's worth noting that as part of the alpha, we'll also be doing some targeted play-testing of combat features which do not fall into the free-to-play bracket of content.
During alpha our combat will be complete, correct to ~2008 Runescape which means all weapons and armour that existed before new OSRS equipment was added to the game - which understandably includes a lot of P2P content.
We'd like to test these things and get some feedback:
- Melee, ranged and magic combat strategies
- Accuracy and max hit for their respective combat styles
- Sounds and animation things related to combat
- The standard spellbook
- Multi/single combat exclusivity
- ~50 special attacks
- Barrows armour effects
- Various other equipment special and set effects - berserker armour, staff of the dead, tridents, void, tome of fire etc
- The prayer book, in a combat setting (protection prayers, retribution, stat boosts, and so on)
We will provide equipment and appropriately leveled accounts for this purpose.
The bank has way more things than I knew existed, but heres our now complete bank including tabs, placeholders, equipment and fillers - 1:1 with OSRS:
Settings are persisted between sessions:
Tab settings:
All standard bank things work as you expect, withdraw/deposit, swap/insert & note/item:
Bank tabs are cleaned up as you withdraw items:
Tabs can be re-ordered:
Tabs can be collapsed (back to main tab):
Placeholders:
Placehold all withdrawals, using the "always placehold" setting:
Cleanup placeholders at the tab level:
And bank-wide:
Bank fillers:
Cleanup bank fillers individually, and bank wide:
Equip, unequip and consume items from within the bank and bank-equipment interfaces:
(thanks @Polar for saving me some time on the the equip/eat item option varp)
Deposit equipment directly into the bank:
Empty all equipment into the bank:
Empty inventory into the bank:
Extra item options (equip, eat, etc) can be disabled if you wish:
Incincerator:
Today I've also written a tool for generating our NPC combat configurations. Some human intervention needed but we can auto generate about 90% of our NPC combat config! Alpha here we come.
Example output of the generator:
Code:package gg.rsmod.plugins.content.npcs.TODO import gg.rsmod.game.model.combat.CombatStyle import gg.rsmod.plugins.api.cfg.Npcs import gg.rsmod.plugins.api.dsl.set_combat_def /** * Goblin * Version: level 2 * Poison: not immune * Venom: not immune * Ids: [ * 3028, 3029, 3030, 3031, * 3032, 3033, 3034, 3035, * 3036, 3037, 3038, 3039, * 3040, 3041, 3042, 3043, * 3044, 3051, 3052, 3053, * 3054, 5192, 5193, 5195, * 5196, 5197, 5198, 5199, * 5200, 5201, 5202, 5203, * 5204, 5205, 5206, 5207, * 5208 * ] */ arrayOf( Npcs.GOBLIN_3028, Npcs.GOBLIN_3029, Npcs.GOBLIN_3030, Npcs.GOBLIN_3031, Npcs.GOBLIN_3032, Npcs.GOBLIN_3033, Npcs.GOBLIN_3034, Npcs.GOBLIN_3035, Npcs.GOBLIN_3036, Npcs.GOBLIN_3037, Npcs.GOBLIN_3038, Npcs.GOBLIN_3039, Npcs.GOBLIN_3040, Npcs.GOBLIN_3041, Npcs.GOBLIN_3042, Npcs.GOBLIN_3043, Npcs.GOBLIN_3044, Npcs.GOBLIN_3051, Npcs.GOBLIN_3052, Npcs.GOBLIN_3053, Npcs.GOBLIN_3054, Npcs.GOBLIN_5192, Npcs.GOBLIN_5193, Npcs.GOBLIN_5195, Npcs.GOBLIN_5196, Npcs.GOBLIN_5197, Npcs.GOBLIN_5198, Npcs.GOBLIN_5199, Npcs.GOBLIN_5200, Npcs.GOBLIN_5201, Npcs.GOBLIN_5202, Npcs.GOBLIN_5203, Npcs.GOBLIN_5204, Npcs.GOBLIN_5205, Npcs.GOBLIN_5206, Npcs.GOBLIN_5207, Npcs.GOBLIN_5208 ) .forEach { npc -> set_combat_def(npc) { configs { attackSpeed = 4 respawnDelay = 50 // 30s combatStyle = CombatStyle.CRUSH poisonChance = 0 venomChance = 0 } /** * Aggressive: false * Comment: No comment */ aggro { radius = // TODO searchDelay = // TODO } stats { hitpoints = 5 attack = 1 strength = 1 defence = 1 magic = 1 ranged = 1 } bonuses { attackCrush = 0 defenceStab = -15 defenceSlash = -15 defenceCrush = -15 defenceMagic = -15 defenceRanged = -15 strengthBonus = 0 rangedStrengthBonus = 0 magicDamageBonus = 0 } anims = { block = // TODO attack = // TODO death = // TODO } slayerData { xp = 5.0 } } }
npc dumper and real bank hype
I've been following this project for a while and so far, it hasn't failed to impress. Keep up the good work guys!
Bank updates and the configuration tools look awesome as well!
how long did it take you to figure out the packet structures and the entity updating for OSRS #188?
covid-19 lockdown is boring me; I'm thinking of doing a similar project once my finals are over.
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |
Tags for this Thread |