Autor Wątek: BirdStorm.net MMO RPG w kosmosie  (Przeczytany 1494 razy)

Offline peter

  • Użytkownik
    • BirdStorm.net browser based MMO

# Październik 24, 2014, 20:40:38
Cześć,
 
od jakiegoś czasu pracuję nad nową grą i pomyślałem, że nadszedł dobry moment,  żeby pokazać ją przed szerszym audytorium.
Z założenia ma to być MMO RPG, ale na tyle uproszczony, żeby jeden, średnio rozgarnięty programista miał szanse ukończyć ten projekt. Kiedy całość nabierze ogłady, chciałbym opublikować to jako open source.
 
Dla leniuchów zamieszczam screeny, jednak rozpoczęcie rozgrywki nie wymaga nawet rejestracji więc zachęcam, żeby zobaczyć jak gra wygląda w rzeczywistości.
Będę wdzięczny za konstruktywną krytykę (na pochwały nie ma co liczyć, przynajmniej nie na tym forum ;) ).
Szczególnie zależy mi na opiniach odnośnie samej rozgrywki i zadań stawianych przed graczem. To dobry etap, żeby jeszcze coś zmienić i przeprojektować, jeśli znajdzie się sensowna i dobrze opisana alternatywa.

Link do gry: http://www.birdstorm.net

Widok mapy:


Widok systemu gwiezdnego:
« Ostatnia zmiana: Październik 24, 2014, 20:42:38 wysłana przez peter »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Xion

  • Redaktor
    • xion.log

# Październik 25, 2014, 20:49:42
Mam pewnie wątpliwości, czy projekt powinien być w dziale "zaawansowane", ale powiedzmy że niech będzie.

Cytuj
Szczególnie zależy mi na opiniach odnośnie samej rozgrywki i zadań stawianych przed graczem.
Mi się znudziło gdy tutorial zażyczył sobie 10 sztuk stali i aluminium, bo zdałem sobie sprawę, jak dużo bym musiał klikać żeby zebrać odpowiednio dużo węgla i żelaza (nie wspominając już o tym, że musiałbym jeszcze znaleźć gdzieś te boksyty...). System zasobów jak dla mnie jest zdecydowanie zbyt zawracający głowę.
O innych aspektach rozgrywki nie mam pojęcia, bo zgadnij co mnie przed nimi uchroniło? ;P

Z kwestii technicznych - plusy:
  • Fajne użycie Angulara, z systemami i planetami jako widokami/stanami aplikacji. Drobna uwaga: raczej nie chcesz używać $http bezpośrednio w kontrolerach/etc., opakuj swoje API w $resource.
  • Całkiem ładne UI. Linki nie zawsze wyglądają na klikalne, ale poza tym pasuje do klimatu.
  • Działa poprawnie na obu przeglądarkach.
Minusy:
  • Pakuj assety! Ta aplikacja zasysa z miejsca jakieś 20 skryptów i 10 CSSów, a powinna najwyżej kilka. Nie wiem, jak wygląda proces deployu, ale nie zdziwiłbym się jeśli po prostu zrzuciłeś repo z kodem na serwer. Tak się nie robi.
  • Zoom się rozjeżdza. To bardzo typowy problem, sam na niego natrafiłem parę razy. Musisz poprawnie centrować względem środka viewportu po zmianie zooma. (Swoją drogą, czemu nie da się zoomować rolką myszy?)
Obowiązkowe pytanie o użyte technologie (poza tymi widocznymi, czyli Angularem i Pythonem z Tornado).

Offline peter

  • Użytkownik
    • BirdStorm.net browser based MMO

  • +1
# Październik 26, 2014, 00:37:26
Też zastanawiałem się nad działem i jeśli przeniesiesz, to marudził nie będę.
Nie mniej projekt da się obejrzeć i przetestować stąd taka, a nie inna decyzja.

Dzięki za "wskazówki" odnośnie rozgrywki. Trochę brutalne, ale właściwie tego się trochę spodziewałem. Postaram się to jakoś poprawić i uprościć. Jeśli sam nie wpadnę na coś lepszego, to "Plan B" zakłada dokończenie projektu od strony technicznej, wypuszczenie jako open source i przy odrobinie szczęścia znalezienie kogoś, kto zna się na game designie lepiej niż ja.
Zawsze lepsze to niż wskakiwanie na inny dział i pisanie w stylu "zróbcie mi grę" ;)

Assety i zoom są na liście TODO, nic dodać nic ująć.

Rolka myszy zoomowała na początku i strasznie to drażniło. Zauważ, że teraz, kręcąc rolką myszy można wszystkie panele przesunąć do góry i bez przeszkód oglądać samą mapę.

Angularowy $resource jakoś mi nie przypadł do gustu, miałem wrażenie że użycie wymaga zbyt dużej dozy redundancji. Inna sprawa, że to mój pierwszy projekt w tym frameworku, więc co jakiś czas robię rewizję wcześniej podjętych decyzji. Może to dobry moment.

Odnosząc się do technologii:
PostgreSQL jako baza, dodatkowe, nie pasujące do statycznego schematu dane trzymam jako pole JSON.
Tornado jako serwer, plus SockJS-Tornado do przesyłania danych w real time (stąd, wszelkie zmiany po stronie serwera widać bez przeładowywania strony).
Django jako framework, dodatkowo Django Rest Framework do zbudowania (prawie) restowego API konsumowanego przez AngularJS.
Dodatkowo, jak już zauważyłeś, ui-router do zarządzania stanami zmienianymi zależnie od URLa (nieporównywalnie lepszy niż ten wbudowany w Angular).

Grafika jest zaczerpnięta z obfitych zasobów NASA. Wszystko jest na legalnej i darmowej licencji, więc jeśli komuś będzie to pasować do innego projektu to można śmiało się częstować. W razie potrzeby postaram się udostępnić oryginalne zdjęcia i licencje.

Resztę grafiki zamierzam zamówić, jak tylko napiszę jakąś sensowną specyfikację do tego.

Dzięki za opinię i wskazówki.