Download presentation
Presentation is loading. Please wait.
Published byEdwin Hardy Modified over 8 years ago
1
Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training
2
Everything I’ve Learned in 15 Years (most of it probably wrong) Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training
3
Background Industry Expert on Game AI 9 year game industry veteran Teaching: Harvard, Boston University, Northeastern Technical Editor: Cengage Learning, CRC Press Group Technical Staff, Lockheed Martin
4
Caveats I come at this as a software engineer, not a project manager I’m really an AI guy at heart
5
Agenda The Development Cycle o Conventional vs. Game Programmers vs. Software Engineers Modular AI
6
The Development Cycle Find something somebody needs done o BAA (Broad Agency Announcement) o SBIR (Small Business Innovation Research) Find partners Propose o Talk to customer o Quad Chart o White Paper o Proposal o Award! We need a consistent flow of work! o Being huge actually helps with this
7
The Development Cycle Conventional Project o Flight Maintenance Trainer Identify & prioritize requirements Design Build Validate Maintain Waterfall o Predefine every requirement o Milestones o Deliverables Agile o Backlog o Sprints o Burndowns
8
The Development Cycle Game Project o The Mars Game Preproduction o Brainstorm roughly what the game is about o Identify and prototype high risk features Production o Build out the main features o Code complete o Content complete Polish o Find the fun o Fix the bugs Gold Master Candidate One step forward, two steps back Games are never finished (just shipped)!
9
Context Switch
10
Programmers vs. Software Engineers That moment when you build the awesomely complex piece of code… and it ALL WORKS! Natural Coder Hacker o Very good at holding complexity in his/her head o Likes clever tricks o Likes intense, hard-to-solve problems “This makes my brain hurt” o Prefers concise, densely meaningful code Why use five keystrokes when three will do?
11
Programmers vs. Software Engineers “Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” - Brian Kernighan (author of Unix and C)
12
Programmers vs. Software Engineers That moment when you realize an amazingly simple way to do express something complex Software Engineer o Very good at reducing complexity o Likes techniques that reduce effort o Likes self-documenting code o Likes design patterns & standard ways of doing things May also be a strong natural coder
13
Is This Software Engineering? Techniques o Test Driven Development (TDD) o Unit Tests o Pair Programming Code that is… o Well encapsulated o Loosely coupled o Self documenting Maybe… o Is it simpler? o Is it easier to understand? o Is it easier to change? One rule: Death to Duplicate Code!!!
14
Another Context Switch
15
Modular AI
16
Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.