Presentation is loading. Please wait.

Presentation is loading. Please wait.

Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training.

Similar presentations


Presentation on theme: "Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training."— Presentation transcript:

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


Download ppt "Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training."

Similar presentations


Ads by Google