Everything Forever Entertainment Randy Hatakeda Kyle Pickering.
-
Upload
warren-parsons -
Category
Documents
-
view
215 -
download
1
Transcript of Everything Forever Entertainment Randy Hatakeda Kyle Pickering.
![Page 1: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/1.jpg)
Everything Forever Entertainment
Randy HatakedaKyle Pickering
![Page 2: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/2.jpg)
Debriefing
C++ DirectX 3D RPG Isometric View FMOD Point-Based
![Page 3: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/3.jpg)
Extrinsic Tools
Visual Studio 2008 Direct X February 2010 SDK NVIDIA Shader Library Blender
![Page 4: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/4.jpg)
Special Features
Simple Input DirectX Mesh Loading Map Generation Enemy Spawning A.I. Pathfinding Dynamic Spell Handling System
![Page 5: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/5.jpg)
Feature - Simple Input
Mouse Context Sensitive Mouse Events Shift 1, 2, 3, 4, and 5
![Page 6: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/6.jpg)
Feature - Single Mesh Hierarchy
One mesh, multiple instances Animation Controllers
![Page 7: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/7.jpg)
Feature - Map Generation
Individual Tiles Tile Layouts World Map Generated
![Page 8: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/8.jpg)
Feature - Enemy Spawning
Up to 12 enemies alive at a time The World finds a point where one
can spawn Outside of visible radius Inside a global radius
Enemies are removed if they are outside the global radius
![Page 9: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/9.jpg)
Feature - A.I.
A.I. Level General Choice Action Choice
![Page 10: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/10.jpg)
Feature - Pathfinding
Search Pattern Creates a list of nodes Converts list to XYZs
![Page 11: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/11.jpg)
Feature - Complex Spell System
The Spell Class Has: Heavily logic-based update function Ability to create more Spell Entities
An Individual Spell Entity Has: Attributes relating to updates Events▪ Init, Death, Update, Hit
![Page 12: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/12.jpg)
Discuss Problem Solving Techniques
.cpp files Map editor .X parser Enemy spell aiming calculation Using cosine to calculate y axis
height (0 – 180) Picking
![Page 13: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/13.jpg)
Tech - Dot CPP Files
“Cross inclusion” Problem When certain classes need to be aware
of eachother.
![Page 14: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/14.jpg)
Tech - Map Editor
In the console Creates the tile layout text files
![Page 15: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/15.jpg)
Tech - Dot X File Parser Tool
Animated model came with one gigantic animation
Animated model file is 100,000 lines long
The tool: Isolates a set of frames, removing the
unwanted Creates an Animation Set, used by
DirectX
![Page 16: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/16.jpg)
Tech - Enemy Aiming
Calculate distances Calculate times Calculate time differences Pick smallest Select action
![Page 17: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/17.jpg)
Tech - Cosine
Wanted a smooth natural flight up and down.
Cosine arc delivers: Int a = (currentLifetime / maxLifetime) *
180; spellPos.y = cos(a) * maximumHeight;
![Page 18: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/18.jpg)
Team Dynamics
Planned very generally, made more specific goals as we went
Separated out work so we wouldn’t have to worry about conflicts
![Page 19: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/19.jpg)
Team - The Master Plan
Single Day Green, Yellow, Red Fairly broad and general, with a few
specifics: 3D in DirectX Complex Spell System Map Generation through Text Files
![Page 20: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/20.jpg)
Team - One Step at a Time
Akin to SCRUM/Agile Development Exception: Very loosely defined product
backlog, or “wishlist”
![Page 21: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/21.jpg)
Team - Separated Work
Separated workload in a manner that Allowed for minimal conflict with file
manipulation
![Page 22: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/22.jpg)
What We’d Like to Change
Hooking up animation controllers to animated models
Enemy Initialization Further Entity Inheritance through
abstract Classes, perhaps Interface Classes.
![Page 23: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/23.jpg)
Horrible - Connecting Meshes
Game-Side and DirectX-Side Game-Side models had Animation
Controllers Initializing in the Game-Side added to an
“uncontrolledAnim” integer. DirectX hooks up Animation Controllers
to the proper mesh during update.
Better solution: use .cpp files.
![Page 24: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/24.jpg)
Horrible - Enemy Initialization
They couldn’t be initialized when they were created without changing the structure
Update checks a bool to see if they have been initialized or not.
![Page 25: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/25.jpg)
Horrible – Similar Classes
The player, enemy, and destructable class share many attributes and methods health sufferDamage()
Using further derived classes would allow for all health-based entities to share the same functions
![Page 26: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/26.jpg)
Lessons Learned
Dot CPP file usage Plan on paper, check logic, convert
to code Knowing what you want at the
beginning is best Optimization algorithms, not sqrt()
![Page 27: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/27.jpg)
Lesson - CPP Files Are Awesome
We didn’t know the power of Dot CPP files at the start of development
![Page 28: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/28.jpg)
Lesson - Know What You Want
Few specific goals resulted in few specific successes
![Page 29: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/29.jpg)
Lesson - Plan, Check, Code
Step 1: Plan out logic, on paper Step 2: Check logic, on paper Step 3: Code Step 4: ???????????? Step 5: Profit
![Page 30: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/30.jpg)
Lesson - Optimize?
Single lines aren’t horrible Sqrt() New Delete Cos()
Optimize entire algorithms
![Page 31: Everything Forever Entertainment Randy Hatakeda Kyle Pickering.](https://reader036.fdocuments.in/reader036/viewer/2022062518/56649f3e5503460f94c5f7c5/html5/thumbnails/31.jpg)
The End
Questions?