Download presentation
Presentation is loading. Please wait.
Published byRegina Palmer Modified over 8 years ago
1
Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline
2
ovERviEW
3
exAmPLe piPELiNe A typical pipeline is thought of as…
4
exAmPLe piPELiNe A more accurate pipeline would be…
5
dEFiNiTion Pipeline is the data flow from conception to game implementation (and beyond) Greater than sum of parts – Not only art or assets – Not just exporters – Not just tools
6
dEFiNiTion
8
wHat is “dATA”? Well, data is what gives an engineer his power. It's an information field created by all things. It surrounds them and penetrates them. It binds the pipeline together. -Obi Wan Kenobi (well, close enough, anyway)
9
exAmPLe piPELiNe
10
oMP CoNcEPTS It isn’t art or content, it is DATA!
11
oMP CoNcEPTS If it is data, you can represent it in code. If you can code it, you can make it an object. If you can make it an object, it can handle itself. – The object knows what to do with itself and the programs just use the object
12
oMP CoNcEPTS 2 main groups of objects Wrapper Object – The logical layer for manipulating a file’s contents Information Object – For Asset Management – Abstracted information describing content (tags, attributes, file paths, etc. – Inputting the info is up to you
13
oop pRiNciPLeS Encapsulation Inheritance Polymorphism OOP
14
encapsulation “Expose only a certain set of members to client” Any data can be encapsulated – Wrap binary files with XML – Custom ascii parsers All save/load/export logic on class – Applications work with objects, no direct read/write of data “Expose only a certain set of members to client” Any data can be encapsulated – Wrap binary files with XML – Custom ascii parsers All save/load/export logic on class – Applications work with objects, no direct read/write of data
15
encapsulation
16
iNHERiTANCe “Subclass inherits code and behavior of base class” Group asset management behaviors – Skeletons and meshes are models Share ‘ModelFilename’ property, but differ in implementation
17
iNHERiTANCe
18
polyMoRPHiSM “Behavior depends on type” – ‘ContentFilename’ varies between types. – Call ‘ExportModel’ to export the model according to type, whether static, dynamic, or skeleton model. – Call ‘ExportXml’ to export metadata, etc.
19
examples and Test Cases Object libraries – Binary Wrappers – Xml Wrappers – Ascii Wrappers Practical applications – Content-side – Game-side Other tips
20
wRAP Binary: siDECAr Wraps binary formats into C#/Xml Allows easy access and manipulation from external tools – Write tools entirely outside of your 3D app that directly manipulate it – Code complex functionality once, call it generically
21
Tips: siDECAr Load and apply what’s needed Plug-ins for non-universal scene info – Keep code portable between projects Property dictionaries and Reflection – Serialize loads of random data
22
Tips: siDECAr
23
wRAP xML Update format, all files write out correctly – Update your definitions in one place, don’t reverse-engineer into exporters Export from many places Enums provide valid values
24
Tips: xML fiLe wRAPPERS Use XmlSerialization if possible – Use custom ToXml/LoadFromXml if not Use.NET’s System.Xml as design for wrapper
25
wrap aSCii Custom Save/Load methods for ascii files – Inherently less robust than Xml Auto-convert to/from binary where supported Otherwise the same as Xml wrappers
26
Common exporter Exporters or tools identify file types passed in and what to do with them (drag and drop exporters accepting any file type) Game
27
gAME oBJECT CoNNECTion
28
auDiTiNG coNTENT
29
Tip: partition pipelines Do not try to develop a single scheme or system Focus on allowing communication and interaction between systems – Needs of certain systems (content vs. game) fundamentally different
30
pairing and sharing Shared data in a database, paired data in Xml – If you don’t have a DB, get one! – Learn basic SQL and maybe use an ORM
31
wrap it up If you need to read it, wrap it – Why not wrap shaders? – Don’t forget existing object models may exist (Visual Studio projects)
32
interconnectedness
34
mAGNuM oPuS
35
rEFERENCES www.tech-artists.org – Forums, wiki, blog irc.freenode.net – #techart msdn.microsoft.com – System.Xml, System.Xml.Serialization, XPath, System.Linq Special thanks to advisory board members Steve T. and Jeff H.
36
quESTions?
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.