31 декабря 2010

В этом году вы не прочитаете...

Привет. В этом году вам не удастся прочитать о многом. Не особо конечно о многом. О достаточно многом. Часть этого много могло быть и отсюда. А может и нет.

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

Я не успел:

  1. Рассказать о Canvas.
  2. Написать TextRPG на JavaScript.
  3. Написать о том как экспортировать анимацию из Blender.
  4. Рассказать о ODE.
  5. Сделать лучший рогалик всех времен и народов.

24 декабря 2010

TODO -> DONE

Привет. Я хочу рассказать о такой практике ведения хобби-проектов, как метод TODO -> DONE. Это не претендующая на уникальность мутант выращенный методом скрещивания GTD и roadmap, мутирующий до неузнаваемости.

Зачем? Время на хобби появляется самым случайным образом, причем в совершенно произвольном размере. Применяя свое время к хобби-проекту важно использовать его максимально эффективно. Поэтому я и придумал для себя метод TODO -> DONE, который применим не только к хобби-проектам.

22 декабря 2010

Генерация неслучайных чисел

Привет. Если вам приходилось использовать PRNG (Pseudorandom number generator), то вы наверняка пользовались уже готовой реализацией в языке программирования. Это хорошо, но не всегда стандартная функция генерации псевдослучайных чисел делает это так, как нам хочется.

К чему я это? Да к тому что иногда нужны не совсем случайные числа. Например нам нужно выбрасывать число из какой либо последовательности так, что бы эти числа не повторялись (если это конечно возможно) по два подряд. Зачем это нужно? Например когда нужно генерировать подземелье с не повторяющимися соседними комнатами. Объясняю. Когда у нас подряд идут две одинаковые комнаты, например две комнаты с колодцем, это выглядит не очень естественно.

21 декабря 2010

Git branch в zsh prompt

Привет. Работая с git из zsh у вас может возникнуть желание видеть текущий бранч всегда. У меня такое желание возникло. Делается это очень просто, в сети можно легко найти как это сделать. Я представлю свой вариант.

28 сентября 2010

OpenGL: Текстуры

Привет. Это продолжения серии уроков про OpenGL(1,2). В этом небольшом уроку мы научимся накладывать текстуры. Это не сложно. Все что нам понадобиться, это воспользоваться несколькими функциями OpenGL.Мы же это уже умеем, правда?

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

10 августа 2010

Игры в браузере: Нажимаем на кнопки

Привет. Продолжая тему игр в браузере, хочу затронуть вопрос обработки событий с клавиатуры. Сразу хочу сказать, что с данной проблемой я сталкивался только в браузерах на WebKit. О чем же я?

Я о событие нажатие кнопки. Что с ним не так?

05 августа 2010

Игры в браузере: Налаживаем контакт

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

Да, современные браузеры дают возможность выполнять их по шагам, но это долго и утомительно, и зачастую не всегда удобно. Использование функции alert, не удобно и не всегда возможно, например когда нам нужно реагировать на ввод пользователя, для игры это важно. В общем, не подходит эта функция для отладки игры. Что же делать?

04 августа 2010

OpenGL: Перемещения и Вращения

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

Рассмотрим следующие функции:

  • glLoadIdentity.
  • glTranslated и glTranslatef.
  • glRotated и glRotatef.
  • glScaled и glScalef.
  • glPushMatrix и glPopMatrix.

04 июля 2010

OpenGL: Окно SDL

Привет. Решил я рассказать про OpenGL. Почему бы и нет. Тем более в нескольких статьях, OpenGL мной использовался. Вот и решил что надо бы рассказать. За одно и сам вспомню, что забыл, и узнаю, что не знал.

Начнем мы с простого. Так как для того, что бы что-то нарисовать, будь то прямоугольник, либо сложная трехмерная модель, OpenGL нужно предоставить окно (своего рода холст для рисования), мы начнем именно с создания окна.

26 июня 2010

Файлы конфигурации

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

Как вы наверное поняли, мы поговорим о мартышках. Шутка. Не смешно? Да, зато неожиданно. Мы поговорим о конфигурационных файлах, и а том, как можно их реализовать.

09 мая 2010

C + Lua == "Часть 3: Игровой цикл"

Привет. В статье С + Lua == "Часть 1: Вводная" я объяснил как вызвать C функцию из Lua и как вызвать Lua функцию из C. В статье С + Lua == "Часть 2: Гоблин мы ввели свой тип данных в Lua. Теперь давайте используем Lua как встраиваемый скриптовой язык.

28 марта 2010

C + Lua == "Часть 2: Гоблин"

Привет. В прошлой статье С + Lua == "Часть 1: Вводная" я объяснил как вызвать C функцию из Lua и как вызвать Lua функцию из C, теперь мы усложняем себе задачу. Lua хороший язык, но у него есть один большой минус, у него нет такого типа данных как гоблин. К нашему счастью и зависти других, это легко поправимо, мы можем сами добавить этот тип в Lua.

25 марта 2010

C + Lua == "Часть 1: Вводная"

Привет. Это первая часть статьи про то, как подружить C с Lua. Зачем это надо? Тут я хотел написать долгий рассказ, о том как это удобно менять часть поведения программы без перекомпиляции, но оно вам надо? Думаю не очень. Lua интерпретируемый язык программирования, он прост и лаконичен, и обладает простым API для интеграции в C, что делает его идеальным языком для игровых скриптов.

21 марта 2010

PyGame: Звуки музыки...

Здравствуйте. Попробуйте запустить игру. Например neverball. Запустили? Поиграйте немного. А теперь отключите звук и поиграйте еще немножко. Ну как, поиграли? Замечаете разницу? Будем считать что да. Звук и музыка важные составляющие атмосферы игры.

28 февраля 2010

Экспорт из Blender'a

Привет. Я хочу рассказать как из программы под названием Blender экспортировать свою модель. В этом нет ничего сложного, Blender предоставляет удобный API(версия 2.48) для Python'a.

12 февраля 2010

PyGame: Управление и столкновения...

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

04 января 2010

PyGame: Анимация в движении...

Привет. Помните что у нас получилось сделать в прошлом уроке? Даже если не помните, не страшно. Мы отвлечемся от того что делали и поговорим о анимации спрайтов. Я расскажу как превратить несколько неживых картинок в одну неживую, но анимированную, опять же картинку.