Projekt Darkstar

Projekt Darkstar
Oryginalni autorzy Mikrosystemy Sun
Pierwsze wydanie 30 sierpnia 2007 ( 30.08.2007 )
Wersja stabilna
0.9.11 / 29 października 2009 ; 13 lat temu ( 29.10.2009 )
Napisane w Jawa
Platforma Jawa
Typ Oprogramowanie pośrednie MMOG
Licencja GPLv2 , BSD
Strona internetowa http://www.projectdarkstar.com/

Project Darkstar był oprogramowaniem pośrednim typu open source dla gier MMOG napisanym w języku Java . Projekt Darkstar rozpoczął się jako osobisty projekt Jeffa Kesselmana w 1999 r. Później stał się projektem badawczym w firmie Sun Microsystems i miał na celu „pomoc programistom i operatorom w uniknięciu szeregu poważnych, ale typowych problemów związanych z grami online na masową skalę i wirtualnymi światami oraz współczesnych aplikacji sieci społecznościowych, w tym przeciążenie stref, uszkodzenie danych i niewystarczające wykorzystanie serwerów”.

Historia

Projekt Darkstar rozpoczął się jako osobisty projekt Jeffa Kesselmana w 1999 roku, gdy był on starszym inżynierem ds. integracji gier w Total Entertainment Network. W 2004 roku utworzono grupę Sun's Game Technology Group iw tym czasie pan Kesselman wprowadził do firmy Sun trzecią wersję projektu, która została nazwana serwerem gier Sun. (Pseudonim SGS przetrwał do dziś w nazwach pakietów serwera Project Darkstar.)

Pan Kesselman pracował nad trzecią wersją przez rok jako solowy projekt w firmie Sun, debiutując wczesną wersją na konferencji Game Developers' Conference tego samego roku. Po reorganizacji biura CTO oprogramowania w 2005 roku projekt został przeniesiony do Sun Labs pod kierownictwem dyrektora Sun Labs Karla Haberla. Karl zwiększył liczbę pracowników, dodając Setha Proctora i Dana Ellarda jako współbadaczy, a także wykonawców Jamesa Megquiera i Stena Andersona. Zespół ten dostarczył na GDC 2005 tak zwaną wersję Early Access, pierwszy działający serwer.

2 lutego 2010 r., w następstwie zakupu firmy Sun przez Oracle, Jim Waldo opublikował na forum „Ogłoszenie projektu”, że „wysiłki inżynieryjne firmy Sun Labs nie są już wykorzystywane do rozwoju Darkstar”. Kilku członków zespołu Sun Labs i wielu członków społeczności Darkstar pracowało przez pewien czas na serwerze RedDwarf jako następcy Darkstar.

Cechy

Przegląd sieci projektu Darkstar.

Po uruchomieniu implementacji serwera Project Darkstar albo uruchamia nową sieć, albo przyłącza się do aktualnie działającej. Wszystkie sieci zawierają klientów , implementacje serwerów , stos Project Darkstar, na którym działają implementacje serwerów, oraz kilka węzłów metausług , które obsługują ruch pomiędzy każdym węzłem na stosie serwerów. Implementacja serwera to program stworzony przez użytkownika, napisany przy użyciu interfejsu API Project Darkstar . Klientami są wszystkie aplikacje i gry klienckie, które są podłączone do serwera gier w sieci.

Projekt Darkstar jest rozwijany tak, aby obsługiwał wszystkie funkcje istotne dla gier wieloosobowych, a jednocześnie był wystarczająco skalowalny, aby obsługiwać gry online dla wielu graczy . W związku z tym istnieje wiele funkcji, które obsługuje, oraz wiele funkcji, które są aktywnie wdrażane i integrowane z nim.

Interfejs API Project Darkstar jest kluczowym komponentem dla programistów korzystających z tej technologii. Dzięki niemu mogą rozwijać serwery gier, aby poprawnie komunikowały się z technologią kliencką, a także mieć uruchomiony serwer, który działa na stosie gier Project Darkstar. Interfejs API został napisany w celu ukrycia współbieżności podstawowego systemu, który stos Project Darkstar wykonuje dla programisty, dzięki czemu można napisać program z iluzją, że jest on jednowątkowy, nawet jeśli stos jest w pełni równoległy. Główne części interfejsu API obejmują zarządzanie zadaniami , trwałość danych i komunikację kanałową.

Kontrola informacji na serwerze Project Darkstar jest zazwyczaj obsługiwana przez zadania, chociaż w niektórych szczególnych przypadkach nie są one konieczne. Są używane w przypadkach, gdy przechowywanie lub pobieranie danych musi być chronione przed awarią lub wyłączeniem serwera , ponieważ zadania są zapisywane i zapamiętywane po ich uruchomieniu i można je odtworzyć po ponownym uruchomieniu serwera w tym samym stanie, w jakim były przed awarią. Jest to przydatne na przykład podczas aktualizowania informacji o postaci. Jeśli coś pójdzie nie tak z serwerem wewnętrznie, informacje o postaci zostaną zachowane, a po ponownym uruchomieniu serwera informacje o postaci zostaną przywrócone do ostatniego stanu, w jakim znajdowały się przed awarią. [ potrzebne źródło ]

Baza danych Berkeley używana przez Project Darkstar przechowuje wszystkie dane, które mają zostać utrwalone. Wszystko, co ma być przechowywane w bazie danych , musi również nadawać się do serializacji , ponieważ baza danych jest zaprogramowana do przechowywania informacji binarnych. Zarządzanym obiektem może być wszystko, od danych gracza (tj. pozycja, wyposażenie) po dane wewnętrznego serwera i logikę sterowania (tj. skalowalna struktura danych, zadania). Przydatność zarządzanych obiektów widać w przypadku awarii serwera. ponownym uruchomieniu serwera, a obiekt zarządzany jest usuwany przywrócony do ostatniego stanu roboczego. [ potrzebne źródło ]

Kanały umożliwiają programistom łatwy sposób komunikowania się z wieloma klientami. Zasada działania kanałów polega na umożliwieniu klientom subskrybowania kanałów, dzięki czemu mogą wysyłać wiadomości do kanału i odbierać wiadomości z kanału. Gdy wiadomość jest wysyłana do kanału od klienta lub serwera, wiadomość jest przesyłana w trybie multiemisji do wszystkich klientów, którzy ją subskrybują. Jest to abstrakcja zbudowana na warstwie komunikacyjnej, aby pomóc w rozwoju łatwej i rozszerzalnej komunikacji pomiędzy wieloma klientami a serwerem. [ potrzebne źródło ]

Godne uwagi zastosowania

  • Open Wonderland — zestaw narzędzi w 100% Java typu open source do tworzenia wspólnych wirtualnych światów 3D

Przyjęcie

Niektórzy autorzy sugerują, że zarządzanie centralnym magazynem obiektów i rozproszonym dostępem losowym może nie być realistycznie możliwe w wysoce interaktywnym środowisku gier.

Czerwony Karzeł

RedDwarf Server Logo.png

RedDwarf Server to oprogramowanie pośrednie typu open source służące do tworzenia po stronie serwera gier online dla wielu graczy . Było to oficjalne rozwidlenie społeczności Project Darkstar. Gdy Oracle zaprzestała wsparcia dla projektu, społeczność zmieniła nazwę najnowszej bazy kodu repozytoriów Project Darkstar i udostępniła ją jako RedDwarf Server. RedDwarf odziedziczył schemat licencjonowania Project Darkstar, z serwerem RedDwarf dystrybuowanym na licencji GPLv2 i interfejsami API serwera udostępnianymi na podstawie Powszechnej Licencji Publicznej GNU (GPL) z wyjątkiem ścieżki klasy . Interfejsy API klienta Java i C — dostępne w ramach projektu RedDwarf — były dystrybuowane na licencji BSD .

Klienci mogą komunikować się z serwerem za pomocą interfejsu API języka Java lub C. Społeczność udostępniła także interfejsy API klienta dla dodatkowych platform, w tym C# , Python , Objective-C i ActionScript . Serwer RedDwarf wykorzystuje wbudowany protokół do komunikacji sieciowej.

Linki zewnętrzne