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