visual studio 11 for game developers boris jabes senior program manager microsoft corporation

Post on 24-Dec-2015

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Visual Studio 11 for Game Developers

Boris JabesSenior Program ManagerMicrosoft Corporation

• Visual Studio: optimized for modern Windows 8 development• The most powerful programming language just got more

powerful

A Story in 3 Parts• The world’s first IDE with integrated support for 3D graphics

demo

Welcome to a New Visual Studio

New Look, New Skills

Projects & solutions Backward compatibility Browse in Solution Explorer

Window management Pin files File preview Enhanced multi-monitor

Search everywhere Quick command search Tool window search Integrated find & replace

C++ code editor enhancements Semantic colorization Reference highlighting C++/CLI IntelliSense! Code snippets

HLSL code editor

New Look, New Skills

Projects & solutions• Backwards compatibility• Browse structure from Solution Explorer

Window management• Ability to pin & preview files• Enhanced multi-monitor

Search everywhere• Quick command search• Tool window search• Integrated find & replace

Visual Studio

2010 SP1

Visual Studio 11

Code Editor

Semantic colorization• Rich understanding & highlighting of source code• Lots of customization options

Improved IntelliSense• Brought back support for C++/CLI• Support for code snippets• Automatic smart filtering of completion set

HLSL!• Basic support for outlining, colorization, and indentation• Builds automatically through Visual Studio

Optimized for Metro-Style AppsDesign & test• Use XAML to build all native C++ UI• Rich visual designer (Blend) works for HTML/JS, C#/VB, and C++• Unit testing support for C++ in Visual Studio Express

Rich diagnostics• Simulate how the app runs in any form factor with simulator• Seamless remote debugging• Static code analysis rules available in Visual Studio Express• Parallel debugging support in Visual Studio Express

Package & publish!• Support for licensing and preparing for store submission directly in Visual Studio

Design

Configure

Simulate

Test

New Versions

Visual Studio Express for Windows 8 Includes HTML/JS, C#/VB, and C++ Includes Expression Blend Basic code analysis rules Unit testing support

Visual Studio Professional Full native-code analysis Full profiler

Visual Studio Ultimate Full application lifecycle management (ALM) suite

C++, Language of Champions

HARDERBETTERFASTERSTRONGER

Harder, Better, Faster, Stronger

Free speed• Test results from Spec2k6 improved 4-5% on x86 and 8-12% on x64• Compiler can auto-vectorize & auto-parallelize for potential 30× speedup

A new C++• Support for GPU Compute with C++AMP• Seamless access to WinRT with C++/CX• Awesome standard language improvements with C++11

Libraries• Full C++11 Standard Library included (now with threading/async libraries!)• Improved Parallel Patterns Library, optimized for Windows 8

C++/CX

Language extensions and libraries to allow direct consumption and authoring of Windows Runtime types.

Strongly-typed system for Windows Runtime Automatically reference counted Exception-based Deep integration with STL Well-defined binary contract across module boundaries

C++ AMP

C++, not C mainstream, programmable by millions minimal, just one general language extension portable, mix & match hardware from any vendor, one

EXE general and future-proof, designed to cover the full

range of hardware heterogeneity — hardware is still in motion

open specification

C++ AMP - Example

#include <amp.h>using namespace concurrency;void AddArrays(int n, int *pA, int *pB, int *pC){    array_view<int,1> a(n, pA);    array_view<int,1> b(n, pB);    array_view<int,1> sum(n, pC);     parallel_for_each(sum.grid, [=](index<1> idx) restrict(amp) {        sum[idx] = a[idx] + b[idx];    } );}

C++11 at a Glance

Then Nowcircle* p = new circle( 42 );

vector<shape*> vw = load_shapes();

for(vector<circle*>::iterator i = vw.begin(); i!=vw.end(); ++i)

{ if( *i && **i == *p ) cout << **i << “ is a match\n”;}

for(vector<circle*>::iterator i = vw.begin(); i!=w.end(); ++i)

{ delete *i;}

delete p;

auto p = make_shared<circle>( 42 );

vector<shared_ptr<shape>> vw = load_shapes();

for_each( begin(vw), end(vw), [&]( shared_ptr<circle>& s ) { if( s && *s == *p ) cout << *s << “ is a match\n”;} );

Complete C++11 Standard Libraries

<atomic> <chrono> <condition_variable> <future> <mutex> <ratio> <scoped_allocator> <thread> <filesystem>

Make it Better

“The most important thing I have done as a programmer in recent years is to aggressively pursue static code analysis.”

— John Carmack

Visual Studio: Graphics Tools

demo

Working with AssetsImages & textures• Support for 32-bit images and alpha channel• Support for modern image formats (PNG, JPG, BMP, TIFF, & DDS)• Support for MIP maps

Models & meshes• Inspect standard models (FBX, DAE, and OBJ)• Basic manipulation (camera controls, and so on)• Experiment & learn (basic shapes and transforms)

Visual shader designer• Support for designing pixel shaders with live preview and export to HLSL

Graphics Debugging

Direct3D 10+Event HistoryPixel HistoryPipeline ViewerObject TableCall Stacks

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be

interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

top related