Титан среди Титанов
Ну, а теперь давайте посчитаем среднее занимаемое место по каждому чемпиону и выявим Титана среди Титанов (спойлер на картинке сверху).
Считаем только чемпионов с тремя и более участиями в конкурсах
Итоговый список выглядит так:
- черепаха (6 + 1 + 1 + 1 + 1 + 1 + 1) 1.71
- echa (1 + 3 + 2) 2
- Kozinaka (1 + 1 + 7 + 2) 2.75
- Ailurusfulgensphobia (4 + 2 + 1 + 2 + 6 + 4 + 2 + 2) 2.875
- Herzenrg (1 + 1 + 1 + 5 + 2 + 15 + 3) 4
- 4mlr (4 + 5 + 1 + 5 + 5) 4
- Armagon (1 + 5 + 5 + 6) 4.25
- coco-bongo (12 + 1 + 1) 4.6
- Likantrop (2 + 1 + 2 + 3 + 6 + 2 + 16 + 8) 5
- Rubel (2 + 4 + 7 + 1 + 11) 5
- myHazards (3 + 19 + 3 + 1 + 6 + 9 + 4 + 3 + 7 + 2 + 11) 6.18
- DarkDes (12 + 7 + 7 + 8 + 9 + 7 + 1) 7.28
- Dreik (18 + 8 + 9 + 1 + 3 + 9 + 6) 7.7
- stray_stoat (1 + 22 + 3) 8.66
- Мурка (14 + 8 + 22 + 8 + 1 + 2) 9.16
- alexsilent (5 + 4 + 1 + 28) 9.5
- 04 декабря 2020, 00:25
Я прошерстил гаминаторы по вторым местам еще на всякий случай, но там никого нового не выявилось. Либо те же лица из этого списка, либо гастролеры плюс-минус с одной игрой.
Щас я опять скажу что ты считаешь неправильно.
Потому что по твоей методике:
- выиграет тот, кто участвовал всего в 1 раз и занял там 1 место (в твоем случае невыгодно участвовать больше 3-х раз, так как оценку можно только испортить).
- второе место в 2 раза хуже чем 1
- 15-ое место Хейзеру сильно портит всю малину
И только попробуй сказать что я не прав или что это чушь какая-то.
По-правильному нужно суммировать процент голосов/очков, полученных на конкурсе.
Тогда и кол-во участий будет влиять, и 1 место с большим отрывом будет ценнее 1 места с небольшим отрывом.
Еще желательно учесть, что:
Ваше обсуждение натолкнуло меня на создание универсальной формулы, которая учитывала бы все эти факторы и высчитывала коэффициент победы. И у меня получилось ее создать и она реально работает.
1. Считается коэффициент победы в конкурсе
2. Складывание всех коэффициентов
Переменные:
1. A = Количество игр в конкурсе
2. B = Занявшее место
3. C = Количество голосовавших за игру
4. D = Количество голосовавших всего
Формула:
(A*C)/(B*D)
Пример расчетов:
Черепаха:
Гаминатор 9: (25*4)/(6*25)=0,66 (Количество голосовавших взял приблизительные числа, так как в том Гаминаторе невозможно посчитать)
Гаминатор 10: (22*10)/(1*20)=11 (Количество голосовавших взял приблизительные числа, так как в том Гаминаторе невозможно посчитать)
Гаминатор 15: (26*4)/(1*10)=10,4 (Количество голосовавших взял приблизительные числа, так как в том Гаминаторе невозможно посчитать)
Гаминатор 16: (29*23)/(1*39)=17,1
Гаминатор 20: (31*33)/(1*38)=26,92
MP3.EXE 1: (10*11)/(1*22)=5
Общий коэффициент: 0,66+11+10,4+17,1+26,92+5=71,08
Herzenrg:
Гаминатор 6: (7*10)/(1*14)=5 (Количество голосовавших взял приблизительные числа, так как в том Гаминаторе невозможно посчитать)
Гаминатор 9: (25*12)/(1*25)=12 (Количество голосовавших взял приблизительные числа, так как в том Гаминаторе невозможно посчитать)
Гаминатор 12: (16*12)/(1*19)=10,1 (Количество голосовавших взял приблизительные числа, так как в том Гаминаторе невозможно посчитать)
Гаминатор 15: (26*4)/(3*10)=3,46 (Количество голосовавших взял приблизительные числа, так как в том Гаминаторе невозможно посчитать)
Гаминатор 17: (29*13)/(2*20)=9,42
Гаминатор 18: (26*2)/(15*41)=0,08
Гаминатор 19: (28*20)/(3*38)=4,91
Общий коэффициент: 5+12+10,1+3,46+9,42+0,08+4,91=44,97
Чтобы не вникать, какой вывод? Черепаха в два раза круче Хейзера, или как?
Исходят из коэффициентов побед в конкурсах получается что так. Но я бы не стал судить по этой формуле о крутости того или иного человека, потому что эта формула определяет ТОЛЬКО успешность участия в конкурсах. Для определения мастерства нужны другие переменные и, соответственно, другая формула. Но вообще формулы могут показать только статистику, а не реальные возможности человека, хоть и оцениваем мы только по статистике. Поэтому вывод тут такой: Черепаха участвует в конкурсах успешнее Хейзера в два раза.
> Поэтому вывод тут такой: Черепаха участвует в конкурсах успешнее Хейзера в два раза.
Что мы уже и видели и по простому среднему.
Простое среднее не учитывает количество участий в конкурсах. Например, по моей формуле echa и близко не стоял бы на втором месте. Чем больше участий в конкурсах - тем выше коэффициент, а вот насколько выше, зависит от успеха в конкурсе.
Среднее арифметическое высчитывает только среднее значение между представленными числами. А ведь важно еще и количество участий. Поэтому ты и брал только с 3 участиями и более, потому что если у кого-то, допустим, 1 участие и 1 место, то у него среднее арифметическое получается 1, и что получается,
он круче всех? Та формула, что я предложил, универсальна. По ней можно вычислить коэффициент всех участников конкурса, независимо от количества их участий в конкурсах. Чем больше успех в конкурсе - тем выше общий коэффициент. То есть один участник с одним участием в конкурсе с первым местом не может быть круче участника, допустим, с пятью участиями в конкурсах с первыми местами. Но только при одном условии, что количество игр и голосующих будет примерно одинаковым. Чем меньше количество игр и голосующих на конкурсе - тем меньше коэффициент успеха. И наоборот.
Если не лень, можешь всех прогнать по своей формуле и вывести список? Интересно, что получится.
Хорошо, я попробую в свободное время. Просто я и игру еще делаю на конкурс)
Все, извини ) Может я сам тогда попробую попозже.
Вот, пожалуйста, мой вариант.
Сумируется процент голосов, отданных за игру в основном голосовании от общего числа проголосовавших.
Если авторов больше одного - беру только первого, раз ты сам такой способ выбираешь.
Поскольку вы говорите что первые гаминаторы - говно, взял начиная с 9-го, где было больше 10 игр.
Вот первая десятка того что получилось:
Все равно как ни считай, можно посчитать так чтобы победил тот кто тебе надо, а остальные будут придираться к правильности подсчета и выдавать свои варианты.
Тупейший метод.
Тупейший аргумент.
Четко в духе твоего метода и понимания.
1) Такого не говорилось.
2) Поэтому у тебя и другой результат. Речь шла о всех Гаминаторах.
Читаем внимательно:
Я не знаю как еще длиннее можно это завуалировать.
Пожалуйста, вот тебе все гаминаторы:
Да? И где именно тут слово "говно"?
А, и правда, проглядел я значит. Ну бывает.
У него результат другой, потому что он СУММИРУЕТ. Кто больше и лучше участвует, у того и больше оценка. Кто-то один раз участвовал и занял первое место. А кто-то десять раз в крупных конкурсах и занял 15-е место каждый раз, и такой человек по его методу будет впереди.
Конечно. Если первый набрал 15% всех голосов, а второй взял по 2% голосов в 10 конкурсах, то у него будет 20% в сумме, что больше 15.
Ты тоже суммируешь, но по твоей методике получается, что если кто-то раньше брал первые места, а потом взял 6-ое, то его оценка упадет, а должна все равно вырости. У тебя коэфициент стабильности победной серии.
Гениально.
Эта проблема довольно легко решается средним арифметическим.
Исправил опять коммент, пока я отвечал, по своей дебильной традиции. Извини, я так диалог вести не могу.
Вот создал вторую формулу в дополнение к первой для сравнивания коэффициента побед со всех конкурсов. Она учитывает сумму коэффициентов побед с первой формулы (первая формула считает коэффициент победы только на определенном конкурсе), тенденцию (среднее арифметическое) и количество участий. Вот её можно использовать для сравнения успешности со всех конкурсов.
А = сумма коэффициентов побед с первой формулы
В = среднее арифметическое (сумма коэффициентов / количество участий)
С = количество участий
(А*В)/С
Пример использования:
Черепаха:
(71,08*11,8466)/6=140,3427
Herzenrg:
(44,97*6,4242)/7=41,2708
Второй вариант записи формулы:
A^2/C^2
71,08^2/6^2=140,34
титан участвовавший во всех гаминаторах и проигравший каждый из них титанистее того, который выиграл три и свалил
> титан участвовавший во всех гаминаторах и проигравший каждый из них титанистее того, который выиграл три и свалил
Спорно. Это значит что у второго титана могли быть другие проекты или конкурсы, но хотя бы в трех он оказался круче первого титана.
Я немного подправил свою формулу, так как в прошлом варианте там по сути простое среднее, которой пофиг на количество участий и смотрит только на средний балл. Новая же формула смотрит только на успешность участия в конкурсе в зависимости от количества участий. Участник, заработавший, например, 10 баллов за 1 участие будет успешнее участника, заработавший те же 10 баллов за 10 участий (тут очевидно что в каждом конкурсе участник зарабатывает по 1 баллу в отличие от первого, который за 1 конкурс заработал сразу 10 баллов). Можно кстати считать и по первой моей формуле, но только при условии, что количество участий у участников будет одинаковым. В этом кстати и есть преимущество второй формулы, что она смотрит на количество участий и на сумму коэффициентов.
А = коэффициент
С = количество участий
A^2/C
71,08^2/6=842,06
44,97^2/7=288,9
Из этого следует, что Черепаха в 3 раза успешнее выступает в конкурсах, чем Herzenrg. Что логично, так как у первого участника 5 первых мест из 6, а у второго 3 первых мест из 7 и еще 15 место повлияло на общий коэффициент успешности.
И еще первая формула смотрит на масштабность конкурса. Если, допустим, первый участник занял первое место в крутом конкурсе, где было 100 участников и 200 голосующих, то он может обогнать других участников, участвовавшие в нескольких конкурсах по-меньше и занявшие в них первые места.
Вроде все предусмотрел.
А могли бы игры делать![q6VzhyF](https://i.imgur.com/q6VzhyF.png)
А кто-то уже мог бы и сиськи дорисовать...
"До...?" Разве я уже не закончил тот рисунок? о_0
К тому же, если уж что там и требует доработки в первую очередь, то щачло хД
Зачем сиськи, когда есть генераторы подземелий :3
М-да. Понятно.
И да
Это чушь какая-то.
Короче, как бы вы ни считали, как ни изгалялись, а черепаха — Босс гаминских конкурсов. Так что когда в следующий раз будете различными органами мериться, не забудьте, кто здесь главный геймдизайнер.
Хороший пример, кстати, как пиар работает. Думаю, что многие из вас и не думали, что черепаха такой крутой. Мы-то привыкли других персонажей в эфире наблюдать с пиаром их достижений. А черепаха приходит, выигрывает конкурс и молча уходит.
https://store.steampowered.com/publisher/AleksandrGolovkin
Игры эчи в стиме. Да, большинство из них бесплатные, но идите наберите столько обзоров своими бесплатными играми. Слышали ли мы какую-то браваду от эчи здесь? Тыкал ли он нас носом в говно? Выплатил ли он ипотеку со своих заработков? Очередная порция риторических вопросов.
Кончай сам с собой разговаривать, обратись к специалисту.
Это к чему коммент? Так просто, нахамить на ровном месте?
Это не наезд. 3 комментария подряд выглядит как будто ты просто отвечаешь сам себе.
У меня просто нет твоей дебильной манеры править написанные комменты (особенно это приятно, когда ты отвечал на коммент, а ты за это время его исправил).
А я считаю дебильным писать портянку вместо того чтобы все это поместить в один коммент.
Раз есть возможность некоторое время править комменты и посты - грех не пользоваться.
Можно провести опрос чей метод более дебильный.
Нифига себе, я не замечал, что Territory Idle - это его игра. Она была довольно успешно принята в комьюнити idle игр.
А ты играл, да? Нету у меня времени, к сожалению, чтоб обновлять эту игру.
Да, но видимо не пробился через одно из ранних плато и забыл про игрушку, сейчас увидел в стиме, что ты ещё кучу всего добавлял, включая космос и колонизацию.
А там вроде так и есть, вначале туго, а потом попроще. Не особо это правильно, но вот так ))
Там много чего можно было бы еще добавить. Но я занимаюсь двумя другими играми, которые сейчас в раннем доступе.
Плюс ввязался в авантюру с новой игрой. Делаю игру слегка по мотивам SwarmSim.
Если ещё не видел, зацени как-нибудь Evolve Idle для вдоховения, у них хорошо получилось разнообразить раны, и много раз смещать парадигму. Если бы они сделали нормальный оффлайн прогресс, то она бы сместила в моём топе NGU IDLE, но судя по страшному коду в репозитории , это наверное было бы очень сложно.
Спасибо! Как раз не играл. Поиграю.
Может, мне тебе новую свою игру отправить, когда она будет на уровне ранней альфы?
А почему ты, кстати, под разными издателями выпускаешь последнее время? При этом по ссылке все ведут на один аккаунт.
Да в стиме как-то муторно эта настройка работает. Я хочу чтоб те игры, над которыми я работаю, были на моей странице издателя, так что я добавил их туда. Но почему-то после этого стим при клике по издателям кидает на мою страничку, хотя этого-то я не хотел.
А так, YDKR это то что мы с моим другом Юрой делаем. EvilCharm Games - то что мы делаем с другим моим другом, Стасом.
запустил grimClicker, расчудеснейшая вещь, оторваться не могу. Спасибо
Сейчас довольно сильно придавила учёба, а так давай, было бы круто
50 лет я даже купил. Не шедевр, конечно.
На слуху тут сплошной Кситилон, т.к. он в каждой бочке затычка. И еще некоторые.
Надо "Страну возможностей" выпустить в Стим.
По этой же схеме выше Козинака оказался самым хайповым геймдизайнером.
Не, я запомнил. Смола. Она была из самого-самого крутого на здешних конкурсах.
Но в мой личный топ, пожалуй, входят не только победители Гаминаторов. Среди просто участвовавших игр было много хорошего.
А в руках у Титанов среди Титанов - Титанические-из-Титанических инструментов для вершения Титанических-из-Титанических дел:
А значит:
Места, которые занимают игроделы на Гамаке: Второе+
Места, которые занимают игроделы на Юнити: Восьмое+
Бытие определяет сознание, а инструмент - насколько ты с ним воюешь, а насколько делаешь игру.
Ключевой вопрос - всё ли что черепаха делал на SFML, можно было сделать и на Гамаке? Деритесь.
И не забывайте кидать лопаты! Кидайте пока ловлю, потом проверять не буду и промахнётесь!
Еще можно заметить такую тенденцию, что у гмако-чемпионов в среднем больше игр!
Потому что на гамаке все делается быстро, легко, удобно и (как доказали только что титаны) на высшем уровне! Преклоняюсь перед великим Марком Овермарсом, давшим путевку в жизнь и мне в том числе!!
драка не нужна. Странно что никто не замечает, что рейтинг не указывает лучших игр. Он указывает игры за которые лучше проголосовали. А это, в лучшем случае, игры которые лучше продались как товар, но никак не лучшие в искусстве геймдизайна.
Таким образом единственное, что мы получим - лучшие манипуляторы массовым сознанием сидят на гамаке(а лучшие игроделы и игроки, качество продуктов всей индустрии только страдают от такого количества самозванцев на фейковом движке)
И тут я отсылаю зрителей к своему недавнему комментарию: https://gamin.me/posts/21276?comment=278683#comment_278683
черепаха более лучший выигрыватель конкурсов, это безусловно. хоть по среднему меряй, хоть по медиане. Но когда самая всем очевидно качественная и многообещающая игра всех гаминаторов за шесть лет занимает 15 место - понятно становится кто из них двоих конкурсник, а кто игродел.
(а Долин не должен быть в списке? казалось, что тоже что-то где-то активно побеждал)
Ну, это вброс. Тут многие даже не назовут о какой ты игре сейчас.
ну если ты не считаешь, что она лучшая, тогда пусть: самая всем, кроме Ксита, очевидно качественная и многообещающая игра всех гаминаторов за шесть лет)
Другое дело!
нее. AnnTenna.
запилить игру на рпгмейке продающуюся в стиме! а рейтинги котенка в стиме? а дрянька на олдгеймз и смоллгеймз?! Антенна это СБ современности
Дрянька начата в 2008 году, а свой отзыв на почту я писал по ней где-то в 2012. Такая себе современность, но титаном назвать можно, хоть это уже не контекст Гаминаторов.
Это сверх-троллинг такой, да? Ты подмигни что ли как-нибудь.
Кто это Долин?
> многообещающая игра всех гаминаторов за шесть лет занимает 15 место
Если это Сундук Хейзера, то даже ты сам не отдал ему первое место...
Долин это Малец.
А малец я не помню, чтобы побеждал. Там еще куча КОДов ведь без победителей. Может он чаще там участвовал.
Так и есть.
"сам не отдал ему первое место"
потому что любовь - она не в циферках.
Помним ли мы бумажное подземелье, ждем ли его так как выхода Сундука?
А кто-то ждет выхода Сундука?
Я надеюсь, ты угораешь там, сидя за клавой.
Оно и так где только не, куда ещё ждать?
Так а нет критериев лучшего искусства геймдизайна (получается, есть и техника геймдизайна? Похоже на правду ведь). Фломастеры слишком разные, кто-то хочет играть исключительно в один жанр, кто-то в другой, и это нормально. Игры Эхи - для головного мозга, а Хейзера - для спинного, и как их тогда сравнивать?
Гамин очень ценен именно тем, что тут типичные массовые потребители если и сидят, то не преобладают. Это нишевая статистика, по нишевым ценителям. Тут можно только дальше раздувать "а вот есть ещё нише-нишевые special snowflakes". Есть конечно.
Приветствую составление тобой своего, правильного рейтинга геймдизайнеров.
Это кроме шуток, интересно узнать что думаешь на тему и как составил бы критерии, что засчитывал бы кому.
кроме шуток я на эту тему высказывать вообще отказываюсь)
защитать можно Казинаке - не знаю ни одной игры гаминцев, настолько же сильно хайпанувшей. И за нее же лишить звания - как за наиболее казуальную
> защитать можно Казинаке - не знаю ни одной игры гаминцев, настолько же сильно хайпанувшей.
И опять я отошлю к своему недавнему комментарию: https://gamin.me/posts/21276?comment=278683#comment_278683
Ну все, начали высасывать из пальца "почему Гамак для конкурсов лучше".
Инквизитору нужно, чтобы все движки кроме гамака были сожжены.
parsec> Почему, когда выходит новость о новой версии какого-либо языка, на ЛОРе начинается джихад в комментариях га n>5 страниц?
makoven> Потомучто мальчики выбирают языки как девочки парней: их много снуёт вокруг, у каждого свои плюсы и минусы, а любовь надо отдать одному единственному. Иногда двум-трем. И уж если выбрирать (язык) то такой, с которым будет более-менее приятно сношаться длительное время на регулярной основе, получая взамен максимум выгоды.
makoven> Поэтому неудевительно, что подружки, выбравшие другого (технологию) так и норовят поиздеваться над тобой. Это они так завидуют и пытаются убедить сами себя в правильности своего выбора.
Коко на Фейзере делал же
На Юнити тоже. Добавил Фейзер.
я кстати не Flash использовал, а Stencyl (на чистом флеше не делал игр и Action Script не знал)
ещё использовал Tic-80 и Blitz Max (а вот Pico-8 на конкурсах никогда не юзал, вроде, только изучал)
(хотя насчёт Tic-80 тоже не помню точно, использовал ли в конкурсах, забыл...)
А Daring Do? На Стенсиле?
Хорошо, добавил.
да)
Вот кстати об удобстве Game Maker. Пытаюсь сейчас выбрать из двух объектов в редактировании комнаты,
тот который якобы ближе, ибо он перекрывает более большой объект, но почему-то пытаясь кликнуть объект и сдвинуть, то сдвигается тот дальний и большой объект (то есть вместо персонажа задник перемещается, хотя тут видно что задник стоит за персонажем, хз как с этим бороться)
я с этим борюсь, спавня обьекты кодом х)
(ну кроме например стен каких-то)
Блин, я думал это решаемо) например какую-то просто кнопку зажать дополнительную Т_Т
Во втором ГМС есть слои, а в первом их нет, так что приходится выкручиваться. Как вариант, можно всем объектам давать маски вместо используемых спрайтов, меняя их кодом при загрузке.
в принципе если я не ошибаюсь можно объекты лочить, или "назад убирать". но оно всё равно не оч удобно... я в этот раз решил тайледом пользоваться, но его изучать приходится =)
Как уже успел заметить Раззл, в актуальной версии ГМа такой проблемы нет.
Я, кстати, редактором комнаты ни разу не пользовался. Даже когда платформер делал.
Да ладно, и в Ринго тоже? А как же тот самый балкон работает? Стены-то хоть ставил?
Нет, редактор комнат девственно чист у меня всегда.
Объекты и все прочее я добавляю в Creation Code комнаты, а комнаты делятся по функционалу: титры, опции, игровой мир, выбор сейва и т.д. Вся игра по сути происходит в одной комнате, где я кодом расставляю все в зависимости от локации. А координаты и прочие атрибуты того, что нужно расставить, я храню в экселе, из которого макросом собираю .тхт (фактически как бд). А в игре в гриды их собираю вначале и потом обращаюсь. Очень удобно. То есть все данные у меня в "бд" экселя лежат.
Это ж как же плотно надо всё планировать до и тестировать после. Стальная методология!
Почему? Наоборот, цифру в экселе поменял и все готово.
Наверное я не догнал как это работает. В редакторе румов ты положил картинку, её непроходимые места замостил объектами-стенами, которые не дают пройти через себя, и координаты сами там задались. А в таблицу цифры как писать?
Ответил ниже.
Если многоугольники, то я пару часов назад Алексу сделал код, который как раз к этому случаю очень сильно относится. Собрал на ГМ8.1 демку.
https://www.dropbox.com/s/jw8n8wyjcphihma/FreeformWall.gm81?dl=0
Восьмого гм у меня на этом компе нет, и я не понял к какому случаю что относится, если честно. Говорили про то, как стены расставляются. В редакторе или нет. Про обработку столкновений речи не шло.
Запустил на студии. А в чем смысл демки?
Там можно врезаться в стены под любым углом. Ты просто рисуешь сразу как тебе надо чтоб вся локация ограничивалась. Если одними прямыми линиями, то оно даже дрожать перестаёт если идти прям вплотную к стенке.
То есть стены в этом случае ставить вообще не надо, только один объект "все стены" на всю локацию (если она не огромная, для пиксель-артных игр-то 1000x300 вполне).
Но конечно можно ставить мелкие стены отдельно, если прокатит обойтись одними ими.
Да, работает все гладко, класс. В своем случае с жрпг я делал вот такой спрайт-маску, а в экселе писал, что в такой-то локации такой-то спрайт является маской )
Почему я в ринго не стал так делать, потому что где-то писали давным давно, что пресайз столкновения это долгая операция, поэтому если можно обойтись чем-то другим, то я стараюсь обойтись чем-то другим. В жрпг у меня были локации под разными углами (как в фф7, к примеру), поэтому там прямоугольниками уже было не обойтись, и там я делал такой спрайт маску, да. Но в редактор ведь все равно его можно не добавлять. Рисуется он в стороннем визуальном редакторе, а потом просто добавляется в игру.
Ага, напугали когда-то пресайз коллиженами. Причем, вроде, сама справке ГМа и пугает ими, типа, медленно.
Прикольный скрипт.
Такую сложную геометрию я, конечно же, в экселе не могу сделать, если ты к этому кинул. Но как ты наверно догадываешься, в текущих играх она мне была не нужна.
Вот в жрпг как раз ) Там я делал уже как-то по другому через пресайз коллижн хитрого спрайта.
Ну и конечно прикол в том всегда, что когда я смотрю чужой код или читаю ваши рассуждения о программировании (даже на гм) у меня через три строчки в голове появляется туман ))
Я точно так же читаю чужие обсуждения кода на том же ГМе. Все что-то своё лепят. Но этот код, я думаю, модифицировать уже не понадобится, для заявленной цели. Буду рад если он на что-то сгодится.
По поводу затратности пресайз-коллизий - не знаю, я этот пример на коленке собрал, надо смотреть на чём-то большом.
Надо будет глянуть какой у меня был код на этот случай, но навскидку твой мне нравится. И я никогда не думал делать маску круглой у персонажа, всегда прямоугольником. А это ведь хорошая идея, чтобы в углы не залезать и не цепляться.
Там суть в том что проверяется 8 кругов вокруг центра, все на одинаковом расстоянии. И какой срабатывает, такой и отталкивает персонажа назад на 1 пиксел в противоположном направлении.
Синее расстояние - это third (одна треть от ширины спрайта), зелёное - это sixth (одна шестая, это радиус каждого круглого детектора коллизии).
Занятно.
Крутая система! Правда я пока решил остановиться на простой квадратной коллизии,
чтоб не усложнять конкурсный проект.
Запихать все тайлы в инфу массива, и сделать мини-скрипт столкновения,
точнее взять со своей старой игры на Tic-80
Хах, идентификатор картриджа - 999!
До тысячи не дотянул)
Спасибо! Гляну)
o_____O
Чего? )) Опять как-то по другому надо было делать? ))
Ничего не говорю, как надо, просто удивляюсь такому подходу. А в чём профит по сравнению с тем, чтобы в редакторе комнат расставить? Со стороны выглядит, как куча нудной ручной работы в этом самом экселе, но я могу чего-то не понимать.
Ну давай хотя бы стены возьмем невидимые. Вот у меня 60 где-то локаций разных, стены тоже везде разные по размеру.
Сейчас у меня есть простая таблица, в которой написано, что в такой-то локации, в такой-то точке построй такой-то многоугольник.
А ты предлагаешь как сделать? Навырезать на каждый случай спрайтов-стен и руками их выставлять в 60-ти комнатах?
о_О ого, я думал вся эта красота в редакторе сделана
Красота обычно нарисована одним сплошным изображением, зачем ей редактор? Он нужен для того чтобы уже расставить какие-то пути движения и отдельные объекты типа будок и заборов.
Ну допустим. Но стены-то ты кодом спаунишь?
Да. Там довольно хитрая у меня система. Я задаю координаты, а потом в игре создаю временный спрайт на основе этих координат и втыкаю его как стену.
SFML не подвел. По сути это вариант "нет движка /свой движок", ведь sfml, как известно, не движок. И этот вариант выбирают примерно все мои инди-кумиры - Тарас, Бобров, DarkGod, авторы других крутых рогаликов. А гамак с юнити - да, выбор большинства, но успеха не гарантирует.
Ах, если бы было средство, гарантирующее успех...
Это средство — движок, который используют FromSoftware. Сами посудите — у них с 2009 года что ни игра — то успех. Но они не дураки и движком не делятся. Хотя могли бы на порядок увеличить количество хороших игр, просто разрешив лицензировать их движок сторонним разработчикам. Очень эгоистично с их стороны 😠
Для версии нулевых фромовского движка таки есть возможность каждому попробовать свои силы на ПК. http://www.hardcoregaming101.net/sword-of-moonlight-kings-field-making-tool/
Это для нишевого успеха!
На итч.ио написано "Made with SFML", уже лучше чем ничего.
Черепаха, какой язык ты используешь-то в итоге?
Там для одной игры написано сделано на юнити. Так что давай, исправляй свою таблицу.
https://aax.itch.io/h001 - эта? Не Гаминаторская.
С++/sfml использовал только для Metrodrome и Смолы, для un и Lucid был С с прямым использованием win32 API. А сейчас вот учу относительно новый Zig, на ГБР использую Zig/OpenGL, пока что такое комбо очень сильно нравится.
Крайне диковинно. Zig не пишу, так как тут о Гаминаторах тема. Си добавил, спасибо за инфу.
а зачем? без подъёба спрашиваю, просто в чём профит языка? если судить по офсайту, это очередной убийца Си?
Ну, мне лично очень нравится, он сохраняет все хорошие стороны Си, при этом устраняя сложности связанные с препроцессором и undefined behavior. Comptime исполение кода - крутейшая фича. Это все равно если бы макросы Си были написаны в самом Си. Навскидку, там еще хороший error handling, стандартная библиотека довольно полная и приятная.
Я смотрел еще на насколько языков для изучения после использования Си на протяжении наскольких лет, все имеют какие-то изьяны. Rust неплох, но скорость компиляции просто неприемлема лично для меня. Crystal, Nim - выглядят очень интересно, но они к сожалению garbage collected. Про С++ просто ничено не буду писать, просто отвратительный язык с точки зрения удовольствия писания, после ~5 лет использования просто выворачивает когда вижу С++ код. Jai от Блоу жду, но вот уже несколько лет никак не дождусь.
При том что я сам Си евангелист, если так могу сам назваться, Zig это почти точно как я себе представляю Си без всех его кучи изьянов.
Прикольно, спасибо.
И сильно сырой?
это вроде constexpr из C++?
Совсем даже не сырой, я встречал баг в компиляторе только раз за приблизительно пол года использования, при том что это еще не 1.0. И из фич у них уже есть все что нужно для удобного использования.
Constexpr в Плюсах очень неуклюжий по моему опыту. Каюсь, что может недостаточно его использовал, но возможно это только потому что его так неудобно изпользовать. Constexpr к Плюсам прикостыляли не сразу, в то время как в Zig сразу видно что comptime/runtime разделение было у авторов на уму с самого начала. Пока не встречалось в Zig моментов когда comptime код работал как-то непонятно или вообще бросал ошибками не понятно почему.
А что за баг кстати?
Просто тот же Nim, хоть уже и 1.x, до сих пор вроде какое-то стрёмное глюкалово
А на D ты не писал никогда?
Баг совсем незначительный, сложно случайно словить, вот к нему Issue на Гитхабе: https://github.com/ziglang/zig/issues/6768. Zig я бы уже смело назвал 1.0, если кто-либо бы спрашивал моего мнения.
D не пробовал, нет. Насколько знаю, там ведь тоже GC?
Спасибо. Сразу видно ленивое вычисление логических операций)
вроде можно без коллектора, но врать не буду
GC в D, строго говоря, опционален и может быть отключён, но бóльшая часть стандартной библиотеки после этого начнёт подтекать.
Настоящий сишник всегда пишет свою стандартную библиотеку
А потом поднимает на смех ГМщика который пишет полторы собственные функции чтоб дополнить встроенный функционал до нужного в конкретной игре. Лалки. :yak:
Пример использования из твоей практики можно?
https://en.wikipedia.org/wiki/Compile_time_function_execution
Тут всё слишком абстрактное и одноразовое, математика ради математики.
Например, у меня почти все сущности (различные
struct
ы) на уровне имеют полеdisposable: bool
, которое еслиtrue
, то я хочу такую сущность убрать изArrayList
а на уровне и заодно подчистить всю динамическую память сущности.Можно бы такую проверку и подчистку сделать 10 раз для каждого типа сущностей, а-ля для
Enemy
:Тоесть 10 раз копи-пастить тот же самый код, подменяя
Enemy
наParticle
например.А сейчас если использовать
comptime
слово, можно написать дженерик функцию для чищения какого-либо угодного comptime-известного типа:И потом вся чистка 10 гипотетических типов обьектов сводится только к 1 вызову функции на обьект:
При этом использование функции
entityDispose
на несуществующем типе, или типе у которого не будет поляdisposable
- сгенерирует compile time ошибки, что очевидно в разы лучше чем если бы игра вывалилась где-то уже у игрока.ой, это же жабаскрипт :-)
А в каком контексте ты хочешь убирать сущности с
disposable==true
? Это тебе нужно делать между уровнями, между неигровыми вещами типа катсцен, в конце?ArrayList
хранит текущий списокstruct
'ов, я так понял.Ты имеешь в виду то что обычно пишут в деструкторы классов?
Это новый тип данных такой?! XD Видимо часть какого-то нового хитрого синтаксиса?
Хм... А нельзя ли, скажем, унаследовать
struct
'ы от некоего абстрактного, или имплементировать интерфейс IDisposable (правда это уже C#, но вдруг есть аналогичные приёмы) и делать что-то вроде такого?Такую подчистку делаю на каждом игровом фрейме. Это чтобы разделить по премени чистку разных обьектов и их логику. Да, храню
struct
ы вArrayList
aх в этом примере.Нет
!void
- это синтаксический сахар, означает что функция возвращаетunion
либоvoid
а, либо какого-нибудьerror
a. Может быть, например, у функции-конструктора врага, быть return type!Enemy
если в ней есть код, который может бросить ошибкой в рантайме.В Zig, как и в Си, нету наследования, что по моему мнению жирный плюс. Иначе получился бы очередной недо-С++. Как по мне метапрограммирование разнородное намного приятнее и изящнее решает проблему генерализации, чем ОО-парадигма, которая в теории изящна но на практике часто выливается в написание простыней из тысячей строчек кода.
Спасибо за пояснения. Довольно премудро это всё.
Я вот не знаю, опять что ли ввязываться в холивор по поводу "ОО-парадигмы"? Я практик чего-то объектно-ориентированного в ГМе, но не знаю чего именно - недавно вот оказалось, что если в унаследованном объекте (классе) не имплементируется какой-то из унаследованных членов, то это тогда не наследование, но если остальные члены автоматически наследуются, а часть других оверрайдится, то что это вообще такое?
В моей практике нет никаких простыней из тысяч строк кода - ни обусловленных чем-то ООПшным, ни обусловленных чем-либо ещё другим. "Приятнее и изящнее" это то что я сказал бы про GML не во всех, но в очень многих случаях по сравнению с C#, частично JS и особенно Java.
Пока что получается:
Против:
И против того что у тебя выше. Пока что выигрыша не видно. Но если надо сопоставлять с не-ООП-языками, то я попросту не знаю как это сделать. Нужен показательный конкретный один проект, где можно было бы всё между собой сравнить.
constexpr в ГМе, к сожалению, не имеется, и на горизонте ничего подобного не видно. Отлов ошибок в compile-time это конечно круто, нет вопросов.
Согласен, на этом и предлагаю остановиться, и вообще жалею что бросил сюда свои мысли по поводу ООП. Это не более чем мои собственные мысли, а они не многое значат :) Peace
Это было не лишним, наоборот очень интересно узнать, как там всё выглядит изнутри. Извини если задел.
Я кстати уже по тихой освоился с этой командой with, правда не знаю что надо писать,
когда нужно использовать переменные объекта в котором и пишем код с with, но вроде локальные переменные проходят, использую локальные переменные с var
куда сложнее, если нужно передать например урон объекта всем врагам, приходится тоже локальную юзать
Для работы с вызвавшим:
Для передачи чего-то всем:
ещё можно как ксит писал:
обращаться...
Спасибо)
Как жеж без наследования то? Тядко наверное создавать несколько сущностей одного типа, с различными характеристиками. Ведь гораздо удобнее создать один клас, к примеру enemy, и от него наследовать кучу других врагов с разными характеристиками, но одного семейства. Или под наследованием понимается что-то другое?
Ну вот допустим есть у нас обычные враги с обычной логикой. Потом добавляем стреляющих врагов как наследника, меняем ту логику которую надо, сделали кучу разных наследников стреляющих ракетами или лазером. Потом добавляем телепортирующихся врагов, вроде тоже все ок. Тоже наследников можно, телепортирующихся рандомно или по вейпоинтам или телепортирующих союзников. А потом у нас появился враг который должен и стрелять и телепортироваться. И начинается ромбовидное наследование / всякие костыли с интерфейсами / дублирование кода. А если бы сразу использовали композицию, то и проблемы бы не возникло.
А как эта задача по-умному решается методом композирования?
Без ромбовидного наследования и интерфейсов? о_0
Если что, я не настоящий сварщик и обычно наследование применяю. И монстров тыщу раз наследовал, но в данном случае вроде все очевидно.
В простом случае - делаем у монстра флаг летает/не летает, стреляет /не стреляет и фигачим все в одном классе, наследование не понадобилось. Максимум что потребуется рефакторить для комбинированного монстра - если в не думали что монстр может и летать и телепортироваться, то сделали одно поле "тип монстра", а надо будет разбить на два флага. Да, это типа "не по архитектуре", но для простой игры сойдёт.
Ну а если сложный случай и как я изначально написал десяток разных повелений - просто логика относящаяся ко всем монстрам будет в классе Монстр, а то что относится к способностям - в классе Способность. Ну и при рефакторинге мы вместо одного поля "способность" сделанного когда мы не думали что можно и летать и телепортироваться сделаем список способностей.
Делаем компонент, реализующий телепортацию, делаем компонент, реализующий стрельбу. При создании сущности даем ей оба компонента.
Так это работает в Юнити, например.
Опять эти мифические монстры, которых в ГМе нет. (последнее есть, когда руки кривые/мало времени)
Я уже начинаю подозревать что происходящее в нём описывается как "полу-ООП с полу-ECS".
Ну так вопрос не от гмщика был. Гмщику я бы на тот же вопрос ответил "дублирование кода / отказ от наследования и переделка всего на композицию".
SFML это низкоуровневая библиотека с функциями вида "создать окно", "получить событие ввода", "нарисовать треугольник" "добавить объект треугольника в список на отрисовку" для тех кто не хочет возиться с уровнем ОС. Бобров, например, SDL использует, который примерно того же уровня.
Это, бесспорно, лучше чем ничего (я и сам ей пользуюсь, лол), но на движок не тянет. Судя по бинарнику в Смоле С++.
На всякий случай напомню: перечислялись Титанические-Из-Титанических инструментов, не обязательно движки. Я же там и HTML5 вписал - это не движок, а язык разметки.
Титанический Win32 API как волшебная палочка лучшего инди-геймдевелопера Гаминаторов... уххх. Даже не знаю что страннее, это, или то что "раздают" инди-игру Cave Story на клиенте от создателей Анриала. Какие-то понятия из разных миров. Но игры есть, и это главное.
Вижу, что ты даже указал мне Юнити, но если одно использование делает погоду, то можно вне скобок вынести. Эхопион-0 у меня на Юнити на Гаминатор-20.
Блин, точно. Значит меняю с "не на Гаминаторе" на "один раз Юнити". И увеличиваю с 2 до 3 счётчик.
Титан титанов — это метатитан!
Титанище
титаноиды
Вывод: самым наититанистым из всех титанов является alexsilent, потому что 9.5 больше, чем 1.83.![zTvsmiV](https://i.imgur.com/zTvsmiV.gif)
Да я вначале не вкурил откуда у меня такой рейтинг, а потом понял что это среднее место (хз как более правильнее назвать... средняя цифра конкурсных позиций?! о_О лол). :'D
PS хотя по идее я не должен был появиться в топе, ибо я больше участвовал в конкурсах, чем отправлял на голосование (много было недоделок).
Недоделки я ни у кого не считал, только игры, которые дошли до голосования.
Вопрос по конкурсу МП3.ЕХЕ
https://gamin.me/compos/mp3-exe/1/nominations/78
Почему у черепахи тоже первое место, хотя у него меньше баллов чем у ДаркДеса?
Там вроде кто-то проголосовал после дедлайна или что-то такое, как я помню (и его голос как бы аннулирован)
Поебдила дружба.
=======
Титан титанов это Эрен Йегер
Ещё вариант: титан титанов - это ферротитан.
Побздила друзжба.
Максимально пристрастный подсчет.
Обновил.
Ты же вроде считал только для гаминаторов?
Нет.