Gebruikershandleiding 1. “Need for Food” Systeemeisen Een 386-compatible processor met een kloksnelheid van 600 MHz of hoger. Windows 98 of hoger. (Windows XP aanbevolen.) DirectX 7 of hoger. (Versie 9 aanbevolen.) Videokaart met een resolutie van 800x600 of hoger en een kleurdiepte van 16 bpp of hoger Hardwareondersteuning voor OpenGL 1.2 of hoger of voor OpenGL 1.1 met BGR-extensie. Geluidskaart (optioneel). Netwerkkaart. Netwerkverbinding die ten minste 10 kB/s up- en down-stream heeft.
Een spel aanmaken Om te kunnen spelen zal eerst een netwerksessie aangemaakt moeten worden waarin alle deelnemers aan het spel zich gaan verzamelen. Dit aanmaken gaat als volgt: 1. Start het spel door dubbel te klikken op NeedForFood.exe 2. Er verschijnt een scherm voor het aanmaken van een sessie. Klik op “Internet TCP/IP Connection For DirectPlay” en vervolgens op “Next”. 3. Klik nu “Create a new game” aan en weer op “Next”. 4. Voer een sessie naam in en uw spelersnaam (maximaal 12 karakters) en klik op “Complete”. 5. De sessie wordt nu aangemaakt en het hoofdmenu van Need for Food zal verschijnen. 6. Vervolgens moet u wachten tot alle deelnemers in de lijst zijn verschenen en klikt u op “Klaar om te starten”. Wanneer alle andere spelers dit ook hebben gedaan zal het spel vanzelf starten.
Aan een spel meedoen Wanneer iemand al een sessie heeft aangemaakt (zoals beschreven in de vorige sectie), hoeven alle andere deelnemers aan het spel hier alleen nog maar bij in te loggen. Dit inloggen gaat als volgt: 1. Start het spel door dubbel te klikken op NeedForFood.exe 2. Er verschijnt een scherm voor het aanmaken van een sessie. Klik op “Internet TCP/IP Connection For DirectPlay” en vervolgens op “Next”. 3. Klik nu “Join an existing game” en op “Next”. 4. Nu verschijnt er een popup waarin om een ip-adres wordt gevraagd. Vul hier het ip adres in van degene die de sessie heeft aangemaakt en klik op ok. 5. Daarna verschijnt er een lijst van sessies. Klik in het linker lijstje op de sessienaam en vul bij “Player name” uw spelersnaam (maximaal 12 karakters) in. Klik op “Complete”. 6. Vervolgens moet u wachten tot alle deelnemers in de lijst zijn verschenen. Als dit gebeurt is, klikt u op “Klaar om te starten”. Wanneer alle andere spelers dit ook hebben gedaan, zal het spel vanzelf starten.
Het spel spelen Wanneer het spel gestart wordt ziet u het speelveld verschijnen met midden in beeld uw eigen voertuig (een autootje). De bedoeling in het spel is zoveel mogelijk voedsel te verzamelen,
1
vallen te ontwijken en zelf vallen voor anderen te plaatsen. Hierbij heeft elke soort voedsel zijn eigen waarde en heeft elke val zijn eigen kracht (hoe sterker hoe meer voedsel een speler verliest wanneer hij de val raakt). Deze waardes vind u in onderstaande tabel: Categorie Junk Food Fruit Snoepgoed Non-alcoholische drank Bier Sterke drank
Aantal punten 10 2 5 3 7 10
Valnaam Lollies Appelbom Mijn
Aantal te verliezen items 2 3 5
Bovendien zijn er een aantal vallen die de besturing of het zicht van de speler beïnvloeden, deze vallen zijn van korte tijd van invloed. Valnaam Olijfolie Spuitbus Bevries
Effect Raak controle kwijt gedurende een aantal seconden Kan niet zien gedurende een aantal seconden Kan niet bewegen gedurende een aantal seconden
Het voedsel en de vallen liggen op het speelveld, hierbij zitten de vallen allemaal in kratten, dus u weet niet wat u oppakt. Een door iemand anders geplaatste val zit niet in een krat, maar wordt weergegeven door een bijbehorend object. Elke speler kan maximaal 3 vallen tegelijkertijd bij zich hebben. De vallen die op dit moment in uw bezit zijn ziet u in de 3 witte vakjes onderin beeld. Wanneer u een val plaatst, zal altijd de meest rechtse worden geplaatst. Naast vallen bevat het speelveld ook powerups en ook deze hebben gedurende beperkte tijd invloed op de speler. Onzichtbaarheid zit in een krat, Armour en Wapen echter niet. Deze powerups hebben de volgende werking: Power-up Onzichtbaarheid Armour Wapen
Effect De speler is onzichtbaar voor een aantal seconden De speler kan geen voedsel verliezen door vallen voor een aantal seconden Er zijn drie kogels die afgevuurd kunnen worden. Als deze een speler zonder Armour raken, dan verliest die speler één voedselitem
2
De besturing voor het spel is als volgt: Toets Pijltje omhoog Pijltje omlaag Pijltje naar links Pijltje naar rechts Spatiebalk ‘s’ Control knop ‘m’ ‘c’ Page Up/Down
Effect Vooruit rijden Achteruit rijden Linksom draaien Rechtsom draaien Wapen afvuren/val plaatsen Toon scores van alle spelers Achterom kijken Muziek aan/uit Verwissel camerastandpunt Verwissel radiostation
Als de spatiebalk wordt ingedrukt en de speler heeft een Wapen en ook vallen, worden er eerst kogels afgeschoten, totdat Wapen is uitgewerkt. Daarna worden pas vallen geplaatst. Verder ziet u links onderin een getal met daarvoor een plus of een min. Bij een plus is dit het aantal punten dat u voorstaat op de nummer 2 in de lijst, bij een min is dit het aantal punten dat u achterstaat op de nummer 1 in de lijst. Rechts onderin ziet u altijd uw eigen aantal punten. Linksboven ziet u de resterende tijd. Mocht u in een val rijden, of een power-up oppakken, dan ziet u links in beeld hoeveel seconden deze val of power-up nog van invloed op u is. Als u een Wapen power-up oppikt, zal boven de vallenlijst staan hoeveel schoten u nog over heeft.
Overige functionaliteit Vanuit het hoofdmenu kunt u nog kiezen voor de schermmodus. Deze dient u te kiezen voor u op “Klaar om te starten” klikt. Verder zit onder deze keuzeknoppen een knop “Nieuw spel”. Hiermee kunt u eventueel een nieuwe sessie aanmaken.
Afsluiten Vanuit een full screen spel kunt u met “Alt+F4” het spel verlaten, bij een spel in een venster klikt u gewoon op het kruisje rechtsboven. Wanneer u het spel gewoon uitspeelt tot de tijd om is, komt u na de melding dat de tijd om is, weer in het hoofdmenu en worden de eindscores getoond. Tevens kunt u kiezen om het spel af te sluiten, om met dezelfde spelers nog een spel te spelen, om een nieuw spel aan te maken (1) of om aan een ander spel mee te doen (2).
3
2. Customization "Give someone a game and he'll play it for a day. Make the game mod-able and he will play it for a life-time" Need for Food as generalized gaming platform As our motto points out, a game with no user-customization possibilities is no longer considered an interesting game. That’s why we spent quite some time trying to make our game as customizable as possible. In the end we can proudly say that Need for Food can no longer be taken as just a simple game. It has now become a general purpose gaming engine, where only the general concepts play an internal role, while their implementation is left to the user. Need for Food functions by means of a few general concepts: a. Collectable goods: in our standard situation they are food items. Each of these collectable goods has a score associated with it. b. Eight or less playable characters (numbered player0 till player7): each of them represents one of the players. They are assigned to players participating in a certain game. c. Traps and Trap Crates: The crates are containers for these traps. A player can collect at most three traps and set them on the ground. Some of the traps have a certain time in which they wear off and some cause a number of collectable items to be lost by the player who steps into them. d. Armor: provides the player with resistance to traps for a certain amount of time e. Weapon : allows the user to hit the other players thereby causing them to loose a number of collectable items. f. Re-spawns : Both collectable items and crates are being re-spawned after a certain amount of time has passed. g. Terrain movement: Each terrain has a certain speed associated with it so that the main character will take more time to pass through some squares than the others. h. Map Tile width : Each map tile is a square of predefined width i. End Time: A game will declare a winner after a certain amount of time has passed j. A lot more (A full description of game concepts can be found in the course of this document) All these general concepts are dependent on a lot of parameters like for example a graphical representation, set of coordinates, and others. Turning the control over this data to the user allows him to change the game from a food collecting game to a 3D multiplayer gem collecting game, where the characters are Dwarf miners in search for diamonds. As traps there are spikes, mud, oil, etc all looking different and behaving accordingly. Client and Global Concepts Since the game is played over a distributed system we needed to take care of the fact that all this customization might enable certain players to abuse the game. (i.e. create a new look for the main player that only they would load. This new look would constitute of a bigger model and so the player could collect more items at a time than the rest). Due to these considerations we decided to split up the customizable game concepts into 2 categories: client and general concepts. The main difference between the two is that client concepts can be changed by each
4
player independently without changing the global behavior of the game. (such as for example text color) while the global concepts have an impact on game play and therefore must be identical for all players. The data concerning the objects has been divided in 5 external files: 1. graphics.007 contains the 3d graphical data associated with the objects that play a role in our game. 2. map.007 contains the information concerning the map to be played, i.e the field and the existing objects on that field. 3. graphics.ini makes the link between the theoretical game concepts as described above and the graphical information contained in the graphics.007 file 4. params.ini contains global games parameters like for example the time length, trap penalties, scores for different items etc. 5. client.ini contains the client concepts. Of these five files only three are directly visible to the user. The graphics.007 and map.007 are binary files. To make the user able to change them and use them in the game we have made a customization SDK that he could use to create new valid game files. The first four files constitute the global concepts and the fifth file contains only client concepts. To make it easier for the user to manage all these file we have made another ini file, titled needforfood.ini that contains the path to these files. That enables the user to make new files and then link them from this ini file without having to overwrite the original ones. The following pictures illustrates the game’s ini file structure:
Graphics.007 and Map007 The specifications for both graphics and map format can be found in the “Graphics and Map file specification” appendix. Although the files are binary files, users can gain access to the information inside them and make new graphic and map files with the help of the customization SDK that comes with the game. The SDK comes with 4 console applications: 1. g007filemaker.exe: used to create new graphics.007 files.
5
2. 3. 4.
g007tester.exe: used to view the contents of the graphics.007 file in text mode. m007maker.exe: used to create new map.007 files. m007tester.exe: used to view the contents of the map.007 file in text mode.
Further the SDK contains detailed text files on creating map and graphics files with the use of the SDK so the user will have absolutely no problem changing the binary files. Graphics.ini Graphics.ini links the logical game aspects with the graphical information contained by the graphics.007 file. Each logical game concept is associated with a graphical group name from the graphics.007 file and for each of these groups the graphics.ini stores a scaling factor that is applied on these objects in the game. Here are the main logical game elements: 1. Player0 to Player7: The 8 players that appear during the game. 2. Trap_Bomb, Trap_Mine, Trap_Spikes, Trap_Freese, Trap_Paint, Trap_Oil : the 6 trap types that appear during the game 3. PowerUp_Weapon, PowerUp_Armour : the two sorts of power-ups in the game 4. Drink_Beer, Drink_StrongDrink, Drink_Coke, Food_Banana, Food_Hamburger, Sweet_candy : the collectable items 5. Effects_Unseen : the object the main player morphs to when becoming invisible 6. Crate : trap container 7. Bullet : The weapon can shoot 3 bullets before it is rendered useless
Params.ini As the picture above shows the params.ini files contains global game concepts divided in 6 subgroups: I. II.
III.
IV. V. VI.
Terrain_Speeds : the main character moves with different speeds through the three different terrain types : asphalt, grass and sand. Game_Params : contains the following information 1. Total game time 2. The bounce factor used in collision with walls and other players 3. Rotation angle of the main character 4. Map tile width 5. Wall width Food_Points : contains information about the scores awarded for collecting different game items : Drink_Beer, Drink_StrongDrink, Drink_Coke, Food_Banana, Food_Hamburger, Sweet_Candy. Trap_Losses : contains information about the number of items lost with different traps : Trap_Spikes, Trap_Bomb, Trap_Mine Times : contains information about the duration of some traps: Trap_Freese, Trap_Paint, Trap_Oil, PowerUp_Armour and Effects_Unseen Respawns : contains the respawn time intervals for both crates and food
Client.ini This file contains the following information: Text_Color : The color of the messages being displayed during the game Highscore_Player0 : Color of the high score notice for player 0
6
Highscore_Player1 : Color of the high score notice for player 1 Highscore_Player2 : Color of the high score notice for player 2 Highscore_Player3 : Color of the high score notice for player 3 Highscore_Player4 : Color of the high score notice for player 4 Highscore_Player5 : Color of the high score notice for player 5 Highscore_Player6 : Color of the high score notice for player 6 Highscore_Player7 : Color of the high score notice for player 7 Connection_Lost : Text being displayed when the connection is lost Nick_In_Use : Text displayed when a certain user requests a name that is already in use Nick_Too_Long : Text displayed when a certain user requests a name that is too long Player_Leave : Text displayed when an user leaves the game
7
3. Map maker Het doel van dit programma is om het maken van een ini bestand, dat geschikt is voor m007maker.exe, te versimpelen. Dit programma bevindt zich echter nog in een vroeg teststadium, waardoor het niet altijd even makkelijk werkt en waardoor er alleen eenvoudige mappen mee te maken valt.
1 2
3
4
5
6
Fig. B8.1: Het MapMaker programma Voordat er begonnen kan worden met de MapMaker moet er eerst een map worden aangemaakt. Dit gebeurt door de Lengte en Breedte in te voeren en vervolgens op Ctrl+N te drukken (Figuur B8.1.1). De MapMaker heeft drie modi: 1. Map tekenen 2. Spawn-punten plaatsen 3. Objecten plaatsen Het veranderen van modus gebeurt door er op te klikken er zullen dan verschillende opties mogelijk worden of uitgezet worden (Figuur B8.1.3). De opties in de afzonderlijke modi worden hieronder beschreven. Map tekenen In de Map tekenen mode kan een rand getekend worden door op Teken Rand te klikken (Figuur B8.1.2). In het vakje Texture de ondergrondtexture gekozen worden, dit gebeurt door een nummer in te voeren (Figuur B8.1.4). De texture wordt erboven getoond. Op de volgende pagina staat een lijstje met nummers en corresponderende texture:
8
1 2 3 4 5 6 7 8 9 10 11 12 13 98 99
asfalt_o.bmp asfalt_l.bmp asfalt_lo.bmp asfalt_lb.bmp asfalt_b.bmp asfalt_r.bmp asfalt_ro.bmp asfalt_rb.bmp asfalt.bmp asfalt_plo.bmp asfalt_prb.bmp asfalt_pro.bmp asfalt_plb.bmp grass.bmp sand.bmp
Ook is het mogelijk om een rechthoek te vullen met een en dezelfde texture. Deze rechthoek wordt aangegeven door coördinaten linksonder en rechtsboven in te voeren en vervolgens op Teken (Figuur B8.1.5) te drukken. Spawn-punten plaatsen Spawn-punten, startposities van spelers, kunnen geplaatst worden door op het veld te klikken in deze modus. De spawn-punten worden rood gekleurd. Door nogmaals op een spawn-punt te klikkken, wordt het vakje geen spawn-punt meer. Objecten plaatsen Objecten plaatsen gebeurt ook door op het veld te klikken. Verschillende objecten kunnen gekozen worden door op Next Object te klikken (Figuur B8.1.6).
9