Informatii generale
- Categorie: Utilitar
- Judetul: Dolj
Descriere
Grand Theft Auto: San Andreas este un joc lansat in 2004 de Rockstar Games care permite utilizatorului sa exploreze o lume virtuala unde trebuie sa urmaresti un fir narativ principal, aceasta fiind povestea protagonistului numit Carl Johnson, dar poti sa iti iei libertatea si de a completa misiuni optionale, achizitiona proprietati si alte lucruri diverse. Acest joc este foarte popular in Romania unde in jur de 60% din adolescenti vor spune ca au jucat jocul sau ca cunosc acest joc.
Desi jocul oficial a fost menit sa fie jucat de catre un singur utilizator, fara functionalitati online, o modificare a fost creata de catre fani pentru a permite mai multor utilizatori sa se conecteze in aceeasi lume virtuala prin intermediul serverelor. Aceste servere insa au doar sistemele de baza ale jocului, cum ar fi mersul, gravitatea si vehiculele, in rest acestea lasa imaginatia creatorului sa inventeze propriile sisteme pentru jucatorii folosind chiar un limbaj de programare, care face fiecare server unic.
Punerea la dispozitie unui intreg limbaj de programare pentru a da viata creativitatii deja deschide o poarta catre o multitudine de aplicatii care pot folosi arhitectura acestui joc pentru a fi desfasurate. Un mod de jucare foarte popular pentru acest joc in specific se numeste RPG (Role Playing Game) a carei treaba e sa simuleze viata reala cu o precizie foarte mare.
Un RPG contine diferite elemente ce formeaza o societate, cum ar fi capacitatea de a deveni proprietarul unei case si de a o vinde unui alt jucator, acest lucru se aplica si la institutii unde poti pune taxe pe produs sau chiar pe intrare in unele cazuri speciale pentru a face profit, aceste preturi fiind adesea conditionate de o economie. Jucatorii sunt nevoiti sa ia acest stil de joc ca atare, iar pentru a asigura respectarea regulilor exista departamentul de politie, unde jucatorii se pot angaja pentru a mentine ordinea. Alte agentii speciale includ si FBI, armata, paramedicii, scoala de soferi, taxi dar sunt si grupuri negative cum ar fi Mafia.
Cea mai mare putere o detin adminsitratorii server-ului al caror scop e sa opreasca orice utilizator cu intentii malitioase si de a preveni utilizatorii din a exploata erorile sistemului.
Tehnologii
SERVER:
Server-ul foloseste o baza de date de tip MySQL pentru a salva informatii despre utilizatori, aceasta baza de date este comuna si site-ului web al server-ului care poate fi accesat pentru a vedea informatii despre profilul din joc al jucatorului sau chiar solicitarea stergerii contului din baza de date.
Server-ul foloseste diferite tipuri de fisiere cum ar fi .amx si.dll. Acestea merg in paralel si pot fi implementate cu usurinta fara implicare mare asupra deja existent. Fisierele de tip .amx isi pot insusi date si functii suplimentare din fisierele de tip .inc care au rol de header.
LIMBAJ DE PROGRAMARE:
Limbajul de programare folosit pentru a compila codul server-ului se numeste “Pawn”, care este un PPL (Procedural Programming Language), avand o sintaxa asemanatoare cu aceea din C. Fiind un PPL, acesta nu foloseste clase, template, namespace sau structuri cu functii declarate in interior, in schimb foloseste o serie lineara de functii.In comparatie cu alte limbaje mai populare cum ar fi C sau C++, acesta este inferior din punct de vedere a optimizarii si a flexibilitatii, lipsind multe chesti importante cum ar fi pointers, alocarea memoriei dinamice (totul facandu-se static) sau chiar variabilele de tip unsigned (naturale). Majoritatea defectelor prezentate de mai sus au fost remediate prin folosirea unor librarii numite YSI care au fost create de catre fanii jocului respectiv.
BAZA DE DATE:
Foloseste baza de date MySQL pentru a retine informatii dar si progresul realizat de catre jucator.
Jocul comunica cu baza de date prin comenzi SQL cum ar fi “INSERT”, “SELECT”, “DELETE” si prin folosirea operatorilor logici, spre exemplu “OR” si “AND”.
SECURITATE:
Conectarea la baza de date este foarte stricta, aceasta accepta conexiuni doar de la IP-uri care au permisiune la baza de date (in acest caz IP-ul server-ului), care pana la urma pentru un strat mai gros de securitate, se face printr-o parola in base64 care este accesata local doar de server.
Desi improbabil, daca exista totusi o scurgere de date, sau un jucator reuseste sa faca o conexiune la baza de date si sa afle datele jucatorilor, acesta totusi ii va mai trebui un pas ca sa foloseasca datele.
Pluginul care ofera functii pentru comunicarea cu data de baze MySQL are un mecanism construit pentru a preveni injectiile instructiunilor SQL.
MULTILINGVISM:
Server-ul este foarte flexibil cand vine vorba de implementarea unui limbaj nou, textele care sunt afisate pe ecran sunt citite dintr-un fisier ce are sufixul limbii respective jucatorului (exemplu: lang_ro.txt).
Aceste fisiere sunt citite doar o data si apoi salvate in memorie pentru a preveni consumul mare pentru citire constanta, iar daca s-au observat greseli in textul respectiv, se poate folosi o comanda de catre un administrator pentru a reciti acel fisier specific dupa ce a fost editat.
O problema ar fi de unde incepe si se termina o linie, sau de unde ne dam seama la ce trebuia folosita o linie anume. Solutia a fost implementarea unui algoritm de selectare care foloseste RegEx (Regular Expression).
INTELIGENTA ARTIFICIALA (AI) - Inovatie prin aplicarea matematicii:
O alta modalitate de a mentine server-ul in viata, este inteligenta artificiala. Putem crea jucatori falsi care pot interactiona cu jucatorii reali, dar ca acestia sa para credibili, trebuie sa aplicam trigonometrie.
Un robot trebuie sa se roteasca catre un jucator, dar nu stim unghiul dintre vectorul de directie a robotului si pozitia jucatorului, de aceea trebuie sa folosim functia atan2, care determina arc tangentul unghiului dintre axa Ox si semidreapta care pleaca din origine si trece prin coordonatele (x,y) care sunt modulul diferentei celor 2 puncte (pozitia robotului si pozitia jucatorului), iar prin atribuirea acestei valori, rezulta o rotire catre jucator.
Un robot de asemenea trebuie sa se miste ca un jucator normal, daca incrementam pozitia acestuia cu o unitate de fiecare data, tranzitia acestuia de la un pas la altul nu va fi limpede, in modul asta nu mai vorbim cum aflam in ce directie trebuie sa o ia, si cum va trebui incrementat daca o ia pe diagonala.
Raspunsul la aceasta intrebare sunt urmatoarele formule:
pentru a afla coordonatele X vom folosi: X = X + cos((unghi+90)( π/180)) * viteza
iar pentru Y este: Y = Y + sin((unghi+90)( π/180)) * viteza
Cerinte sistem
MINIME:
OS: Microsoft® Windows® 2000/XP
Processor/CPU: 1Ghz Pentium III or AMD Athlon Processor
Memory/RAM: 256MB of RAM
Graphics/GPU: 64MB Video Card (Geforce 3 or better)
Hard Drive: 3.6GB of free hard disk space (minimal install)
Other Requirements: Software installations required including DirectX and Sony DADC SecuROM
RECOMANDATE:
Processor/CPU: Intel Pentium 4 or AMD Athlon XP Processor
Memory/RAM: 384MB of RAM (the more the better!)
Graphics/GPU: 128MB (or greater) Video Card (Geforce 6 Series Recommended)
Hard Drive: 4.7GB of free hard disk space (full install)
Sound Card: DirectX 9 compatible Sound Card (Sound Blaster Auidgy 2 Recommended)
Realizatori
Bică David
- Scoala: Colegiul Național Pedagogic “Ștefan Velovan”
- Clasa: 12
- Judet: Dolj
- Oras: Craiova