Państwowa Wyższa Szkoła Zawodowa w Elblągu SEMINARIUM DYPLOMOWE Gry na urządzenia mobilne Tomasz Gromek, ASK 23-04-2008 r.
Według słownika gra jest to zabawa towarzyska, w której występuje element współzawodnictwa, określona ustalonymi regułami. 1 Czy zatem odpowiednik komputerowy można nazwać grą? Jest to oczywiście zabawa, w trybach multiplayer również towarzyska z występującym elementem współzawodnictwa i posiada zazwyczaj z góry określone zasady, których trzeba przestrzegać. Jednakże podczas rywalizacji na komputerze brakuje kontaktu fizycznego z przeciwnikiem (czasami tylko i wyłącznie wirtualnym), do gry używa się różnych interfejsów (klawiatura, mysz, joystick, pad, kierownica, itd.), a rozgrywka polega na sterowaniu obiektami widzianymi na ekranie monitora. Mimo tego daje ona zapotrzebowanie na rozrywkę, może nie rozwija fizycznie, ale spełnia podstawowe funkcje, które mieszczą się w ramach definicji gry. Gry w zależności od platformy można podzielić na gry PC i wideo. Do pierwszej grupy zaliczamy gry stworzone dla komputerów osobistych, bądź notebooków. Do drugiej natomiast należą wszelkiego rodzaju konsole (Atari, Nintendo, Sega, PlayStation, XBox, Wii). Przy tym trzeba nadmienić, że żadna gra stworzona na PC nie zostanie uruchomiona na konsoli, natomiast istnieją emulatory, które pozwalają na komputerze uruchomić gry wideo. Ewolucja gier trwa już od 60 lat. Producenci, w celu zyskania jak największej liczby zwolenników, zapełnili półki sklepowe chyba wszystkimi możliwymi rodzajami gier. Ratowanie świata przed obcymi, zarządzanie transportem, walki wszechświatów, zdobywanie Mistrzostwa Świata w piłce nożnej, czy prowadzenie życia rodzinnego, tego typu gry już od długiego czasu nie wzbudzają emocji. Coraz mniej jest nowych gier, które wprowadziłyby świeżość do domów graczy komputerowych. Jedyne, co jest ciągle unowocześniane, to grafika oraz większa grywalność (na którą składają się elementy projektu, które angażują zainteresowanie ludzi lub zachęcają ich do interakcji z projektem dla rozrywki, rekreacji lub kreatywnej zabawy 2 ). Ze względu na tak dużą ilość asortymentu, ciężko jest przypasować daną grę do konkretnego gatunku, stąd gry mogą zaliczać się do dwóch lub więcej gatunków. Do podstawowych typów gier należą (w nawiasach przykłady gier z danego gatunku) 3 : 1. Platformówki (Mario Bross) 2. Przygodowe (Leisure Suit Larry, Ace Ventura, Teenagent) 3. Fabularne computer Role Playing Game (Fallout, Neverwinter Nights, Deus Ex) 4. Sportowe (Fifa, Pro Evolution Soccer, Ski Jumping) 5. Wyścigowe (Need For Speed, Colin Mc Rea) 6. Gry akcji: a. Bijatyki (Mortal Kombat, Tekken) b. Strzelanki (Quake, Doom, Unreal Tortunament) 7. Logiczne (The Time Machine, Saper :P) 8. Symulacyjne (The Sims, Transport Tycoon) 9. Strategiczne: a. Turowe (Heroes Of Might And Magic, Jagged Aliance, Rezerwowe Psy) b. Czasu rzeczywistego Real Time Strategy (Starcraft, Age of Empires, Warcraft) 1 B. Dunaj, Słownik współczesnego języka polskiego, Wilga, Warszawa 1996, s. 285 2 www.webusability.pl/2007/12/27/grywalnosc 3 www.wikipedia.pl/gra_komputerowa 2
Po unowocześnieniu technologii związanej z telekomunikacja, a raczej z telefonami komórkowymi, gry wkroczyły w nowy dla siebie teren, czyli urządzenia mobilne. Istnieją trzy rodzaje platform pod które tworzy się gry (w nawiasie podane możliwe do użycia języki programowania): Java (Java) Mophun (asembler, C i C++) Symbian (Java i C++) Największą popularnością cieszą się gry Java, gdyż są one obsługiwane przez większą część telefonów. Następnie jest Symbian, którego ograniczeniem jest posiadanie przez komórkę systemu operacyjnego Symbian. Na samym końcu, a to z powodu ograniczenia przez producenta możliwości tworzenia gier (stworzoną grę, aby uruchomić na komórce, trzeba przesłać do producenta w celu certyfikacji) jest Mophun. Na wszystkie te platformy, producenci udostępniają darmowe oprogramowanie do tworzenia gier (i programów). Narzędzia potrzebne do stworzenia prostego midletu 4 w Java to: program do tworzenia klas w języku Java (BlueJ, JCreatorLE) Sun Java Wireless Toolkit (do pobrania ze strony www.sun.com) Java Development Kit (J2ME biblioteki potrzebne do kompilacji midletu) Przykładem gry na urządzenie mobilne może być quiz, który stworzyłem w technologii Java. Polega on na odpowiedzi na trzy pytania, po których następuje prezentacja wyniku. Podstawową składnią midletu jest: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Gra extends MIDlet implements CommandListener{ public void startapp(){} public void pauseapp(){} public void destroyapp(boolean unconditional){} } Pierwsze dwie linijki, to zaimportowanie odpowiednich bibliotek potrzebnych do prawidłowego odczytu poleceń. Kolejno następuje deklaracja klasy która dziedziczy z klasy MIDlet oraz implementuje CommandListener-a (klasa odpowiadająca za wykonywanie poleceń po naciśnięciu przycisków). Wymaganymi metodami są: startapp() polecenia w niej zawarte wykonywane są podczas startu midletu, pauseapp() polecenia w niej zawarte wykonywane są gdy program przestanie być aktywny, destroyapp() zamknięcie aplikacji. 4 midlet program w języku JAVA przeznaczony na urządzenia mobilne, po kompilacji tworzone są pliki *.jar i *.jad, które wgrywa się do urządzenia. 3
Klasa Display odpowiada za odwzorowanie ekranu urządzenia mobilnego i służy jako kontener dla elementów graficznych. Dziedziczą po niej dwie klasy, co przedstawione jest na rysunku. Rys. 1. Dziedziczenie klas od klasy Displayable źródło: http://www.midlety.net/site/praktyka/firstmidlet.html Abstrakcyjna klasa Screen odpowiada za tworzenie grafiki wysokiego poziomu, natomiast Canvas niskiego poziomu. Poszczególne elementy (Alert, Form, List, TextBox) umożliwiają dołączenie standardowych grafik, takich jak okno z informacja, okienka z tekstem, etykiety, listy, itd. Natomiast klasa Canvas daje możliwość rysowania kształtów, tekstu oraz wypełniania ich kolorami, czyli daje dowolność w tworzeniu ekranu. Przykładowe zastosowanie klasy Screen: Command exit = new Command("Wyjście", Command.EXIT, 1); pytanie1 = new Form("Pytanie 1"); 1 group1 = new ChoiceGroup("Które miasto jest stolicą Islandii?", ChoiceGroup.EXCLUSIVE); 2 group1.append("ryga",null); 3 group1.append("rejkiavik",null); group1.append("sarajewo",null); group1.append("dublin",null); pytanie1.append(group1); pytanie1.addcommand(exit); 4 Najpierw stworzony został przycisk, który ma za zadanie wyjście z programu. Następnie utworzono formę (o nazwie Pytanie 1 ), na której umieszczone zostaną pozostałe elementy. Kolejne polecenie tworzy listę wyboru, a następne dodaje do tej listy kolejne punkty. Na koniec dołączamy do formy listę oraz przycisk. 4
Czego efektem jest: Za liczenie poprawnych odpowiedzi odpowiedzialna jest pętla if, która zwiększa zmienną w przypadku udzielenia poprawnej odpowiedzi. Na końcu dołączany jest do formy napis z wynikiem. 5