maro512 / Loop2

Apache License 2.0
0 stars 0 forks source link

Baza danych graczy #11

Open sieka44 opened 7 years ago

sieka44 commented 7 years ago

Czy ktoś kiedykolwiek, coś takiego robił ? Bo wydaje mi się że musimy to robić mniej więcej równolegle do projektu serwera, bo potem wszystko trzeba będzie przebudowywać. No chyba że ma ktoś jakiś inny pomysł na to jak to zrobić, czekam na burzę mózgów ^^

pzjp commented 7 years ago

W ogóle trzeba mieć serwer. Do testów wersji desktopowej można użyć adresu localhost ale nie wiem czy nawet na wirtualnego androida uda się to przenieść... Właśnie ta baza danych moim zdaniem wyklucza/utrudnia używanie tego NodeJs z tutoriala. Co do samej bazy to jest klasyczny javowy interfejs dla SQL, ale nigdy go osobiście nie używałem. W naszym przypadku baza jest na tyle prosta, że pewnie można by ją nawet zrobić całkowicie ręcznie, ale to raczej zły kierunek.

pzjp commented 7 years ago

Jedyne co "wiem" o połączeniach sieciowych w Javie to coś tam o klasie java.net.Socket, ale nigdy w praktyce nic z tym nie robiłem. Tak naprawdę nie różni się to wiele od tego tutoriala o nodejs, tylko dochodzą pewne techniczne szczegóły (u nas komunikacja będzie raczej prosta, więc jakoś to powinno przejść) no i obie strony pisze się w Javie. Wydaje się, że pakiet java.net ma sens także na androidzie.

maro512 commented 7 years ago

z tego co wiem to nodeJS też ma bazę danych tylko domyślnie jest to baza typu NoSQL

pzjp commented 7 years ago

Zacząłem robić połączenie z SQL Serverem. Jak ktoś chciałby zobaczyć u siebie czy działa, to trzeba stworzyć bazę danych LoopDb z tabelą tworzoną kodem:

CREATE TABLE Ranking (
    Name NVARCHAR(30) PRIMARY KEY,  Pass NVARCHAR(128) NOT NULL,
    Points INT DEFAULT 0,   TotalGames INT DEFAULT 0
);

Reszta to zupełnie domyślne ustawienia. Ewentualnie należy przenieść plik sqljdbc_auth.dll z \server\libs do katalogu głównego.

pzjp commented 7 years ago

W sumie zastanawiam się jak aplikacja będzie wyświetlała tabelki z rankingiem, lub listę zalogowanych graczy. My będziemy "w rzeczywistości" mieli małą bazę, więc można całą tabelę wysłać do użytkownika, ale nie wiem, czy takie podejście ma sens. Chyba, że będziemy np. wysyłać w blokach po ok. 20 i wyświetlać "strony" rankingu...

maro512 commented 7 years ago

lista zalogowanych jest niepotrzebna, a ranking można ograniczyć do pierwszych 10 userów i zalogowanego gracza. W sensie: -1. xxx -2. xxx . . -10. xxx .. -325. ja

Baza musi być gdzieś dostępna online, aby można grać normalnie na urządzeniach, a nie tylko na jednym laptopie

pzjp commented 7 years ago

Cały serwer powinien być globalnie dostępny. Już powinno się dać łączyć zdalnie, tylko każde urządzenie musi znać adres serwera i z tym mamy problem.

pzjp commented 7 years ago

Właściwie to pewien problem jest z kwestią rejestracji: Można (będzie można) utworzyć mnóstwo kont bez żadnej kontroli. Chyba po prostu olejemy ten problem, bo nie ma czasu, ale jak ktoś ma jakiś pomysł jak powinno się to rozwiązać...