?

Log in

No account? Create an account
12 окт, 2008 @ 20:13 Идеальный язык для программирования игр
Предлагаю мозговой штурм.
Идеальный язык для программирования игр. Какой он?
Какие он должен обеспечивать техники, чтобы наиболее удачно соответствовать повседневным нуждам геймдев программиста?
Что необходимо, чтобы эффективно воплощать в коде все ходовые приемы и концепции игр?

Например: сериализация для save/load game, описание деревьев и манипулирование ими как first-type data (наподобие поддержки XML в EcmaScript и ActionScript), перегрузка операций для пользовательских типов (для создания функциональных высокоуровневых абстракций) и т.д.

Всех приглашаю к круглому столу. Не стесняйтесь фантазировать. :)
topright:
(Удалённый комментарий)
[User Picture Icon]
From:niroo
Date:Октябрь, 12, 2008 17:48 (UTC)
(Ссылка)
Да не, ты чё писать в питоне серьёзное что-то, удавица. Один пробел не в том месте и всё.. ищи свищи...
(Ответить) (Уровень выше) (Ветвь дискуссии)
(Удалённый комментарий)
[User Picture Icon]
From:elmm
Date:Октябрь, 12, 2008 17:56 (UTC)
(Ссылка)
Мдя... и напишет человек на VB, под DX свою супер-пупер игру.
Что он с ней потом делать будет?
Распечатает исходники и повесит в рамочку на стену? :)
(Ответить) (Уровень выше) (Ветвь дискуссии) (Развернуть)
[User Picture Icon]
From:kefeer
Date:Октябрь, 12, 2008 17:57 (UTC)
(Ссылка)
The Next Mainstream Programming Language: A Game Developer's Perspective. Tim Sweeney (основатель Epic Games; человек, стоящий за движком Unreal).

в power point:
http://www.cs.princeton.edu/~dpw/popl/06/Tim-POPL.ppt

в pdf:
http://www.st.cs.uni-sb.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Октябрь, 12, 2008 18:43 (UTC)
(Ссылка)
Спасибо за интересную ссылку. Маститый автор и звучное название статьи - прочитаю, не откладывая в долгий ящик.
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:kefeer
Date:Октябрь, 12, 2008 18:04 (UTC)
(Ссылка)
Очень полезная вещь - reflection.

Но на сегодня есть три более-менее распространенных совсем не mainstream языка, которые поддерживают reflective programming. Это Lisp, Factor, и лучше всех - Smalltalk.

Кое-что есть в Java и Erlang (загрузка кодов на лету). Но в Smalltalk'е есть традиция иметь при себе ide с возможностью на лету смотреть и изменять в ручную состояние объектов.
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Октябрь, 12, 2008 18:48 (UTC)
(Ссылка)
Я как раз читал эту статью про reflection перед тем, как запостить этот топик. :) Конечно, языков, которые поддерживают отражение в той или иной степени, гораздо больше, чем пятеро. Что мы вообще ждем от рефлекшена в геймдеве?
(Ответить) (Уровень выше) (Ветвь дискуссии) (Развернуть)
[User Picture Icon]
From:cobanbk
Date:Октябрь, 12, 2008 20:16 (UTC)
(Ссылка)
самый лучший язык для создания игры - тот которым ты владееш в совершенстве!
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:barabanus
Date:Октябрь, 13, 2008 11:01 (UTC)
(Ссылка)
Мое мнение - этот язык кроме всего прочего должен быть эргономичным и синтаксически-эстетичным. Сейчас мой выбор на Lua.
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Октябрь, 13, 2008 11:13 (UTC)
(Ссылка)
Это важные характеристики. Тут я добавил бы еще лаконичность, но не в ущерб читабельности. Баланс между ними и дает эргономичность.
Lua луаконичен, да.
(Ответить) (Уровень выше) (Ветвь дискуссии) (Развернуть)
[User Picture Icon]
From:xproger
Date:Октябрь, 13, 2008 15:10 (UTC)
(Ссылка)
Нирвану смотрели? Вот такой, чтобы геймдизайнер тупо сидел и надиктовывал чего куда и сколько, а не как )
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Октябрь, 13, 2008 18:08 (UTC)
(Ссылка)
:)))
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:slatazan
Date:Октябрь, 13, 2008 17:39 (UTC)
(Ссылка)
Извини, Топрайт, но вопрос у тебя ошибочный.
Ответ на него не поможет делу.
Язык - враг твой :)

// Лично я хочу делать игры в ран-тайм-конструкторах ...
// Параметрическое програмирование как в драм-машине (музыка)
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Октябрь, 13, 2008 18:15 (UTC)
(Ссылка)
Я знал, что будет такой комментарий, Слатазан. :)
Вопрос намеренно поставлен кардинальным ребром вдоль категорического. Поэтому язык - идеальный.
Чтобы был ран-тайм конструктор (т.е. IDE, как в Delfi шоб формочки перетаскивать), нужен в основе всего подходящий язык. Поэтому идеальный - язык.
Чтобы было параметрическое программирование, нужна база данных параметризуемых шаблонов. Поэтому язык - со стандартной библиотекой.
Язык - наш друг. :)
(Ответить) (Уровень выше) (Ветвь дискуссии)
From:ev_genus
Date:Октябрь, 13, 2008 19:12 (UTC)

Идеальная бумага для написания стихов

(Ссылка)
Лирическое отступление
Предлагаю штурм (кто чем может, тот пусть тем и штурмует).
Идеальная бумага для написания стихов. Какая она?
Какая у неё должна быть жесткость, чтоб удобно было мять в руке перед удовлетворением повседневных нужд писателя?
Что необходимо изобразить на её упаковке что б поэту не было скучно в процессе удовлетворением повседневных нужд?

Всех приглашаю к круглому столу. Не стесняйтесь фантазировать. :)


По существу. Если вы хотите рассуждать в такой плоскости то тип (и содержание) языка (хотя не понятно что вы вкладываете в это понятие) зависит от жанра игры.

Но, чесно говоря, думать что все игры могут быть написаны на одном языке, может либо наивный человек, либо неграмотный, либо не связанный с написанием игр (и в том числе с программированием вообще). Это я вам говорю как человек с высшим техническим образованием в сфере IT написавший диплом на тему разработки языков программирования и работающий в индустрии создания игр уже (тьху-тьху) 4 года.

Для аргументации. Перед созданием нового языка ответьте на вопросы:
1. Куда вы выбросите шейдеры, которые пишутся на определённых языках и только на них?
2. Куда деть С? а С++? Ведь на них написано 80% всего полезного для геймдева.
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Октябрь, 13, 2008 23:07 (UTC)

Re: Идеальная бумага для написания стихов

(Ссылка)
Прежде всего, напоминаю вам: в мозговом штурме генерируют идеи, а не критикуют их. Если вы не согласны с постановкой вопроса (намеренно радикальной), не надо окрысиваться и брать ругательный тон, а то вас примут за тролля. Лучше попросите автора уточнить для вас его поинт. Я благодарен вам за такой длинный комментарий, вы старались. :))) Давайте продолжим общение конструктивно.

Это я вам говорю как человек с высшим техническим образованием в сфере компьютерных наук, написавший диплом на тему разработки логического языка программирования. :) К сожалению, я работаю не в игровой индустрии, потому что в Латвии ее почти нет :(, но я много лет интересуюсь разработкой игр и именно поэтому стал программистом.

По существу. Я нигде не утверждал, что все игры могут быть написаны на одном языке. Но ясно как божий день, что одни языки лучше подходят для написания игр, чем другие. В силу множества свойств. Насколько производителен результирующий код, eсть ли в языке стандартные графические и др. библиотеки, можно ли создавать сложные надежные программы, используя высокоуровневые абстракции, в чем язык больше всего лаконичен и выразителен и т.д.

Не надо выбрасывать шейдеры и приплюснутый код. Вообще, C++ - замечательный язык, и я тоже не избежал его интеллектуально-монструозного обаяния. Но у C++ есть известные недостатки. Уже есть D, блестящий, аккуратный, стильный, а в нем - возможность подключать весь код, написанный на C++ (так что багаж сохраняется). Автор D интересно критикует C++ и, по идее, преодолевает его недостатки в своем языке. Короче, языкам, принятым де-факто в геймдеве, есть куда расти, чтобы обеспечить нас с вами эффективными техниками и решениями для большинства ходовых геймдев-задач.

Java и Perl - языки общего назначения, но первый ориентировался на сетевые распределенные приложения, а второй с самого начала позиционировался как язык для обработки текстов. Представьте себе универсальный язык, в то же время заточенный под нужды и повседневные задачи геймдев-программиста. Каким он может быть? Люди хотят эстетичность и лаконичность синтаксиса (вы видели коды boost или loki?), отражение, удобное для отладки и экспериментирования с игровыми данными (экспериментировать приходится часто), domain-specific конструкторы игр и goal-oriented interface из Нирваны (вот уж точно не постеснялись фантазировать! :). Посмотрите презентацию Tim Sweeney. Вот обо всем этом я и хотел бы поговорить.
(Ответить) (Уровень выше) (Ветвь дискуссии) (Развернуть)
[User Picture Icon]
From:gineer
Date:Октябрь, 30, 2008 16:40 (UTC)

пять копеек

(Ссылка)
вот здесь http://community.livejournal.com/i_future/199554.html

начатая мною тема, по схожему направлению

есть еще у меня в журнале

думаю могу быть достаточно заинтерисованным и аргументированным собеседником по части языков, так как не равнодушен к этой тематике
то есть, и за рамками указанной темы, если она чем-то не понравится
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Октябрь, 31, 2008 17:50 (UTC)

Re: пять копеек

(Ссылка)
Я рад встретить такого просто драгоценного собеседника. :) Первым делом - во френды. Сейчас я только что с работы и устал, однако постараюсь поскорее найти время, чтобы прочитать ваши посты. Ваша запись в i_future - да, это интересно.
(Ответить) (Уровень выше) (Ветвь дискуссии)