NB: Als er over "ik" of "wij" wordt gesproken, wordt hier de medewerkers of een medewerker van Jagex mee bedoeld. Dit artikel is een vertaling van dit artikel op RuneScape.com
Ik ben Mod Duncan, één van de leden uit het websysteem-team van Jagex. Heel veel werk dat we doen gebeurd achter de schermen, dus je merkt er niet veel van (behalve als het fout gaat). We zijn verantwoordelijk voor het ontwikkelen en het onderhouden van alle websystemen dat ons spel ondersteunt, het onderhouden van je karakter, het weergeven van de hiscores en de fora, het verhandelen van lidmaatschappen enzovoort. Het meeste tijd zijn de effecten van ons systeem gelimiteerd tot de website, maar het werk wat ik de laatste maanden heb uitgevoerd word veel meer zichtbaar wanneer het eindelijk wordt gepubliceerd.
Het project waar ik aan gewerkt heb sinds januari (maar veel langer met de voorbereidingen erbij) heet 'schermnamen'. Verschillende hints op de fora en Twitter zouden het eigenlijk al duidelijk moeten maken, spelers krijgen de mogelijkheid om namen te veranderen.
Nu denk je waarschijnlijk, waarom duurt het zo lang? Het is bekend dat in de programmeringswereld iets makkelijk te bedenken is, maar moeilijker is om uit te voeren, dit project is geen uitzondering geweest. Ik zal je door het lange en ingewikkelde proces leiden om het eenvoudigste idee uit te voeren: 'spelers hun eigen namen laten veranderen'. Het kan niet zo moeilijk zijn, toch?
Het begin van het schermnamen-project begint al ver voor januari, voordat ik uitgenodigd was om aan dit project mee te helpen. Daarvoor werd het niet eens 'schermnamen' genoemd, en het doel was subtiel verschillend - wij wilden alleen dat het makkelijker werd voor beginners om een naam te vinden die niet al in gebruik was.
Er zijn miljoenen profielen die voor RuneScape en FunOrb worden geregistreerd, en elke dag worden het er duizenden meer, maar er zijn slechts enkele die continu gebruikt worden. Als we alle inactieve profielen zouden verwijderen, zouden nieuwe gebruikers makkelijker een naam kunnen gebruiken. Een goed begin, maar (zoals vaak het geval is) duurde het niet lang voordat er technische problemen kwamen. Nu volgt er een deel naar de vergeten servers van Jagex, zodat jij ook de problemen zult zien die wij tegen kwamen.
We hebben onze systemen in individuele toepassingen (wij noemen ze 'modules') verdeeld, die elk een klein stukje bevatten van het spel en de profielen. Een voorbeeld: er is één module die nieuwe profielen aanmaakt, één voor peilingen en weer een ander voor de hiscores. De grotere systemen, zoals het behandelen van inbreuken en beroepen, worden verdeeld over meer dan één module. Iedere module slaat zijn eigen gegevens op, en als er een speler bij iets betrokken is, worden de gegevens opgeslagen onder hun gebruikersnaam. In het algemeen is dit voor ons de makkelijkste oplossing, omdat we gegevens kunnen veranderen zonder dat er andere modules bij betrokken raken. Maar in dit geval maakt het ons leven veel moeilijker.
Het verwijderen van een account bij elke module waar hij ooit zou zijn geweest, zouden wij niet meteen kunnen doen, dus ons eerste obstakel was wat we zouden moeten doen als we iemand willen verwijderen, maar de originele gebruiker uit een impuls weer zou willen beginnen. Onwaarschijnlijk, zou je kunnen denken, maar met de miljoenen accounts die wij hebben, wordt het steeds waarschijnlijker. Zelfs als wij een oplossing hadden voor dat onderdeel ontdekten we informatie waar wij juridisch verplicht voor waren om het account te behouden. Uiteindelijk kwamen we op een alternatief idee, het schrappen van alleen hun namen.
Hier gaat het om in het schermnaamproject, kort daarna werd ik uitgenodigd om mee te werken. Het nieuwe doel was het toevoegen van een tweede naam bij elk profiel, compleet verschillend van hun gebruikersnaam. We zouden dan kunnen doen wat we willen doen, het vertonen van namen zonder dat gegevens of oude accounts moeten worden verwijderd. We konden ook de namen van ongebruikte profielen verwijderen waardoor er meer namen vrij zouden komen voor nieuwe gebruikers, maar het ergste wat er zou kunnen gebeuren is dat ze een nieuwe naam moeten verzinnen als ze weer willen spelen.
We hebben ook een aantal extra voordelen gevonden bij dit idee. Met het verschil tussen de vertoonde naam en de gebruikersnaam hoeven we ons niet meer aan een maximale lengte en speciale tekens van een naam te houden. Als we de mogelijkheid hebben om iemands naam te verwijderen zonder het profiel aan te passen, kunnen we misschien iets doen aan verboden namen zonder het hele profiel te verbannen. Het kan ook profielen beter beveiligen, zo zou een normale hacker je gebruikersnaam en je wachtwoord allebei moeten achterhalen.
Je bent er nu wel achtergekomen, we zijn al vanaf januari tot vandaag met dit systeem bezig, dus zo simpel is dit project niet, sommige dingen zijn dat nooit...
Nadat we het basisconcept hadden kwam het eerste stadium al snel aan bod.
Het eerste onderwerp waar we mee bezig waren was het mogelijk maken van de display name voor elk profiel en voor alle modules die het moeten weten, dat betekend dus niet alleen het spel zelf. We waren het meest bezig met het gebruik maken van de login servers, dat een hoop informatie bevat van elk profiel. Hoewel, dat helpt niet als je je vriendenlijst opent (als je vrienden niet zijn ingelogd), of op de website naar je vrienden hun hiscore wilt kijken. Omdat we wilden dat spelers hun namen konden veranderen, konden we het niet overal dumpen, dus we moesten elk systeem de naam laten opzoeken. Na een hoop slordige berekeningen leek het erop dat het ergste deel 40.000 van deze 'look-ups' per seconde zou nemen. Dat is heel erg veel. We wilden niet dat het lang zou gaan duren om te laden, dus er moest een apart systeem komen dat de 'look-ups' zo snel mogelijk kon behandelen.
Nadat de technische problemen uit de weg waren overwogen we om veranderingen aan te brengen die helder waren voor de gebruikers. Het behouden van de vriendenlijst was mogelijk het moeilijkste deel. Als je vriend zijn naam zou veranderen moet hij natuurlijk wel in je vriendenlijst blijven staan, dus de vriendenlijst moest meer bevatten dan alleen de vertoonde naam, dan zouden gebruikers nog steeds hun handen in het haar hebben door die rare namen in hun vriendenlijst. We hebben daarom iets toegevoegd zodat je de vorige naam van elke vriend kunt zien als ze hun naam ooit aangepast hebben.
We besloten dus eindelijk dat spelers hun oude naam moeten behouden als ze die aanpassen. Als ze de naam toch niet zo leuk vonden, konden ze het zonder problemen weer terug veranderen. We wilde ook zeker dat je iemands naam niet te makkelijk kon imiteren, dus namen die op elkaar lijken zijn ook niet toegestaan.
Na het schrijven, herschrijven en het debatteren van de ontwerpen, was het tijd om de module zelf te testen. Als bonus moesten we de display names ook toevoegen aan andere systemen en moesten de namen het ook doen bij de Game Engine-, FunOrb en RuneScape zelf natuurlijk. Naast het werk wat ik heb gedaan, hebben hun zeer hard meegewerkt aan dit project en goede aanpassingen toegebracht.
Het Player Support Team heeft ervoor gezorgd dat spelers geen last van de veranderingen hebben, en heeft veel suggesties mogelijk gemaakt voor het project. Ze hebben ook hulpmiddelen gemaakt voor het handelen van profielnamen die alleen beschikbaar zijn voor hun.
Het programmeren heeft mij het meest bezig gehouden, maar eindelijk is het af. Het project is nu voor onderzoek bij het QA-team, die alles na gaan om het gebruik zo gemakkelijk mogelijk te maken. Het website-ontwikkelings-team heeft de publieke interface, en de RuneScape- en FunOrb-ontwikkeling-teams hebben overal de schermnamen in gebruik genomen.
Er is nog steeds veel te doen voordat spelers hun naam kunnen veranderen. We moeten het nieuwe systeem grondig testen zodat alle verzoeken zo snel mogelijk afgehandeld kunnen worden, en het voorbereiden van alle teams op dit grote project is zelf ook een grote klus. Zelfs na het systeem is gelanceerd is er nog van alles te doen - niet alleen ik controleer en verbeter alles, maar nog veel meer mensen helpen mij hiermee.
We hebben al een deadline, maar ik wil geen datum vrijgeven voor het lanceren (ik zou het mezelf niet aan kunnen doen als er een catastrofale fout ontdekt zou worden), maar het project is bijna klaar en ik kijk al uit naar de lanceringsdag.
Terug naar het laatste RuneScape-nieuws
RuneScape is een handelsmerk van Jagex Ltd uit Groot-Brittannië
© De Lunagang 2004 - 2010