2. Terminology
Swc - library file, used when compiling a swf
Holds functions, classes, ect.
Swf - final product, holds logic and resources
Flash runs this, and the game plays
Nexus - Artifact Repository
Holds files needed by various projects
Jenkins - continuous integration software
Automatically runs build script
3. The Process Before And After
Before
1. Create family stream 5 mins
2. Branch off of main 2
hrs
3. Refactor game family 1 min
4. Modify source code
(variable)
5. Build all games 1 hr
6. Commit to perforce 5
mins
7. Trigger build on jenkins 5 mins
8. Deploy games 10
mins
9. Test all games 2
weeks
Total time: 2 weeks, 3 hours, 28 minutes
After
1. Branch off social lib 5
mins
2. Modify swc
(variable)
3. Deploy to nexus 3 mins
4. Modify xml doc 2 mins
5. Trigger build on jenkins 2 mins
6. Test one game 4 hrs
Total time: 4 hours, 12 minutes
4. The New Process (Libraries)
Developer PC
Nexus
(Versioned Swc
Libraries)
Jenkins
(Runs build script)
Perforce
(Source)
5. The New Process (Games)
Nexus
(Versioned
Swc
Libraries)
Jenkins
(Runs build
script)
Staging
(Games)
Perforce
(Source and
Binaries)
QA
(Games)
Live
(Games)
Users
Developer PC
6. Gradle
Builds using groovy
scripting language
Groovy is more or less
interpreted java
Provides increased flexibility
Much easier to write than
ant’s xml
8. What is Happening
Imports ant build file(s)
Uses ant tasks and properties
Can overwrite tasks
Calls ant compile tasks to build games/libraries
Can eventually be replaced by gradleFx
Uses gradle script for dependencies/deployment
Uploads artifacts to Nexus
Downloads dependencies from Nexus
9. Impact
Architecture changes are isolated
Quickly fix bugs and add new games to Real Money
Gaming
Time to QA drastically reduced
Fewer environments, reduced upkeep
Script automates the build process
Everything is up to date
No more “too many cooks” scenarios