+ All Categories
Home > Documents > The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert...

The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert...

Date post: 27-Dec-2015
Category:
Upload: kerrie-doyle
View: 216 times
Download: 2 times
Share this document with a friend
Popular Tags:
14
The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash
Transcript
Page 1: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

The Short Tale of Adlez:First Iteration Design

ENGI 5895: Software DesignSpencer Bellows & Robert Gash

Page 2: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Summary

• Top-down adventure game.

• From the Design Project Proposal:The software design project proposed herein is that of a top-down adventure video game in the vein of Nintendo's The Legend of Zelda and Final Fantasy. The tentative title of this proposed game is The Short Tale of Adlez, and it will have a minimalist, satirical plot also in the vein of classic adventure games.

Page 3: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Inspirations

Page 4: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

TSToA Game Concept

• Player can explore the game world through a series of maps.

• Player advances to save a princess by fighting battles and collecting items.

• Each level has a boss battle, and the player can advance to the next level upon winning it.

Page 5: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

User Interface

Page 6: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

User Interface (cont’d)• Environment View: User can move player

character through the game world via keyboard input.

• Statistics: Display the current player statistics.

• Inventory: Two tabs to allow user to change player equipment and use items.

• Console: Provides game messages for the user.

Page 7: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Initial Design

Page 8: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Changes During Initial Implementation

• Reduction of Model-View-Controller architecture to Model-View architecture (OCP).

• PlayerSprite refactored so that item and statistics management were handled in separate classes (Inventory and CharacterStats) (SRP).

• Addition of GameModel class to control flow of game progression (i.e. the game loop). – Also contains lower-level elements of the model.

Page 9: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Current Design

Page 10: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Model

• Abstract class Sprite is the core of the model.

• All game entities extend Sprite (OCP/LSP). They are all contained in the composition that is EnvironmentSprite.

• EnvironmentSprite is initially constructed based on external text files that are parsed based on a legend encoded in LevelParser.

Page 11: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

View

• Each element of the view has the responsibility of displaying one element of the model.– EnvironmentPanel displays EnvironmentSprite– StatsPanel displays PlayerSprite’s CharacterStats.– InventoryTabbedPane displays the equipment and

items in the PlayerSprite’s Inventory.– ConsolePanel displays feedback from the

GameModel (not yet implemented).

Page 12: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Use of Observer Pattern• EnvironmentPanel, ConsolePanel, StatsPanel,

InventoryTabbedPane each implement Observer.

• Sprite extends Observable. Each element in the view is added as an Observer of the appropriate part of the model.

• The view (panels) are notified to be repainted given a change in the model (sprites). – This eliminates the need to make explicit calls to the view

from the model when there is change to the model not provoked by the user.

Page 13: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Future Challenges

• A method for efficiently iterating through the EnvironmentSprite and Inventory containers is needed when updating their associated views.– The Iterator pattern is being considered, given that there

is specific details to be handled that are not supported by their base data structure.

• Sprite animations need to be handled. The current implementation allows for images to be drawn to the screen, but there is nothing in place to animate their movement.

Page 14: The Short Tale of Adlez: First Iteration Design ENGI 5895: Software Design Spencer Bellows & Robert Gash.

Thank you for your attention.

Questions?


Recommended