• No results found

Framtida arbete

In document Provinsgenerering med postprocess (Page 44-52)

5 Diskussion och förbättringar

5.4 Framtida arbete

En stor del av provinsgeneratorn är att den ska klara av att dela in provinserna beroende på landskapets struktur. Denna funktion kunde inte visas i sin helhet eftersom de genererade kartorna inte var tillgängliga för testning och tiden inte räckte till för att postprocessen skulle kunna kalibreras till att hantera de genererade kartorna från landskapsgeneratorn.

För att projektet ska nå det tänkta resultatet måste poängsystemet för postprocessen kalibreras så att det hanterar all information som fås från områdeskartan. För närvarande kombineras provinserna på testkartan genom att sortera alla kombinationer i det binära sökträdet efter poäng som fås från värdena på provinsernas storlekar och gränsstorleken mellan de två grannarna. Höjdnivåer, kuststorlekar och terrängtyper behandlas inte. Genom

att inkludera dessa värden kan man påverka poängen för de olika kombinationerna för att få provinsgeneratorn att ta hänsyn till de olika faktorerna på landskapet.

Bland annat är det tänkt att en skillnad på höjdnivåerna för en kombination ska tillföra ett negativt komplement till kombinationens poäng och olika terrängtyper för provinserna ha olika påverkan på kombinationens poängtal. Värdena för poängsystemet som dessa tillagda funktioner kan påverka måste kalibreras så att resultatet blir en provinsindelning liknande den som finns på den originala kartan i EU4.

En annan sak som kan göras som framtida arbete är att sätta ihop de två programmen för landskapsgeneratorn och provinsgeneratorn till ett enda program. Detta har för fördel att man kan skippa filskrivning och filläsning av höjdkartan för att överföra information mellan de två programmen och därmed skippa en stor del av arbetet som utförs av datorn.

5.5 Slutsatser

Eftersom postprocessen varken testades eller kalibrerades efter en genererad karta är det svårt att diskutera fördelarna med att ha en provinsgenerator som tar hänsyn till landskapets struktur. Däremot har provinsgeneratorn genererat mycket övertygande resultat under projektets gång. När programmets design planerades var det oklart om en sådan implementation av en provinsgenerator för en karta skulle lyckas. Många av valen som gjordes vid planeringen av programmets design har varit viktiga för programmets resultat. Flertalet av algoritmerna som valdes att användas i provinsgeneratorn har redan använts i andra liknande arbeten. Att kombinera alla dessa algoritmer, utföra beräkningar på

pixelbasis och använda programmets postprocess för att hantera provinsindelningen har däremot varit mycket unikt för det här arbetet. Det är dessa unika aspekter som kan göra arbetets resultat intressanta.

Generellt sätt är provinsgeneratorn mycket anpassningsbar vilket ger användaren stora möjligheter till att skapa den efterfrågade provinsindelningen. Bestämmer sig användaren för att vissa faktorer ska påverka indelningen mer än andra är det bara att sätta in de önskade värdena genom programmets användarinmatade parametrar. Detta bidrar till en mer

justerbar kartgenerator vilket kan öppna många möjligheter till genereringen av olika sorters kartor och därmed möjligheten att variera kartornas utseende och anpassa kartorna efter det önskade resultatet.

Dessutom har provinsgeneratorn en mycket snabb exekveringstid vilket bidrar till kortare landdningstider i EU4 än vanligt. Den snabba exekveringstiden beror på användningen av mycket effektiva algoritmer så som Fortune's algoritm och valet av att arbeta med kartan på pixelbasis för att använda operationer som är lätta för datorn att hantera. Dessutom var det mycket viktigt att hålla den största delen av minnesoperationerna till cache-minnet.

Möjligheten till att spara resultatet till en bildfil kan användas i syfte om att ladda in kartan direkt från filen istället för att generera om kartan med samma parametrar varje gång man vill återuppta ett redan påbörjat spel. Funktionen för att ladda in en provinskarta från fil används redan för originalkartan i EU4. Fördelen med att ladda in en karta från en bildfil är

att man kan spara ännu mer tid vid laddning av spelet till en liten kostnad av bildfilens storlek som sparas på datorns hårddisk.

Medan implementationen av provinsgeneratorn har gett många positiva resultat är det ändå inte övertygande att detta är den bästa implementationen för ett spel som EU4. Programmet har fortfarande inte testats för de genererade kartorna så det är oklart om indelningen blir lika bra som det är förväntat och kartindelningen blir lik originalkartan i spelet. Däremot har det nuvarande resultatet många fördelar gentemot Paradox's egna provinsgenerator.


Referenser

[1] "Civilisation Manual", Civilization Fanatics' Center, <http://www.civfanatics.com/civ1/ manual/civ1_man.htm> [Hämtad: 6 april, 2014].

[2] Nick Mokey, "SID MEIER GOES HEX WITH CIVILIZATION V", Digital Trends, 18 february 2010, <http://www.digitaltrends.com/gaming/sid-meier-goes-hex-with-civilization-v/ #!3Qdwn> [Hämtad: 6 april, 2014].

[3] About Paradox Interactive, ParadoxPlaza, <http://www.paradoxplaza.com/about-us> [Hämtad: 8 april, 2014].

[4] Europa Universalis IV, ParadoxPlaza, <https://www.paradoxplaza.com/europa- universalis-4> [Hämtad: 8 april, 2014].

[5] Europa Universalis IV: Conquest of Paradise, ParadoxPlaza, <https://

www.paradoxplaza.com/europa-universalis-iv-conquest-of-paradise> [Hämtad: 8 april, 2014].

[6] J. Feil, M. Scattergood (2005), "Beginning Game Level Design", Thomson Course Technology. (s.40)

[7] Georgy Feodosevich Voronoy (1908), "Nouvelles applications des paramètres continus à la théorie de formes quadratiques", Journal für die reine und angewandte Mathematik 134: 198–287.

[8] David Austin, "Voronoi Diagrams and a Day at the Beach", American Mathematical Society, augusti 2006, <http://www.ams.org/featurecolumn/archive/voronoi.html> [Hämtad: 12 maj, 2014].

[9] Jon Choate, "Cellphone Geometry", Geometer's Corner, <http://www.zebragraph.com/ Geometers_Corner_files/cell%20phones.pdf> [Hämtad: 14 maj, 2014].

[10] D. Yoshinori, H. Toshiyuki, J. Henry, N. Tomoyuki, "A Method for Creating Mosaic Images Using Voronoi Diagrams", Hokkaido University, The University of Tokyo, <http://nis- ei.eng.hokudai.ac.jp/~doba/papers/egshort02_mosaic.pdf> [Hämtad: 28 maj, 2014]. [11] M. Berg, O. Cheong, M. Kreveld, M. Overmars (2008), "Computational Geometry: Algorithms and Applications" (3rd edition), Springer-Verlag, Berlin Heidelberg. ([11a] s.148; [11b] s.149; [11c] s.46; [11d] s.196; [11e] s.22; [11f] s.151)

[12] Ivan Kuckir, "Fortune’s algorithm and implementation", Algorithms and Stuff, <http:// blog.ivank.net/fortunes-algorithm-and-implementation.html> [Hämtad: 28 maj, 2014]. [13] Boris Nikolaevich Delaunay (1934), "Sur la sphère vide. A la mémoire de Georges Voronoï", Bulletin de l'Académie des Sciences de l'URSS, Classe des sciences

mathématiques et naturelles 6: 793–800, <http://mi.mathnet.ru/eng/izv4937> [Hämtad: 14 juli, 2014].

[14] Henry Zimmer, "Voronoi and Delaunay Techniques", 30 juli 2005, <http://elliptic- pde.googlecode.com/hg-history/0f06bbf886cbaf38556faef0e0a57d953e36cf99/papers/ VoronoiDelaunay.pdf> [Hämtad: 20 juni, 2014].

[15] Steven Fortune (1986), "A sweepline algorithm for Voronoi diagrams".

[16] Stuart P. Lloyd (1982), "Least squares quantization in PCM", IEEE Transactions on Information Theory 28 (2): 129–137.

[17] Oliver Deussen, "Aesthetic Placement of Points Using Generalized Lloyd Relaxation", University of Konstanz, 2009, <http://citeseerx.ist.psu.edu/viewdoc/download?

doi=10.1.1.177.5272&rep=rep1&type=pdf> [Hämtad: 22 juni, 2014].

[18] Jack Elton Bresenham (1965), "Algorithm for computer control of a digital plotter". IBM Systems Journal 4 (1): 25–30.

[19] E. Angel, D. Shreiner (2011), "Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL" (6th edition), Addison-Wesley. ([17a] s.325-327; [17b] s.330) [20] Lode Vandevenne, "Lode's Computer Graphics Tutorial: Flood Fill", 2004, <http:// lodev.org/cgtutor/floodfill.html> [Hämtad: 28 maj, 2014].

[21] Amit Patel, "Polygonal Map Generation for Games", Red Blob Games, 4 september 2010, <http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map- generation/> [Hämtad: 28 maj, 2014].

[22] Eclipse, <http://www.eclipse.org>.

[23] simplevoronoi, SourceForge.net, <http://simplevoronoi.sourceforge.net/>. [24] GameMaker: Studio, YOYO Games, <https://www.yoyogames.com/studio>. [25] "Bresenham's line algorithm", Wikipedia, <http://en.wikipedia.org/w/index.php? title=Bresenham%27s_line_algorithm> [Hämtad: 23 juni, 2014].

[26] "[MS-WMF]: Windows Metafile Format", Microsoft Developer Network, 15 maj 2014, <http://msdn.microsoft.com/en-us/library/cc250370.aspx> [Hämtad: 19 juli, 2014]. [27] CPU World, <http://www.cpu-world.com/CPUs/K8/AMD-Athlon

%2064%20X2%20QL-60%20-%20AMQL60DAM22GG.html> [Hämtad: 25 juni, 2014]. [28] Java Garbage Collection Basics, Oracle, <http://www.oracle.com/webfolder/ technetwork/tutorials/obe/java/gc01/index.html> [Hämtad: 19 juli, 2014].


Figurer

Figur 1: GoldBerg, 2005, Start Scenery Of The SPACE RACE Contest (modifierad), Civilization Fanatics' Center, <http://www.civfanatics.com/gallery/showimage.php? i=857&c=19> [Hämtad: 4 juli, 2014]

Figur 2: Digital Trends, 2010, <http://www.digitaltrends.com/gaming/sid-meier-goes-hex-with- civilization-v/#!LtHWf> [Hämtad: 4 juli, 2014]

Figur 3-4: Skärmdumpar tagna direkt från spelet Europa Universalis IV: Conquest of Paradise med hjälp av programmet Steam's skärmdumpsfunktion.

Figur 5: Paradox Interactive, 2013, tagen direkt från Europa Universalis IV:s systemfiler, Copyright © 2013 Paradox Interactive AB

Figur 6: Raincomplex, 2013, Euclidean Voronoi Diagram, Wikimedia Commons, <http:// commons.wikimedia.org/wiki/File:Euclidean_Voronoi_Diagram.png> [Hämtad: 7 juli, 2014] Figur 7: Hferee, 2011, Delaunay Voronoi, Wikimedia Commons, <http://

commons.wikimedia.org/wiki/File:Delaunay_Voronoi.svg> [Hämtad: 7 juli, 2014]

Figur 8: Matthias Kopsch, 2012, Delaunay circumcircles centers, Wikimedia Commons, <http://commons.wikimedia.org/wiki/File:Delaunay_circumcircles_centers.svg> [Hämtad: 7 juli, 2014]

Figur 9-11: David Austin, 2006, American Mathematical Society, <http://www.ams.org/ samplings/feature-column/fcarc-voronoi>

Figur 12: Amit Patel, 2010, Red Blob Games, <http://www-cs-students.stanford.edu/~amitp/ game-programming/polygon-map-generation/> [Hämtad: 4 juli, 2014]

Figur 13: Crotalus horridus, 2007, Bresenham, Wikimedia Commons, <http:// commons.wikimedia.org/wiki/File:Bresenham.svg> [Hämtad: 7 juli, 2014]

Figur 14-24: Figurer på resultat som uppnåtts under arbetet. Dessa figurer är skapade under provinsgeneratorns exekvering med hjälp av Javas inbyggda biblioteksfunktioner.


In document Provinsgenerering med postprocess (Page 44-52)

Related documents