Projekt Darkstar

Projekt Darkstar
Originalförfattare Sun Microsystems
Initial release 30 augusti 2007 ( 30-08-2007 )
Stabil frisättning
0.9.11 / 29 oktober 2009 ; 13 år sedan ( 2009-10-29 )
Skrivet i Java
Plattform Java
Typ MMOG-mellanvara
Licens GPLv 2, BSD
Hemsida http://www.projectdarkstar.com/

Project Darkstar var en MMOG- mellanprogramlösning med öppen källkod skriven i Java . Project Darkstar började som ett personligt projekt av Jeff Kesselman 1999. Det blev senare ett forskningsprojekt på Sun Microsystems, och syftade till att "hjälpa utvecklare och operatörer att undvika en rad allvarliga, men ändå typiska, problem förknippade med massiva onlinespel, virtuella världar , och sociala nätverksapplikationer idag, inklusive zonöverbelastning, datakorruption och underutnyttjande av server."

Historia

Project Darkstar började som ett personligt projekt av Jeff Kesselman 1999 medan han var Senior Game Integration Engineer på Total Entertainment Network. 2004 bildades Suns Game Technology Group, och vid den tiden tog Mr. Kesselman in den tredje upprepningen av projektet till Sun där det kallades Sun Game Server. (SGS-monikern överlever till denna dag i paketnamnen för Project Darkstar Server.)

Herr Kesselman arbetade på den tredje versionen under ett år som ett soloprojekt i Sun, och debuterade med en tidig version på Game Developers' Conference samma år. Efter omorganisationen av Software CTO:s kontor 2005, flyttades projektet till Sun Labs under Sun Labs direktör Karl Haberl. Karl ökade arbetskraften och lade till Seth Proctor och Dan Ellard som medforskare, samt entreprenörerna James Megquier och Sten Anderson. Detta team levererade vad som nu kallas Early Access-versionen, den första fungerande servern, för GDC 2005.

Den 2 februari 2010, i kölvattnet av Oracles köp av Sun, skrev Jim Waldo på forumet "Project Announcement" att "Sun Labs ingenjörsinsatser tillämpas inte längre på Darkstar-utveckling". Ett antal medlemmar i Sun Labs-teamet och ett antal medlemmar av Darkstar-communityt arbetade en tid på RedDwarf-servern som en efterträdare till Darkstar.

Funktioner

Översikt över ett Project Darkstar-nätverk.

När en Project Darkstar-serverimplementering körs, startar den antingen ett nytt nätverk eller ansluter sig till ett som för närvarande körs. Alla nätverk innehåller klienter , serverimplementationer , en Project Darkstar-stack som serverimplementeringarna körs på och flera metaservicenoder som hanterar trafik mellan varje nod i serverstacken. En serverimplementering är ett användarskapat program skrivet med Project Darkstar API . Klienterna inkluderar alla applikationer och spel på klientsidan som är anslutna till en spelserver i nätverket.

Project Darkstar utvecklas för att stödja alla funktioner som är viktiga för ett massivt multiplayer-spel, och samtidigt vara tillräckligt skalbart för att stödja icke-massiva multiplayer-onlinespel . Som sådan finns det många funktioner som den stöder, och många funktioner som implementeras och integreras aktivt i den.

API:et för Project Darkstar är nyckelkomponenten för utvecklare som använder tekniken. Med den kan de utveckla spelservrar för att kommunicera korrekt med sin klientteknik och ha en server igång som körs ovanpå Project Darkstar-spelstacken. API:t är skrivet för att dölja samtidigheten av det underliggande systemet som Project Darkstar-stacken utför för utvecklaren, så att programmet kan skrivas med illusionen att det är entrådigt, trots att stacken är helt parallell. Huvuddelarna av API:t inkluderar uppgiftshantering , databeständighet och kanalkommunikation.

Kontroll av information i en Project Darkstar-server hanteras i allmänhet av uppgifter, även om de i vissa speciella fall inte är nödvändiga. De används i fall där lagring eller hämtning av data måste skyddas från en serverkrasch eller avstängning , eftersom uppgifter sparas och kommer ihåg när de körs, och kan återupptas när servern startas om i samma tillstånd som de var i tidigare kraschen. Detta är användbart, till exempel när du uppdaterar teckeninformation. Om något går fel med servern internt, kvarstår teckeninformationen och vid en omstart av servern kommer teckeninformationen att återställas från det senaste tillståndet den var i innan kraschen. [ citat behövs ]

Berkeley DB som används av Project Darkstar lagrar all data som ska bevaras. Allt som ska lagras i databasen måste också kunna serialiseras , eftersom databasen är programmerad att lagra binär information. Ett hanterat objekt kan vara allt från spelardata (dvs. position, utrustning) till intern serverdata och kontrolllogik (dvs. skalbar datastruktur, uppgifter). Användbarheten av hanterade objekt ses i instans av ett serverfel. Eftersom hanterade objekt uppdateras transaktionsmässigt kasseras all skadad data vid serverns omstart och det hanterade objektet rullas tillbaka till sitt senaste arbetsläge. [ citat behövs ]

Kanaler ger utvecklare ett enkelt sätt att kommunicera med många kunder. Sättet kanaler fungerar är genom att ge klienter ett sätt att prenumerera på kanaler så att de kan skicka meddelanden till kanalen och ta emot meddelanden från kanalen. När ett meddelande skickas till kanalen från en klient eller server, multicasts meddelandet till alla klienter som prenumererar på det. Det är en abstraktion byggd ovanpå kommunikationslagret för att hjälpa till med utvecklingen av enkel och utbyggbar kommunikation mellan många klienter och servern. [ citat behövs ]

Anmärkningsvärda användningsområden

  • Open Wonderland - ett 100 % Java-verktyg med öppen källkod för att skapa virtuella 3D-världar i samarbete

Reception

Vissa författare har föreslagit att hanteringen av Central Object Store och Distributed Random Access kanske inte är realistiskt möjlig i en mycket interaktiv spelmiljö.

RedDwarf

RedDwarf Server Logo.png

RedDwarf Server var en mellanprogramslösning med öppen källkod för att utveckla serversidan för massivt multiplayer-onlinespel . Det var den officiella community-gaffeln för Project Darkstar. När Oracle upphörde med stödet för projektet, bytte communityn om den senaste kodbasen av Project Darkstars arkiv och släppte den som RedDwarf Server. RedDwarf ärvde Project Darkstar-licensschemat, med RedDwarf-servern distribuerad under GPLv2 och serverns API:er gjordes tillgängliga under GNU General Public License (GPL) med undantaget classpath . Java- och C-klient-API:erna – tillgängliga som en del av RedDwarf-projektet – distribuerades under en BSD-licens .

Klienter kan kommunicera med servern med hjälp av ett Java eller C API . Gemenskapen släppte också klient-API:er för ytterligare plattformar inklusive C# , Python , Objective-C och ActionScript . RedDwarf Server använder ett inbyggt protokoll för nätverkskommunikation.

externa länkar