Temat: Reewendale

Transkrypt

Temat: Reewendale
WYŻSZA SZKOŁA INFORMATYKI
I ZARZĄDZANIA
Z SIEDZIBĄ W RZESZOWIE
Projekt zespołowy
Temat: Reewendale
Dokumentacja końcowa
Prowadzący:
prof. nadzw. dr hab. Janusz Starzyk
Wykonawcy:
Karol Grudzień 36387
Krzysztof Kubaj 32875
Klient:
Dominik Piwiński 36371
mgr Daniel Jachyra
Michał Rodzik 36272
Jakub Krystek 37946
2UID
Spis treści
1.
2.
Koncept ogólny...............................................................................................................................................................3
1.1.
Fabułaświata.......................................................................................................................................................3
1.2.
Motywacjaiopisdziałaniabotów..............................................................................................................3
Zadaniadowykonania...............................................................................................................................................4
2.1.
Celprojektuiformarealizacji......................................................................................................................4
2.2.
Wymaganiaklienta............................................................................................................................................5
3.
RozwójProjektuijegoznaczenie.........................................................................................................................6
4.
Wymaganiasprzętowo‐programowe.................................................................................................................6
5.
Software............................................................................................................................................................................6
6.
Trudnościwystępującewtrakcierealizacjiprojektu.................................................................................7
7.
Trudnościmateriałoweitechniczne...................................................................................................................7
8.
Posumowanieizalecenianaprzyszłość............................................................................................................7
8.1.
NajważniejszeelementykodProgramu..................................................................................................7
8.2.
Coudałosięzrealizować.................................................................................................................................9
 Początkowy etap prac nad światem....................................................................................................................9
 Końcowy wygląd świata......................................................................................................................................10
 Zastosowane modele.............................................................................................................................................10
9.
8.3.
Przebiegsymulacji..........................................................................................................................................14
8.4.
Planynaprzyszłość........................................................................................................................................14
8.5.
Ogólnarealizacjaprojektu..........................................................................................................................14
8.6.
Podsumowanie.................................................................................................................................................15
Zespół–podziałzadań...........................................................................................................................................16
Bibliografia.............................................................................................................................................................................17
2
1. Koncept ogólny
1.1. Fabuła świata W zamierzchłych czasach mieszkańcy wioski Reewendale wiedli spokojny żywot.
Mieli pod dostatkiem surowców i niczym się nie przejmowali. Aż pewnego dnia nadeszli
jednak najeźdźcy z odległych krain, chcący zaburzyć ład utopijnej krainy. Mieszkańcy zostali
zmuszeni do walki z najeźdźcami oraz pozyskiwania surowców potrzebnych do przeżycia w
tych ciężkich czasach. Z pomocą dla tychże nieszczęśników nadeszli bohaterowie, którzy
chcą przywrócić dawny ład w tej nieszczęsnej krainie. Zaoferowali oni swą pomoc, jednakże
mieszkańcy cały czas byli skazani na zapuszczanie się w niebezpieczne strony w celu
pozyskiwania jedzenia oraz innych materiałów potrzebnych do przeżycia.
1.2. Motywacja i opis działania botów Główną motywacją botów jest zaspokojenie pierwotnych potrzeb, takich jak głód,
pragnienie oraz sen. Pomagają im w tym odnawialne surowce (krzewy, drzewa, itp.). Po
krainie poruszają się także wrogie jednostki.
Boty w celu przetrwania muszą gromadzić informacje o otaczającym ich świecie,
miejscach w których znajdują się surowce oraz miejscu składowania tychże elementów.
Druga klasa botów to boty obrońcy, których celem jest walka z wrogimi jednostkami.
Boty uczą się poprzez metodę prób i błędów, jak pozyskiwać surowce oraz unikać
wrogich jednostek, korzystając przy tym ze złóż surowców oraz botów wojowników.
3
2. Zadania do wykonania 2.1. Cel projektu i forma realizacji Celem projektu było przedstawienie życia mieszkańców przedstawionej w fabule wioski oraz
broniących jej przed najeźdźcami rycerzy. Świat został stworzony przy wykorzystaniu
Microsoft Visual Studio i silnika XNA. Aplikacja działa bez potrzeby ingerencji ze strony
użytkownika.
Uogólnione cele:
o Stworzyć grę
o Opanować krainę
o Kontrolować boty
o Budować budynki
4
2.2. Wymagania klienta Wymagania parametryczne
 Podział botów:
swoi / wrogowie
 Sposób eksploatacji planety:
budynki
surowce
mapa
losowe rozmieszczenie zasobów środowiska i botów
 Zwrotna informacja o stanie środowiska i botów
Wymagania eksploatacyjne
 Stany botów:
pracują, walczą, głodują, odpoczywają
ustanowienie hierarchii celów
informacja o akcjach botów zarówno tych dobrych jak i złych
generowanie statystyk dotyczących nauki botów
5
3. Rozwój Projektu i jego znaczenie Wtrakciedziałaniaprogramubotypobierajązśrodowiskaznalezionezasobycoskutkujęich
zmniejszaniu.Gdydojdziedokontaktupomiędzywrogimbotem(agresorem),aobrońcą
następujęwzajemnaeliminacja.Botktórymawięcejżyciaorazjestsilniejszy(dominujący)
wygrywapotyczkę.Takasytuacjaniewystępujegdywrogibotspotkabotarobotnika
(potencjalnaofiara),wtakiejsytuacjirobotnikzmuszonyjestdoucieczki,natomiastwroginie
zostajeuszkodzony.
Różnicepomiędzyprojektemkońcowymazałożeniamipolegałymin.na:




Brakuzaimplementowaniaanimacji,
Środowiskodziałaniapozbawionejest„kolorów”,tzn.małailośćtekstur,
Botyniepotrafiąbudowaćbudynków,
Większailośćrodzajówbotów
4. Wymagania sprzętowo‐programowe Projekt został oparty o silnik XNA, będący głównym elementem definiującym
minimalne wymagania sprzętowo-programowe:





Windows XP bądź nowszy,
Karta graficzna wspierająca Shader Model 1.1 oraz DirectX 9.0c,
Procesor 2.0 GHz lub wyższy,
2GB RAM,
XNA 3.0
5. Software Kod został napisany za pomocą języka C# z wykorzystaniem Microsoft Visual Studio oraz
silnika XNA, ponieważ te technologie idealnie współpracują ze sobą. Przez zastosowanie
powyższych technologii program działa tylko w OS Windows, ewentualnie po dalszych
przeróbkach można go przystosować dla Xboxa. Silnik XNA obecnie wspierany przez
Microsoft okazał się dosyć dobrym wyborem do realizacji tego typu projektu.
Przy tworzeniu grafiki wykorzystany został Blender – darmowy program do tworzenia grafiki
trójwymiarowej, renderingu oraz animacji.
6
6. Trudności występujące w trakcie realizacji projektu 


Spięcia związane z różnymi pomysłami na realizację konkretnych zagadnień,
Początkowe problemy z doborem terminów spotkań dogodnych dla wszystkich
członków grupy,
Opóźnienia z dostarczaniem modułów programu wynikające z różnego podejścia
programistów do danych zagadnień, oraz odmiennych stylów programowania.
7. Trudności materiałowe i techniczne 


Początkowy brak wiedzy do realizacji pewnych elementów projektu, konieczność
douczenia się odnośnie pewnych zagadnień związanych z wykorzystywanym
językiem programowania oraz narzędziami
Rozbieżność z posiadaną platformą sprzętowo-programową – Nie wszyscy
członkowie grupy posiadają wystarczająco wydajne komputery do udźwignięcia
zaawansowanych funkcji graficznych, nie wszyscy również korzystają na co dzień z
systemu Microsoft Windows
Problemy z animacją modeli oraz implementacją właściwych animacji do określonych
akcji
8. Posumowanie i zalecenia na przyszłość 8.1. Najważniejsze elementy kod Programu Projektpodzielonyjestnapakietyzktórychnajważniejszeto:
WorldModule‐zawieraopisorazsposóbdziałaniaposzczególnychelementuówzgry
GraphicsEngine‐budujeświat
możliwerodzajemodeliwedługid:
1‐100modelestatycznetakiejaknp.budeynek
101‐200modelestatycznezautomatyczneidołączanymiteksturami
201‐300modeleanonimowanenp.rycerz
rysowaniemodeliodbywasięwnastępującysposób:
obj=AddObject(ObjectType.Worker,newVector3(10.0f+losowe,0.0f,
20.0f));
Objects.Add(obj);//dodawaniedogłównejlistyobiektówktórazostanienarysowana
obj=AddObject(ObjectType.Worker,newVector3(40.0f+losowe,0.0f,20.0f));
Objects.Add(obj);
obj=AddObject(ObjectType.Worker,newVector3(35.0f+losowe,0.0f,60.0f));
7
Objects.Add(obj);
obj=AddObject(ObjectType.House,newVector3(100.0f+losowe,0.0f,50.0f));
obj.Rotation=‐90.0f;
obj.obruc=100.0f;
Objects.Add(obj);
obj=AddObject(ObjectType.Mineral,newVector3(40.0f+mineral,0.0f,100.0f));
Objects.Add(obj);
obj=AddObject(ObjectType.Warrior,newVector3(35.0f+losowe,0.0f,6.0f));
obj.Rotation=‐90.0f;
Objects.Add(obj);
NastępnieprzypomocymetodyDrawModelzklasyDrawableModelssąrysowanewszystkie
obiektyzlistyobj
Reewendale‐paketuruchomieniowy
SkinnedModelWindows‐klasaobsługującaanimacje
8
8.2. Co udało się zrealizować  Zaimplementowano silnik graficzny (nie udało się ukończyć animacji botów)
 Wstępnie zdefiniowane modele
Tabela1‐Wstępniezdefiniowanerodzajemodeli
Postacie
•
•
•
•
Robotnicy
Wojownicy
Najeźdźcy
Zwierzęta
Budynki
• Baza
• Magazyn
• Domki
Mapa
•
•
•
•
•
Teren
Woda
Góry
Surowce
Mgła
Detale
• Narzędzia
pracy
• Narzędzia
walki
Akcje
• Praca
(zbieranie
surowców)
• Walka
(z najeźdźcami)
• Odpoczynek
 Początkowy etap prac nad światem
9
 Końcowy wygląd świata
 Zastosowane modele
10
Rysunek8‐1‐Wojownik
Rysunek8‐2‐Najeźdźca
11
Rysunek8‐3‐Zamek
Rysunek8‐4‐Spichlerz
12
Rysunek8‐5‐Drzewo
 Każdy element na planszy jest generowany w losowej pozycji przez co po każdym
włączeniu gry boty znajdują się w innym środowisku początkowym,
 Boty funkcjonują zgodnie z początkowymi założeniami (pozyskiwanie surowców, obrona
przed najeźdźcami)
 Zaimplementowano hierarchię celów (atak wrogiego bota przerywa pozyskiwanie
surowca i powoduje ucieczkę robotnika)
 Po zaznaczeniu obiektu/bota wyświetlane są informacje o jego stanie i aktualnych
działaniach
Program generuje statystyki, zawierają one:
czas w sekundach od początku gry
nazwę obiektów
ich stany
bieżąca wartość życia (hp)
pozycja w jakiej bot przebywał w danej chwili
.
Boty:
stany/akcje botów
bot robotnik:
- szukam - szuka zasobów (stan)
- znalazłem - zasoby zostały odnalezione (stan)
13
- naprawiam - naprawa budynków (stan)
- zbieram - zbiera znalezione zasoby (akcja)
- do magazynu - zanosi uzbierane zasoby do magazynu (akcja)
- praca- praca na rzecz budynków np. ich budowa/naprawa
- brak materiałów szukam- brak materiałów uniemożliwia pracę na rzecz budynków
bot wojownik/przeciwnik:
- szukam przeciwnika - gdy brak w okolicy przeciwnika boty szukają ich (stan)
- znalazłem - przeciwnik został odnaleziony (stan)
- atakuje- atak pomiędzy dwoma botami (akcja)
8.3. Przebieg symulacji Pouruchomieniuaplikacjinastępujelosowerozmieszczeniewszystkichobiektównamapie
(boty,budynki,surowce).Botyzaczynająkrążyćwcelupoznaniaświata(określeniapozycji
zasobóworazbudynków).Botyrobotnicy,gdynapotkająnajakiśsurowiec,rozpoczynająjego
zbieranie.Następniejestonzanoszonydomagazynu,lub,jeślipozycjamagazynujestnieznana,
następujeposzukiwaniemagazynu.Gdyznanesąpozycjezarównomagazynujakisurowców,
robotnicyprzemierzająścieżkępomiędzytymiobiektamiwcelumagazynowaniasurowców.
Jeślinapotkanyzostaniewrogibot–najeźdźca,robotnikprzerywaswojąpracęizaczyna
uciekać,abyznaleźćsięjaknajdalejodatakującegoprzeciwnika.Botynajeźdźcykrążąpokrainie
poszukującinnychjednostek(robotników,bądźwojowników).Jeślinapotkająnatejednostki,
rozpoczynająatak.Wojownicyzachowująsięanalogiczniedonajeźdźców.Wprzypadkuwalki
wojownikaoraznajeźdźcy,walkęwygrywaten,którymawdanymmomenciewięcejpunktów
życia.
8.4. Plany na przyszłość 




Animacja modeli
Implementacja dźwięków
Zwiększenie złożoności świata
Dodanie większej różnorodności botów
Dodanie większej ilości akcji możliwych do wykonania przez boty
8.5. Ogólna realizacja projektu 



14
Przebieg prac odbywał się terminowo
Współpraca między członkami grupy układała się dobrze (bezkonfliktowo)
Obowiązki zostały rozdzielone zgodnie z umiejętnościami poszczególnych osób
Krótki czas na wykonanie projektu uniemożliwił wykonanie wszystkich założonych
celów

W trakcie prac nad projektem pojawiły się nowe pomysły, jak można by udoskonalić
projekt w przyszłości
8.6. Podsumowanie W celu zwiększenia szybkości oraz wydajności tworzenia projektu wszyscy zajmowali
się testowaniem modułów programu. Dzięki temu, że w zespole znajdowało się 2
programistów znacznie skrócił się czas pisania aplikacji.
15
9. Zespół – podział zadań Karol Grudzień - tester, tworzenie dokumentacji, twórca fabuły;
Krzysztof Kubaj- tester, project manager, tworzenie dokumentacji;
Michał Rodzik – tester, grafik, dźwiękowiec;
Dominik Piwiński – tester, programista, moduł środowiskowy;
Jakub Krystek – tester, główny programista, moduł uczący;
16
Bibliografia C#:
–
–
http://forum.4programmers.net/viewtopic.php?id=140344
http://forum.di.com.pl/archive/index.php/t-2185.html
–
http://creators.xna.com/en-US/
–
–
–
–
http://blenderart.org/issues/
http://www.blender.org/
http://wiki.blender.org/index.php/PL/Main_Page
http://www.blender.pl/
XNA:
Blender:
17

Podobne dokumenty