28.01.2008

GraviLens Construction 3

Вчера ночью после зелёной вечеринки пришёл домой, захотелось сделать звуковое оформление, хотя бы начать. С ходу в TSR был интегрирован BASS и спустя несколько минут появились первые звуковые эффекты. Это было очень здорово.

Что-то сегодня был какой-то день формул. В начале я отказался от глупой линейной формулы распределения силы и поставил всем известную: пропорциональна произведению масс и обратно пропорциональна квадрату расстояния. Далее рутина с нахождением коэффициентов и увидев удовлетворивший меня результат - зависимость Ньютона была утверждена.

Второй загон с математикой начался когда я захотел сделать Рефлекторы(отражающие гравилинзы). Мне нужно было найти точку пересечения окружности и луча. Отложить от этой точки нормаль и отразить вектор скорости. Пришлось аналитически(на листочке) решать задачу, систему уравнений с векторами, которая потом сводится к обыкновенному квадратному ур-нию. Т.к. точка лежит внутри окружности там очень просто берётся одно решение которое с минусом, потому что у нас t<0.. брр, в общем всё решение для своего конкретного случая я расписал на половине листика А4. Жалко ни фотика, ни сканера нету. Дальше в код, всё работает, я счастлив.

Сложность отследить поведение луча даже на простых уровнях заставила меня сделать на прицельном круге стрелку, которая показывает направление результирующей силы в данной точке и коэффициент дисперсии(когда луч рассеивается). После этого мне даже приятно стало стрелять, т.к. подсознательно было понятно как ведёт себя поле.


Сделал возможность выключать некоторые гравилинзы попаданием в них. Однако только некоторые из них выключаются на всегда(или пока их не включить гравитационным ключом), остальные выключаются на определённое время. Но всё равно это можно будет использовать в уровнях.

В принципе и всё. Вот и прошло 7 дней с начала работы. Уже немало сделано, многое ещё впереди. Между тем сдана сессия! С чем я себя уже не раз поздравил.

26.01.2008

GraviLens Construction 2

Добавил гравитационные ключи, эдакие звёздочки, которыми можно отключать объекты которые мешают прохождению луча. Вы сбиваете звезду лучом; она падает на землю; вы левой кнопкой мыши перетаскиваете её на любую из злополучных гравилинз; гравилинза отключается(становится полупрозрачной). Теперь можно стрелять сквозь её. Ключ можно использовать сколько нужно раз. Можно перетянуть ключ обратно на землю или в другую гравилинзу.

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

Изменил немного управление. Раньше использовались две кнопки, левая(таскать) и правая(стрелять). Изменил считаю в лучшую сторону, сейчас всё можно делать только левой кнопкой. Изменил принцип прицеливания: к мышке привязан крестик, за которым бегает кружок. Чтобы стрелять точно, нужно ждать пока кружок сойдётся с крестиком(линзы с зеркалами сошлись..). Луч всегда бьёт сквозь кружочек. Была идея сделать стрельбу случайным образом по направлению между крестиком и кружочком. Ещё осталось добавить ракеты, гранаты..

Усовершенствовал стенки стакана. У них работает коэффициент поглощения энергии, если он >=100%, значит стенка обычная и ничего не отражает, в противном случае power-=absorp;

SCROLL UP! Уровень не ограничивается одним экраном. Подняться выше можно(даже нужно) сбив Подъём Вверх, такой шарик со стрелочкой вверх. Далее кликнув на него мы подымимся вверх на определённое расстояние заданное в параметрах этой вещички. Каждый Подъём Вверх может подымать нас на разное расстояние. Я как дизайнер при разработке уровня и буду таким образом определять продвижение по уровню. Процесс подъёма по уровню будет с 2д-параллаксом.
EXIT? Уровень будет считаться пройденным когда мы собьём Выход, а затем кликнем на него.

23.01.2008

GraviLens Construction

В ночь на 20ое число решился таки начать. Начал далеко. Рисовал гуй в фотошопе, одновременно вставлял и правил всякие баги движка, код которого уже месяц не видел. Нарисовал HERO. Днём 21ого пытался таки делать луч света с невидимой линзой. После небольшого успеха нарисовал какую-то сферу и вставил её, вставил и ещё одну. Вот насколько я помню что получилось к вечеру. Фоновый рисунок и курсор в этой версии были из Монтезумы.. так.. для заполнения пространства.



Дальше больше. Добавил Чёрную Дыру(буквально всасывает) и Звёзды Пульсары(отталкивают луч). Сделал толстый сглаженный луч. По лучу бегает сгусток света(так.. эффекты блин) Пока сбиваются только Бонусы на игровые очки. Сделал dragndrop управление и луч света пока нажата правая кнопка(читайте изменение геймплея ниже). Нарисовал фон и курсоры(стрелочку и руку сжатую расжатую). В общем читать это всё не особо интересно я думаю. Это вроде как отчётик для самого себя. Скриншот из сегодняшней версии.



Далее была чуть пересмотрена сама идея и внесены кой-какие изменения. Герой и прицел перемещаются методом drag'n'drop. Введено время на прохождение уровня. Выстрелы неограничены.
Бонусы. Бонусы на очки - дают очки и висят на уровне, их можно сбить лучом света. Есть Бонус на время, который как оказалось будет добавлять нам времени для прохождения уровня.
Помошники. На уровне можно сбить Гравитационные Ключи. При попадании они летят вниз на землю. Методом dragdrop их можно вставить в любую видимую Гравитационную Линзу на уровне, она деактивируется и становится полупрозрачной. Теперь Луч будет проходить сквозь неё. Таким образом Ключи нужно использовать тактически чтобы обеспечить прохождение уровня или хотя бы сделать его более лёгким.
Была ещё идейка про Световые Компаса, но в игре на время они потеряли свою пользу. На тактическом режиме могут оказать значительную помощи игроку. На уровне висит N-ое кол-во Световых Компасов. Их можно перетаскивать и ставить в разные места. После расположения Героя компасы считаются недолго. Спустя доли секунды компас может не показать стрелку. А может и показать. Если при данном прицеливании наш луч ДОЛЖЕН БУДЕТ пройти сквозь компас или рядом, то покажется стрелка с направлением луча.

01.01.2008

I'd like experimental subquest

Бонус для игрока это некое поощрение, может быть даже совсем незначительное. Когда бонус висит у игрока над головой, он неявно даёт подквест: достигни этой точки и получишь поощрение в виде игровых очков. Этот подквест может оказаться первопричиной другого серьёзного задания. Собираем монеты в бонусных подквестах на уровнях. Знаем: эти подквесты нужны для ещё одного бонусного подквеста про который написано в правилах. Собери 100 монет и получи дополнительную жизнь. Полезное поощрение. Оно даст нам дополнительные попытки в прохождении игры. Так вот вопрос в эксперименте над подквестами.

Ветвление в бонусах. Есть такая ситуация когда у вас есть два противоположных подквеста, т.е. при завершении одного вы проваливаете другой и наоборот. Так например в Luxor выпадающие бонусы очков и денег. Когда они находятся на уровне биты, в разных частях экрана, словить их сложнее. Поэтому либо выкручивайтесь битой и возможно словите не то что вам нужно, или сделайте выбор за миллисекунды.

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

Геометрически бонусы представляются в виде заезженных монеток, кристаллов - что по физике представляют собой точку, окружность или примитивную фигуру. Хочется чего-нибудь оригинального. Есть бонус фабрики, например отталкиваясь от определённой стенки выпадает бонус. Стенка уже не бонус, а фабрика бонусов. Хотелось бы не клепать бесконечно разнообразные бонус-фабрики, а сделать оригинальный бонус на очки, а следствие и оригинальный завязанный на физике или геометрии подквест.