[C#] BelotPC - alternativa Playtoy-ovoj beli

poruka: 1
|
čitano: 1.958
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
12 godina
neaktivan
offline
[C#] BelotPC - alternativa Playtoy-ovoj beli

Dobar dan.

 

Dosta davno započeo sam projekt zvan Belot za PC koji je bio open source (čak i postoji otvorena tema na to, ali stara 2 godine), i koji je bio temelj ovom novom, redizajniranom, preimenovanom projektu zvanom BelotPC. Prije 2 godine, kada sa niknuo na ovim forumima sa tom idejom, par ljudi se to svidjelo i bilo je zainteresirano za to. ALI... zbog kojekavih obaveza, što škola (tada), što neke druge stvari, izgubio sam interes za daljnjim razvitkom aplikacije. Ove godine ipak sam se odlučio završit ovu aplikaciju, ali na moj opći šok prvotna aplikacija je u najmanju ruku bila loša. Od neoptimizacije, do pohranjivanja podataka na klijentu, puno crashova/bugova, mogućnost 'exploita', itd. Krenuo sam od nule, i to sam... kompletno sam ovo radim i radit ću. U daljnjem dijelu ove teme bit će navedene neke stvari koje su u potpunosti gotove, polu-gotove, planirane te neke inovacije. Također, pri dnu se nalazi video od tek 2 minute koji pokazuje trenutni izgled i napredak ove aplikacije.

 

U POTPUNOSTI GOTOVE STVARI:

- Registracija, pa posljedično aktivacija registriranog računa sa osmeroznamenkastim kodom zaprimljenim na danoj email adresi

- Povrat lozinke - također zahtjeva osmeroznamenkasti kod sa dane email adrese kako bi promjena/povrat lozinke bio moguć

- Mijenjanje izgleda aplikacije - pogledajte video, bit će Vam jasnije

- Spremanje postavki / promjenjenog izgleda aplikacije

- Ulogiravanje

- Prikazivanje trenutno spojenih igrača

- Mogućnost: dodavanja igrača na listu prijatelja, dodavanja igrača na listu blokiranih osoba, pregledavanje statiske igrača

- "Moj profil" stranica - sve o Vašem profilu na dohvat ruke (također prikazano u videu), od jednokratnog mijenjanja korisničkog imena, do mijenjanja mail adrese, lozinke, 'avatara', brisanja računa, kontroliranja liste prijatelja i blokiranih osoba

 

POLU-GOTOVE STVARI:

- Ispravno 'level-upanje' i dodatna kalkulacija 'experience' bodova - nema krajnjeg levela, a ako nekoga zanima kako i zašto, evo: 

 

public long GetLevelXP(int l)

{

   return (100 * l) + (l - 1) * 100;

}

 

PLANIRANE STVARI / STVARI ZA NAPRAVIT:

- Informacije o odabranoj sobi iz lista soba

- Odabir svakojakih postavki prilikom kreacije sobe - broj igrača, trajanje poteza, odabiranje suigrača, izacivanje igrača iz sobe, unos lozinke za ulazak u sobu, pozivanje prijatelja u sobu

- Dizajn stola i kompletni 'game logic'

- Postignuća ("achievementi") - 50ak za početak, svako postignuće ima tri razine, svaka razina daje drugačiji broj iskustvenih bodova (pobjeđene partije također rezultiraju u povećanju iskustvenih bodova)

- Rang ljestvice ("leaderboards") - prikazivanje rangiranja igrača po: pobjedama, iskustvenim bodovima

- Turniri - ovo će u budućnosti biti bolje objašnjeno, ali ukratko: odabir suigrača i protivnika bit će potpuno nasumično, niti u jednom trenutku nitko neće znati s kim igra sve do završetka turnira kada će konačna tablica biti objavljena

- Još više avatara/sličica (trenutno ih je samo 7)

- Mogućnost učitavanja i prikazivanja vlastitog avatara - ovo je upitno, jer WPF+ModernUI su čudnovati po pitanju prikazivanja slika, slike se moraju dodati u projekt i kompajlati kao 'resource' sa projektom

- Instalacija - umjesto skidanja i extractanja datoteka, brzinska i mala instalacija bit će bolje rješenje

- Samoažuriranje - pokušajem ulogiravanja na server klijent razmjenjuje podatak o aktualno verziji aplikacije, ako dođe do odudaranja klijent će automatski skinuti novu verziju aplikacije

 

INOVATIVNE STVARI (TAKOĐER PREOSTALE ZA NAPRAVITI):

- U slučaju nedostupnosti servera, dijalog će biti prikazan u kojem se igrača pita hoće li igrati protiv kompjutera u četvero ('offline')

- Mogućnost igranja u dvoje i troje umjesto samo u četvero

- Mogućnost ponovnog spajanja u igru u slučaju pucanja konekcije - svi smo bili tamo i znamo koliko je frustrirajuće kada usred igre izgubimo vezu sa serverom... E pa dosta je bilo! Igrač kojem pukne veza ima točno dvije minute da se ulogira i ponovno spoji u igru. Zašto dvije minute? Zato jer je dvije minute dovoljno da se modem resetira i ponovno pokrene u slučaju veće greške po pitanju internet konekcije. Na preostalim igračima je odabir hoće li napraviti malu pauzu i pričekati toga igrača da se vrati, ili pak jednostavno napustiti igru i svako svojim putem

- Rasterećenje glavnog servera - i opet smo svi bili tamo i opet svi znamo koliko je frustrirajuće štekanje i 'lag'-anje. Pošto je sve 'server-sided' (što ujedno gotovo kompletno sprječava bilo kakvu mogućnost varanja) i 'multi-threaded' ovog bi trebalo biti manje. Game Server-i su ti koji će se baviti 'handle'-anjem igara. Svaki Game Server će biti u mogućnosti 'handle'-ati 50 igara/soba odjednom, što ispada maksimalno 200 igrača. Logikom iza ovoga upravlja glavni server, dakle: ako su trenutno prisutna 2 Game Servera, i oba su puna (dakle 'handle'-aju 50 igara), glavni server pokreće novi Game Server i preusmjerava igrače tamo. I tako u nedogled, tj. dok ima RAM memorije na računalu/ima.

 

Ako ima bilo kakvih pitanja, ili čak kritika - slobodno pitajte i kritizirajte, tip sam osobe koji se prilagođava i ne smeta mu kritika. ;)

 

NAPOMENA: XP, Vista i Linux sustavi nisu podržani upravo zbog ModernUI.

 

Poruka je uređivana zadnji put pet 2.9.2016 18:57 (fiki574).
 
2 0 hvala 1
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice