130 likes | 232 Views
<insert name here>. By David Young and Thompson Schiefelbein. Description of P rogram Operation. The reason for our project not being named, or being named insert name here is for the fact that it will be randomly generated based on player input.
E N D
<insert name here> By David Young and Thompson Schiefelbein
Description of Program Operation • The reason for our project not being named, or being named insert name here is for the fact that it will be randomly generated based on player input. • Insert name here works by putting a sprite in the game world and allowing it to interact with that world. The world will contain the sprite, scenery, different layers, possible boss sprite, and enemy sprites, all of which are seen by the eye. Things like collision boxes, and spawners are not seen but do exists to make the game work. • During the game you will encounter things like platforms, enemies, bosses, and items. • The game is played using default key WASD to move and ______ to attack. • You will move across the screen up down left right finding things to pick up and kill which will increasing a defeat count and increase your amount of money which you can then spend to increase your character’s ability. • You can lose if you take to much damage, and can win if you beat all the levels. • There will be a boss level every five levels.
Demonstration of Program • We will demonstrate what we have finished for the game.
Class/Object Uses • csab.LevelBase provides level and rendering functionality. • csab.EntryPoint utilizes the various game states to provide the game functionality. • Each object in the game maintains a has-a relationship with each other and eventually reaches a singularity in the EntryPoint class.
Class Interaction • Several different classes, particularly those that implement the Strategy design pattern, allow for a reduction in functionality dependencies and thus allow for more generic development.
Inheritance • Many of our classes extend each other examples being all specific sprites extend the base sprite class • Also many sub test classes extend the main test class to test specifics like moving jumping and enemy interactions.
Polymorphism • Use of design patterns such as the Factory pattern and the Strategy pattern • Every subclass of the csab.core.Sprite can be used within the game as the Sprite class provides a standard interface and functionality. • The same applies to implementers of csab.core.BehaviorController.
Special Features • Save and load game • In-game physics • Programmatic dynamic resolution selection • Ability to interact with the game world
Bugs • If there is a small gap between two platforms the character wont fall. • Some areas near the bottom of a platform allow for repeated jumps
Second Party Code • Slick2d
Questions • Any questions?
Conclusion • Thompson • I thought David was way to smart for this class but that coding can be taken to a whole new level if wanted. • Difficulty level: not to hard to play, semi hard to code, at parts. • Fun level: I think it’s a really fun idea and since I played Maplestory its kind of a blast to the past. The coding itself definitely was not fun though just because the amount of code and non understanding of some of things being taught. • Evaluation of final product: a work in progress with lots that could be added. • What I learned is basically everything I learned through out the year, kind of how to combined it all though into many classes that can all interact with each other. • David • Summary while writing this program • Difficulty level to code and play • Fun level to code and play • How the end product is • What you learned being specific