exploder
iOS zealot
offline
Опыт:
19,394Активность: |
OpenGL тоже выдержана в процедурном стиле, хотя там есть сущности аналогичные объектам. В квейках написанных на C тоже такая же тема. Это идиома Opaque_pointer Они же хенды в Виндах. То есть можно писать оперируя объектами и на процедурном языке безусловно. Но в С есть хотя бы структуры, в Галакси нету даже этого, а франкейнштейны на массивах уж слишком ахутнгово выглядят.
Суть в том что все это абстракция и сокрытие сложности в черные коробки. Тут опять же вопрос нужно ли такое сокрытие в простых скриптах карт.
Кстати пример в оп посте как бы символизирует почему кресты доминирующий язык в геймдеве) Перегрузка операторов же. Надо считать векторы, матрицы, кветернионы, сплайны вотевар.
Т.е. в варике самые сложные алгоритмы были именно при написании спелов: дамми системы, снаряды, перемещения юнитов. Т.е. перегрузка операторов векторов и матриц была реально нужна. Ну и модульность и скопы vjass'а тоже очень полезная штука. А остальной ООП там имхо просто задростсво. Но там это было в синтаксисе языка и ты получал все это форфри, а писать это руками, ну не знаю. Отредактировано exploder, 24.01.2012 в 22:00. |
24.01.2012, 21:45 | #21
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Тонг
offline
Опыт:
13,665Активность: |
Вы нереально круты, а можно вопрос - Зачем?
Что нельзя сделать из под объектов? |
24.01.2012, 22:01 | #22
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Дисциплинированность программиста, скрытие сложности, модульный, выразительный код, который хорошо читать и поддерживать. Максимальное количество строк поддерживаемого кода на одного человека возрастает, и получается что планка сложности систем, которые возможно написать в одиночку тоже поднимается. Ну ты понел. |
24.01.2012, 22:04 | #23
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Тонг
offline
Опыт:
13,665Активность: |
Условно да.
С точки зрения совместного написания кода, планирования и распределения сложных совместных проектов
Однако с точки зрения действия:
Спеллов. изменений объектов и т.д. я как то не вижу применения. Честно. Может туплю конечно. В WC3 это было насущной необходимостью, в ск2... |
24.01.2012, 22:11 | #24
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
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 | #25
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
exploder:
увы у меня компиляторы через пару лет |
24.01.2012, 22:58 | #26
+0/−1
Профиль |
Приват |
Поиск |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
exploder, а нафига нам свой, он там и так фич что с шарпа что с других нехило надергал?) и вообще дотнет, если сборка не будет обфусцированна...<3 а вот что то вроде гримора, которое хостит остальное - да, круто бы |
25.01.2012, 00:08 | #27
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
exploder, ты честно какой-то бред щас загоняешь =) такое ощущения, что либо начитался слишком много теории, либо у вас на работе так учат идк...
Проблема не в том, чтобы организовать обработку данных как обработку хендлов в обобщенной системе (напр. обмена сообщениями). Это в любом случае придется организовывать, даже в самой простой системе есть передача индексов. Проблема не в перегрузке операторов. Я с тем же успехом могу написать функцию CrossProduct(int Vector4_a, int Vector4_b). Это не проблема =)
Проблема в том, чтобы воспринимать логику приложения как объектно-ориентированную, т.е. ассоциировать определенные части функционала как объекты в реальном мире. Объекты, которые изолированы от остальных частей системы, за исключеним тех, которые им заданы явно. Именно при такой политике можно недумая замутить многопоточность и модульность, соединяя различные наработки и проекты, их части, не затрагивая большую часть кода.
Я не призываю никого ничего писать, я просто предложил распространить эту парадигму среди нашей аудитории в доступных ей словах, вот и всё. Я всё чаще замечаю жуткий говнокод, из-за которого потом люди бросают неплохие в целом проекты.
Что касается www.sc2mapster.com/assets/galaxy-editor-beier - ну вот и славненько <3 |
25.01.2012, 03:02 | #28
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Я и не говорил что это проблема. Я же написал, что это безусловно можно делать и уже делалось годами в процедурных языках вроде С применительно к сложнейшим системам вроде операционных систем, библиотек 3д графики, и тд. Просто я говорю что перед разработчиками таких систем стоял проблема высокой сложности, писать в таком стиле для них было просто необходимостью.
Просто без соответствующей поддержки в синтаксисе, это все несколько муторно. |
25.01.2012, 07:41 | #29
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
ScorpioT1000, я кстати заценил =) вектора почти готовы, думаю к завтра-послезавтра будет что-то типа либы... или пока только видосик, а либа потом. В общем поглядим. exploder, муторна только реализация самого движка, самого функционала. Зато, после создания всех конструкторов и деструкторов, написание самого кода облегчается в разы. И дело даже не в ООП, а скорее в строгом структурировании. |
27.01.2012, 21:06 | #30
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|