Innovation. interaction. inspiration. Leveraging Middleware Jeff Wofford Deep Red Games...

Post on 19-Jan-2016

215 views 0 download

transcript

innovation. interaction. inspiration.

Leveraging Middleware

Jeff Wofford

Deep Red Games

jeffwofford@yahoo.com

innovation. interaction. inspiration.

We’ll talk about…

• What is middleware?• Problems middleware tackles• The case for/against middleware• Choosing your middleware• Adapting to middleware• Questions

innovation. interaction. inspiration.

Middleware As Evolution

innovation. interaction. inspiration.

Middleware As Evolution

=?

innovation. interaction. inspiration.

What Is Middleware?

• Software• Licensed• Provide game functionality• Game-independent• Usually API and libraries (.lib, .dll, or

source)• Occasionally complete .exe (e.g. UT

mutated via mods)

innovation. interaction. inspiration.

Problems Middleware Tackles• Rendering• Physics• Sound• Networking/Distributed Simulations• Scripting• AI/Behaviors• One-Stop-Shops

innovation. interaction. inspiration.

The Case Against Middleware• Programmers hate it• Slower?• Not a silver bullet

innovation. interaction. inspiration.

Programmers Hate It

• Programmers don’t like their problems solved for them.

• Middleware brings foreign code into the game.

• Learning someone else’s code feels slower and harder than just writing it yourself.

innovation. interaction. inspiration.

Slower?

• Argument: Game-specific code is faster and better than generic, game-independent code.

• Often true, but to what degree?• On systems capable of 25M tris/sec,

is a 10% difference in engine performance going to be noticeable?

• Data is the bottleneck, not code.

innovation. interaction. inspiration.

Not a silver bullet

• Middleware doesn’t solve all your problems.

• It takes anywhere from 10%-60% as much knowledge to use a library as to write it.

• Middleware is sometimes significantly buggy.

• Middleware may not turn out to do what you thought it would do.

innovation. interaction. inspiration.

The Case For Middleware

• There are lots of success stories• More mentons available for the

game• Tackles your riskiest problems

innovation. interaction. inspiration.

Lots of Success Stories

• Already instrumental in many major successes.

• Major contribution to FPS development.

• Half-Life• Deus Ex• Alice• Munch’s Oddysee

innovation. interaction. inspiration.

Mentons

+ =

+ =

innovation. interaction. inspiration.

More Mentons for the Game

• Team has limited menton capacity.• Middleware allows importation of

thought-work, allowing conservation of mentons.

• Less time spent worrying about technical issues, more time for gameplay, visuals, user experience.

innovation. interaction. inspiration.

Reduces Risk

• Why are game developers infamous for lateness? Technology R&D.

• Technology is the riskiest portion of schedule.

• Technology is really difficult to schedule. Complete solutions really reduce risk, in proportion to completeness.

innovation. interaction. inspiration.

Moving to Middleware

• The decision to use middleware has a deep impact on project, people, and overall organization.

• Issues:– Marrying project and technology– Evaluating technology– Choosing your provider– Negotiating the license agreement– Adapting the organization

innovation. interaction. inspiration.

Marrying Project and Technology• Technology impacts game design,

and vice versa.• Identify middleware during

preproduction, when game design is coming together.

innovation. interaction. inspiration.

Evaluating Technology• Spend plenty of time on evaluation:

– At least a week per candidate for a focused API like physics.

– At least a month per candidate for a broad API like rendering.

• Read between the lines of technology demos. Take feature claims with a grain of salt.

• Don’t rely on programmers naïve to the concepts to evaluate accurately.

innovation. interaction. inspiration.

Choosing Your Provider

• Middleware involves a long-term relationship between licensor and licensee.

• Evaluating middleware involves evaluating the provider as well as the technology.

• Evaluate stability and support.

innovation. interaction. inspiration.

Stability

• You need your middleware provider to outlive the project.

• Middleware is a young industry with great instability.

• Ask about:– Company history– People– Funding– Plan for the future

innovation. interaction. inspiration.

Support

• Good support is indispensable with any middleware.

• You need it most when approaching a deadline.

• Middleware should be provider’s primary business.

• Dedicated support team.• Test support during evaluation

period.

innovation. interaction. inspiration.

Negotiation

• Ask for the price you want to pay.• Exchange royalties for price, or vice

versa.• The only way to go: Staggered

payment plan.• Multi-project deals.• Pitch your project.• Agree on what will happen if things

go south.

innovation. interaction. inspiration.

Adapting Your Organization

• Technology vs. Content development.

• Impacts:– Project plans– Who you hire

• Major impact on programmers.

innovation. interaction. inspiration.

Impact on Programmers

• Content programmers vs. Technology programmers

• Content Programmer:– Passionate about games– Relates well with artists, others– Happy mucking with foreign code– Creative– Diverse skills– Consistent productivity

innovation. interaction. inspiration.

Impact on Programmers (2)

• Technology Programmer:– Calculus-level maths– Modify generic engine for needs of

specific game.– Create specialized visual/audio effects,

AI, physics, algorithmic animation.

• It’s not just about rendering anymore. Stop trying to beat Carmack at his own game.

innovation. interaction. inspiration.

Middleware and Maturity

• Middleware is the industry maturing.• Middleware adds creative power to

projects:Time

Mentons

Focus

+ Reliability

= Better Games

= More fun, more respected, more profitable

innovation. interaction. inspiration.

The Future?

If =

?=

then

innovation. interaction. inspiration.

Links

My web sitewww.jeffwofford.com

Licensing Q&A with Glen Dahlgrenhttp://www.unrealengine.com/features/qa-glen1.html

3D Engines List http://cg.cs.tu-berlin.de/~ki/engines.html

Evaluating Physics Engineshttp://www.gamasutra.com/features/

20000913/lander_01.htm