Перейти к контенту
Азраэль

Курилка программистов

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

Терпение! Придёт автор - пояснит, заодно и почистит лишние посты.

А пока предлагаю воздержаться от откровенного флуда «ни о чём», чтобы не нарушать правила форума.

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

 

 

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

Самокритика? Вот те же on_drop - ну написали тебе, почему так было сделано, но никто не говорил, что надо это оставлять. А вы, сударь, такое ощущение, что не читаете - продолжаете возмущаться, как все сделано плохо.

Я вот одно могу сказать - посмотрела бы я на твои навыки этак лет 6-7 назад :) Это раз.

Два - по предложениям тоже пишем. Мол так и так, не очень полезно, а ты бурлишь. И еще других в побурливании уличаешь.

Как то так я вижу сложившуюся ситуацию.

 

 

"КТО РАЗРЕШИЛ ?" и "Почему строем не ходите?"

Эм, ты это о чем? О_о Сколько читала, не видела такого.

 

 

Да, на приоритеты ваши ни кто здесь не покушается. Считаете, что незаслуженно забыты - так и напишите.

Я вас умоляю. То было вечность назад :) И молодым у нас дорога - вперед! 

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

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

Да ну, "ни кто не говорил". Только вот сюда перетащенное глянуть... Не считая снесенного.

По on_drop - да, полезный пост был. Но ведь и его проигнорировали - и это был не я. Не будем показывать пальцем, но опять же на этих 4-х страницах можно найти. А я уже просто так сказать, "по итогам" пост написал.

 

В общем, давайте все-таки обойдемся без выискивания несуществующих оскорблений, и будем воздерживаться от реальных ? Даже и в теме "обо всем".

 

Вот есть у каждого что-то свое - так вот лучше и написать, для чего именно и как именно оно используется. А уж кто что умеет готовить - собственно, из этого и видно будет.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Денис у нас - максималист, плюс во всем любит законченность и, если можно так сказать, неотвлеченность. Вот и сердится-то он, скорее всего, потому, что нет конкретики, а все то одно, то другое. Ему однозначный вектор нужен, да чтоб с вектора ничто не сбивало, не отвлекало. :)

 

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

 

Я давно говорил: "общести" в техтемах - зло. Рассмотрение одного вопроса - добро. Лучше сто тем создайте, зато и отвлекаться не будете на всякое-разное.

Ссылка на комментарий
По on_drop - да, полезный пост был. Но ведь и его проигнорировали - и это был не я. Не будем показывать пальцем, но опять же на этих 4-х страницах можно найти. А я уже просто так сказать, "по итогам" пост написал.

Блин... Я делала эти самые таймеры, я делала этот самый сон и я объяснила, почему они такие дерьмовые в АМК - мы тогда только учились и узнавали возможности системы. Неужели это не понятно? Мне неловко за такое творчество, и я объяснилась. Все, собственно.

Потом прибавила, что осознание дерьмовости пришло позже, и я писала что-то новое. Но так как к АМК я отношения уже не имела, то дерьмище осталось.

Что из этого непонятно? В чем срач то?

Прошу заметить, ни слова в сторону тебя, как автора чего либо не было. Было потом и по существу.

Собственно, все.

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

Собственно только этот меня интересует.

Мнение по поводу "рефакторинга" я уже говорила: подобный максимализм и резкость у меня тоже были, лет шесть назад, и я понимаю, какие эмоции ты испытываешь, когда кто-то критикует.

Мир дружба жвачка. Мне собственно совершенно по барабану, что кто для сталкера делает, я просто высказала свое компетентное мнение, или топик подразумевает только молчаливое согласие? :)

Изменено пользователем Murarius
Немного подправил... терминологию. ;)
  • Нравится 1
  • Согласен 1

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

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

Не, без переводчика, чувствую, ни как.

 

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

Другое дело, есть серьезные сомнения, что если каждый из здесь отметившихся напишет, что так делать не надо - то это как-то поможет. Все равно продолжат. И строки в таблицы и обратно побайтно преобразовывать при каждом вызове - тоже продолжат. И вот те самые пакеты из amk.script в апдейтах дергать.

Ну и т.д.

 

Но, зачем писать, что "вы/ты/он/она занимается полной ерундой, и им вообще не надо моддингом заниматься" ? Опять же обращаюсь не к конкретному оппоненту, а к тем, кому зачем-то захочется что-то подобное написать.

Результат-то какой в итоге ожидается ?

 

Далее, ладно, 2015 год на дворе. Так ведь и я согласен с Арамисом. Вывод-то опять же какой ? Давайте все бросим, и будем разрабатывать некий перспективный проект на 2018-й, 5 лет его будем делать, а потом остальные будут его еще 5 осваивать ?

Или все-же какие-то промежуточные шаги имеют право на существование ?

 

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

 

Ну так вот, про идеи, ноу-хау, и прочее: хорошая, не хорошая - но вот где вы все раньше были, когда оно могло быть хорошим ? И вот согласно какой религии это нельзя выставить сейчас ? Конкретно, какую статью УК это нарушает ?

 

Вопрос второй, еще раз:

Если вот СРАЗУ так и написано было "но вообще - не нужны" ? Не про чье-то там, а вот именно про выложенное. Извините, то, что за этим последовало - это именно десяток раз повторенные взаимоисключающие параграфы "нет, нужны, но не нужно". Кому нужно - пользуйтесь, кому не нужно - не пользуйтесь. В чем дело-то ? Что здесь вообще обсуждать ?

 

 

P.S. А, да, есть еще полно изобретающих велосипеды. Тоже в 2015-ом году. Хотя тоже вряд-ли поможет. В смысле, хоть 200 раз написать "надо", хоть столько же - "не надо". Какой вывод ? А простой. Положил, и путь лежит.  Есть-пить не просит.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

 

 

По сну - меня в принципе вполне устроило то, что выложено здесь. Секунды ловить - неинтересно. Да и в общем-то не планируется ни каких таких "длинных" апдейтов во время "промотки".

Как-то я это пропустил.

 

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

 

Твою позицию по таймерам я, признаться, не понял. Они совсем не нужны, по твоему? Мне просто интересно понять, а чем их можно заменить.

  • Согласен 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

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

 

По таймерам, ну вот применительно к понятно-какому монстромоду у меня есть вариант с таймерами amk-style, то есть, однократными, и сохраняющими параметры, доработанными на добавление-проверку функции и собственно активного таймера, и добавление функции на "плавный" апдейт актора с последующим удалением, когда становится не нужна.

 

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

 

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

 

Да, минимум одна из упомянутых функций будет переделываться на проверку позиции актора, ибо привязка кода к конфигу - не есть правильно. Вторая - там завязано на время проигрывания озвучки. Тоже неправильно константы подбирать, вместо проверки на играется ли звук. Третья - на анимацию. 8/

 

Ну, понятно, что новости и выброс - это вообще не вариант. Варка артов... Гм. Вот тоже ситуация примерно как со сном. НУ и все параметры правильнее хранить в самой аномалии. Мало ли, как и кто на нее будет воздействовать...

Порча заспавненного броника из десменеджера ? Это вообще вредно, поскольку опять же проверять надо появление предмета. Которое зависит от расстояния до актора.

 

На этом моя фантазия исчерпалась.

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

@Dennis_Chikin, собственно один вопрос: при чем тут вообще таймеры? Что такое таймеры по-твоему?

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

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

"Что такое таймеры и в чем смысл жизни ?" -  вот так этот вопрос должен звучать. ;)

 

В данном конкретном случае, говоря об amk-таймерах я могу сказать только то, что вижу, а именно:

набор неких функций, предназначенных для запуска более других функций через какой-то заданный интервал времени, и сохраняющих параметры, предназначенные для этих самых более других функций, в сэйвах. Предназначены как бы для того, чтобы спрятать некие рутинные операции от кого-то (кого ?).

 

Попытку следует признать неудачной, поскольку количество операций с не совсем ясным смыслом скорее возросло.

 

Что-то мы уже на пятый круг заходим: ибо предчувствую, что мне сейчас опять начнут объяснять, что 1 - я не умею их готовить, 2 - это старье, по тому что в 2008-ом только учились, и по тому что древние версии движка не имели тех возможностей, которые есть в 1.0004.

  • Не нравится 1
Ссылка на комментарий

@Dennis_Chikin, я спросила конкретно: что такое таймеры в твоем понимании? Мне банально любопытно, почему они не нужны в игре.

  • Нравится 1
  • Согласен 1

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

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

Я понятия не имею, что от меня хотят услышать. Что вижу - выше написал.

 

Для чего использовалась предложенная мной модификация - это для временной замены амк таймеров пока не были внесены боле глубокие изменения. То есть, функция запуска просто переименовывалась, и убиралось преобразование таблица->строка и строка->таблица.

Вызываемая выносилась из amk.script, и добавление производилось из того же скрипта, который запускал собственно таймер. Только при необходимости.

 

На данный момент таких осталось 3 места. Все.

  • Не нравится 2
Ссылка на комментарий

@Dennis_Chikin, ты издеваешься?  :) Я спросила почему ты считаешь, что таймеры в игре не нужны? Пофиг какие, неважно чьего производства. Ты написал, что не нужны, я и прошу пояснить, потому что мне интересно: может ты прав и я смогу в будущих проектах забыть, что это такое.

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

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

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

Вообще это чем то похоже на систему логики - evaluators and actions. И ИМХО такую систему "execution by condition" можно занести в двиг, так же как сделано с логикой.

1. Происходили неоднократно.

2. Иррегулярно.

3. Через точно заданное время от момента x.

Идеально подходит варка артов, которую ты уже упоминал, но есть она только в некоторых модах.

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

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

ТЧ 1.0004. SAP и Trans mod

github

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

По тому что в игре нет таких событий, которые одновременно бы удовлетворяли бы следующим условиям:

1. Происходили неоднократно.

2. Иррегулярно.

3. Через точно заданное время от момента x.

 

Или, по крайней мере, я не могу себе такие представить.

 

Либо они однократные, либо промежуток регулярный (раз в n секунд), либо зависят от каких-то других условий (выбрали фразу в диалоге, появился предмет, достигли некоей точки, отыгралась анимация и т.д.)

 

И не "пофиг какие" - а amk-style и их аналоги. Допускаю, что есть нечто принципиально более другое, которое для чего-то используется. Но тогда и хотелось бы увидеть описание: что, как и для чего.

 

 

"Пункты 2 и 3 у тебя противоречат друг другу, если что" - ну я что написал ?

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

@Dennis_Chikin, вот теперь мне ясна позиция. Так же как и то, что у слова "таймер" в контексте обсуждения у тебя семантика этого слова отличается от общепринятого моего. Соответственно дискутировать банально нет и не было смысла.

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

 

ЗЫ. Пункты 2 и 3 у тебя противоречат друг другу, если что :)

  • Согласен 1

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

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

Desertir, варка артов - это, по-хорошему, не событие актора. Там так же не нужна точность в 200ms, ну и не нужен "запуск".

Простая очередь, вешающаяся на самый медленный апдейт из всех, что есть - вполне достаточна.

Хотя, кстати, да: можно еще при загрузке проверять - есть ли арты в очереди, и не добавлять ее в апдейт вообще, пока не будет инициирована новая "варка".

 

 

То же самое и с выбросом: есть прогнозированное игровое время - по нему и запускаем, можно - с запозданием. Если к тому же модифицировать - то там вообще последовательность событий с проверками на "безопасность" надо делать. Опять же - "простой" медленный апдейт, в идеале еще и с проверкой загрузки движка.

 

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

 

 

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

В то время как нормальный таймер - это "железный" (ну или системный) вызов нашего кода, действительно, в запрограммированное время.

 

Вот, собственно, и...

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Простая очередь, вешающаяся на самый медленный апдейт из всех

Моя не понимать, что за очередь и медленный апдейт. Имеется ввиду такая шняжка?

local upd1, upd2, upd3 = 0, 0, 0
function bind_stalker:update(delta)
    upd1 = upd1 + delta
    upd2 = upd2 + delta
    upd3 = upd3 + delta
    if (upd1 > 200) then upd1 = 0 call_upd1() end
    if (upd2 > 1000) then upd2 = 0 call_upd2() end
    if (upd3 > 3000) then upd3 = 0 call_upd3() end
end
Но для той же варки нам все равно нужно время окончания и в call_upd3 мы пихаем проверку на истечение времени. Вот и есть простейшая система таймеров без сохранения, только запилить таблицу для хранения вызываемых функций и аргументов и ее обход.

ТЧ 1.0004. SAP и Trans mod

github

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

@Desertir, я тоже не очень понимаю. 
------
Подводя итог: Dennis_Chikin возмущен реализацией. Вот и весь сказ.

По сути, реализация амк - это polling с перебором по условиям.

Сигнальная система - это события по сигналам (на самом деле где-то тоже идет polling, но централизованно и скрыто)

Можно реализацию polling'а разнести по объектам-"носителям" (а-ля, сталкер, аномалия и т.п.) - на их апдейты. Суть на самом деле не особо то и меняется (кроме только того, что актор всегда онлайн).

Опять же, как итог: как ни реализуй систему срабатывания чего либо по временным засечкам, количество кода, который будет исполнятся, останется тем же.

Приоритезирование задач может помочь, но сам принцип приоритетов не зависит от исполнения.

Самым удобным с моей точки зрения является event-driven модель - намного меньше макаронного кода, проще интерфейсы и более-менее инкапсуляция.

  • Нравится 2

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

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...