Table of Contents

Ștefan-Viorel CIOCIOI (78387) - Space Impact

Autorul poate fi contactat la adresa: Login pentru adresa

sau: Login pentru adresa

Introducere

Space Impact a fost un joc Shooter dezvoltat pentru telefoanele Nokia (incepand cu Nokia 3310). Acesta presupunea ca jucatorul sa controleze o navetuta spatiala prin diferite nivele, supravietuind Inamicilor cu ajutorul unor arme / abilitati speciale deblocate pe parcurs. La finalul fiecarui nivel se afla un Boss care trebuia ucis pentru a trece la nivelul urmator. Jucatorul avea Trei Vieti la dispozitie pentru a trece nivelul, iar daca le pierdea pe toate, era nevoit sa o ia de la capat.

Motivatia din spatele acestui proiect se bazeaza in principal pe nostalgie:
→ dorinta de a reproduce unul dintre cele mai bune jocuri de mobile inainte de “Epoca Smartphone”
→ dorinta de a juca din nou Space Impact fara sa caut un Nokia 3310 la shady dealers

Space Impact

Descriere generală

Schema bloc

Space Impact - Schema Bloc

Descriere Schema Bloc

Input

Se doreste construirea unei “telecomenzi”(controller) pentru joc care sa comunice cu microcontroller-ul de pe placuta principala.
Acest controller va avea:

Vor fi incluse si butoane de control navetuta (sus, jos) pentru testare, in cazul in care Accelerometrul nu va avea comportamentul dorit.

Output

Se va crea un nivel redat pe un ecran Sparkfun LCD-10168. Acest ecran va oferi un feedback vizual comenzilor date de jucator prin telecomanda. Jucatorul va trebui sa se adapteze mediului de joc (design-ului de nivel) pentru a supravietui ca sa ajunga la final. Design-ul de nivel cuprinde:

Se va folosi un Buzzer Pasiv pentru a oferi un feedback audio jucatorului de fiecare data cand elibereaza un proiectil.

Hardware Design

Componente Necesare

LCD-ul functioneaza la 3v3, iar Accelerometrul la valori intre 3-5v. Placuta de baza a fost trecuta la alimentare de 3v3 pentru a usura munca. Pentru a obtine acest lucru, s-a utilizat un Condensator 10uF si Regulator de Tensiune Lp2950acz.

Schema Electrica

Space Impact - Schema Electrica

Hardware Setup

Space Impact - Hardware

Software Design

S-a utilizat WinAVR pentru compilare. Codul a fost redactat in Notepad++.
Link-uri catre bibliotecile de LCD si WinAVR se regasesc in resurse.
LCD Assistant s-a folosit pentru a obtine sprites in forma hexazecimala.

LCD

LCD-ul lucreaza cu o matrice 6×16:

In continuare, vom numi aceasta matrice: Harta.

Astfel, s-a construit un scenariu in care jucatorul se poate deplasa numai de-a lungul Coloanei 1, in sus si in jos, in partea stanga a Hartii. Inamicii isi vor face aparitia din partea dreapta si se vor deplasa orizontal de-a lungul liniei pe care se afla. Acelasi comportament este atribuit si consumabilelor:

Singura exceptie se regaseste la nivelul Boss-ului de la final de nivel, care va ramane pe loc pentru un anumit numar de cicli, ca apoi sa imite comportamentul celorlalti inamici.

Astfel, s-au luat in vedere urmatoarele elemente:

Implementare Harta

Din cauza limitarilor ferestrei de joc, s-a construit o lista de elemente in forma urmatoare {coord. x, coord. y, statut, tip}, unde:

La fiecare ciclu, toate elementele din aceasta lista se shifteaza cu o coloana mai la stanga (x–). Cand x a ajuns suficient de mic pentru a se incadra in Harta (x ⇐ 16), elementul de care apartine va fi redat in scena.

Sablonul hartii este urmatorul:

Space Impact Map

Unde:

Implementare mecanici

Jucatorul interactioneaza cu mediul inconjurator in mod direct prin coliziuni:

De fiecare data cand un inamic este ucis, acesta acorda jucatorului un punct la scor. Poate exista doar un singur proiectil pe o linie la un moment dat. In momentul in care acesta loveste un inamic sau paraseste zona activa a hartii, va fi teleportat automat la coordonatele (2, y), unde y este linia pe care se afla.

Modul normal

Au fost folosite 2 butoane pentru Sus si Jos, 1 buton pentru a trage obisnuit si 1 buton pentru a activa abilitatea speciala.

Modul Accelerometru

Raman active doar butoanele de a trage obisnuit si de a activa abilitatea speciala, miscarea verticala fiind preluata de MPU-6050.

Rezultate Obţinute

In urma realizarii acestui proiect, am obtinut un joc care imita jocul original.

Ecranul de start / Ecranul de joc / Boss-ul final / Ecranul de sfarsit:
Space Impact Intro Space Impact Gameplay Space Impact Boss Space Impact Ending

Concluzii

Download

Ciocioi Stefan-Viorel - Proiect Space Impact 2018

Contine si sprites folosite in joc si soft-ul LCD Assistant.

Jurnal

Sfarsit Milestone 1
20 Aprilie 2018 - Creata Pagina de Wiki

Sfarsit Milestone 2
06 Mai 2018 - Update Descriere Hardware

Sfarsit Milestone Final
22 Mai 2018 - Completare Pagina Proiect

Bibliografie/Resurse

LCD:

  1. LCD Assistant : bitmap_converter

Accelerometru:

  1. Biblioteca: .WwGQdEjRBPY
  2. Datasheet: mpu-6050