+183.33
52 читателя, 99 топиков

Равномерный рандом

Как-то было дело — я столкнулся с тем, что стандартный Math.random() меня не устраивает. Дело в том, что числовые значения, получаемые при его использовании распределены по нормальному закону.
По-русски говоря, это значит, что если, например, создать генератор случайных целых чисел от 0 до 10, используя лишь штатный random(), то некоторые из получаемых чисел будут выпадать гораздо чаще остальных. Конечно, если необходимо сгенерировать лишь несколько случайных значений, это проканает, но если игра основана на случайности, то повышенная повторяемость некоторых «избранных» чисел начинает бросаться в глаза (((

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

Через тернии к звездам. Оптимизация кода.

Эта статья посвящена оптимизации ActionScript3 на примере создания эффекта «полета сквозь звезды»(на подобии старого скринсейвера Windows). Мне этот эффект необходим был для игры. Эффект должен был служить фоном и поэтому требовалось чтобы он был как можно менее ресурсоемким.
Читать дальше →
  • +11

Shedule-based AI

Не нашёл подходящего блога под этот пост, так что буду писать здесь (код всё равно прилагается).

Рано или поздно все сталкиваются с проблемой написания интеллекта. К этому вопросу есть много подходов, например на заре своей деятельности я использовал STATE машину (надеюсь называется она так). Принцип простой – у организма есть состояния, согласно которым мы и выбираем действия (много много if-ов или в результате эволюции один switch и много if-ов внутри case-ов :D ) Можно конечно еще проще, но когда дело доходит до комплексным организмов эти подходы начинают давать сбои. Проще говоря if-ов попросту не хватает. Собственно наступив на эти грабли я и полез рыть интернет в поисках каких-либо приемлемых способов написания интеллекта…и наткнулся на
Читать дальше →

Сохранение и загрузка пользовательских уровней

Всем еще раз привет :-)

Сегодня я расскажу как делал сохранение уровней на сервере.

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

Защита своими руками

Всем привет.

Итак. Нам бы не хотелось, чтоб нашу флешку распотрошили какие-нибудь школьники и запустили под своим именем, что-нибудь внутри поменяв :-) Да и вообще чтоб кто-то там ковырялся.

Какие наши варианты? Пойти и купить защиту. Если есть лишняя сотка баксов, так и делайте. Только непробиваемых защит не бывает, не забывайте.

Я пошел другим путем. По двум причинам: во-первых лишней сотки не было под рукой, во-вторых и мысли защищать флешку у меня не было.
Читать дальше →

Framework: Config & Data

Рассказал про Profile — можно сразу рассказать и про реализацию игровых конфигов.

Читать дальше →

Framework: Profile

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

Читать дальше →

Триангуляция. EarClip, жадная, Делоне. Код.

Продолжаем тему триангуляции.
Описываю еще 2 алгоритма и выкладываю код для всех трех.


Читать дальше →

Framework: Fps

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

Fps

elmortem.core.Fps
Читать дальше →

Триангуляция Делоне с ограничением

В рамках научно-образовательного проекта «Маемся дурью» мне понадобилось сделать хитрую триангуляцию набора точек.

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

Ниже я расскажу, что у меня получилось.

Читать дальше →