Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

49
Разработка мульти- платформенных 3D-игр Денис Шергин, Андрей Викторов Unigine, Томск

description

Денис Шергин (CEO UNIGINE) и Андрей Викторов (старший программист UNIGINE). CodeFest, Новосибирск, июль 2012 года.

Transcript of Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Page 1: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Разработка мульти-платформенных 3D-игр

Денис Шергин,Андрей ВикторовUnigine, Томск

Page 2: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Кто такие вообще?* 7 лет в real-time 3D* Unigine Engine, 10+ лет R&D* Heaven, первый в мире DX11 benchmark* Oil Rush, 3D RTS* Windows, Linux, Mac OS X, PlayStation 3, iOS, Android* AMD, Apple, Intel, NVIDIA, Microsoft, Sony...* B2B клиенты на всех континентах* короче, вроде можно послушать

В презентации будет много котиков...

Page 3: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 4: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 5: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 6: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 7: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 8: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Чем отличается 3D игра от веб-сервиса?

Игра – это:* интерактивное* 3D* real-time* приложение под фиксированные платформы

Пример: 3D игра про котиков

Page 9: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 10: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 11: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 12: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 13: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 14: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 15: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 16: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 17: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 18: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 19: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 20: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 21: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 22: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 23: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 24: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 25: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 26: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Чем веб-сервис похож на игру?

* batch* cache* cull* tiles* mipmaps* streaming

Короче, как только вы начинаете упираться в железо - все то же

Page 27: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 28: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Круто, я хочу делать игры!

* кладбище инди-проектов* пионерский задор* если все еще не страшно, приходите* в России можно делать только технологии и арт, геймдизайн и управление - не тут

Page 29: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 30: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 31: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 32: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Unigine Engine stats

* 5 платформ* ~800 kLOC, 20+ Mb (core – в одну каску)* 10+ лет R&D* ~500 статей документации* ~150 проектов

Page 33: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 34: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 35: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Oil Rush: 2,5 года жизни и один кранч

~30 человек в credits~15 человек full-time2 месяца кранча, let me unsee it!!!4 платформы5 языков

Как научиться дружить с NVIDIA, AMD, Intel, Microsoft, Apple и прочими "малоизвестными" компаниями?

- заставить себя ненавидеть

Page 36: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 37: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 38: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 39: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Windows, Linux, Mac OS X, PlayStation 3

* Linux - игр нет, драйвера временами ОК* Mac OS X - игр почти нет, драйвер отстой (OpenGL 2.1)* PlayStation 3 - отличная минимальная планка, все не влазит, рукой подать до мобилок* мощный NIH, мощный CTO

Page 40: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 41: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Веселая локализация на 5 языков, включая японский

* английский, русский, немецкий, французский, японский, чешский* не только текст! картинки, звук, видео* размеры, переносы* “ну все, локкит больше не меняем”

Page 42: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 43: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Топ-5 ошибок, которые чуть не утопили проект

* незаконченный pre-production* до кранча делаем, как делается* поздний сюжет, Carmack-style* поздняя локализация* 4 версии UI* недобаланс

Page 44: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 45: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Топ-5 факторов, спасших проект

* pre-production* прототипирование* pre-order, beta access* итерации (1-2 недели)* фокус-тесты* play-тесты* continuous integration* взвод киборгов

Page 46: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 47: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Gamedev – это...

Закат солнца вручную как каждодневная работа.

Page 48: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)
Page 49: Разработка мультиплатформенных 3D игр (Unigine, CodeFest2012)

Вопросы?

unigine.com

Денис Шергин[email protected]

twitter: @binstream

Андрей Викторов[email protected]

twitter: @aviktorov