XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > StarCraft (только чтение)> StarCraft 2 inside
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
OpenGL тоже выдержана в процедурном стиле, хотя там есть сущности аналогичные объектам. В квейках написанных на C тоже такая же тема. Это идиома Opaque_pointer Они же хенды в Виндах. То есть можно писать оперируя объектами и на процедурном языке безусловно. Но в С есть хотя бы структуры, в Галакси нету даже этого, а франкейнштейны на массивах уж слишком ахутнгово выглядят.
Суть в том что все это абстракция и сокрытие сложности в черные коробки. Тут опять же вопрос нужно ли такое сокрытие в простых скриптах карт.
Кстати пример в оп посте как бы символизирует почему кресты доминирующий язык в геймдеве) Перегрузка операторов же. Надо считать векторы, матрицы, кветернионы, сплайны вотевар.
Т.е. в варике самые сложные алгоритмы были именно при написании спелов: дамми системы, снаряды, перемещения юнитов. Т.е. перегрузка операторов векторов и матриц была реально нужна. Ну и модульность и скопы vjass'а тоже очень полезная штука. А остальной ООП там имхо просто задростсво. Но там это было в синтаксисе языка и ты получал все это форфри, а писать это руками, ну не знаю.

Отредактировано exploder, 24.01.2012 в 22:00.
Старый 24.01.2012, 21:45
Тонг

offline
Опыт: 13,665
Активность:
Вы нереально круты, а можно вопрос - Зачем?
Что нельзя сделать из под объектов?
Старый 24.01.2012, 22:01
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Вы нереально круты, а можно вопрос - Зачем?
Дисциплинированность программиста, скрытие сложности, модульный, выразительный код, который хорошо читать и поддерживать. Максимальное количество строк поддерживаемого кода на одного человека возрастает, и получается что планка сложности систем, которые возможно написать в одиночку тоже поднимается. Ну ты понел.
Старый 24.01.2012, 22:04
Тонг

offline
Опыт: 13,665
Активность:
Условно да.
С точки зрения совместного написания кода, планирования и распределения сложных совместных проектов
Однако с точки зрения действия:
Спеллов. изменений объектов и т.д. я как то не вижу применения. Честно. Может туплю конечно.
В WC3 это было насущной необходимостью, в ск2...
Старый 24.01.2012, 22:11
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Алсо, Galaxy++ уже назывался, но все же:
Вы только посмотрите на список этих свистелок, омагад! Он даже дженерики реализовал. Такой он упоротый. А энричменты решают проблему с аттачем на корню.
Парсер отменяется потсоны, все уже написано за нас буржиками.
ЗЫ. Офк не отменяется) Ведь мы хотим свой с преферансом и блудницами.
Погуглил и нашел вот что:
Похоже в решетке (Галакси++ написан на нем насколько я понимаю) писать парсеры не так уж и сложно :/ (в цикле видео даже интеграция своего парсера со студией).
Хотя судя по описанию Galaxy++ неудобен в плане процесса компиляции надо пихать скрипты в карту и т.д. нету никаких хуков редактора как у JNGP. И судя по жалобам на форуме в нем нету никакой встроенной проверки Galaxy синтаксиса полученного файла. Т.е. либо ему было лень писать второй парсер для оригинального синтаксиса (аналог pjass в jass helper), либо G++ не "умный парсер", а простой препроцессор, на базе регулярных выражений к примеру. Вообщем если эту тему читают люди у которых в семестре сейчас идет курс по компеляторам и нечем занятся, то тут непаханное поле.

Отредактировано exploder, 24.01.2012 в 22:53.
Старый 24.01.2012, 22:16
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
exploder:
семестре сейчас идет курс по компеляторам и нечем занятся, то тут непаханное поле.
увы у меня компиляторы через пару лет
Старый 24.01.2012, 22:58
XOR

offline
Опыт: 38,284
Активность:
exploder, а нафига нам свой, он там и так фич что с шарпа что с других нехило надергал?) и вообще дотнет, если сборка не будет обфусцированна...<3
а вот что то вроде гримора, которое хостит остальное - да, круто бы
Старый 25.01.2012, 00:08
ScorpioT1000
Работаем
online
Опыт: отключен
exploder, ты честно какой-то бред щас загоняешь =) такое ощущения, что либо начитался слишком много теории, либо у вас на работе так учат идк...
Проблема не в том, чтобы организовать обработку данных как обработку хендлов в обобщенной системе (напр. обмена сообщениями). Это в любом случае придется организовывать, даже в самой простой системе есть передача индексов. Проблема не в перегрузке операторов. Я с тем же успехом могу написать функцию CrossProduct(int Vector4_a, int Vector4_b). Это не проблема =)
Проблема в том, чтобы воспринимать логику приложения как объектно-ориентированную, т.е. ассоциировать определенные части функционала как объекты в реальном мире. Объекты, которые изолированы от остальных частей системы, за исключеним тех, которые им заданы явно. Именно при такой политике можно недумая замутить многопоточность и модульность, соединяя различные наработки и проекты, их части, не затрагивая большую часть кода.
Я не призываю никого ничего писать, я просто предложил распространить эту парадигму среди нашей аудитории в доступных ей словах, вот и всё. Я всё чаще замечаю жуткий говнокод, из-за которого потом люди бросают неплохие в целом проекты.
Что касается www.sc2mapster.com/assets/galaxy-editor-beier - ну вот и славненько <3
Старый 25.01.2012, 03:02
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Проблема не в том, чтобы организовать обработку данных как обработку хендлов в обобщенной системе (напр. обмена сообщениями). Это в любом случае придется организовывать, даже в самой простой системе есть передача индексов. Проблема не в перегрузке операторов. Я с тем же успехом могу написать функцию CrossProduct(int Vector4_a, int Vector4_b). Это не проблема =)
Проблема в том, чтобы воспринимать логику приложения как объектно-ориентированную, т.е. ассоциировать определенные части функционала как объекты в реальном мире. Объекты, которые изолированы от остальных частей системы, за исключеним тех, которые им заданы явно. Именно при такой политике можно недумая замутить многопоточность и модульность, соединяя различные наработки и проекты, их части, не затрагивая большую часть кода.
Я и не говорил что это проблема. Я же написал, что это безусловно можно делать и уже делалось годами в процедурных языках вроде С применительно к сложнейшим системам вроде операционных систем, библиотек 3д графики, и тд. Просто я говорю что перед разработчиками таких систем стоял проблема высокой сложности, писать в таком стиле для них было просто необходимостью.
Просто без соответствующей поддержки в синтаксисе, это все несколько муторно.
Старый 25.01.2012, 07:41
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
ScorpioT1000, я кстати заценил =) вектора почти готовы, думаю к завтра-послезавтра будет что-то типа либы... или пока только видосик, а либа потом. В общем поглядим.
exploder, муторна только реализация самого движка, самого функционала. Зато, после создания всех конструкторов и деструкторов, написание самого кода облегчается в разы. И дело даже не в ООП, а скорее в строгом структурировании.
Старый 27.01.2012, 21:06

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:23.