elcar
> Ты пока ни одной не сделал. Не обманывай себя)
Сделал. Если я не сделал для неё лвл дизайн уровней, то это не отменяет “сделал". Я поэтому и целю в дальнейшем делать на Unity, чтобы можно было найти человека, который будет эти самые уровни собирать. Лично, я, этим не собираюсь заниматься в масштабе всей игры. А а GameMaker такого человека найти просто невозможно.
Zab
> На этом уровне развития человек просто обязан провалить парочку больших проектов.
Аа.. брось.. я уже достаточно завалил.
Да и я занимаюсь казуальным и гиперказуальными играми.
711
Есть определенные этапы развития программиста. Сначала он просто учится, но в кокой-то момент пытается сделать нечто объемное. Не слишком высоко себя оценивая, упрощает задачу вплоть до того, что она оказывается не выполненной. Но чувствует при этом, что может все.
И вот тут вступает "эффект второго проекта". Берется за новое дело и усложняет его настолько, что не может с ним справиться. Провал неизбежен, но опыт получает фантастический. Если есть время переделать все сначала, этот проект оказывается на таким уж и провальным.
После такого развитие идет более или менее сбалансировано.
Подозреваю, что ты еще до всего этого не дошел. Обычно "второй проект" выстреливает на 4-6й год запойного увлечения программированием.
В увлеченном состоянии развитие происходит раз в десять быстрее, чем если просто отрабатывать. Без увлечения, уровня "второго проекта" можно никогда не достичь, даже всю жизнь программированием занимаясь, времени не хватит, помрешь раньше.
Zab
> Обычно "второй проект" выстреливает
Обычно (с шансом 99%) НЕ выстреливает)
поправил^
elcar
> Обычно (с шансом 99%) НЕ выстреливает)
Я бы даже сказал, с шансом 99.99999(9) процентов не выстреливает, если не рассматривать полную переделку спустя какое-то время, на основе полученного опыта.
Но что считать успехом? Качественный скачок в профессионализме это не успех? Однако, заказчику выдать нечего.
Zab
> Но что считать успехом?
То, что в твою игру играют. Даже если отбросить деньги, если есть человек, который вот прям сейчас играет в твою игру - это уже ты не зря вообще залез в эту сферу и портил форум своими маня-фантазиями)
elcar
> То, что в твою игру играют.
Оно не про игру, оно про подготовку программистов.
Если этот "второй проект" будет без явных обязательств - получится хорошо. Не обещал никому к конкретному сроку - можешь сам все перерешить и передвинуть.
Примерно как оно может выглядеть: планировал сделать за полгода, работы растянулись на год, результат получился ужасный, еще полгода пытался его дожать. В результате все выбросил, начал совсем с нуля, на других принципах и за полгода получилось что-то, что можно отдать.
Zab
> и за полгода получилось что-то, что можно отдать
и за полгода НЕ получилось что-то, что можно отдать
пофиксил^
elcar
> и за полгода НЕ получилось что-то, что можно отдать
Если эти полгода случились после полутора лет обучения - с чего бы не получиться... Люди меняются, надеюсь... Разбивание лба о стенку должно было научить. К сожалению, чужим опытом воспользоваться как правило не удается. Люди просто не верят, что проблемы существуют, пока эти проблемы их убивать не начнут.
Zab
> Если эти полгода случились после полутора лет обучения - с чего бы не получиться...
Из статистики.
Zab
> Люди меняются
Нет. (в 99% случаев)
Zab
> Разбивание лба о стенку должно было научить.
Нет.
elcar
> Из статистики.
> Нет. (в 99% случаев)
> Нет.
Ой. Жесть.
Ты в каком-то страшном мире живёшь.
elcar
Мне кажется, ты просто очень сильно разочаровался в разработке игр. И произошло это по той причине, что там оказалось уж больно много всего нужно уметь и знать, помимо программирование.
Вот ты и злой такой.
711
> Ты в каком-то страшном мире живёшь.
А это проверяется элементарно. Зайди в каждую тему раздела "проекты" на этом форуме и посчитай во сколько из этих проектов ты сможешь сыграть. Процент успешных можешь написать в этой теме, посрамишь меня с моей статистикой)))
elcar
> Зайди в каждую тему раздела "проекты" на этом форуме
А причём здесь этот форум и какой-то там раздел ?
Лично моих 90% всех работ реализовано вне его.
А вот твоя логика отдаёт депрессией и отчаянием. И попыткой найти хоть какое-то оправдание. Это плохая дорожка. Походи по темам и посмотри, чем это заканчивается у других, которые на неё становятся.
elcar
> А это проверяется элементарно.
Ладно. Спорить с тобой не стану, что и как проверяется. Но то, что мы с тобой абсолютно в разных вселенных - это факт. Хоть и на одном форуме.
elcar
Слушай, как то у тебя печально складывается с разработкой игр. Мне даже грустно стало.
Но я всё понимаю. Я же через это проходил. И знаю, как это, когда ты отчаялся и совсем перестал понимать, что происходит вокруг тебя. Что нужно делать, а что не нужно делать. И как сложно выбраться из этой трясины.
Давай я внесу немножко радости, света, ясности в твой мрачный мир геймдева.
Давай я прямо в этой теме не спеша сделаю небольшой кликер. И по ходу буду дополнять разработку подробным описанием всех своих шагов. Для того, чтобы ты увидел как это просто и весело делать игры. И это вовсе не требует так много времени и уж тем более каких то там знаний, как многие думают. Тут главное получать удовольствие (ну, и хотя бы немного лапками шевелить).
Вот смотри, как я начинаю свою разработку.
1) Жанр игры. Ну понятно же - кликер.
2) Перечисляем варианты для объекта, который будем тыкать. Смотрим на результаты и пытаемся найти что-то самое простое в плане арта или анимации. И вот оно - Черешня.
3) (тут уже пошла идея, а это самое сложное) Главный герой - это вы. Но кто вы ? Вирус. Вы опасный вирус.
4) Сразу обозначаем начало игры и конец игры.
• Начало: черешня падает с прилавка на землю прямо на вас. И вы начинаете в ней размножаться тыкая по ней.
• Конец: черешня полностью вами заражена, в ней полно вируса. И тут вбегает крыса, сжирает черешню и убегает.
5) Геймплей. Вы тыкаете по черешне и увеличиваете её уровень (каждый следующий уровень то, насколько она сильно заряжена).
Также за каждый клик вы получаете “вирусят”. На “вирусят" вы можете покупать улучшения.
6) Улучшения:
а) Больше “вирусят” за клик.
б) Автоклик.
г) Шкала “следующий уровень”: черешня меняет свой внешний вид.
7) Практика. Первые шаги.
• Концепт-арт:
• Код:
а) Лёгкими штрихами то тут, то там, я обозначаю элементы UI.
б) Теперь я макаю свою кисть в густую маслянистую массу из текстовых файлов и делаю сочный мазок. Это будет сохранение игры.
Мм, красотища. Сразу чувствуется крепкая кость, на которую мы насадим мясо.
Отступление.
В GameMaker структура, это совершенно не то, что в C#. Там это “ключ : значение". И там всё может быть разного типа. В C# на это, скорее всего, похож обычный " класс” с его полями.
elcar
Код начинаю делать с самых сложных, на мой взгляд, вещей.
Сохранение.
Так вот. Я пришел к такому способу (почитал, пишут, что так норм). У меня в игре не так много элементов*. И у них не так много переменных. Поэтому я создал отдельный класс и уже в нём создаю все необходимые мне переменные для других классов. (напомню, я делаю в GameMaker).
Самая большая проблема - это обратная совместимость со старым сохранением у пользователя.
Первое, что я недавно узнал, это синтаксический сахар “??” (проверка и присвоение дефолтного значения). Очень удобная штука, которая решает большинство проблем.
*Не пойму, как правильно называть сущности в игре - кнопки, персонажей. Раньше я их называл “объекты", а теперь это слово обозначает "копию класса”. Хотя правильно говорит “экземпляр”.
Практика.
Сделал пару кнопок и переменных. Ура всё работает. Значения меняются, переменные сохраняются и загружаются. Добавляю новые кнопки и переменные в игру со старым сохранением. И опять ура.
Благодарность.
Благодарю тебя, невиданное создание, что придумало компьютерные игры. Раньше я думал, они портят всем жизнь. Но теперь я прозрел и понял, что это спасение. И пусть спасение придёт ко всем. Да возрадуемся мы все вместе.
711
> В GameMaker структура, это совершенно не то, что в C#. Там это “ключ : значение". И там всё может быть разного типа. В C# на это, скорее всего, похож обычный " класс” с его полями.
ага, такое представление объектов характерно для интерпретируемых языков. таких как Lua, JavaScript, Python, ну и GML.
а в компилируемых языках (C#, Java, Go, C++, Rust) значения полей хранятся блоком в памяти, и названия полей грубо говоря превращаются в оффсеты при компиляции.
Но в компилируемых языках тоже можно (и это широко используется) хранить данные в стиле “ключ : значение" с помощью контейнеров HashMap/TreeMap aka Dictionary aka unordered_map/map. обычно под капотом динамических языков лежит как раз подобная структура.