Страницы

суббота, 12 сентября 2009 г.

Форумная игра. Идея.

Этот пост будет редактироваться.

Над ошибками мы по колдуем попозже. Сейчас я поразмышляю о конкурсе. А именно: есть тема «Форум» и надо сделать по этой теме игру. А теперь, что именно будем делать, как и зачем...

Update (20.12.2010): На текущий момент не предполагается вести эту тему дальше. Остаются только идеи для дальнейшего использования. Сам конкурс давным-давно закрыт. Результаты можете видеть выше в теме.

пятница, 11 сентября 2009 г.

Основные ошибки современных разработчиков (Часть Первая)

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

Обработка ошибок

Об этой вещи я уже писал, но хотел бы ещё раз вернуться к этой теме, тем более что она важна. Итак, тема — Обработка ошибок.


Описание примера к предыдущему посту

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

Остов игры

Теперь перейдём к более конкретным действиям по созданию игры. Из поста про Игровой Цикл вы знаете что нужно сделать переходы между состояниями (см. пример Druce). Как вы знаете, этими переходами могут быть: заставка → меню ↔ игра, и другие их комбинаций. Т.е. пока состояние "заставка" мы проигрываем весь код связанный с заставкой, состояние "меню", весь код связанный с меню и т.д. Многие выполняют этот приём неосознанно, но мы сейчас углубимся в этот процесс... Процесс создания Конечного Автомата (сокр. КА).

Идеальная РПГ

Сегодня зашёл разговор об идеальной РПГ. Какая же она должна быть?

Смысл программирования

Многие его не понимают. Они думают, что написав несколько строк на С++, Pascal, Basic, это уже программирование. Но к сожалению, это только пол дела (если не меньше). Из за этого возникает множество проблем у вновь прибывших. Множество проблем логических. Как будто мозг отключили. Ещё есть интересный парадокс: люди не знают английского языка (т.е. языка на котором работают 99% языков программирования) и других тоже, но от языка программирования на русском разбегаются во все стороны. Главное чтоб на модном иностранном языке, а не на своём. В том числе и этот парадокс сильно мешает.

Внешность и душа

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

Прикладные программы

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

Единый контроль

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

Каталогизация объектов

При созданий множества объектов(в Game Maker они называются образцы) встаёт вопрос об их обращений друг к другу. В Game Maker этот вопрос частично решён(через номера. От 100 000 и далее), в каких-то системах этого нет. Так как же решить этот вопрос? Через каталогизацию объектов.

Визуализация игровых значений

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

Игровой цикл - Теоретическая часть

Что же это такое и с чем его едят? Если вы когда нибудь программировали на серьёзном языке(типа с++, паскале или бейсике, например) и хотели сделать какую-нибудь игру, то знаете как не просто это сделать. Почему? Да потому что нет нужных инструментов для этого. Возможно вы даже нарыли какой-нибудь графический движок(не важно 2д или 3д), но игры как не было так и нет. Это всё потому что игра(как программа) нуждается в собственной архитектуре, коде. Настоящая игра-программа начинается с инициализаций всех вспомогательных инструментов(графика, сеть, звук и др. нужные вещи). Затем программа входит в бесконечный цикл, разорвать который может специальное событие задаваемое программистом (это может быть кнопка эскейп, а может выход в меню). Вот этот кусок кода называют — игровой цикл. (Продолжение темы)

Plants vs Zombies

Итак, сегодня установил игру Plants vs Zombies (86/100 по версий AG). В двух словах: казуалка красивая. Простенькая, но очень интересная игра. "Стратегия класса Tower Defense". Рецензию игрока вы можете прочитать на AG, а я напишу рецензию геймдизайнера.

Совместимость с предыдущими версиями файла

Одной из фишек подсмотренной у профи было: версия файла.

понедельник, 7 сентября 2009 г.

Вопрос Aimar'а: "имеем в изометрии объект, движущийся в любом направлении. Игру фоткать не хочу, на картинке вроде по блокам и границе ясно, какова изометрия. Проблема с реализацией зависимости скорости от направления: одинаковая скороть смотрится не очень реалистично; функцию пока не подобрал оптимальную; можно, в принципе, интервалам значения давать. В любом случае скорости нужно сравнивать, какая самая большая должна быть? Самая маленькая? Зависимость нужна, в общем."