TGViewer
Channel Public Channel
Doing It Wrong

Doing It Wrong

@itisdonewrong

Делаю чёт прикольное.

@tetrergeru

Расскажи друзьям!
Subscribers
158
Photos
52
Videos
0
Links
13
Recent Posts 17 shown
Post #99 368
31.

Новости Ludum Dare к этому часу:

- Прошёл 59-й Ludum Dare — один из самый больших геймджемов (игровых хакатонов)
- Мы в нём поучаствовали!! (играть тут)
- Текущий хост LD заявил, что он устал и 64-й будет последним

Темой этого джема был «сигнал» и она выглядит удивительно хорошо. Обычно темы джемов специально созданы, чтобы заставить нас страдать. Но в этот раз мы страдали по собственному желанию. Процесс изобретения идеи занял весь первый день и шёл очень туго. Мы разработали целую классификацию идей про сигналы, от которой в итоге не было никакого проку.

Среди отброшенных идея был ужастик про семафор. В нём игрок должен был управлять башней оптического телеграфа и передавать сообщения дальше по линии. Потом появился бы монстр, от которого надо было бы прятаться, попутно стараясь послать сигнал бедствия.

Ещё отказались от идеи сделать метроидванию про потерпевшего крушение космонавта, который собирает по всей планете запчасти и чинит своё радио, чтобы послать сигнал бедствия.

Дольше всего мы отказывались от идеи игры про маяк в красивом, но страшном бушующем море. Это должна была быть игра с минимумом геймплея, в которой надо было бы лишь только добраться до маяка по красивому миру (и, как ни странно, НЕ послать сигнал бедствия!). Основным аргументом против стало то, что мы, блин, не успеем сделать такую красоту, чтобы оправдать отсутствие геймплея.

Финальной идеей, от которой мы не успели отказаться, стала игра про мальчика, которого родители отправили на лето в деревню к бабушке с дедушкой. Бабушка ушла в магазин, а главный герой решился забраться повыше, чтобы поймать сигнал. А для этого надо построить башню из всего, да чего доберутся руки.

Мы навали это «BABUSHKA TOWER»

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

Если у вас игра не работает на itch.io, можно поиграть на github pages. Ещё есть невероятный спидран от того самого брата
  • ❤ 11
  • 🔥 6
  • 👏 1
Post #98 1.16K
30.

Только что закончился очередной LudumDare (подробнее про геймджемы я уже как-то писал). В этот раз мы делали игру про исследование подводного мира и из этого проистекает очевидная проблема: в условиях плохой видимости исследовать очень сложно, а без плохой видимости, подвода совсем не ощущается как подвода. Мы уже делали игру про исследование, и там плейтесты показали, что игроки теряются без возможности найтись.

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

Наша верёвка — это просто последовательность точек. Причём первая точка всегда привязана к базе, а последняя — к игроку. Для начала надо было научиться выбрасывать за собой нить. Для этого смотрим на расстояние между текущим положением игрока и предыдущим звеном верёвки и если оно стало больше длины звена — добавляем текущее положение в последовательность.

Результат уже будет выглядеть довольно симпатично. Но вот только верёвки так себя не ведут, нужно её как-то стягивать. Честно симулировать физику верёвки звучит сложновато, так что применяем хак: проходимся по всем тройкам точек из которых состоит верёвка. Находим вектор их выпрямления (как надо сдвинуть среднюю точку, чтобы все три оказались на одной линии) и пытаемся сдвинуть (естественно с некоторым ограничением на скорость сдвигания).

Это выглядит довольно красиво, но полностью игнорирует наличие физических объектов. Чтобы это исправить добавляем проверку: если на пути верёвки после сдвига есть какой-то физический объект — сдвиг не осуществляем. Теперь можно обмотать клубком ниток какой-нибудь подводный остров!

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

Ура? В целом да, однако верёвка всё ещё любит застревать в текстурах, а игрок в процессе отматывания вынужден иногда прерываться на то чтобы распутаться (а решение этой проблемы сильно выходило за временные рамки джема). Насколько эта механика помогает не потеряться в атмосферном подводном приключении — можете проверить сами, поиграв в Crab with a Hook! (Игра, кстати, довольно неплохо работает в браузере, так что качать ничего не придётся).
  • ❤‍🔥 7
  • 🔥 5
  • 👍 2
  • ❤ 1
Post #96 717
  • ❤‍🔥 7
Post #95 1.33K
29.

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

Но во всех городах, где мне доводилось жить, возникали какие-то непреодолимые вело-трудности:
- В Ростове-на-Дону (в России) совсем нет инфраструктуры, а по автодорогам ездить страшновато,
- В Тбилиси (в Грузии) слишком горно, хоть велосипед был, но выгулять его выходило не часто,
- Херцег Нови (в Черногории) не просто горный, но ещё и очень маленький, так что тратиться на велосипед было слишком жадно.

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

Но вот, волею судеб я оказался в славном городе Нови Сад (в Сербии), и он ощущается буквально как туториал в игре про велосипеды: тут полно велодорожек, велосипедистов, велопарковок, веломастерских и даже есть велокофейня, в которой я завёл себе велодрузей. Но главное всё абсолютно плоское!

Можно ездить по набережной (сложность новичок) видно Дунай и нет совершенно никаких препятствий, можно ездить по велодорожкам вдоль крупных улиц (сложность ученик) придётся ехать в велопотоке с велокурьерами и пересекать дороги по переходам, есть одинокая гора Фрушка, в сторону которой идёт несколько дорог с подъёмами разной степени злобности (сложность адепт). Стабильно ездить горку я так пока что и не научился, но процесс идёт.

Где-то год назад я купил тут велосипед и с тех пор регулярно на нём езжу и записываю маршруты поездок в приложение strava (не реклама, его и без меня знают все, кто занимается хоть велосипедами, хоть бегом). Неделю назад я полез в его апи, выгружать данные о своих поездках, а дальше всё как в тумане. Быстренько сделал на коленке программу, которая делает мне видео со всеми поездками и накладывает его на карту.

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

Исходники на гитхабе (код ужасен, смотреть только на свой страх и риск!)
  • ❤‍🔥 11
  • ❤ 3
  • 👍 2
  • 😎 2
Post #94 1.01K
  • ❤‍🔥 3
Post #93 1.07K
28.

3d-моделирование — это один из многих навыков, к которым открывает путь маломальское умение рисовать. Основной навык, который переносится из 2d в 3d — это возможность критически посмотреть на результат, осознать что именно в нём выглядит отвратительно и как это можно исправить. Ещё в целом помогает умение обращаться с графическим планшетом. А рисование текстур — это почти полностью 2d-навык.

Обычно все 3d-модели состоят из точек в трёхмерном пространстве, на которые натянуты полигоны (3, 4, ... -угольники) Если полигоны не бросаются в глаза, значит они очень маленькие и, соответственно, их очень много. Так устроены не только реалистичные модели, но и стилизованные модели, которые должны выглядеть округло — гладкий силуэт невозможно получить без дополнительной геометрии. Но есть стили, которые нарочито выставляют свои полигоны напоказ — их традиционно называют лоуполи.

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

Чтобы сделать модель, сначала надо взять набор стандартных геометрических фигур (чаще всего кубов и цилиндров, но иногда пригождается и специальный чайник, в обязательном порядке встроенный в каждую программу для 3d-моделирования). Их затем можно резать несколькими способами: нож просто добавляет новые точки в произвольных местах полигона, лупкат (циклический разрез) пытается сделать разрез вдоль всей модели, сабдивайд делит полигон на много маленьких полигончиков. Ещё можно вытягивать полигоны из существующих и соединять полигонами одинокие точки.

Всю эту геометрию надо аккуратно привести к желаемому виду. Можно руками аккуратно двигать вершины и целые многоугольники, и этим придётся как следует позаниматься (есть отдельная кнопка, включающая симметрию, так что задача упрощается в два раза). Ещё можно скульптить — жамкать модельку как пластилиновую фигурку, добавляя и убирая объёмы. Это особенно полезно, когда хочется получить органически выглядящий внешний вид. Про скульптинг и приколы связанные с ним я расскажу подробнее, когда напишу про свои эксперименты с более реалистичными стилями, а для лоуполи просто достаточно аккуратно повозюкать кисточкой тут и там.

Когда готова сама модель, пайплайн разделяется на два основных пути: надо сделать текстуры и анимации.

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

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

Теперь, когда всё готово (шаги выше надо повторять 100500 раз, пока модель не станет выглядеть прилично) можно либо выставить свет, камеру, фон и отрендерить сцену прямо в блендере, либо экспортировать её в игровой движок и использовать в игре.
  • ❤ 8
  • ❤‍🔥 3
  • 🙉 1
Post #91 744
  • ❤ 1
Post #90 1.03K
27.

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

Новую жизнь моё желание научится рисовать обрело когда мы стали активно делать игры: двухмерным играм нужны спрайты, трёхмерным текстуры и модели, всё это требует умения рисовать. Я купил себе графический планшет и стал пытаться им пользоваться. Сделал даже весь 2d-арт в недавней нашей игре Oversummoned, вышли довольно таки милые черти. Но с менее стилизованными персонажами получалось, правда, так себе — особенно плохо дело обстояло с лицами.

И в какой-то момент лица меня настолько выбесили, я что я решил прямо научиться их рисовать. Вот прямо брать и рисовать специально лицо, смотреть видео про построение, пытаться повторить референсы. Внезапно, первое время получалось всё ещё ужасно, но я уже сформулировал план: нарисовать 25 женских голов и посмотреть что получится. Головы 1, 2 и 25 я рисовал без референса, а 3 и 24 с одним и тем же референсом, чтобы посмотреть на прогресс.

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

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

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

Вообще, возникло понимание, что (как бы очевидно это ни звучало) всё, что ты рисуешь — это свет. И даже контуры, которые, вообще-то, не встречаются в реальности — это просто условное обозначения линий, вдоль которых соединяются объекты с сильно разным освещением. С тенями довольно таки сильно помог опыт в компьютерной графике: я заранее знал математические формулы, описывающие поведение света, надо было только научиться на деле их применять.

Обратил, кстати, внимание на то, что в туториалах обычно неправильно описывают то, что такое блик. Говорят: "это место, куда попадает больше всего света", но на самом-то деле это место, откуда свет отражается в глаз зрителю. Если бы объект был зеркальным — на месте блика было бы отражение лампочки.

Планирую дальше разобраться с анатомией тела, построением перспективы, интерьерами, экстерьерами, теорией цвета, материалами. Иногда буду держать в курсе!
  • 🔥 18
  • ❤ 4
  • ❤‍🔥 1
  • 👍 1
Post #89 791
  • ❤ 9
Post #88 895
26.

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

Редис этот опять же. Нормальные люди его как кеш используют, а вот мы там всё подряд храним. И вот настолько я редисом преисполнился, что оказался докладчиком на конференции Podlodka Go Crew и рассказал про то, как мы в команде Moira перевариваем миллионы метрик, чтобы доставлять пользователям алёрты в реальном времени.

Посмотрите, надеюсь вам понравится: https://youtu.be/0FtJchwCrg8
  • ❤ 11
  • 👍 7
  • ❤‍🔥 6
Post #87 1.02K
25.

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

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

Одни из самый приятных игровых моментов для меня связаны с реалистичным подходом: поиски локаций по текстовому описанию в Morrowind, незабываемое первое знакомство с Ревашолем в Disco Elysium. Есть соблазн объявить это единственно верным способом, а всё остальное — ленью и бездарностью. Но есть один ужасный нюанс (и я сейчас даже не про доступность игры — хотя это тоже очень важно!)

Самые ужасные моменты в играх возникают, когда тщательно выстроенный мир разрушается из-за бага, который заставляет меня лезть в гугл и разбираться: это я сделал что-то неправильно или игра просто рандомно решила, что я не заслужил найти свой пистолет, хотя условия для квеста выполнены. И я лезу на какие-то форумы и читаю, что действительно это довольно распространённый баг, но у меня нет удачных сохранений и желания переигрывать кучу часов. Я смиряюсь со своей судьбой. А игра потом несколько раз ехидно издевается над тем, что я не справился с поисками пистолета!

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

Я привык к тому, что игры не могут работать нормально, что в них всегда что-то ломается (а ещё я игры разрабатываю, так что надежд на отсутствие багов у меня ещё меньше). И это разрушает игровой опыт не только с теми играми, что сломались. Это подрывает моё доверие к геймдизайнерам в целом. Они хотят что-то спрятать от меня, а я подозреваю, что оно просто не появляется. Починить это, разумеется, невозможно. Можно просто жить с этим и пытаться минимизировать такие проблемы в моих собственных играх.
  • ❤ 9
Post #85 822
24.

Последние несколько лет я преподаю в университете. И тут я понял, что всё это время занимался геймдизайном! Я обратился к определениям: Джесси Шелл в книге "Геймдизайн" (хорошая книга, кстати, почитайте) определяет процесс игры как "манипуляцию, удовлетворяющую любопытство". Можно сказать, что обучение — это игра по определению! Хорошие преподаватели чувствуют это интуитивно и создают хорошие курсы, но зачастую удовлетворение любопытства уходит на второй план, и игра превращается в пытку.

Определения это, конечно, хорошо. Но какие непосредственные параллели можно провести между игрой и университетским курсом? И там и там игрока (или иными словами студента) сначала учат чему-то, а потом проверяют, научился ли он.

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

Рассмотрим это на примере Sekiro и курса по компьютерной графике:

🔹Сначала игрокам показывают базовые механики: учат ходить, атаковать, убивать из стелса, создавать оконные приложения и рисовать на экран пиксели
🔸Первая проверка, простенький босс: неуклюжий самурай, требующий изобразить на экране график функции, лёгкая добыча для шиноби

🔹Снова обучение новому: элегантно парировать удары мечом и векторной алгебре на плоскости
🔸Экзамен: всадник с копьём, разбивающий многоугольники на треугольники

🔹Дальше игра таким же образом постепенно учит нас всему, что она знает сама: отражать молнии, работать с видеокартой, метать сюрикены и строить перспективную проекцию, каждый раз проверяя, что урок усвоен
🔸В конце нас ждёт финальная проверка. Боссы, которые требуют глубокого просветления: Кэнсэй Иссин и трассировка лучей (и не менее сложные необязательные боссы)

Если бы на игрока просто вывалили все обучающие сообщения, а потом потребовали убивать сильнейших самураев — он бы не получил никакого удовольствия. В образовательной программе все то же самое. Необходимо следить за кривой интенсивности курса, чаще отсылаться к тем самым базовым механикам, о которых договорились ещё в туториале, стараться интересно комбинировать механики. И часто убеждаться, что студенты усваивают урок
  • ❤ 12
  • 👏 1
Post #83 770
  • ❤ 1
Post #82 732
Audio
Отдельно рядом положу восхитительную заглавную музыкальную тему "Circuits Twitching" за авторством Адама Арутюнова
  • 🔥 9
  • ❤ 3
  • ❤‍🔥 1
  • 👏 1
Post #81 719
23.

Закончили делать самую большую и сложную нашу игру! Kobot — это 3D-головоломка про роботов, вдохновлённая первым Portal.

Поиграйте!

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

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

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

Проведение плейтеста ощущается очень странно: ты смотришь, как человек проходит твой простой и понятный уровень пол часа, и не имеешь права ему подсказывать (потому что конечному игроку подсказывать никто не будет). Такая вот вариация танталовых мук. Во время ранних грейбокс-прототипов уровней, правда, приходилось уточнять, что некоторых стен и объектов на уровне нет, и в них полагается просто уверовать. Иногда осознание, что уровень сломан происходило прямо посередине теста и тогда я просил резко начинать веровать в дополнительные стены.

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

Но, к счастью, для плейтестов нам хватило членов команды, а дальше улучшить игру поможет ваш фидбек! Заполните, пожалуйста, форму с несколькими короткими вопросами.
  • ❤ 10
  • 👍 4
  • ❤‍🔥 2
Post #80 583
  • ❤ 6
Older posts →

About this channel

How can I read @itisdonewrong without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Doing It Wrong: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Doing It Wrong have?
Doing It Wrong (@itisdonewrong) has 158 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Doing It Wrong know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →