^ Week 02, Tuesday
▶ review game design documents
development overview
responsibilities
game flow
system design
folder structure
- create Z:\<somewhere>\<your-game> and check out svn://svn.accad.ohio-state.edu/gmz/2009-SP/<your-color>/trunk to it
- development - put your source and asset files here
- rom - compile the game to here
- create Z:\<somewhere>\examples and check out svn://svn.accad.ohio-state.edu/gmz/examples to it
- create Z:\<somewhere>\lib and check out svn://svn.accad.ohio-state.edu/gmz/lib/ to it
asset integration
- asset pipeline
- bind code to movieclips in Flash IDE via right click on symbol in Library > Linkage > Export for ActionScript > ClassName
- publish swc from Flash IDE via File > Publish Settings > Flash > Export SWC (this still creates a swf which can be deleted)
- link class files against as, swc
- embed (compile-time) png, jpeg, gif, mp3, swf, ttf, otf (good for title, UI elements, and core game assets)
- load (runtime) png, jpeg, gif, mp3, swf, xml, flv (good for levels, long music, large game assets)
style guide
- expand the game design document
- see Shred Nebula sections 2,3,4
working with subversion
client software
- Rapid SVN (start > Programs > Development > RapidSVN)
- Bookmarks > Add Existing Repository | URL : svn://svn.accad.ohio-state.edu/gmz/<your-path>/
- install DiffMerge to Z:\<somewhere>\
- View > Preferences | Programs : Diff tool : Z:\<somewhere>\DiffMerge\DiffMerge.exe
- View > Preferences | Programs : Diff tool : Program Arguments : /title1="Theirs" /title2="Mine" %2 %1
- Smart SVN (syntevo.com)
- edit Z:\<somewhere>\SmartSVN\SmartSVN 5.0.3\bin\smartsvn.vmoptions to add -Dsmartsvn.home=${smartsvn.installation}\.settings
- Bookmarks > Add Existing Repository | URL : svn://svn.accad.ohio-state.edu/gmz/<your-path>/
- Tortoise SVN (tortoisesvn.tigris.org)
- RIGHT MOUSE > Checkout | URL : svn://svn.accad.ohio-state.edu/gmz/<your-path>/
protocol
- always update first
- make local changes
- build and test your changes
- only commit known good code
- always supply a meaningful comment when committing
troubleshooting
- when debugging, look at what's changed by comparing your local file to an older revision
- prevent conflicts by separating files so it's unnecessary for multiple people to work on the same file
- handle conflicts on text files (e.g. source code) by merging with a diff/merge tool
- handle conflicts on binary files by duplicating your local copy, reverting, and then opening up yours and theirs and merging by hand (e.g. drag symbols from your .fla into theirs)
- if things get really screwy, you can always delete your local folder and run update again to get a fresh copy of what's on the server
- sometimes it's useful to do a full checkout to a new folder somewhere (e.g. you want to test out some
drastic changes that will probably break things: if the changes never pan out, just delete the temp local
checkout. If the changes end up being keepers, just copy the affected files into your real local checkout and commit.