Речь пойдет об особенностях создания игр для платформ Windows 8 и Windows Phone 8, начиная от возможностей интеграции с платформой, и заканчивая «смешиванием» DirectX кода на C++ с интерфейсными элементами на XAML/С#.
10. Версии
DirectX
• Windows
XP
DirectX
9
hardware
DirectX
9
API
• Windows
Vista
DirectX
10
hardware
DirectX
10
API
• Windows
7
DirectX
11
hardware
DirectX
11
API
• Как
разрабатывать
игры
для
всех
этих
версий
DirectX?
11. Feature
levels
• DirectX11
API
предлагает
унифицированный
механизм
разработки
приложений
• Feature
levels
по
отношению
к
оборудованию
– Feature
level
9
DirectX
9
hardware
(ARM/power
efficient
machines)
– Feature
level
10
DirectX
10
hardware
(many
laptops)
– Feature
level
11
DirectX
11
hardware
(high
end
gaming
machines)
12. DirectX
11.1
• DirectX11.1
это
DirectX
11
для
Windows
8J
• Интеграция
в
стек
технологий
платформы
• DirectX11+
использует
tessellamon
и
stereoscopic
3D
13. Windows
SDK
• The
DirectX
SDK
is
now
part
of
the
Windows
SDK
– Use
the
Windows
SDK
to
pass
cermficamon
• This
offers
new
opportunimes
for
Windows
Store
Apps
– Build-‐mme
shader
compilamon
with
Visual
Studio’s
HLSL
compiler,
FXC.exe
– Try
the
Visual
Shader
Designer
in
Visual
Studio
2012
• Check
out
MSDN
for
more
informamon
15. Две
модели
приложений
Управляемая
Нативная
• Использование
уже
• Разработка
приложений
существующих
подходов
на
С++
(C#/XAML)
• Переносимость
• Большое
количество
некоторых
библиотек
и
элементов
управления
кода
с
Windows
8
• Поддержка
XNA
• Повышение
производительности
игр
при
утилизации
DirectX
Windows
Phone
16. Две
модели
приложений
• Допускается
встраивание
DirectX
компонент
в
XAML
интерфейс
• Создание
приложений
на
HTML
5
не
поддерживается,
но
…
Windows
Phone
17. C++
в
Windows
Phone
8
• Visual
C++
2012
• Тот
же
С++,
что
и
в
Windows
8
• Новые
возможности
C++11
RValue
references
Forward
declared
enums
Bidirectional
fences
static_assert
Alignment
Data-‐dependency
ordering
Auto
Standard-‐layout
and
trivial
types
exception_ptr
Trailing
return
types
Extended
friend
declarations
Thread-‐local
storage
Local
and
unnamed
types
as
template
Lambdas
__func__
arguments
Decltype
Range-‐based
for-‐loop
C99
preprocessor
Right
angle
brackets
override
and
final
long
long
extern
templates
Minimal
GC
support
nullptr
Atomics
Strongly
typed
enums
Strong
compare
and
exchange
Windows
Phone
18. Что
же
можно
делать
на
С++
Networking
Proximity
In-‐App
Purchase
Sensors
Locamon
File
System
Core
app
model
Threading
Windows
Phone
19. Немного
о
DirectX
• C++/DirectX
–
поддержка
нативных
приложений
• XNA
продолжает
поддерживаться
• Поддержка
DirectX
11.1,
но
уровень
9.3
• Возможность
интеграции
XAML
и
DirectX
Windows
Phone
21. C++
reimagined
C++
11
C++/CX
Улучшение
auto
производительности
С++
shared_ptr
разработчика
на
decltype
платформе
Windows
8
и
Windows
Phone
8
.
.
.
.
.
h”p://msdn.microso–.com/en-‐us/library/hh567368.aspx
Windows
Phone
22. C++
Component
Extensions
(C++/CX)
Key
Bindings
Feature
Summary
1.
Data
Types
ref
class
Reference
type
value
class
Value
type
interface
class
Interface
property
Property
with
get/set
event
“Delegate
property”
with
add/remove/raise
delegate
Type-‐safe
funcmon
pointer
generic
Type-‐safe
generics
2.
AllocaEon
gcnew
Garbage-‐collected
allocamon
ref
new
Reference-‐counted
allocamon
3.
Pointer
&
^
Strong
pointer
(“hat”
or
“handle”)
Reference
%
Strong
reference
Windows
Phone
47. Store
policy
• ARM
or
Neutral
packages
must
support
feature
level
9_1
• You
may
specify
a
higher
feature
level
when
submi¥ng
app
– Check
the
feature
level
at
the
launch
of
your
app
– Nomfy
the
user
if
their
machine
is
not
the
appropriate
feature
level
• Specify
feature
level
in
app
descripmon
• More
informamon
about
feature
level
store
policy
on
MSDN
48. Регистрация
h”p://dev.windowsphone.com
–
Windows
Phone
h”ps://appdev.microso–.com/StorePortals
-‐
Windows
8
Бесплатная
регистрация
для
студентов
Можно
регистрироваться
как
компания
или
как
отдельный
разработчик
Central and Eastern Europe