Izvor

Vođa projekta:

    Dimitrije Radojević - templaryum@gmail.com

Status projekta:

    U izradi, pre-alpha faza:

    Šta je odrađeno:

Linkovi:

NAPOMENA: trenutno stanje master grane je takvo da ne može da se prevede bez nekih intervencija. To je moja greška, jer sam i pored postojanja experimental grane koja služi za testiranje, u glavnu granu gurao nesređene commit-ove. Sledećih dana ću se truditi da dovedem master granu u stanje prevodljivosti :D, kako bi bila moguća kakva-takva demonstracija postignutog.

Opis projekta:

    Izvor je simulator domaće TCG igre Izvori Magije. Radi se o klonu MtG-a, igre sa posebnim kartama, u kojoj igrači igraju ulogu moćnih čarobnjaka, a cilj je pobediti protivnika korišćenjem karti iz svog špila, koje predstavljaju magije. Mehanika igre se donekle može povezati sa YuGiOh-om, i ovo poređenje stoji samo zbog toga što ste možda nekada gledali istoimenu animiranu seriju na televiziji. Izvori Magije su neuporedivo kompleksnija igra, sa jako opširnim pravilima.

Projekat obuhvata razvoj dve aplikacije: klijenta i servera.

    Server predstavlja mozak igre. To je program čija je primarna uloga da od klijenata koji se povezuju na njega pravi parove koji igraju partiju igre (nešto kao 1 na 1 chat sobe), i koji sve vreme komunicira sa klijentima. On od klijenata prima naredbe koje se tiču trenutne partije, proverava da li su validne, izvršava ih, i šalje trenutno stanje igre natrag klijentu. Ovakva arhitektura sistema onemogućava bilo kakav vid "varanja", jer će sav razgovor između klijenta i servera biti šifrovan. Takođe se omogućava praćenje statistike za svakog igrača, pravljenje rang-lista, i bolji matchmaking sistem. Igrači koji žele da igraju će morati biti registrovani na serveru, što će se verovatno realizovati nekim web interfejsom. Tako se entitet igrača odvaja od pojedinačnog klijenta. Server će, osim ovih funkcija, verovatno u sebi imati implementiran chat server kako bi igrači međusobno mogli da komuniciraju unutar samog klijenta. Za razliku od klijenta, server ne zahteva neku posebnu ljudsku interakciju, pa će verovatno posedovati samo CLI, i biće projektovan tako da što duže vreme radi samostalno.

    Klijent, sa druge strane, predstavlja vizuelni identitet igre. Preko njega se igrači povezuju na server, i preko njega vrše interakciju sa tekućom igrom. Klijent će imati GUI, čiji će najveći deo ispunjavati 3d widget (powered by OGRE, najverovatnije) u kom će se videti tabletop prikaz igre. Kako je čest slučaj da se tokom partije Izvora u igri nađe veliki broj karata u isto vreme, igrač mora u svakom trenutku imati potpuni pregled talona (reallife sto za igranje). Zbog ovoga se cilja na 3d prikaz partije, gde će igrač moči da zumira i rotira prikaz, da dobije relevantne detalje o karti prelaskom miša preko nje i tako dalje. Ostatak GUI-ja klijenta će ispunjavati informacije o trenutnoj partiji, i ostali elementi za interakciju sa igrom (završetak reda, sledeća faza, predaja itd.) kao i deo za chat sa drugim igračem. Prema trenutnom planu, klijent neće biti u stanju da radi bez servera.

Najveći izazovi u realizaciji ovog projekta su:

    • implementacije izuzetno obimnih, i često kompleksnih pravila igre (gotovo svaka karta ima neki efekat na neki deo igre),

    • realizacija client/server arhitekture sistema, u kompletu sa enkripcijom podataka, korišćenjem nekog mrežnog protokola

    • izrada atraktivnog i potpuno funkcionalnog korisničkog interfejsa (igrač u nekom trenutnku ima veliki izbor mogućih akcija, a protivnik može nešto da radi i tokom igranja drugog igrača)