Взертос: Негодование и злость
Вот сидите вы и делаете игру. Кажется всё хорошо, ну конечно бывают мелкие косяки, да.
Но когда случаются большие и ВНЕЗАПНО, то хочется нафиг это дело закинуть куда подальше.
Начну с более-менее от человека зависящих:
- Не могу нормально отрендерить себе тайлы.Чтобы от они были действительно тайлами и швов не было видно. Ну вот как камеру не ставь, то так не сходится, то так вообще изометрия меняется (и нужно будет всё переделать, что вообще больше на платформер похоже, а не изометрическую игру).
- Опять же графонистая тема: внезапно все мои рендеры стали засвеченными. Так долго расставлял свитильники и прочее, чтобы получить по особому освящённую картинку и... всё стало яркое, что аж ничего и не видно. Пришлось делать всё снова.
- И под закуску: слетела часть логики в GameMaker'е. Ну вот буквально. Час назад игра работала нормально, ничего не трогая открываю снова игру, запускаю и ВНЕЗАПНО столкновения, логика не работают. Вообще. Игрок передвигаестся, что-то делает, но боёвка перестала работать, столкновения тоже. Короче печаль. А ведь уже неделя прошла и считай ничего нет.
Этот пост написан на эмоциях, так что .. можно его проигнорировать, но хотелось высказаться, так сказать.
Вот делаешь ты игру и потом бац — всё коту под хвост.
- 25 апреля 2016, 21:06
Переходи на Unity. Максимум, что может случиться - критануло, а ты проект не сохранил)
Не, я тож с Юнькой игрался, но как-то не особо вкатило. Там баги тоже есть. Не от самой юньки скорее всего, но графобага есть одна, которая не даёт мне выбрать цвет - это одна их них.
Вообще имея дело с любым чужим движком есть риск вот-такого-вот. А всё от того, что фиг знает как он работает внутри. Именно поэтому _нет ничего лучше собственного движка_, да закидают меня тапками и ассетами люди.
Просто на собственном движке ты был бы занят его допиливанием. А так-то люди делали игры в эпоху Денди, без движков и даже без девкитов (ну это примерно как не иметь Гугла (стоп, его и так не было!) и всяких форумов и онлайн-баз знаний сейчас - только официальный оффлайн-хелп). Говорят, геймеры разленились. Но геймдевелоперы уже просто на амёб становятся похожи. Печальбеда!
Двигай бездвижковое и достигнешь успеха! Зри в корень, ёкарный бабай тебя за ногу!
Ну вот и я про это! Хоть ответил ты с сарказмом или без, но я действительно убеждён, что лучше написать свой двиг. Или не так. Сделать игру-двиг. Чем это отличается? Да тем, что твой код будет исключительно на игре сосредоточен с особыми архитектурными штуками. Не устану приводить в пример свою идею, где одновременно живут сами по себе две сцены. Какой двиг так может?
На самом деле, я думаю просто стоит посмотреть в сторону фреймворков, как упомянутый ниже LibGDX. Более предсказуемо получится, но в то же время не так трудоёмко, как писать всё с нуля.
Неча на инструмент пенять, коли руки кривые. Юнити, например, так может. Даже писать ничего не надо, объекты одной сцены помещаем на один слой, другой - в другой слой, делаем 2 камеры, каждая рендерит свой слой.
Но да, багов в юнити хватает. Впрочем, многие их никогда не встретят; те, кто встретят - в большинстве случаев смогут обойти; те, которые не удастся обойти, как правило, патчат достаточно быстро.
Короче, демагогия это всё, важен не инструментарий, а возможность сделать с его помощью игру.
LibGDX - Java фреймворк. Лишаешь себя рутинной работы, контролируя весь процесс работы игры. Собственный движок - по-моему бред, если ты не команда.
Как-то я писал на джаве супер-простую игру-пример, чтобы посмотреть на язык. Не знаю как в ГДИксе (забавно, что опять пришлось там возиться), может и удобно и просто, но вот на чистой джаве - это было "весело", особенно с загрузкой спрайтов.
Используй контроль версий, не забывая делать коммиты. Для меня (на Windows) лучшая связка - TortoiseSVN + Яндекс.Диск. Репозиторий на Ядиске, непосредственно работа с checkout (что-то вроде синхронизации папки с репозиторием) на компе.
+: 1. Проект защищен от стираний, поломок оборудования (он в облаке!) 2. за счет svn можно откатить состояние папки проекта на любой этап работы. 2*. не боишься изменений, можно хоть все переписать - история изменений сохранена.
Если интересно, могу подробнее расписать.
Да, давай рассказывай прямо здесь )
У меня как раз ртутная-черепаха есть и акк на бит-бакете, но так и не пользовался толком (кроме своего костального двига).
Я проще на видео засниму.
Показываю базовые вещи. Использую Ядиск, потому что места много, а в svn кидаю все подряд - звуки, модели, не только код. Не знаю как дела с местом на Битбакете.
Еще, о чем можно рассказать - структура папок по умолчанию в svn, тэги\ветки, просмотр различий в файлах (удобно для чистого кода), игнор-листы для файлов, отмена еще не внесенных в коммит изменений (на самом деле просто, команда revert).
Спрашивайте, если что непонятно, делал в порыве. :)
Видео это круто, респект. А вот - что за ошибка в ГМСе вылетела на 2:14? Это точно не связано с репозиторием?
Хз, чес сказать. Может из-за того что папка называлась не по-гейммейкерски, как первая.
Видео пригодится, да. Но честно - как-то много мороки с этим. Верно Ксит предложил, что можно простые флеш-бэкапы делать. Так я раньше код бэкапил, НО конечно с версиями удобнее, да.
Кстати в тему возврата проекта таки. Должен повторить то, что слетело всё само по себе. Хотите верьте, хотите нет, но это факт. Единственное что я делал - загружал задние фоны и перемещал спрайты в древе проекта. Если от таких действий ломается ГМС, то его только выкинуть и останется.
Ммм, лопата. Это действительно нужно закопать.
Тогда что-то типа Backup4all пригодится. Хотя кнопок нажмешь побольше. :D
-: 2**. Ничерта не понимаешь как забрать коммит который тебе нужен.
?: 1. Защита от поломок оборудования может быть обеспечена бэкапами на флешки, обычными ФТП-хранилищами, и ещё много чем, коль это важно. Для этого не понадобится нажимать столько кнопок.
2) Update to revision
1) SVN Commit и все
Показывал в видео. Комментарий просто чтобы твой без ответа не остался.
Окей, 2 действительно весом.
Ещё можно заюзать git или Mercurial и залить репозиторий на Bitbucket, который предоставляет возможность создания приватных репозиториев для бесплатных аккаунтов.
update: комментарии не читай, сразу отвечай, ага. Честно, не могу сказать, какой профит в данном юзкейзе можно получить от моего варианта по сравнению со связкой SVN+ЯД. Разве что, может быть, оно будет чуть надёжнее: если вдруг каким-то образом сломаешь svn-репозиторий, это сразу засинхронизируется с облаком, в то время как в случае с git/hg "синхронизация" локального репозитория с удалённым выполняется вручную. Кстати, на битбакете ограничение на репозиторий — 2 гигабайта, но это именно репозиторий, т.е. включая историю изменений.
Не соглашусь насчет "чуть надежнее" - в моем случае репозиторий и рабочая копия (та самая папка, в которой работаешь) - две разные папки, и вторую ты синхронизируешь с первой посредством commit'ов, и только после этого идет синхронизация с облаком.
Соответственно, так же как и в Git\Hg ты работаешь с репозиторием даже без подключения интернета. Но SVN - централизованная, а не распределенная система контроля версий, так что в сам репозиторий (папка на Ядиске) руками тебе лезть не нужно, а в твоей рабочей копии из служебных файлов - только папка ".svn", при нарушении целостности или удалении ее TortoiseSVN не даст тебе сделать коммит, и все дела.
Последнее - если сам репозиторий на Ядиске удален, при синхронизации с облаком он будет перемещен в специальную папку - "Корзина", откуда его можно вытащить.
Но тут мы уже перешли к спорам о личных предпочтениях, я считаю.
Да, я это всё понимаю. Просто я не работал с SVN и не знаю, есть ли там возможность штатными средствами по ошибке сделать что-то непоправимое (типа, удалить коммиты или каким-то ещё образом повредить историю). К примеру, гит-репозиторий мало того, что очень трудно сломать без возможности восстановления, так у тебя ещё и в случае чего будет бекап на сервере. А в связке svn+яд репозиторий только один, причём он синхронизируется с облаком сразу. Но если там с этим всё ок, то замечательно. Интересный способ на самом деле, не задумывался над этим раньше.
Нет конечно, не сделаешь таких изменений, потому что умные люди проектировали svn с четкой целью - не допустить возможности какого-либо вмешательства в структуру дерева изменений. По этому поводу в официальной документации. Невозможно удалить какие-либо коммиты или поломать репозиторий без создания нового репозитория.
Так же, я думаю, обстоят дела и в других нынешних системах контроля версий.
Что, если подумать, очень правильно.
GMS автоматически создаёт минимум 5 бекапов проекта.
Вангую, что во время работы с кодом, ты нажал delete, когда окошко случайно деактивировалось и в результате удалился скрипт. Возможно так же, что из-за некого изменённого параметра всё крешнулось и поменялось. Быть может твёрдость или глубина - не знаю, зависит от проекта.
Действительно - забыл совсем про бэки, но это не помогло. Брал самый ранний - проблема не исчезла.
Должен ещё раз повторить, что ничего не трогал вообще. Т.е. ГМС был запущен и стоял на месте, так сказать. Никто не мог сделать что-то в моё отсутствие, случайно что-то удалить не мог - точно.
Но вероятность некой случайности всё же есть - вот уже со вчерашнего вечера-ночи и до текущего момента проверяю каждую строчку. Есть мысли, где есть бага, но не могу её найти.
Со столкновениями особо интересно. Ладно логика боя - там может быть ошибка в коде, но столкновения-то реагируют у меня на все объекты с solid, а теперь игнорируются.
Ладно, буду дальше копать, кто знает может смогу выкатить на конкурс уродца.
Solid - зло:з
У меня как-то была проблемка со студией...объекты не открывались... Из-за библиотек delpfi... Помогло - экспорт проекта в gmx, а затем, импорт его, уже как новый проект =.=
Удачи с разработкой)))
Пфф. У меня один проект вообще отказывался компилиться - что только не делал, даже кэш (гмс-а) чистил. Не компилит и всё. Затем просто пересохранил проект (ничего не меняя) - заработал.
Чудеса ГМС.
Почему Solid зло? В чём смысл не использовать стандартные средства? Если там некоторые вещи из коробки работают .. ну как работают. В посте описал как они работают, лол :)
Ага, но удача видно не на моей стороне.
Solid столкновения, не всегда реагируют адекватно. При внедрении нового функционала(к примеру лифты), придётся костылить и перебирать параметры. Да и solid с solid не всегда хорошо контактируют, и вместо адекватности, мы видим лишь застревание в стенах, остановку и прочее...
Как по мне - проще проверять по координатам, относительно объекта. place_meeting, instance_position, collision_line и прочие.... ^~^
Забавно, но у меня как раз наоборот - делал через meeting или вроде того - было очень плохо. Сделал через стандартную проверку на solid - всё было нормально вообще, даже удивился, что так просто столкновения решаются.
Не спец по GMS, но в одном видеоуроке парень предлагал использовать Uses Physics у объектов, и в дальнейшем манипулировать через код всей Box2D-движухой. Говорит, solid и meeting - прошлый век, надо идти в ногу со временем.
Но вы даже не упоминаете этот вариант - с ними что-то не так? :)
В top-down (пусть и изометрическом) физика уж ненужна. Мне не нужны вычисления коробки2Д (хотя я с ним не работал ещё). Кажется, что куда проще просто манипулировать стандартными скоростями, солидами и прочим. Можно конечно переделать на бокс2Д, но уже поздно*.
После сегодняшней ситуации даже я мельком поверил в богов игростроя (*): ГМС вообще отказывает запускаться. Наверно это пофиксить можно перезапуском ПК, но факт такой работы ... кто-то явно не хочет, чтобы я показал вам Взертоса :)
Дальше кнопки "Make" ГМС не идёт, при этом диспетчер пишет, что программа запущена (и Стим так говорит), но окна выбора проекта нет.
GMS — лучший движок!
А вот тут, я с вами не соглашусь. Есть множество хороших движков. Каждые хороши в своей области. Для 2D игр, GMS подходит довольно не плохо. А вот под 3D, или под создание приложений, он не очень хорошо заточен - приходится писать костыли.
Движки разные, как и возможности. И хотя я уже >7 лет сижу на GM(GMS), я не соглашусь, что он лучший.
Похож на служителя Аданоса.
Готические мысли навевают рисунки даркдеса. Я его Диего обозвал в одном из предыдущих постов)