Project Rubi-Ka News

February Newsletter

Tue, Feb 27, 24

Greetings Rubi-Ka Citizens!

@Portaler here with an update for February 29498 AD (2024). It has been a very busy month (+) since our last update. The team has been hard at work on several fronts. First we'd like to share a summary of some of items we've been working on.

Highlights

We have a goal to be able to make initial zones like Abandoned Subway and Temple of Three Winds more polished in preparation for a community raid night. One of the key problems that makes indoor zones like Subway and ToTW more challenging is the density of mobs and how we handle things like aggro between rooms. In past iterations of PRK, mobs would engage as soon as they were within a certain range from the player, regardless of any doors or room boundaries.

Improved Aggro Logic

We've improved the logic by which mobs will aggro players. Now they will only aggro players within the same room. This will improve scenarios where mobs from several rooms over would aggro through doors. One area for improvement remains however, our aggro logic still does not account for three dimensional physics. So things like aggro around corners within the same room will still tend to happen. It is technically possible for us to add a lightweight physics engine to the server to account for serverside line of sight calculations, but we're going to hold off on this until we've complete some other more important features like missions, and other priorities.

Leashing

We're happy to share that we've implemented our first round of "leashing" logic. Mobs that are engaged will continue to engage and fight players as long as players remain within range of their initial "home position". Once they leave that home position they will enter a "Leashing" state where in they will run back to their home position with an emptied hate list, returning to their normal "post combat" routine. This should improve 'trains' in zones like ToTW and Subway. Currently this leashing logic also applies to outdoor zones. We will revist this logic with likely adjustments to be made to how it will work in the great out doors.

Client Database Version

We've recently made a shift to a more recent version of the client's database, 18.4. Previously we operated on version 15.5.5, as this version was the last SL patch before AI. The client database in the 15.x era contains items and nanos that have specific flags. Over the years the original developers made patches that introduced new flags as well as changed the way many nanos mechanically functioned. PRK however uses the most recent set of binaries from the live client. This inconsistency between client database and client binaries created a variety of problems. That being said we made the decision to move to 18.4 as this will provide a higher fidelity of item and nano support.

Bug Fixes

#643 - Cannot place items in a bag
#642 - Enemies do not appear on the minimap
#640 - 'Empty' bodies persist in the world.
#639 - The Brawl Attack action seems to be missing its stun component.
#637 - Tab Targetting currently doesn't work on most NPCs
#636 - Looted Credits are duplicated visually on the client.
#635 - Looting items isn't reflected in the player inventory.
#632 - Feared mobs teleport around instead of run
#631 - Crat robot pets cannot be spawned
#629 - The Keeper Righteous/Unhallowed Fury Item has no cooldown.
#628 - Keeper Fury item does not work after zoning
#627 - Targeting self with a hostile weapon proc running interrupts auto attack
#626 - Evangelical Reaper procs heal for too little
#619 - Attack Pet attack routine currently broken.
#617 - Shade offensive proc nanos don't
#616 - Failed perk actions have non-descriptive errors
#615 - Perk dependencies don't cast on fighting targets
#613 - Summoning the MP mezz pets cause a server crash.
#612 - Self-damage components can be passively resisted.
#611 - Self-damage nano components also cause you to take damage from damage shields.
#610 - Self-only buffs are cast on the target instead of the caster.
#609 - Mongo's Ultra Behemoth can be cast on targets other than self.
#606 - Title Levels are incorrect for Levels 1 - 4
#605 - Non attack on sight mobs attacking on sight
#604 - Joining team is currently non-functioning.
#603 - Doors to the Subway don't allow players through
#601 - The Fixer Grid item 'Data Receptacle' last indefinitely.
#597 - "MA for combined attack" does not execute fist attacks
#596 - Unequippable weapons do not indicate they cannot be equipped
#592 - Profession Implants shop terminal clickable areas change shape with camera a...
#591 - Mobs warp when rooted
#590 - Charm nanos allow overwrite
#589 - Mind Control/Charm nanos don't work
#586 - Outdoor mobs cannot be fought
#585 - Outdoor mobs are all level 1
#584 - Over-equipped (OE) is currently not implemented.
#582 - The 'Trader Debuff AC Nanos' debuff line does not apply the higher debuff.
#581 - The 'Debuff NanoAC Heavy' line (Trader) cannot be used.
#578 - Guards have 25 health
#576 - Stacked items can be split in bag
#570 - Steps of Madness mobs all have 35 total health
#568 - Steps of Madness is virtually empty
#563 - Random teleporting to Greater Omni Forest whilst in the Omni Forest
#517 - Distill Life 6 & 9 Perks do not function.
#508 - Can't Equip Candy Cord due to Title Level
#496 - The majority of the shops are empty
#494 - Instanced mobs don't leash back and wipe hate list
#472 - Swapping items with the same stat modifiers exponentially increases the stat...
#456 - Vendors sell weapons with only 1 ammo in the clip
#447 - Light of Reclaim terminal antenna in incorrect location (in front of terminal)
#427 - NPC / Mob stats (e.g. health, damage) may not match their level
#424 - Killed mobs respawn unnaturally quickly
#396 - Monsters in Steps of Madness missing idle mesh
#393 - Monster does not die and continues to fight with zero HP
#390 - right click to autoequip NCU chip or belt, don't work
#370 - Every player in a team gets the same amount of XP
#365 - Level 25 players can not enter the Subway
#363 - Mob instances always have the same level, even if it's meant to be variable
#347 - Pets do not follow correctly
#329 - Buying multiples of the same item from a vendor costs the same as one
#310 - NPC Vendors are spawning with a physical terminal at their location
#207 - "Fear" not implemented

That's alot of work! We want to make a special shout out to the new "Bug Hunters" team, @Raggy and @TinkeringIdiot.

For a list of any open issues feel free to check out Issue Tracker

Are we there yet?

Of course, as many have asked 'when will we be re-opening'? Well I'm happy to share that we have closed a great deal of critical bugs. We have a few more things to do to improve the quality of our navmesh and pathing for NPCs. After which we will be re-opening the doors to PRK and folks will be able to login, play around and explore.

As we jump headlong into 2024, we want to thank the community and encourage all to keep up the hard work on this project!

If you'd like to learn more about the project or just look around, drop in to our Discord and say hi!

Portaler



Welcome to January, 29498 AD

Mon, Jan 15, 24

Greetings Rubi-Ka Citizens!

@Portaler here with an update for January 29498 AD (2024). It's been an action packed month since our last update. First and foremost, I'd like to express our collective appreciation to the Project Rubi-Ka tester community. You have been absolutely great over the years and in the past 3 months since we've expanded our tester pool we've seen a huge surge of not only activity, but quality bug reports!

The bureaucrat droid without textures will haunt my dreams...

We have some rough figures to share. The community has seen a huge increase in activity, with our Discord opening up and growing to over 110 members, 89 of which have joined in the past 2 months. We've had over a dozen different community members reporting over 72 bugs and defects. We've resolved over 60 of them, with a handful still needing final verification of resolution.

A special thanks to: @PlayboyFixer, @EnfoDoug, @Varzog, @S4ff0, @deathlef, @westtell4, @Random823, @Xannon21, @AOFlux, @praxis1988, @gigabite1123, @GlitchyGirl, and all others who have contributed this past month.

No leets were (permanently) harmed in the making of this news post.

The community testers have been hard at work, and it shows! As is tradition in developer circles, when we fix bugs we often make bugs. We do our best improve our unit testing systems to help prevent regressions. I will say that this is a challenge in a project that has grown organically as our reverse engineering discoveries often require us to rethink and rewrite entire systems. We've done this many times over the years. So as such, we have to work extra hard to make sure we move our agg/dev slider to the left and practice as much 'defensive programming' as possible.

For a full list of bugs closed check out Latest Changes page. For a list of any open issues feel free to check out Issue Tracker

A Deeper Dive - Collisions and Meshes

So, is there anything that can be shared about our deeper dives into the Anarchy Online? Absolutely, @Unknown and @3F1 have been hard at work on a number of engineering dives. One of the key discoveries of recent months has been the analysis and reverse engineering of the client's geospacial structures. They are stored in custom formats of which contain collision meshes in KDTree format. These structures determine the vertices and points that make up the polygons that form the structures of Rubi-Ka, shown below.

A peek at what the collision meshes look like under the covers.

So what value is there in parsing and understanding these structures? Well first and foremost we use these structures to build higher fidelity navigational meshes for NPC pathfinding. Additionally we have it in our backlog to use these structures to build in physics like ray tracing to determine things like Line of Sight on when firing a gun, casting a nano, being affected by an AoE vs standing behind a wall or obstacle.

By processing these structures we can bring higher fidelity physics to our server-side logic.

Do you recognize this playfield? Hop over to our Discord and tell us what you think it might be?

Join our community

As we jump headlong into 2024, we want to thank the community and encourage all to keep up the hard work on this project!

If you'd like to get involved with the project as a tester, drop in to our Discord and say hi!

Portaler



Dynamic Entry - randomly generated missions, bugfixes and more!

Tue, Dec 12, 23

Hey everyone, I'm Drake, and I'm a newcomer to the Project Rubi-Ka team! I joined the team a few weeks ago as a developer and I've been mostly working on bug fixes, but I noticed that this website was sorely in need of a news update, and I thought what better way to introduce myself and breathe a bit of activity into this website at the same time?

If you haven't already, join our Discord server and get involved with the project. We'd love to reminisce about old times and talk about that time when Funcom accidentally added +15000 Stamina to a random perk action with you.

Remember when ICC looked like this? Me too, because this is how it looks on the Project Rubi-Ka server right now!

Dynamic mission system (ACG)

We've (well, it's mostly been @Unknown, to be honest!) been working on adding support for the automatic mission system and we've made good progress! We have a playable static mission which you can pull from a mission terminal, and it has the outrageously well-dressed Rubi-Ka citizens we all know and love.

If looks could kill, she wouldn't need nano programs.

@Unknown has made good progress on generating the room layout and making those little tetrominoes fit together in just the right way so that it's playable and familiar to all of us. I don't know about the rest of you but I've blitzed probably thousands of missions at this point, so if something was off about the generation, it would probably be noticeable. That isn't to say that we can't make any changes or improvements, though, but at the moment we're mostly just aiming for accurately replicating the original game.

This is a visualization of how rooms will be placed for the dynamically generated dungeon - this is a surprisingly difficult task to accomplish, figuring out how doors should overlap, and so on, is a tricky problem to solve!

Items database

As some of you may have noticed, unfortunately, one of our favorite resources, AOItems, has been suffering from issues and isn't usable at the moment. We really love the debug feature of AOItems because it makes it so much easier to track down and diagnose issues and implement new features, so not being able to use it really is a pain.

So, to alleviate this issue, Portaler has been cooking up a Project Rubi-Ka items database. We used to have one of those online some time ago, but due to refactors and so on, it hasn't been available for some time. That has changed! The items database is now accessible through the player portal, but it's still very much a work in progress.

You should take every opportunity you can to share Anarchy Online's finest grenade weapon far and wide.

Of course, this database is using the resource database version which we currently have on the Notum server (15.5.2), so it's quite a bit different from the live servers, which is another reason that it's good to have our own version. Portaler is working on improving it as I write this so I'm sure it'll be an indispensable resource before too long!

Other changes in the last month

New Features

  • The tp command has been expanded. Type /tp help for more details.

Bug Fixes

  • Weapon shops no longer sell invalid weapons.
  • Character deletion has been fixed.
  • Fixed an issue which caused session drops when zoning.
  • Players who teleport or login to an invalid playfield are safely transported into the Grid instead of being lost forever in limbo.
  • Fixed a bug where leaving a playfield would leave behind “zombie” sessions.
  • Fixed a number of issues surrounding drop rates and loot tables.
  • Fixed damaging nano programs (such as NT nukes) to actually cause damage.
  • Fixed Grid terminals so they teleport you into the Grid.
  • The costs of nanos/effects which cost credits (such as engineer robot nanos) will now be visible when you cast them.
  • Nascence chimeras now have the correct skin texture
  • Various other bug fixes and improvements.
  • Head meshes have been fixed.

Join our community

That's all from us for now, and probably for all of 2023. The Project Rubi-Ka team wishes you all a fantastic New Year and we look forward to all of the exciting bugs that we'll accidentally introduce in 2024!

If you'd like to get involved with the project, join our Discord and say hi!

Drake



Plugins Coming to Project Rubi-Ka

Thu, Jan 21, 21

This week we're proud to announce one of our latest initiatives, a culmination of weeks of labor by our team member codenamed, @Unknown, one of the most talented developer's I've had the privilege to work with. His dynamic and flexible skillset has yielded one of the coolest features for Project Rubi-ka yet, a full-fledged plugin system exclusive to the Project Rubi-Ka emulated server! Our system provides plugin developers with the opportunity to create in-game plugins and UIs that allow for a deeper customization of the Anarchy Online client.

Plugin developers will work with LUA, a scripting language common in the game development scene, for quick and easy plugin development. Developers will be provided with a simple PRK Api in LUA that will allow them to query the client for their character's stats, listen to certain events and tailor their UIs as they see fit.

With this system, the possiblities are truly endless! We've very excited to roll up our sleeves and develop a new wave of custom interfaces for Anarchy Online!

With that being said enjoy some glimpses at our latest work in this area.

Organization Management Plugin

The new Org Management plugin is a brand new user interface designed to make keeping on top of your org that much easier. You can:

Currently Implemented
  • List all org members in real-time getting live updates on their status and location
  • Search your org members by name
  • Kick org members that are online or offline
  • Promote org members that are online or offline (Live only allows for online promotion)
  • Demote org members that are online or offline (Live only allows for online demotion)
  • Create organizations
Ideas For Future Org Management Features
  • Edit Org taxes, description, objective and history
  • Edit Org Contracts
  • Org Bank audit logs
  • Items support for Org Bank
  • Org Recruitment

We are also preparing an in-game Damage Meter and more. Stay tuned for more updates!


Until then, Portaler out!

Portaler

Developer | Co-Founder



Where's Your Head At?

Thu, Oct 29, 20

Looking to get ahead in life?

This week we've been tinkering with character meshes! We've now got a firm grasp on the process needed to add new heads for character models!

Browsing through the existing textures we can easily add a few low-hanging fruits in the form of new, existing heads. Check out two new heads available to solitus female and male characters.

So those are existing textures already in game found on cyborgs around Rubi-Ka. But we also have the opportunity to dust off our digital paint brushes and paint new head textures.

But those will come with time, as none of our team are nearly as good at painting textures as we are at software engineering (forward and reverse).


Until then, Portaler out!

Portaler

Developer | Co-Founder



Banking on Rubi-Ka

Wed, Oct 21, 20

New Content on Project Rubi-Ka

First, we'd like to introduce a new feature we've developed for Project Rubi-Ka, the "Account Bank".

We'll be dropping these around Rubi-Ka and they will allow you to easily store items across accounts as well as transfer items between characters on your account.

This debuts two concepts that up until this point have been theoretical. One, custom textures, as seen in our new Account Bank terminals. And two, custom server-side features, as seen in our ability to create a bank tied between characters. One thing still to be determined is how to handle uniques and no-drop items with the account bank.

Status Update

The new additions to our testing team have really accelerated the development process. The team has tracked down dozens of bugs that have been squashed, dozens of new bugs introduced (thats development for ya!).

We are making decent progress, all things considered. We hope to have additional news to share in the coming month or two regarding missions as well. Stay tuned!


Until then, Portaler out!

Portaler

Developer | Co-Founder



Moving at the Speed of Sound

Sun, Jul 19, 20

Status Update - Let there be sound!

Ah the power of sound, from the whip-crack of thunder, to the sweet lullaby of a nurturing mother, the ability of sound to influence us is evident.

Throughout the years Anarchy Online's creators spent a fair bit of time crafting all the creaks, cracks, whistles and thumps that go into the sound landscape of Anarchy Online. I have seered into my mind the sounds that the starter Engineer droids make ("do dooo do do do").. the confirmation your war droid gives when he's slain another target.

But one question has been how do we tap into the sound effects system of the Anarchy Online client, to allow for custom sound effects? At first glance this may seem like a trivial endeavour. A quick parousal of the `cd_image` directory will reveal a handful of sounds that can be customized. Replacing existing sounds may interest some, but whats most interesting to us is creating new sounds and triggering them from our servers. This will allow for more robust content creation at a future state (more on that next month). So the work needed to add new sounds to the client required a fair amount of developer grease to make happen.

Once we began to dig in we realized the client actually plays most sounds independently of the server, meaning the server does not explicitly tell the client to play a sound usually. But in some rare cases, the server does actually instruct client to play sounds. The team and I brainstormed on examples of this when we thought of some of the NPCs in the starter area. Low and behold we found a method in which the playfield engines can trigger sounds on player's clients. But once the request reaches the client, how does the client know which sound to play? It requires we rebuild the client's index of sound files to allow for additional sound entries to be added.

With a few days hard work, we've now got server triggered custom sound effects, ready to be recorded and introduced.

But where will we be using these sound effects? Old content? New content? More on this topic next month as we dig further into our new encounter system.


Until then, Portaler out!

Portaler

Developer | Co-Founder



Developer Update July 2020 - The Boys Are Back In Town

Mon, Jul 06, 20

Status Update

Wow. 2020. Yeah, so this has been a crazy past 5 months for our team. As you can imagine lots of changes, major developments in life, as has been the case with many across the world. By way of covid update, no one from our team has passed away, although we've had members contract and endure through it. I could go on but my guess is you're all fairly tired of hearing about COVID-19 by now!

So what's new for us? We've had a few months off and our itch for development has sprung back to life. The past week or so we've spent much time on two major avenues, one we've decided to modernize our hosting solutions and switched our playfield, login and chat engines to run within containers. This gives us a little more flexibility in terms of hosting and operations. We've also spent a bit of time revamping our data footprint on the serverside. One things we've noticed is that during the research phase of our project data formats were often unknown. This led us to be a little less tidy than we'd generally like with our data management, relying on JSON and other binary formats for alot of the data that powers items, nanos, heightmaps, and much more. This led us to have quite a bloated repository, and subsequently a bloated deployment pipeline and devops experience. So we've flipped out data footprint on it's side and moved much of our content into good ol' relational databases. This allows us to iterate on content and features faster and prepares us more fully to build a toolset for creating items, nanos, npc templates and modify things like spawn points.

Bleh... boooring

Yeah. The above was a bit of a boring task but it had to be done. But on the other hand one of our intrepid devs aka '@Unknown' has been working on a new initiative for a custom client that supports both the live and PRK server protocols. This will help us in developing a dev client for our own content creation and management purposes. But it also has interesting impact on the broader AO experience. It's completely exploratory and experimental! But it is interesting. Hopefully we will have some more juicy updates on that front soon.

Anyway, its good to be back, the show must go on!

Sincerely,

Portaler

Developer | Co-Founder



Developer Update 2020 - Crisis on Finite Earths

Tue, Mar 17, 20

Status Update

As you may have noticed we have not posted in the past two months. I wanted to let the community know why and what the next months will look like.

In January a close friend became ill with a genetic liver disorder. At 33 years of age his health quickly declined, and just a few weeks ago he's passed away. This was followed up by another family member passing away due to cancer. So it's been a hell of a past few months for me personally.

More?

As many are aware, the COVID-19 pandemic has had impact on us and our project. It's upheaved our lives in three different timezones across the world. That being said we are prioritizing our families and our own health during this time.

when the dust settles we hope to continue out work on this project.

Sincerely,

Portaler

Developer | Co-Founder



Developer Update 2020

Mon, Jan 20, 20

Whats New?

A new year is upon us! Work has progressed, vacations have been enjoyed and we're ready to tackle a new year. Just one year back give or take our project began in the minds of our devs. And since then we've come so far. The question is what is next?

Well first I'll give a brief recap of whats been done since our last update.

Progress on Missions and Dynamic Content

Much work has gone into supporting the creation of dynamic instanced content. In Anarchy Online this generally comes in the form of missions. There have been challenges, mostly around the handling of doors, rotation and the confluence of both. But we do have good news in this area, we believe we have figured out how to handle both of these concerns.

With that being said hard work is being put in to support a finite set of pre-assembled mission layouts that will allow players to roll missions as you would on live and be assigned one of those pre-assembled layouts.

Why are we calling it "Dynamic Content" instead of just missions? Technically speaking the mission system does not only have to be tied to missions. We could use the bits and bytes of the same system to create our own custom dungeons. The possibilities here are endless!

So we hope to have some working samples rolled out to our testing team in the coming weeks.

Testing Team Changes

Starting this past Thanksgiving we invited about a dozen or so testers into our testing environment. Generally speaking this has been successful in helping us to drive out bugs and mature our overall operations tools and experience.

We expect to be adding additional testers in the next few weeks after we tie up a few loose ends in our operations and processes (things like improving account signup, access management etc).

Project Rubi-Ka Items Site

We have also been working hard to build a simple "Items Database" website akin to aoitems.com. Since we will soon have adjusted content as opposed to the live client data we expect a bit of drift from the items found in aoitems.com This being said we have decided to create a small site that will serve a similar role.

We even have a 3D renderer to render weapons right in the browser!





So with that being said we are optimistic and excited as things are progressing forward!

Stay tuned!

Sincerely,

Portaler

Developer | Co-Founder



Put It To The Test - Round One

Sat, Nov 30, 19

Go Team!

This past week we entered our first round of closed alpha testing. And boy was it glorious! The team put in many many long hours over the past week. We squashed dozens of bugs, operationalized our test servers. We strengthened our devops pipelines, improved our server management tools.

A huge thanks to our team of testers, about a dozen different people have contributed by way of testing and validating the thousands of hours of work we as a team have put into this project already.

You did what now ?

Yes, we opened up for testing. Our first round of tests were pretty narrow audience. We know many applied to join us and were not involved in this first round. Firstly, we deeply appreciate the enthusiasm the community has shown towards this project. We appreciate all those who have applied as it's given us a "shot in the arm" to push us onward. Second, we will expand our testing team as time goes on so fear not.

Overall Health and the Path Forward

Overall this round of testing brought out some important defects. But fortunately, so far none of the defects appear to be ground breaking or considered "major" blockers. We will work over the next week or so squashing the bugs found.

The future so far is bright! We don't forsee any major technical blockers. We have only one or two areas that are still waiting for full implementation, that is auto generated missions and pathfinding within indoor zones (subway/totw/etc).

Once dust settles on our bug squashing we will return to these features to bring this project that much closer to a public release.

Sincerely,

Portaler

Developer | Co-Founder



A Call To Arms - Testing Season Coming

Thu, Oct 10, 19

Will you answer the call?

Its now been ten months since we began Project Rubi-Ka. It has truly been an adventure! In recent months we've made leaps and bounds forward and are preparing to move ahead in our initiative. With that being said we're happy to announce that we are planning to open up a "closed alpha" season starting winter of 2019.

Closed Alpha Details

First off we want to be clear that this will be a "closed" alpha, meaning we will invite a select set of people to join the alpha test. We are super eager to share this project with the community, but we want to make sure it gets off to a good start. To do so we need to make sure the quality of our work is up to a standard that everyone will expect from an MMO. This is no simple task.

So with that being said what will the goal be for our first closed alpha season?

First we need to iron out bugs and the best way to do that is to just try playing the game. We will likely be focusing our efforts on initial starter zones and major cities on Rubi-Ka. We will be focusing on open world content as well as dungeon content (subway and totw). Unfortunately missions still remain on our development roadmap (curse you ACG doors!). Most nanos should work. Most abilities.

Of course bugs remain a top priority, but also another goal is to properly collect information on performance as additional players are playing the game. We are constantly making optimizations to reduce the latency on our playfield's "heartbeat". Also things we will look out for is functionality breaking when observed by another player. Often when we are developing we implement a feature and we test the feature as the player. Often we do not test the feature as if observing another player doing it. This means sometimes we miss things like making sure messages regarding the players activity is properly broadcasted.

So are you interested?

If you are interested in joining us in our closed alpha test, please fill out this survey. As the weeks draw closer we will start to pick from folks who have completed the survey to join us in testing.

Sincerely,

Portaler

Developer | Co-Founder



Percolating Perks - The Brew That Keeps On Giving

Tue, Aug 27, 19

Perks? Really?

For many, the perk system allowed Funcom to breathe life into AO. It allowed for deeper character customization and decision making that helped you feel more planful in your build. It gave you an extra burst of power, and for some classes provided class defining abilities.

For some, perks were just a small feature in a much bigger shift in direction for AO, a transition from a SciFi/Cyberpunk themed MMORPG to a mixture of fantasy and SciFi. Some loved it, some were less forgiving. But overall the perk system provided a deeper degree of character growth and customization.

Perks and Project Rubi-Ka

We have always put off working on the perk system. For our early work we focused largely on rebuilding Rubi-Ka. And still that remains our focus. As much as we appreciated some features of Shadowlands, and even enjoyed the fantasy a bit, we were less enamored with the way Shadowlands left Rubi-Ka content feeling more neglected that a red headed stepchild. (Sorry, we love the redheaded community, go team ginger!).

But as we progress through the engineering effort of emulating Anarchy Online we decided to start to peel back the layers of what would go into implementing the perk system.

Oddly Consistent

Perks actually were pleasantly easy to implement! This was because Funcom chose to use the same "SpellFunction" system they use for spells, nanos, armor just about everything else. Under the hood perks are not much different that equipping armor. They get added to your character with "OnWear" effects that get added up. They also make available certain perk actions, which also share similar behavior as nanos in the sense that they have criteria/requirements, they have "OnUse" functions that are executed. You can see for yourselves how this works under the hood when you take a gander at AO Items listing for a perk action.

Once your familiar with a few more key message formats that are used to drive the perk management and perk action execution, you begin to have a perk system that looks and feels alot like live Anarchy Online.

All of this was relatively straightforward to implement, so hats off again to Funcom for building a system with alot of reusability and structure.

Stay tuned!

Sincerely,

Portaler

Developer | Co-Founder



The Macabre Business of Corpses

Tue, Aug 27, 19

So Your Into Corpses Now?

For the past few weeks we have been toiling away the wee hours of the mornings tinkering with corpses. Taken out of context, no doubt this would be a scandalous headline indeed. For the duration of our project thus far corpses have remained an enigma. We thought we might discuss the challenges faced.

Firstly, what is a corpse in Anarchy Online? Although they have a tight coupling with the NPC from which they were generated, they are actually closer to the "chests" you find in missions. In fact, the messages that drive the presence of a corpse are in fact extensions of the same messages that spawn chests, with the addition of a few key attributes like textures and meshes for the body, who the body belongs to, etc.

When attempting to bring to life a feature like corpses (ironic - I know), which are virtually a black box, it can be quite a challenge to identify what is going on under the hood of the client to make it functional and seamless for the player to interact with.

Status - Get On With It!

I know, this is likely what you're thinking:

So what is the status? Will we see those corpses hit the floor spilling their wonderful goods for the people of Rubi-Ka to loot?

Yes! We have most corpses working. In fact, bodies have been hitting the floor in clan backyards all over Rubi-Ka. But, as is often the case, things are not so clean cut. Some NPCs appear to not despawn when the Corpse message is sent to the client. We have yet to identify what is causing this problem. We suspect there is some sort of character flag or animation uniqueness to those mobs that cause the NPC to remain.. and the corpse to not appear.

The other thing yet to be written is the loot table system. We have collected large amounts of loot data and statistics. So we have data to run with, but we will need to wire it all up. But the good news is, the mechanism of looting itself is working. In fact, this was actually quite simple, as it follows a similar message structure as bags and other containers.

So, without further adieu.. the obligatory video that has been on loop in my head through the writing of this post:

Stay tuned!

Sincerely,

Portaler

Developer | Co-Founder



It's Tools Time

Sun, Jul 21, 19

Developer & Design Tooling

Over the past 7 months we have worked dilligently to understand as much of the Anarchy Online clients as possible. Much hard work has gone into parsing the client side relational database (rdb). We have the many of the record types mapped and the dive through each bit and byte continues. In our journey, we've often stumbled upon interesting easter eggs and oddities throughout the client and the rdb.

The reason we have spent so much time understanding the rdb is because ultimately we would like to create a world builder/editor similar to "Tide". A tool that will give us the ability to view, place, modify and edit textures, meshes and other statels.

This is an incredibly challenging task! FC has burried (albeit perhaps unintentionally) all sorts of hurdles to overcome. Variations in rotational math, forward byte order, randomly reverse byte order, 3F1 (don't ask), we can go on and on.

But we do enjoy the work. It is sort of a hunting game. Digging through bytes and getting an idea of what is what.

One thing we thought we'd share is yet another example of FC's quirkyness. Has anyone ever noticed that in Old Athens there are bottles lying around the ground? Litter!

If you look closely you can see the texture below. To think some game designer likely in the late 90s sat down and sketched out that little bottle. Digging through the internals of this game has taught us the appreciate the love and time put into the smallest of details.

More to come!

Sincerely,

Portaler

Developer | Co-Founder



Exploration in Unity

Wed, Jul 10, 19

Build a World

During our efforts on Project Rubi-ka we have found many scenarios where it benefits us to be able to render AO's models, terrain, and even textures. Some of our devs have a great deal of experience in Unity and were able to use to our benefit.

As an added benefit to building tooling for the server emulator, you get to see what AO would look like built with a more robust engine.

Please note, that our goal is NOT to emulate the client. We simply use Unity as a test bed to test various tools we have created to help us in our server emulation efforts.

Ciao!

Sincerely,

Portaler

Developer | Co-Founder



Core Combat and Other Goodies

Tue, Jul 09, 19

The Journey To Core Combat

One of the first major steps for our emulator project has been to emulate combat. There are a number of mechanisms that need to be put in place and handled to make sure combat functions as expected. There are dozens of different messages that are sent back and forth between the client and server in order to make combat function as it is on 'live' AO.

Another major element to combat is having something to shoot at. So in order for us to build out combat we'd need a mechanism for spawning NPCs. With more work and studying of the packets that describe NPCs as they are spawned into the world. We were able to summon all sorts of creations.

With this in mind we'd like to share some screenshots you all might find interesting.

Aztur in OA

Aztur in OA 2

Lots of great things coming!

Ciao!

Sincerely,

Portaler

Developer | Co-Founder



Great Expectations and What To Know

Sun, Jul 07, 19

So you say you have a 'server emulator', eh?

What is a server emulator? In the case of Project Rubi-Ka our team has spent countless hours studying and understanding the structure of packets being sent back and forth betweent the Anarchy Online client and Funcom's servers. With help from past community projects we have been able to get a firm grasp of most of the packets being sent by the client.

This allows us to do basic things like simulate a login, simulate the server accepting a character creation, retransmit player movement messages, etc. But server emulation goes far beyond just replaying messages at the right time. Server emulation requires you have a firm grasp of how the existing server structures it's data in memory, handling things like player inventory, player stats, active nano programs, armor, equipment, implants. It takes alot of design and alot of critical thinking to determine the best solution.

What should I not expect to see?

We have no access to any original source code for Anarchy Online. We have ultimately no idea exactly how specific things are coded to behave. We simply can observe and emulate. That being said there are cases where we do not have a clear picture of how Funcom is handling 'xyz'. One example of this is pathfinding. We just don't know intimately how Funcom handles pathfinding. But we do know a little on how they handle movement. As such we have implemented our own pathfinding system based off of common libraries used in the game development community. So you can expect some differences in behavior.

One thing we certainly will never have is live server player data. This is highly confidential data that would constitute a major breech of player privacy. As such we will never be bringing over characters from Live, even if a mechanism should exist to do so.

What is the current status?

We'd like to periodically provide updates on the overall status of the project. We will also be reaching out to our testing community as different windows for testing become available. Community input and feedback is vital to the success of the project and we value the communities input. For the most part the list below is accurate, although not every single nano program for example has been fully tested as this will take quite a bit of effort. But the general mechnisms exercised by the nano programs listed have been implemented. Much of the Shadowlands content has not been tested as our focus will be on Rubi-Ka for the forseeable future.

Current Features Implemented:
  • Combat
    • Auto Attack
    • Special Attacks: Brawl, FastAtack, Flingshot, Burst, Aimshot
    • Attack Range
    • Attack/Recharge Bars
    • Combat Stats: Evades/Dodge, Attack Rating
  • Nano Programs
    • HoTs, DoTs
    • Heals
    • DD Nukes
    • AoE Nukes
    • Team Buffs
    • Buffs
    • Charms
    • Mezz
    • Stuns
    • Debuffs
    • Teleports
  • Pets
    • Engineer Attack Pets
    • Engineer Dog Pets
    • Beauracrat Attack Pets
    • Beauracrat Other Pets
    • Beauracrat Charms (currently only one active charmed pet)
    • Metaphycisist Heal Pet
    • Metaphycisist Attack Pet
    • Metaphycisist Mezz Pet
  • World Content
    • Static spawns
    • Dyna Bosses with random modifier (still waiting to implement naming system)
  • Loot
    • Looting works but loot tables not implemented.
Features Not Yet Implemented:
  • Missions - We have made much progress with missions but it is still not ready for prime time.
  • Combat
    • Sneak Attack
    • Dimach
    • Ammo/Reloading
    • Full Auto
  • Nano Programs
    • False profession
    • HP/Nano drains and transfers
  • Dynamic Spawns - We still have not implemented random spawned NPCs you find wandering around large zones like Greater Tir County, although many of the spawns are considered "static" spawns that always spawn in a single location.
  • Scripted Spawns - Some spawns are scripted by Funcom's servers and as such we will rely on the community to provide details on how these scripted encounters will work. An example of this is Uklesh the Frozen in ToTW upon his death Khalum spawns and then Aztur, we believe this will be server driven.
  • Loot tables still need to be worked out.
  • Chest loot needs to be worked out

Much work has already gone into this project and we suspect we'll rely heavily on the community going forward to help us flesh out our implementation.

Please stay tuned as we will reach out to the community as testing and content topics arise.

Ciao!

Sincerely,

Portaler

Developer | Co-Founder



New Beginnings and Fresh Starts

Fri, Jul 05, 19

We felt we should start off our journey into emulating one of the greatest science fiction games of the past 20 years, with a brief history.

Firstly, I am Portaler, one of the core developers on Project Rubi-Ka (PRK). Our team has been drawn together by a common love and appreciation in Anarchy Online. Each of us remember fondly our formative years dungeon delving on Rubi-Ka, exploring Rubi-Ka, the Shadowlands and beyond. As developers and fans, we each had contributed to other emulator projects in different ways over the past 10 years, always working to build little by little on the work of others. Over time we realized the best path forward was to forge a new path ahead. In January of 2019 we began our initiative to emulate the live servers of Anarchy Online.

This task has been and continues to be an immense challenge. There have been hundreds of obstacles, unknowns and set backs that we have overcome. We have learned so much and are truly humbled by the sheer magnitude of work that has gone into and continues to go into this project.

When we first began our emulation project we benefitted from a great deal of knowledge acquired from the confluence of the developer community and the AO community. After all, AO is a science fiction game, so it attracts developers from all over the world.

Our team spans 3 continents, 4 time zones and together we have poured thousands of hours into this project. It never ceases to amaze me the talent and skills that volunteers bring to the table, the things this team has been able to accomplish has been a fantastic journey that will continue to embark upon.

We will do our best to keep the community updated as to our progress, sharing updates and information as they become available.

Last and not least, we want to make known our respect and appreciation for the FunCom developers that have contributed to Anarchy Online over the past near two decades of time. So many have come and gone through Funcoms doors (you can tell from their work :-D #love), but their dedication, thoughts and efforts do truly shine through in many aspects of this game. Truthfully, thank you for your hard work.

Sincerely,

Portaler

Developer | Co-Founder