Software Engineer- A unity 3d Game

27
SOFTWARE ENGINEERING PROJECT Dr. Nadeem Ahsan FALL SEMESTER

Transcript of Software Engineer- A unity 3d Game

Page 1: Software Engineer- A unity 3d Game

SOFTWARE ENGINEERING PROJECTDr. Nadeem Ahsan FALL SEMESTER

Page 2: Software Engineer- A unity 3d Game

SOFTWARE ENGINEERING PROJECT

Group Members

• Imran Zabih (Designer,Developer,Leader)

•Zain ul Abiden (Bug Tracker)• Isfand yar (VC and Analyzer)•Hamza Karim (Black Box Tester)•Hasan Waheed (Documentation)

Page 3: Software Engineer- A unity 3d Game

AGENDA

•Project objective•The project’s complete description•Software design model•Software pattern•Tools •Summary

Page 4: Software Engineer- A unity 3d Game

PROJECT OBJECTIVE

A crossed platform

adventure loop game

Page 5: Software Engineer- A unity 3d Game

The PROJECT’S COMPLETE DESCRIPTION •Game logic•Game components•Game features•Functional Requirements•Non Functional Requirements•Architecture•Use Case•DFD•Sequence Diagram

Page 6: Software Engineer- A unity 3d Game

GAME LOGIC• A running loop game of some provided distance in a given

time period including the hurdles and bonus based objects. • After the initialization of the game the player will get the timer

of 20 seconds by default.During the timer the player will get full freedom to boost its health in the form owning energy.

• During the default timer the energy based object will result in increment of few seconds and at the same time hurdle based objects decrease few seconds of the time.

• As soon as the remaning time reaches zero the game will over if the player couldn’t able to reach the desination.

• It is possible to change the models, environment, player and difficulty level(Further amendment).

Page 7: Software Engineer- A unity 3d Game

GAME FEATURES• Timers• Bonus• Jumping• Hurdles• Energy Boosters• Speed variations• 3d Enivornement• Scores• Third person view• Role playing game• Options• Main Menu• Sound effects• Game Levels and different environment

Page 8: Software Engineer- A unity 3d Game

Game Components•Play Area/Play ground•Objects•Characters•Environment• Instant bonus objects

Page 9: Software Engineer- A unity 3d Game

Models Used

Page 10: Software Engineer- A unity 3d Game

Functional components•Score•Player•Timer•Player jumping and ducking•Pause Menu•Menus

Page 11: Software Engineer- A unity 3d Game

Non-Functional

• PERFORMANCE REQUIREMENTS• SAFETY REQUIREMENTS• SECURITY REQUIREMENTS• SOFTWARE QUALITY ATTRIBUTES

Page 12: Software Engineer- A unity 3d Game

ARCHITECTURE

Player

Game Logic

Avoid hurdle object

Collecting energy(object)

Start Game

End Game

Page 13: Software Engineer- A unity 3d Game

Use Case Diagram

Play game

Pause game

Exit

Score

Page 14: Software Engineer- A unity 3d Game

Sequence Diagram

Player

Initial time 2 sec

Energy

Increment Time

Decrease Time

Hurdle IF it collide max time

Game over

Page 15: Software Engineer- A unity 3d Game

Data Flow Diagram

Page 16: Software Engineer- A unity 3d Game

Manage Requirements !!!!!

• The vision should be a very concise and informative description of the essentials of the game What is the game about What the play does most of the time Why is the player doing this What is the surrounding environment What feelings should the game evoke

• Much like a company’s vision, the project vision is something that everyone in the team can digest quickly• If you don’t have a concise, clear vision, the game is too• undefined and is too risky

Page 17: Software Engineer- A unity 3d Game

SOFTWARE MODEL•The challenging things regarding development of a

games are the approach of model to decide.•Currently in the development of games the developers

have moved to adapt contemporary models.•The favorite software models for game developers

nowadays are waterfall,sequential,evolutionary and incremental.

•Therefore, you can’t quite treat it like other engineering disciplines.

REFERENCE: LASSE JUEL LARSEN, & GUNVER MAJGAAD University of Southern Denmark, Odense, Denmark

Page 18: Software Engineer- A unity 3d Game

SOFTWARE MODEL(Contd)

•The model for our product is a combination of the waterfall and the iterative software development strategy.

•Thus,the overall project would be the mixture of two models.

•We have good idea about what the system should look like; and what we are going to implement.

Page 19: Software Engineer- A unity 3d Game

SOFTWARE MODEL(Contd)WHY DUAL MODEL APPROACH USED?•The implementation of the process divided into sub

modules.•The smaller segments for design,implementation and

testing.•Allowing better planning of the time used on

implementating.•Work like a team to achieve the target.• “A drop makes an ocean”.

Page 20: Software Engineer- A unity 3d Game

SOFTWARE DESIGN PATTERN“A general reusable solution to a commonly occurring problem

within a given context in software design.”

• Design patterns represent the best practices used by experienced software developers.

• Design patterns are solutions to general problems that software developers faced during software development.

• These solutions were obtained by trial and error by numerous software developers over quite a substantial period of time.

REFERENCE: http://www.tutorialspoint.com/design_pattern/

Page 21: Software Engineer- A unity 3d Game

SOFTWARE DESIGN PATTERN(Contd)• For the game development they are 3 pattern can used

which are at some similar, namely : Prototype pattern Singleton pattern Strategy pattern

•After tremodous amount of research drastically we have chosen singleton design pattern which is compatible with our scenario for development strategy.

•Games are a special area of software engineering,but despite its special nature, it can still apply many of the lessons of software engineering.

Page 22: Software Engineer- A unity 3d Game

SOFTWARE DESIGN PATTERN(Contd)•Singleton pattern lies on top of creational pattern. • It restrict instantiation of a class to one object.•Problem : Application needs one, and only one,

instance of an object.•Many runtime game uses this pattern because of the

restriction it contains.

Page 23: Software Engineer- A unity 3d Game

SOFTWARE DESIGN PATTERN(Contd)WHY SINGLETON Pattern ?• In our scenario we have made a main class where all the

subclasses are inherited.• As soon as the invoke of the constructer of the base class

all the method of the subclasses would invoke(OOP concepts).

•We woud smartly make use the singeleton pattern and• The main activity of our game is the initialization of the

game environment followed by number of other features sequentially and parallelly.

Page 24: Software Engineer- A unity 3d Game

SOFTWARE DESIGN PATTERN(Contd)ALTERNATIVE APPROACH:

As mentioned earlier about patterns which match the game developement,we could also move to prototype/strategy pattern.

• Strategy design pattern is used to effectively extend the game with new features with diverse behaviors.

• Also, different behaviors can be dynamically invoked using this approach.

• Prototype design pattern can be another excellent alternatives to keep the flow linear and effective, but it would be costly as well.

Page 25: Software Engineer- A unity 3d Game

TOOLS & PLATFORM•DEVELOPEMENT TOOL : UNITY 3D•Version Controlling TOOL : GitHub•BUG TRACKING SYSTEM : Bugzilla•GRAPHICAL DESIGN :

ADOBE PHOTOSHOP ADOBE ILLUSTRATOR

Page 26: Software Engineer- A unity 3d Game

VERSION CONTROL PROCEDURESThe following guidelines followed while using Github

•Performed updates before committing any changes.•Only commit working code.

Page 27: Software Engineer- A unity 3d Game

SUMMARY•The scope of the game is wide and loud.•A cross platform game.•User friendly and good GUI•Developing using the Software engineering principles

in mind.• In the future we would put it on the GOOGLE

PLAYSTORE.•Plans for the future is to further enhance the game.•Polish our game programming skills.