3D Racing Car Game - Chalmers

3y ago
22 Views
2 Downloads
1.84 MB
51 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Karl Gosselin
Transcription

d3D Racing Car GameProject LloydBachelor’s ThesisSVEN ABELSSON RUNINGMATHIAS HÄLLMANNICOLE ANDERSSONDepartment of Computer Science and EngineeringCHALMERS UNIVERSITY OF TECHNOLOGYGothenburg, Sweden, 2009SVEN ANDERSSONFREDRIK TOFTRICKARD NILSSON

3D Racing Car Game2009-05-193D Racing Car GameProject LloydSven Abelsson RuningSven AnderssonMathias HällmanFredrik ToftNicole AnderssonRickard Nilsson Sven Abelsson Runing, Sven Andersson, Mathias Hällman, Fredrik Toft, NicoleAndersson, Rickard Nilsson, May 2009.Department of Computer Science and EngineeringCHALMERS UNIVERSITY OF TECHNOLOGYSE-412 96 GothenburgSweden2 (51)

3D Racing Car Game2009-05-19AbstractThis bachelor thesis describes a case study, where we focusing on developing a 3Dracing car game, using a process based upon agile development; an evolutionarydevelopment method.The thesis will cover implementation of real-time graphics, physics engine, networksupport, as well as sound effects and background music.In the end, our case study will show that this development process was anappropriate choice for our game development project.SammanfattningDenna slutrapport beskriver en fallstudie gjord på utvecklingen av ett 3D -bilspel.Utvecklingen använder sig av en process baserad på agile development, som är enmetod inom evolutionary development.Slutrapporten kommer att täcka implementering av realtidsrenderad grafik,fysikmotor, nätverksstöd, liksom ljudeffekter och bakgrundsmusik.I slutändan kommer fallstudien att visa att utvecklingsprocessen var ett lämpligt valför vårt spelutvecklingsprojekt.3 (51)

3D Racing Car Game2009-05-194 (51)

3D Racing Car Game2009-05-19Table of Content1. INTRODUCTION . 72. GAME DESIGN . 82.1. Game Design and Concepts . 82.1.1. Initial Concept . 82.1.2. Second Iteration . 82.1.3. Final Concept . 82.2. Development Process . 9What Is a Software Process Model? . 9The Waterfall Model . 10Component-based Software Engineering . 11Evolutionary Development . 112.2.1. Our Development Process . 11Agile Methods. 12Milestones . 132.3. Game Engine . 132.3.1. Game Framework . 13Microsoft XNA . 13CodePlex . 142.3.2. Physics Engine. 14Background . 14JigLibX . 15Limitations . 152.3.4. Game Assets . 172.3.4.1. Creation. 172.3.4.2. Result and Discussion . 182.3.4.3. Loading . 182.3.5. GUI, Menu and HUD . 19Background . 19Results . 20Discussion . 213. GRAPHICS . 223.1. Lights and Rendering . 223.1.1. Ambient Pass . 233.1.2. Light Pass . 243.2. Shadows . 255 (51)

3D Racing Car Game2009-05-193.2.1 Shadow Mapping . 253.2.2. Variance Shadow Mapping. 263.3. Bump Mapping . 273.3.1. Techniques . 273.3.2. Normal Mapping . 273.3.3. Parallax Mapping . 273.3.4. Result and Discussion . 273.4. Post-processing Effects . 283.4.1. Motion Blur . 283.4.2. Screen-Space Ambient Occlusion . 293.4.3. Bloom . 313.5. Particle Systems . 323.5.1. Sparks . 333.5.2. Sprinkles and Glow . 343.5.3. Smoke. 343.6. Result . 353.7. Discussion . 364. NETWORK . 374.1. Background . 374.2. Results . 384.3. Discussion . 425. SOUND . 425.1. Sound Effects . 425.2. Background Music . 436. RESULTS . 436.1. Requirements . 436.2. Features . 436.3. Time Estimations . 446.4. The Development Process . 447. DISCUSSION . 458. ABBREVIATIONS . 46APPENDIX A . 47APPENDIX B . 48REFERENCES . 496 (51)

3D Racing Car Game2009-05-191. Introductionreal-time rendered soft shadows,motion blur, and ambient occlusion.Developing software applications is atime-consuming process, and withtime-consuming processes come highcosts. During the last years, severalsoftware development methodologies,often known as agile softwaredevelopment, have become widely usedby software developers to address thisissue. Many different developmentmethodologies can be more or lessgood, depending of the task andapplication type.Working with these requirements, wedecided to use Microsoft XNA as ourplatform to develop our 3D game with.This decision was made with regard tothat the platform had many in-builttools and provided a good frameworkfor us to get started with thedevelopment as fast as possible. Thefact that Microsoft XNA also used C#as development language was also inconsideration, since we wanted to learnthis newly developed C-based objectoriented language.One of the software developmentmethodologies is the evolutionarysoftware method, which, as the namehints, takes on an evolutionaryapproach to the problem, and allowsthe project to evolve through differentstages of the project. Our case studywill show how well this evolutionaryapproach worked on our project wherewe choose to develop a 3D graphiccomputer game. Some requirementsfor the computer game were given fromthe beginning, such as:The requirement for the game tocontain 3D graphics introduced aninteresting challenge for the projectgroup, since all had none or littleexperience in 3D modelling. Spendingtime learning how to model proper 3Dmodels for our game was thereforenecessary. During the research to findout what 3D modelling program to use,we found that we could use differentstudios to create models that we couldlater import to our game project. Thecomplete game contains models madein both Blender and 3D Studio MAX.3D graphics – The game mustcontain 3D models, and render these inthe game. 3D environments were nevera requirement, and platform gameswith 2D environment could still openup for 3D objects.With these choices made, we soon hadour development environment set touse Microsoft Visual Studio 2008 withMicrosoft XNA Game Studio 3.0supporting the framework, andBlender and 3D Studio MAX formodelling the graphical components.For some of the sound effects we alsomade use of Adobe Audition 2.0.Impressive result – The game resultmust impress whoever plays the game.It should last long, and make theplayers come back and play it over andover again.Graphical effects – To achieve animpressive result, we would need toadd modern graphical effects, such as7 (51)

3D Racing Car Game2009-05-192. Game Designlevelling, something that many playersappreciate. It was also decided that theracing track should be a garage or astore-house, filled with containers,boxes, and miscellaneous objectssuitable for that environment. Sincedriving a real car around a garage isvirtually impossible, it was decidedthat we should make remote controlledcars instead.2.1. Game Design and ConceptsIn this project, we were left free todecide what type of game we wanted todevelop. The suggestion was that aracing game would be suitable, sincesuch a game usually do not depend onadvanced assets, e.g. animated models.After some brainstorming, it wasdecided that a racing game should bedeveloped. However, there were twodifferent racing game ideas, which willbe described below.2.1.3. Final ConceptWe kept most of the ideas from thesecond iteration with one exception forthe death rally concept. It appearedthat our first instinct, to give this idea alow priority, was right and in this lastiteration, the idea was dropped.However, a racing game where playersonly may collect coins and nothingmore, sounded a bit boring. Influencedby games like Super Mario Kart, it wasdecided that power-ups should beadded. There are a number of differentpower-ups, and they could be dividedinto two groups; those that affect thecar that hit the power-up, and thosethat affect the opponents’ cars. A moreprofound description of the differentpower-ups follows.In compliance with our developmentprocess, the game concept evolved, asmore and more features were added.To further explain how the gameconcept evolved, the development hasbeen divided into three parts.2.1.1. Initial ConceptOur first concept had a game playsimilar to Remedy’s game in 1996,called Death Rally1, where each playerhad a car equipped with a weapon, andthe goal was to hunt down theopponent’s cars. The other idea was tocreate a simple race track whereplayers could collect coins in order towin. Since the first idea involved muchgreater work than the latter one, it wasdecided that the first idea were to begiven a low priority, whereas thesecond were to be given a high priority.In addition to the other improvements,one change was made to the pointssystem. It should be possible to collectthree types of coins, worth 50, 100 and200 points.2.1.2. Second IterationWe decided that a joint solution wouldbe best, where players are able tocollect coins and then use the money tomake upgrades. Example of upgradeswas better weapons, faster engine, andheavier car body. These upgradeswould be similar to the concept of8 (51)

3D Racing Car ness, availability, maintainability, dependability and usability. Tomeet such varying demands, it isimportant to base the work on a wellprepared strategy. In software engineering, the term for such a strategy iscommonly known as software process,which is built on one or severalsoftware process models.DescriptionNitroThe player’scar movesfaster.PunchA punch from arandomdirection hitsthe opponents’cars.DoublepointsThe player’spoints aredoubled.SlowSlows downthe opponents.ReverseTheopponents’steeringcontrols arereversed.LowFrictionCauses the carto lose frictionto the ground.What Is a Software Process Model?A software process model is atheoretical philosophy that describesthe best way of developing software.Based on one or several models, asoftware process is formed providingguidance on how to operate. A softwareprocess model may also be described asan abstract representation of a software process. The concept of theprocess model is similar to an abstractjava class, which can not be instantiated, but it can be implemented byanother class, thus providing basicguidelines for that other class.A model may for example demandcustomer involvement, but it does notstate exactly how. A process implementing that model should involve thecustomer in the process’ activities, butis free to choose how2.There is not only one type of processmodel, but two. The first one is themost common, and described above.The second type of process model iscalled a process paradigm, which is amodel even more general than anordinary process model. Such a modeldoes not hold any details on how theactivities that lead to the completion ofa project should be performed, butwhat it does hold is basic guidelines ofhow to develop software, and assump-Figure 1: Punch object.2.2. Development ProcessIn a software development project, theresulting product is required to fulfilmany different qualities. Examples ofsuchqualityrequirementsare:9 (51)

3D Racing Car Game2009-05-19tions about what sort of project couldbenefit from implementing a particularmodel. With this in regard, one canconclude that a process paradigmprovides a framework that may beadapted to form a process which suits aparticular project.There are three major process paradigms that are commonly used today insoftware engineering practice; thewaterfall model, component-basedsoftware engineering and evolutionarydevelopment2.The Waterfall ModelThe waterfall model is recommendedfor large and complex systems thathave a long life-time 2. Some systemswhich carry these attributes are alsocritical systems. This means that if afault would occur, it may result in:Threat to human life (death orinjury)Economic lossEnvironmental damage2It is believed that the waterfall modelwould be an appropriate choice whendeveloping a critical system, since themodel emphasises on thoroughness3.The basic concept is to take all theactivities and treat them separately.One activity is always followed byanother, in the same way water travelsdown some falls. This descriptionbecomes even more obvious whenlooking at a visualization of the model(Figure 2).RequirementsdefinitionSystem andsoftware designImplementationand unit testingIntegration andsystem testingOperation andmaintenanceFigure 2: The waterfall model2.1. Requirements definition Allrequirements on the system arefound by talking to system users.Example of requirements can beservices, constraints and goals,such as “We want a webpage thatcolour-blind people can enjoy”.2. System and software design Inthis activity, the overallarchitecture of the system isestablished.3. Implementation and unit testingThe software is implemented inunits which also are tested.4. Integration and system testingThe units are merged togetherinto a compl

3D Racing Car Game 2009-05-19 3 (51) Abstract This bachelor thesis describes a case study, where we focusing on developing a 3D racing car game, using a process based upon agile development; an evolutionary development method. The thesis will cover implementation of real-time graphics, physics engine, network

Related Documents:

9/8/2022 Club Car Wash Sites of Tidal Wave Express Car Wash 8 8/29/2022 Take 5 Car Wash Soft Touch Car Wash, Auto Oasis Car Wash, Clearwater Car Wash and Birdie's Car Wash 5 8/25/2022 WhiteWater Express Geaux Clean Car Wash 7 8/19/2022 ModWash Home Team Car Wash 3 8/18/2022 Splash In ECO Car Wash (Wills Group) Blue Hen Car Wash 2

to promote horse racing in order to expand breeding in Japan and to improve quality of the Japanese horses. In 1923, horse racing legislation, so greatly desired by the horse racing industry, was enacted and led to the formation of 11 racing clubs. Horse racing accompanied by the legal sale of betting tickets was thus established.

to promote horse racing in order to expand breeding in Japan and to improve quality of the Japanese horses. In 1923, horse racing legislation, so greatly desired by the horse racing industry, was enacted and led to the formation of 11 racing clubs. Horse racing accompanied by the legal sale of betting tickets was thus established.

Allis-Chalmers Club of Ontario – Annual General Meeting November , 2015 Country Heritage Park Paris Tractor Show – Allis-Chalmers is the Feature June 13th & 14th 2015, Paris Fair Grounds Featuring Allis-Chalmers (See details on inside cover of newsletter.) Auction Sale for Frank Duck June 20, 2015, 10:00 am 1871 M/N Ds. Rd. Ramara Twp.

In his leisure time, George enjoys collecting and showing Allis Chalmers tractors with the oldest being . a 1927, 2035 Allis Chalmers tractor and the newest being a 1975, 7040 Allis Chalmers tractor. He also . likes going to auctions, Allis Chalmers shows and playing

Chalmers Center for Economic Development at Covenant College, Inc. (Chalmers or Chalmers Center) is a Georgia nonprofit corporation classified as a 501(c)(3) religious organization by the United States Internal Revenue Service, which is other than a private foundation. As such, it is exempt from U.S. federal and state

Jefferson Chalmers Neighborhood Framework Plan 2007: Jefferson Chalmers Historic District 2012: Detroit Future City 2012: LEAP Phase 1 and 2 2012: Jefferson Chalmers Neighborhood Stabilization Plan 2012: East Riverfront Greenways Plan 2017: Parks Improvement Plan 2017: Michigan Historic Preservation Network 2018: Detroit Retail Study

7. What is the name of this sequence of events which results in the production of a protein? 8. What is Reverse Transcription? 9. When does Reverse Transcription occur? 10. How can Reverse Transcription be used in Biotechnology? DESIGNER GENES: PRACTICE –MOLECULAR-GENETIC GENETICS 2 CENTRAL DOGMA OF MOLECULAR GENETICS 1. Where is DNA housed in Eukaryotic Cells? most is stored in the nucleus .