SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Сергей «WR»Трошин Руководитель  команды  разработки  инструментария www.mail.ru Между  Дизайнером  и  Программистом
Зачем нужны тулзы? (И нужны ли вообще?) www.mail.ru 2
Запчасти  гейм-механики class  Spell{ 	Impact[]  impacts; 	void  run ( Creature  target  ) { 		for ( Impact  i: impacts ) { i.run ( target ); 		} 	} } class  Damage  implements  Impact { int  damage; 	void  run ( Creature  target ) { target.health  -=  damage; 	} } www.mail.ru 3 Java-классы Заклинание = набор импактов Импакт = данные + код
Ресурсы class  Spell{ 	Impact[]  impacts; 	void  run ( Creature  target  ) { 		for ( Impact  i: impacts ) { i.run ( target ); 		} 	} } class  Damage  implements  Impact { int  damage; 	void  run ( Creature  target ) { target.health  -=  damage; 	} } www.mail.ru 4 Java-классы Ресурсы ? (de)serialization
XML class  Spell{ 	Impact[]  impacts; 	void  run ( Creature  target  ) { 		for ( Impact  i: impacts ) { i.run ( target ); 		} 	} } class  Damage  implements  Impact { int  damage; 	void  run ( Creature  target ) { target.health  -=  damage; 	} } www.mail.ru 5 Java-классы XML-файлы <Spell> <impacts> 	<item type=“Damage”> 		<damage>10</damage> 	</item> 	<item type=“SayText”> 		<text>Die!!!:-E</text> 	</item> </impacts> </Spell> (de)serialization
Программист  и  Дизайнер www.mail.ru 6 10 dmg Дизайнер
Программист  и  Дизайнер www.mail.ru 7 <Spell> <impacts> <item type=“Damage”> <damage>10</damage> </item> </impacts> </Spell> WTF?! Программист Дизайнер
А  нужны  ли  тулзы  вообще? www.mail.ru 8 Предмет экипировки 2 Кб
А  нужны  ли  тулзы  вообще? www.mail.ru 9 Заклинание 5 Кб
А  нужны  ли  тулзы  вообще? www.mail.ru 10 Участок карты 500 Кб
А  нужны  ли  тулзы  вообще? www.mail.ru 11 <Spell> <impacts> <item type=“Damage”> <damage>10</damage> </item> </impacts> </Spell> 10 dmg Программист Дизайнер
Тулзы  спасут  мир! www.mail.ru 12 <Spell> <impacts> <item type=“Damage”> <damage>10</damage> </item> </impacts> </Spell> 10 dmg Программист Дизайнер Тулзы
Как мы это делаем? www.mail.ru 13
Архитектура  БД  (ресурсной  системы) www.mail.ru 14
«Разрезалка»  БД www.mail.ru 15 Tools (C#) Server(Java) Client(C++) «Общая» БД Серверная БД Клиентская БД
Архитектура  тулзов www.mail.ru 16
БД www.mail.ru 17 Game ~300к  штук LibDB XML DB Tools Client  Code Disk
Эволюция Что мы успели понаделать www.mail.ru 18
Notepad www.mail.ru 19 +быстрый ,[object Object],  структуры ,[object Object],[object Object],[object Object]
MapEditor www.mail.ru 22
ModelViewer www.mail.ru 23
ItemsEditor www.mail.ru 24
SpellEditor www.mail.ru 25
ClassEditor www.mail.ru 26
TheBrowser www.mail.ru 27
Designers’  Dream www.mail.ru 28
Mysterious  Editor  4.0 www.mail.ru 29
Как  (не) профейлить  проект (с  точки  зрения  тулзов) www.mail.ru 30
Полезные  советы www.mail.ru 31 ,[object Object]
  Низкие  требования  и  набор  по  «остаточному  принципу»
  Совсем  необязательно  знать  о  юзабилити,[object Object]
  Низкие  требования  и  набор  по  «остаточному  принципу»
  Совсем  необязательно  знать  о  юзабилити,[object Object]
Полезные  советы www.mail.ru 34 Дизайнер Программист Тулзы
Полезные  советы www.mail.ru 35 Дизайнер Программист Тулзы
Mail.Ru Разработчик  игр и сервисов №1 Крупнейший работодатель в отрасли Работайте у нас! job.gamedev@corp.mail.ru http://corp.mail.ru/career/vacancies/voronezh Спасибо! Сергей  Трошин Руководитель  команды  разработки  инструментария, департамент клиентских игр troshin@corp.mail.ru www.mail.ru

Weitere ähnliche Inhalte

Ähnlich wie Между дизайнером и программистом: инструментарий в «Аллодах Онлайн».

Testing of Embedded SW – Alternative to Classic TDD
Testing of Embedded SW – Alternative to Classic TDDTesting of Embedded SW – Alternative to Classic TDD
Testing of Embedded SW – Alternative to Classic TDD
Дмитрий Овечкин
 
безопасность Ajax приложений александр капранов
безопасность Ajax приложений   александр капрановбезопасность Ajax приложений   александр капранов
безопасность Ajax приложений александр капранов
Media Gorod
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
Computer Science Club
 
Android: Как написать приложение, которое не тормозит
Android: Как  написать приложение, которое не тормозитAndroid: Как  написать приложение, которое не тормозит
Android: Как написать приложение, которое не тормозит
Elena Kotina
 
Java/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talkJava/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talk
GeeksLab Odessa
 
Уменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложенийУменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложений
ngrebnev
 

Ähnlich wie Между дизайнером и программистом: инструментарий в «Аллодах Онлайн». (16)

Testing of Embedded SW – Alternative to Classic TDD
Testing of Embedded SW – Alternative to Classic TDDTesting of Embedded SW – Alternative to Classic TDD
Testing of Embedded SW – Alternative to Classic TDD
 
Очередной скучный доклад про логгирование
Очередной скучный доклад про логгированиеОчередной скучный доклад про логгирование
Очередной скучный доклад про логгирование
 
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
 
JavaScript как объектно-ориентированный язык программирования
JavaScript как объектно-ориентированный язык программированияJavaScript как объектно-ориентированный язык программирования
JavaScript как объектно-ориентированный язык программирования
 
безопасность Ajax приложений александр капранов
безопасность Ajax приложений   александр капрановбезопасность Ajax приложений   александр капранов
безопасность Ajax приложений александр капранов
 
Net 3.0 & Linq
Net 3.0 & LinqNet 3.0 & Linq
Net 3.0 & Linq
 
PT MIFI Labsql
PT MIFI LabsqlPT MIFI Labsql
PT MIFI Labsql
 
Борис Сазонов, RAII потоки и CancellationToken в C++
Борис Сазонов, RAII потоки и CancellationToken в C++Борис Сазонов, RAII потоки и CancellationToken в C++
Борис Сазонов, RAII потоки и CancellationToken в C++
 
Безопасное программирование на C#
Безопасное программирование на C#Безопасное программирование на C#
Безопасное программирование на C#
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
 
Android: Как написать приложение, которое не тормозит
Android: Как  написать приложение, которое не тормозитAndroid: Как  написать приложение, которое не тормозит
Android: Как написать приложение, которое не тормозит
 
Java/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talkJava/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talk
 
анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестирования
 
Язык программирования C#
Язык программирования C#Язык программирования C#
Язык программирования C#
 
Уменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложенийУменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложений
 

Mehr von Андрей Бростовский

Mehr von Андрей Бростовский (7)

Модульный объект: как это работает в «Аллодах Онлайн».
Модульный объект: как это работает в «Аллодах Онлайн».Модульный объект: как это работает в «Аллодах Онлайн».
Модульный объект: как это работает в «Аллодах Онлайн».
 
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки. Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
 
Звуковая система «Аллодов Онлайн».
Звуковая система «Аллодов Онлайн».Звуковая система «Аллодов Онлайн».
Звуковая система «Аллодов Онлайн».
 
Встроенная система профилирования в клиенте «Аллодов Онлайн»
Встроенная система профилирования в клиенте «Аллодов Онлайн»Встроенная система профилирования в клиенте «Аллодов Онлайн»
Встроенная система профилирования в клиенте «Аллодов Онлайн»
 
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
 
Докладчик: Владимир Ческис, глава команды клиента на проекте «Аллоды Онлайн».
Докладчик: Владимир Ческис, глава команды клиента на проекте «Аллоды Онлайн».Докладчик: Владимир Ческис, глава команды клиента на проекте «Аллоды Онлайн».
Докладчик: Владимир Ческис, глава команды клиента на проекте «Аллоды Онлайн».
 
Докладчик: Хатенков Сергей, руководитель воронежской студии
Докладчик: Хатенков Сергей, руководитель воронежской студииДокладчик: Хатенков Сергей, руководитель воронежской студии
Докладчик: Хатенков Сергей, руководитель воронежской студии
 

Между дизайнером и программистом: инструментарий в «Аллодах Онлайн».

  • 1. Сергей «WR»Трошин Руководитель команды разработки инструментария www.mail.ru Между Дизайнером и Программистом
  • 2. Зачем нужны тулзы? (И нужны ли вообще?) www.mail.ru 2
  • 3. Запчасти гейм-механики class Spell{ Impact[] impacts; void run ( Creature target ) { for ( Impact i: impacts ) { i.run ( target ); } } } class Damage implements Impact { int damage; void run ( Creature target ) { target.health -= damage; } } www.mail.ru 3 Java-классы Заклинание = набор импактов Импакт = данные + код
  • 4. Ресурсы class Spell{ Impact[] impacts; void run ( Creature target ) { for ( Impact i: impacts ) { i.run ( target ); } } } class Damage implements Impact { int damage; void run ( Creature target ) { target.health -= damage; } } www.mail.ru 4 Java-классы Ресурсы ? (de)serialization
  • 5. XML class Spell{ Impact[] impacts; void run ( Creature target ) { for ( Impact i: impacts ) { i.run ( target ); } } } class Damage implements Impact { int damage; void run ( Creature target ) { target.health -= damage; } } www.mail.ru 5 Java-классы XML-файлы <Spell> <impacts> <item type=“Damage”> <damage>10</damage> </item> <item type=“SayText”> <text>Die!!!:-E</text> </item> </impacts> </Spell> (de)serialization
  • 6. Программист и Дизайнер www.mail.ru 6 10 dmg Дизайнер
  • 7. Программист и Дизайнер www.mail.ru 7 <Spell> <impacts> <item type=“Damage”> <damage>10</damage> </item> </impacts> </Spell> WTF?! Программист Дизайнер
  • 8. А нужны ли тулзы вообще? www.mail.ru 8 Предмет экипировки 2 Кб
  • 9. А нужны ли тулзы вообще? www.mail.ru 9 Заклинание 5 Кб
  • 10. А нужны ли тулзы вообще? www.mail.ru 10 Участок карты 500 Кб
  • 11. А нужны ли тулзы вообще? www.mail.ru 11 <Spell> <impacts> <item type=“Damage”> <damage>10</damage> </item> </impacts> </Spell> 10 dmg Программист Дизайнер
  • 12. Тулзы спасут мир! www.mail.ru 12 <Spell> <impacts> <item type=“Damage”> <damage>10</damage> </item> </impacts> </Spell> 10 dmg Программист Дизайнер Тулзы
  • 13. Как мы это делаем? www.mail.ru 13
  • 14. Архитектура БД (ресурсной системы) www.mail.ru 14
  • 15. «Разрезалка» БД www.mail.ru 15 Tools (C#) Server(Java) Client(C++) «Общая» БД Серверная БД Клиентская БД
  • 17. БД www.mail.ru 17 Game ~300к штук LibDB XML DB Tools Client Code Disk
  • 18. Эволюция Что мы успели понаделать www.mail.ru 18
  • 19.
  • 26. Designers’ Dream www.mail.ru 28
  • 27. Mysterious Editor 4.0 www.mail.ru 29
  • 28. Как (не) профейлить проект (с точки зрения тулзов) www.mail.ru 30
  • 29.
  • 30. Низкие требования и набор по «остаточному принципу»
  • 31.
  • 32. Низкие требования и набор по «остаточному принципу»
  • 33.
  • 34. Полезные советы www.mail.ru 34 Дизайнер Программист Тулзы
  • 35. Полезные советы www.mail.ru 35 Дизайнер Программист Тулзы
  • 36. Mail.Ru Разработчик игр и сервисов №1 Крупнейший работодатель в отрасли Работайте у нас! job.gamedev@corp.mail.ru http://corp.mail.ru/career/vacancies/voronezh Спасибо! Сергей Трошин Руководитель команды разработки инструментария, департамент клиентских игр troshin@corp.mail.ru www.mail.ru

Hinweis der Redaktion

  1. Хотя бы «блокнот»Есть несложные объекты (например предметы экипировки), которые можно запросто редактировать прямо в нёмСтруктура итемов практически неизменна, запомнить названия тегов и всёПосчитать на калькуляторе формулу бюджета
  2. Есть сущности посложнее: заклинанияСтруктура более полиморфнаяНужно помнить названия импактовПрототипы: каждый ранк – отдельный файл.Общая часть заклинания собрана в одном месте, числа – в разных
  3. Терминальный случай – картаТут уже ну совсем ничего не понятноНе расставлять же координаты объектов вручную?
  4. И тут-то и дизайнер и программист понимают, что им нужен кто-то, кто бы помог найти общий язык и понять друг друга
  5. Но к счастью есть мы, тулзы,которые всегда готовы спасти коллег и помочь им обрести взаимное счастье и гармонию :)
  6. Так уж сложилось, что Аллоды – проект большой, и разные части написаны на разных языках.(пять языков, но два других неинтересны)А ресурсы одни и те же.Поэтому пришлось написать одно и то же (загрузчик ресурсов) аж три раза!Ну а при добавлении новой фичи... Ну, вы поняли.
  7. На самом деле – ресурсы не общие. Распил!!!Есть разрезалка, которая делит мух и котлетСлучай с читовыми спеллами
  8. Тулзы на шарпе являются вехнем уровнем иерархииЧерез прослойку используют клиентский рендер и звук
  9. БД на диске – не просто пачка XML файлов, но ещё и два служебныхtypes – список классом и список полей у каждого класса – чтобы знать что имено читать и писать в XMLindex – список файлов по классам – чтобы быстро получать список объектов указанного типа
  10. Самое простое – блокнотМы им без шуток пользуемся когда надо быстро поправить, известно что, известно где
  11. Наш собственный PropertyGridОбёртка над XML, позволяет открывать и редактировать что угодноне набажить с разметкой и типамиВыбирать запчасти из списка а не из головы, etcПроблемы всё те же: не наглядно