Перейти к контенту

Язык Lua. Общие вопросы программирования


Рекомендуемые сообщения

С чего начинать и где взять.

 

Установка Lua:
http://www.amk-team.ru/forum/index.php?showtopic=11584&p=629106

 

Руководство «Программирование на языке Lua», третье издание:
http://www.amk-team.ru/forum/index.php?showtopic=11584&p=905308

Изменено пользователем Kirgudu
Ссылка на комментарий
  Цитата
Надо знать ООП, а это уже явно выходит не только за пределы топика, но и форума

Не согласен. Как раз топик для того и создан, чтобы узнавать что-то новое о Lua.

Почему бы тут не делиться знаниями?

Мне иногда гораздо проще и конструктивнее сделать что-то на базе классов.

И созданных в самом 5.1.4 Без всякого luabind.

 

Ссылка на комментарий

ООП не относится к ЛУА. Это общая парадигма. Ее не расскажешь в двух словах и не научишь за 10 минут. Максимум, чему можно научить в пределах топика - базовым принципам использования готового кода с использованием готовых классов, кем-то написанных.

 

  Цитата
И созданных в самом 5.1.4 Без всякого luabind.

А смысл извращаться? В ЛУА нет классов как таковых. Все имитируется с помощью метатаблиц. Луабинд это делает автоматически и предоставляет соответствующий функционал, благодаря чему праздник в дом приходит в ЛУА появляется удобный инструмент для использования ООП - классы и объекты этих классов. Описывать, как реализовать подобное вручную метатаблицами - нет ни желания, ни необходимых знаний.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Ссылка на комментарий
  Цитата
А смысл извращаться?

Не знаю кому как, а мне лишняя тренировка в создании метатаблиц, методов и т.д. никогда не помешает.

Да и просто люблю это дело.

Конечно я понимаю что тот же luabind уже создан для... А как же искуство?

Хорошо, делайте кому как хочется... А я уж буду по старинке...

  Цитата
нет ни желания
Так ведь кому нужно - спросит, кто захочет - ответит. Насильно никто, никого, ни к чему не принуждает.
  Цитата
ни необходимых знаний
Читал топик потихоньку. Не хотел говорить, но всё же... Как-то странно, что программисты такого уровня не знали о тех же замыканиях...

Ещё раз повторю, - "А не для того ли топик, чтобы находить эти знания?".

Прошу прощения за то, что "насорил". Удаляюсь.

Изменено пользователем Gun12
Ссылка на комментарий
  Цитата
Конечно я понимаю что тот же luabind уже создан для... А как же искуство?

Искусство ради искусства? :) Я ничего против не имею. Только с этим вопросом (имитациия классов через метатаблицы) точно не ко мне. Я не настолько "продвинута" в этом вопросе. Да и сочинять велосипед не очень хочется :)

  Цитата
Насильно никто, никого, ни к чему не принуждает.

Будем считать, что это был мой ответ на твой вопрос. Только мой.

  Цитата
Как-то странно, что программисты такого уровня не знали о тех же замыканиях...

Программисты знают в первую очередь то, что используют. Я, например, про замыкания знаю и вовсю их использую, потому что в работе нужны. Метатаблицы ЛУА я знаю, и даже не в теории. Но повторять то, что сделано просто классно и офигительно - никогда не было желания. Ибо, скорее всего, я сделаю хуже и менее производительно.

  Цитата
Ещё раз повторю, - "А не для того ли топик, чтобы находить эти знания?".

Так а разве нет? Нового ты не прочитал / не обнаружил на последних страницах? Этот топик читает очень мало людей, еще меньше что-то пишет. И уровень, в основном, так сказать, повышенной сложности. А если еще вспомнить предыдущие прения (где я настаивала на нововведениях, а Артос тут же пресекал тем, что это "чисто академические" вещи и использовать их нет смысла), то как-то грустно становится. Ты говоришь, что кому нужно, тот спросит? А где этот кто-то? Вот я что-то не наблюдаю. Может ты что-то спросишь? Поучавствуй в обсуждении.

  Цитата
Хорошо, делайте кому как хочется... А я уж буду по старинке...

Посижу в сторонке? Займусь велосипедами? :)

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Ссылка на комментарий
  Цитата
Посижу в сторонке? Займусь велосипедами?
А это дело может пойти во вред?:)

Я видать ещё на очень низкой ступени развития.

ОК. Как я обещал - чуть позже - выложу таймеры. Я их создал именно с помощью метатаблиц со всеми сопуствующими... Просто ради души... Кому нужно "переведут" на luabind.

Ещё раз простите. Хватит голословности. Буду ждать окончания праздника.

 

Добавлено через 14 мин.:

Ой. Очень нужно добавить.

  Цитата
что это "чисто академические" вещи и использовать их нет смысла
Тут я полностью поддерживаю точку зрения "модулей". Как говорят, - "Не нужно плодить сущностей". Для этого конечно нужен как минимум средний уровень знаний (того же Lua). Ведь это уже ООП.
Ссылка на комментарий

xStream, ну зачем же передергивать ...? Может быть мои слова читались несколько двузначно, но вкладываемый в них мною смысл был схож с тем, о чем говорит Gun12.

Топик конечно же И для различной "академической" информации, но(!) как раз по моей мысли не только на нее лицезреть, а и "поизвращаться" над нею, чтобы даже путем искажения академичности, попытаться найти приемлемое к практике применение.

И в то же время, конечно же следует помнить, что без соответствующих пояснений (для малоопытных), следует с некоторой опаской давать некоторые знания, т.к. результат может быть обратным ... (тут может быть отдельный и долгий разговор).

 

И в чем плохо занятие искусством ради искусства? Для меня (да и ты вроде как разделяешь данный подход) моддинг - это хобби, т.е. трата времени/сил собственно не обязательно ради создания чего-то, а и просто отдохнуть или дать зарядку мозгам ...

  Цитата
Максимум, чему можно научить в пределах топика - базовым принципам использования готового кода с использованием готовых классов, кем-то написанных
Но, все же, хотя раздел и носит название "Школа ...", но это не школа с учителями и учениками! ИМХО, тут мы все и учим и учимСЯ, т.е. даже обучая кого-то, делясь знаниями/навыками - подспудно оттачиваем и свои навыки/знания и ничего не мешает, получив порцию знаний, продолжить самостоятельно копать в этом направлении, набираясь уже не только базовых знаний.

 

Согласен, что все наши слова/ответы - это только наше видение/мнение. Но никто же и не заставляет насильно делиться знаниями и, начав о чем-то - в обязательном порядке продолжать. Вполне начать может кто-то и если ему надоело (разинтереснилось) - это может продолжить другой/другие. Если затронутая тема интересна НЕ одному/двум - то почему бы и ради "чистого исскуства" над ней не покумекать? :-)

Ну а кто-то и продолжая "изобретать велосипед" - все же и познает собственно что-же такое велосипед и глядишь ... мопед изобретет. ;-)

 

Добавлено через 3 мин.:

Gun12, хотел бы попросить выслать твои наработки по таймерам, т.к. этим вопросом занялся довольно глубоко и ... любая информации была бы полезна.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Ув. Artos, я не передергиваю. Все к тому и пришло: "есть два мнения, мое и неправильное". Не хочу дальше эту тему развивать.

А все остальное - слова, много слов. Не осилила прочитать, не обессудь :)

 

ЗЫ Пойду лучше оливье доедать.

Изменено пользователем xStream

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Ссылка на комментарий

xStream, много буковок не только же для прочтения тобою понаписаны ... ;-)

(плз. не коверкать по-возможности мой ник)

P.S. и, конечно же, приятного аппетита за оливье и хорошего настроения на эти и последующие дни!

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Хорошо, исправлюсь. А много буковок тут и читать-то особо некому :) Тем более, что их ты написал в ответ на мой пост. Не прокатила отмазка.

ЗЫ спасибо. Тебе желаю того же.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Ссылка на комментарий

Согласен с Gun12:

  Цитата
Не знаю кому как, а мне лишняя тренировка в создании метатаблиц, методов и т.д. никогда не помешает.
...

К тому же, как только я покопался в скриптах написаных Refresh-ом, для АМК 2.0, мне сразу понравилось как выглядят скрипты, как-то меньше "хлама", и "приятней" на глаз, да и лишняя практика еще никому не мешала... Ведь рано или поздно, скорей всего, что именно такой вид написания скриптов/схем может пригодиться, пусть даже не в моддинге...

 

И поддерживаю Artos, особенно с:

  Цитата
Ну а кто-то и продолжая "изобретать велосипед" - все же и познает собственно что-же такое велосипед и глядишь ... мопед изобретет. ;-)

 

:offtopic:

З.Ы. Artos и xStream, спасибо вам больше за придуманные и написанные вами схемы/скрипты, ибо именно по ним начинал открывать для себя LUA. Особенно хочу отметить мое постоянное поражение, как Artos умудрился совместить столько модов и скриптовых фитч в одну модификацию... Причем, что багов почти нет, а если и случаются, то они не критичные, да и если надо посмотреть пример какой-то схемы, то лучше чем примеры модулей из SIMBION`a просто не найти... ;). Это единственная солянка(не в обиду сказано), которую я люблю(касается только мода))) и уважаю, вместе с ее автором...

Изменено пользователем Viнt@rь
Ссылка на комментарий

Viнt@rь,

  Раскрывающийся текст (Показать)
Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Читаю топик и давно хотел спросить, xStream ты постоянно ругаешь LUA-вский метод создания классов через luabind, а собственно почему он плох и какие ограничения накладывает, и в чём его отличия от классических классов, которые делают его ущербным?

Изменено пользователем *Shoker*

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Я ругаю? Где? O_o

Я его наоборот использую вовсю и всем остальным советую (кто знает как использовать). Ты, видимо, что-то не так понял. :) Я ругаю то, как это используют. Вон, хвалят АМК 2.0 за "приятность для глаз". А по сути хлам как был, так и остался. Просто оно все аккуратнее смотрится из-за организации в виде классов. Но по сути это все то же процедурное программирование. Скажем так - забивание микроскопом гвоздей, использование не по назначению.

Просто подобный подход я видела не в одном языке и руки бы поотрывала а такое. Не знаете ООП - не трогайте классы.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Ссылка на комментарий

Ну вот ... опять буду напрашиваться на плохое к себе отношение, но промолчать все же не могу.

  очередной оффтопик с немало буковок (Показать)
Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, оффтопить, так офтопить...

  Раскрывающийся текст (Показать)
Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Dennis_Chikin, наверное xStream более резко возразит или даст оценку потугам разработчиков игры, я же пока дам реплику:

Критерии при написании кода (как в прочем и во всем ином) могут быть самыми различными и нередко взаимоисклчающими их совмещение. Если смотрет на коды игры , то ведь видно, что писали многие куски далеко не профессионалы и ... возможность дать и им все же учавствовать в разработке игры/кодов как раз возможно и обусловило наличие критерия "простота в использовании объектов". Дать набор методов для использования даже "чайниками", пожертвовав производитеьностью - все же тоже немаловажно порою ... И это только одно из возможных возражений на довольно категоричную твою оценку.

"Полезность" - все же понятие относительное.

 

Ну а про код упомянутого тобою мода не поддержу тему

  оффтопик (Показать)
Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Я не буду ни возражать, ни давать оценку.

На вкус и цвет фломастеры разные.

Скажу только одно. Про скорость и "а по тому, что все так делают". Всякие "оптимизации на скорость" и "неторопливые вызовы" это смех. Ребята, не занимайтесь фигней. Оптимизировать надо тогда, когда появляются боттлнеки, а абстрактно рассуждать о скорости - глупо.

Что касается второго, то вот все и делают на функциях все свои потроха для модов, убер быстро, ага. Не надо присваивать свое видение другим.

Итог: ООП - это удобная иерархическая архитектура. Позволяет инкапсулировать данные, заниматься рефлексией и наследованием. Не надо говорить, что это уберкруто или уберплохо. Надо знать, когда использовать и что использовать, выбирать инструмент исходя из задачи, а не в теоретическом ключе, сравнивая такты процессора, затраченные на то или иное. Если вы не можете оперировать разными категориями инструментов - это ваши проблемы. Я могу и оперирую, и классами и функциями, и разными методиками хранения данных. Но я могу выбирать, а вы, судя по всему - нет. (последнее высказывание в первую очередь адресовано Dennis_Chikin)

 

Добавлено через 1 мин.:

Засим я отказываюсь продолжать холиворного оттенка беседу, буду высказываться только по конкретным методикам и решениям.

 

ЗЫ Ув. Artos, как бы то ни было, я имею полное право давать категоричную оценку тому, что было написано мной, не так ли? :) А код АМК и его последователя (и других модов, использующих куски АМК) в конкретном случае на очень неслабую часть - мой, спорить, надеюсь, не будем (моежете мне приписать огромное ЧСВ, если хотите)? Методики, использованые там, заложены Red75, sokol_jack и мной. Причем, скорее, в разных сферах и направленностях. Поэтому, я вполне в состоянии критически оценить и эффективность самих методик и их реализаций. Методики, подчеркиваю, и код для их реализации, остался по сути неизменным с тех времен по большей части. Хоть как перекомпонуйте, оберните в псевдо-классы, переназовите переменные и т.п. - суть остается той же.

Изменено пользователем xStream

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Ссылка на комментарий

kamikazze

  Цитата
Мы не NLC делаем, которое не мод, а арт-объект, который нельзя трогать, в который ни в коем случае нельзя играть, потому что это искусство - им надо любоваться, восхищаясь замыслом и видением художников.

Нельзя так категорично, играть можно и трогать при настойчивости тоже можно. Нравится искать соринку в чужом глазу, покритикуйте технические детали на примерах. Скажем тот-же биндер, вы мастер оптимизации наверное заметили там жуткие тормоза ) В целом доработка его с моей стороны закончилась на этапе... замедления количества циклов:

elps = ElapsedTime(9) 
if elps < 19 then
    SleepEx( 20 - elps )
end

Потому что даже на современных системах графика вылезает за 100FPS, что пропорционально связано с количеством вызовов update. А стремиться к таким запредельным показателям производительности нет смысла, ибо все это обходится недешево - греются комплектующие, шум раздражающий и т.п. Изредка возникают на самом деле потребности в больших расчетах, но на этот счет я веду разработку в пользу использования многоядерности ЦП.

Изменено пользователем alpet

Плавайте поездами аэрофлота!

Ссылка на комментарий

Мой пост был адресован не только xStream...

Что касается:

  Цитата
... Я ругаю то, как это используют. Вон, хвалят АМК 2.0 за "приятность для глаз". А по сути хлам как был, так и остался. Просто оно все аккуратнее смотрится из-за организации в виде классов. Но по сути это все то же процедурное программирование. Скажем так - забивание микроскопом гвоздей, использование не по назначению.

Просто подобный подход я видела не в одном языке и руки бы поотрывала а такое. Не знаете ООП - не трогайте классы.

1. Вы ведь сами говорили что в LUA скриптах сталкера некогда небыло ООП

2. За что руки то отрывать? Если в данном случае, по вашим же словам, организовывание функций в классы, ни на что не влияет ;)

Лично мне нравится то, что организовывание функций в классы, делает код внутри скрипта "приятней и красивей"(ИМХО), собственно потому и спрашивал, влияет ли это на что-то...

Ссылка на комментарий

1) Не было, за исключением биндеров и всяких ГУИ - там наследование и там оправданное использование. Никто в модах ООП не пользовал в том понимании, какое заложено парадигмой.

2) А что мешает писать аккуратный код и без этого, скажите мне? Каждый файл в сталкере - отдельный модуль, вот вам и неймспейс, там же локальные переменные. По сути, когда обворачивают в класс, получается аж две обертки для процедурного кода. Зачем? Красивый и читабельный код можно писать и без классов. Тем более, что в данном конкретном случае это использование не по назначению.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...