The Story Behind the Development of the Chambers of Xeric
On November 7th, 2019, the first commit for the Chambers of Xeric was committed. The message? "Started the system that is in charge of supporting dynamic map content." - by @Juan. Since then, Raids has grown to be a codebase of over 15,000 lines of code. 15,000! And that number continues to grow each day. For some perspective: the server itself (not the login server or update server) is over 112,000 lines of code. That means 1/8th of the code-base is Raids!
From early November till the end of December, Juan diligently worked on raids. In this short timespan, he managed to make the basic skeleton and functionality for the Vasa Nistirio, Vanguards, Skeletal Mystics, Tekton, Muttadile bosses, as well as the Creature Keeper, Guardians, and Tightrope puzzles.
However, unfortunately, we must strongly underline "basic skeleton and functionality." Nearly each of these rooms turned out to be not quite on par, and have since had to be modified one way or the other.
Since late December, the development of Raids has been very, very bumpy. With Juan having to part ways with us, the server only had me as the developer. With the pressure of weekly updates, I could not simply just abandon the live game in an effort to make Raids updates. After all, the lack of weekly updates was what was said to be the symptom for the downfall of Near-Reality. I didn't wish to make such symptoms present to the outside world.
From late December till April, we continually faced ourselves with the same problem over and over again: hire a developer, the developer does not do much, we part ways with the developer. This cycle continued on for over 7 developers. Honestly, it's quite a tiring process. In that time span, despite hiring 7 developers, the only progress we got was the interface for the Raids parties (just the interface, the functionality ended up having to be rewritten) and Raids potion-making (which was buggy but nonetheless worked at a satisfactory level).
In April, we hired @Andys1814. After an initial task of the Raids point system, we moved Andy over to the main game. With somebody finally working on the main game. I was able to continue work on Raids. It was in this time I managed to make the party system working.
After that, however, the main server started losing stability. There were bugs left and right and the only person that was immediately around to take care of them was myself. So, I had to tend to the main server.
In May, we hired @optidad, who has proven to be an essential developer in our push for Near-Reality. With Optimum's first task being the rewriting of Combat, I was confident in leaving the main server progress in Optimum's hand and taking Raids back in my hands, splitting the workload with Andy.
I returned to Raids and fixed the bugs with my party system. Then, I started a spree working on the Great Olm while Andy did general quality assurance. In about 2 weeks, I finished the Great Olm. Meanwhile, the "quality assurance" wasn't all that great in terms of progress.
Enter mid-June, I did a lot of visual improvements to raids. Allowed raids to look more coherent and complete. In my venture, I found some breaking issues that had still not been taken care of, such as how clipping behaved with respect to room rotations. We also didn't have a map that existed that was connected. What started as visual improvements turned to be behemoth of tasks, and we ended up delaying the launch from June 27th. There were many all-nighters spent by myself, with over 40 hours of work in 2 days being done in multiple instances. But issue after issue, I started to realize the faults in other developers attempts and having to fix them on top of my already long list of tasks.
Enter July, after another 40-hour all-nighter, Raids was just not ready. I was really exhausted, to be honest, but unfortunately, after many, many efforts, we were unable to deliver to you, the community. I apologize for that.
Not every developer logs their progress. Yes, it is a nuisance, for both you the players, and I as the development lead, but such is the development world. This is my personal progress as just a sole developer.
Please note: In the frenzy of development, some progress may not be logged entirely. Especially when I myself had many all-nighters spent. A lot of features would be worked concurrently and aren't definitively logged.
July 27: The final bugs after beta testing the Creature keeper and Crabs puzzle rooms have been crushed. After that, some research began on quality assuring the Hunter Resource area.
July 9: The Creature keeper room has been quality assured!
July 8: Optimum worked on the Tightrope puzzle. He found some bigger issues related to Ranged combat. He made a whole row of NPCs to test it out:
I hope we can see some larger progress on that end soon.
July 7: The Crabs puzzle room has been quality assured.
June 30: The rewards interface was remade to match OSRS more. The rewards now display after killing the Great Olm.
Optimum programmed some reward item functionality (others were already present), such as the Dragon hunter crossbow. I had to program some too.
All the missing raids data from before in June 28 had NPCs populated.
Various bugs in all rooms were fixed, such as the Crabs room (it was pretty much incompletable lol), the Tightrope room (a certain tile caused you to just no-clip to the other room). Vasa Nistirio was attempted to be fixed for a while, but in the end, all that was accomplished was the correction of mechanics and not the major pathing problems present.
The restrictions on Pre-EOC items was programmed in. This was made by restricting all item IDs from 11,673 till 30,000 and making exceptions for certain cases. The customs were done interestingly, taking the client's hardcoded item definitions and translating that code to be part of the data set. There was also a command added to allow the reloadability of this data file of exceptions in item IDs, just in case we accidentally made an item that is supposed to be allowed as not allowed in raids. It would be stupid to make a server restart each time we found an exception to the rule.
June 29: The drop tables for Raids was finalized. Other mechanics such as points being deducted on death were performed. The building of Storage units was complete.
June 28: All rooms data was added. Certain rooms data were still not present in the codebase.
Later, an issue was found in regards to map rotations. The clipping was still maintaining the original direction's rotations rather than respecting the rotation of the room. After staying up for 20 hours straight, this issue was resolved.
After about 4 hours of sleep, I continued working and made a level system in Raids, with points in the map marked as spawning points and whatnot, and the ability to transform your z coordinate and changes happening on your new height and death positions.
Progress by the end of the (very productive) day:
June 27: Clipping and pathfinding had major changes done, albeit they are sort of cheap changes. Essentially, the server was determining an incorrect path diagonally when it, in fact, could not go diagonally. There was a correction done to explore the decomposed directions to try to fix this.
Ignore the "client" bits, I meant server.
June 25: Problems with projectiles shooting through walls were fixed. Projectile "shootability" (the code's words, not mine, xD) was being copied from the original map, sure, but was not being applied in dynamic map calculations.
June 24: A new interconnected map was made instead of the test map that was not connected.
June 23: Add the death mechanic to Raids. Before we were just taking users to Edgeville as we were just developers with unlimited HP and forgot death was a thing. A variety of bug fixes were employed, such as only smash attack style being able to be used on Guardians or confirmation dialogue QoL improvements.
June 22: Ran into problems with Raids potions. Now they work. Also, the head turning mechanic on the Great Olm was improved. This day marked the first day of Raids testing.
June 19: Added hand regeneration for the final phase of Olm.
June 17: Added the Crystals falling in between phases. Note that since then they were changed to actually be rotated in different angles.
June 12: Added the Crystal bombs attack and the Falling crystals attack.
June 11: The force-movement packet was finally figured out, so we can do the effects such as force moving a character to the side if they are hit from a Crystal burst, or from a Fire wall projectile.
June 10: The Great Olm's Deep Burn attack has been added. Also, the Fire Wall attack has been added.
Deep burn: https://cdn.discordapp.com/attachments/608344382302584873/720344506725302323/N1FLPMti00.mp4
Fire wall: https://cdn.discordapp.com/attachments/608344382302584873/720395901796876330/Ftur4r6Qcq.mp4
June 09: The Acid spray attack has been added, as well as a Phase system. Also, the chances for each attack has been corrected in accordance to YouTube videos as sources.
Acid spray: https://cdn.discordapp.com/attachments/608344382302584873/720045765468094494/ezgif.com-video-cutter.mp4
June 08: The portal attack has been added to the Great Olm.
While alone: https://cdn.discordapp.com/attachments/608344382302584873/719646900784988211/hmTLgPsNHE.mp4
With another player: https://cdn.discordapp.com/attachments/608344382302584873/719649924035117196/gyM6EIrVaF.mp4
June 06: The Crystal burst move was added to the Great Olm. Also, the Lightning move was added. Note: It does it at such a fast speed (like you saw two lightning sessions happening at once) for testing purposes, the proper Burst -> Lightning -> Swap mechanic works
Crystal burst: https://cdn.discordapp.com/attachments/608344382302584873/718954932329250876/lxgkFQGBbN.mp4
Lightning move: https://cdn.discordapp.com/attachments/608344382302584873/718969707734237244/oUTcdINpmN.mp4
June 05: All normal attacks complete (regular attack and sphere attack). Note however: damage is not correct (because stats not done) and the poison thing is accidental cuz its marked poisonous in NPC defs. Also please note that the consistency of the spear has been amplified just for the sake of this video
June 04: The Great Olm's attack cycle is complete.
May 28: Progress on the Great Olm has begun.
May 21: The Raids party system is now fully working with a new back-end put in place.
The Purpose Behind this Development Blog
In an effort of transparency, I would like to make the development blog a normal thing for major features from this point forward. The purpose of the development blog will be a hub for the development team to post live updates of the major feature when they are done.
Each time the development team completes something related to raids, we will post the update here.
So, raids.. l0c... I guess.... idk I'm tired of asking you, the development team, the loc of raids lol
What the development team has opted to do is to make a long backlog of each room in Raids. Here's a visual:
We take a QA (quality assurance) tab, drag it to development, then make individual issues for things we find and fix them. Optimum and I will be taking individual rooms, analyze where it is, boost it to a finished state, then move it on to testing. That individual room will then be tested, its bugs are taken care of, then it is marked as complete.