среда, 30 июля 2008 г.

Последний взгляд

Говорят, у каждого, кто занимается играми, есть детская наивная мечта - сделать квест. У меня точно была. А после прочтения Машиной статьи про Гаппа, и вовсе самолюбие заедало. Первой игрой, которую я пытался сделать, был именно квест. Тогда, в холодные девяностые сделать игру в MSOffice на макросах, разумеется, не получилось. Прошло лет десять, мечта исполнилась на чуть более адекватных технологиях. Ура, я счастлив.


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

Поэтому, место действия - остров. К слову, он не висит в воздухе, а прикреплён нижней частью к Земле. В ранней версии были даже подпорки, но народ всё равно был уверен, что остров летает. Да, я люблю клипы Gorillaz и восхищаюсь Project Nomads, но, блин, протагонист стоит и даже не колышется =) Кстати, первый скетч был нарисован на военной кафедре на полях тетради. Там вверху летит "самолётик Рябинина", по которому ведётся работа из С-300.

Название не значило и не значит ничего. То есть, может быть, Маджео - это мир, может, остров или философия, да что угодно. Слово красивое, и хорошо.


Чертежи
На предварительном этапе обозначились первые квесты, стилистика и особенности. Мои обожаемые "игры с игроком" так и остались на виртуальной бумаге. Особенно жалею о таймере, который обещает устроить game over и никак не выключается, но останавливается за две секунды до детонации. И ещё, очень хотелось незаметно прятать/показывать предметы, например, ррраз, и дом пропал, чтоб игрок глаза вытаращил. Ладно, запомню на будущее.

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

Вывод: Предварительный этап и планирование очень важны.



Шестерёнки
Сначала разрабатывать было просто и весело - за пару дней получился простенький объектный движок, размещать предметы - одно удовольствие (обрабатывать клики по ним - другое). Основа технической части писалась быстро и легко, но затем всё упёрлось в банальное отсутствие квестов. То есть, возможность есть, но делать как бы и нечего. Самое плохое, что меня это не испугало, и вместо придумывания задач я продолжал заниматься околотехнической ерундой (порой ненужной), а время шло и близилась альфа...


Трубы
...Которая вышла с половинкой квеста, то есть 1/8 от финального результата или 1/14 от планируемого. Что ещё хуже, я закрыл глаза и в этот раз. Зато, ко мне присоединился Самурай Джек, который здорово помог с идеями, редактированием русской версии и переводом её на великобританский.

Всё время до беты я потратил на визуальные фишки - честные листья, красивый свет, подсказки и прочее. Ради интереса написал систему собирания треков из кусочков (теперь используется в Дебрайзисе), вообще, музыкальное оформление получилось очень даже ничего. Нечеловеческими усилиями в бета-версии жили два с половиной квеста и ещё сколько-то обозначилось в голове (самая большая продуктивность за всю разработку, но всё равно очень слабо).

Вывод: Самое сложное - придумывать задачи.

Ещё один большой минус - непонятное управление, действия с объектами происходят неявно, большинство игроков не понимают, что же они сделали, и почему такие последствия. Правда, некоторым это даже нравится, но большинство непонимающе отводят глаза. Между прочим, в первоначальных идеях это было фишкой (bad feature =), так что, можно сказать, я её реализовал, причем менее жестоко, ведь планировались действия по наведению курсора и случайные события.

Спасти управление можно было подсветкой - но она отпадает, потому что подсвечивалась бы вся текстура. В случае объектов с замкнутыми контурами - это хорошо, но, например, на двигателе смотрелось бы ужасно. (Твою мать, я только что понял, что таких объектов всего три, и, поизвращавшись, можно было бы и сделать. Ладно, nevermind.) Ещё был вариант с обводкой контура, но тут уж я просто не придумал как убрать внутреннюю заливку (а перерисовывать всё в двух вариантах - плохо).

Вывод: Сделать понятное управление - сложно. Тем более, в монохромной игре.


Обжиг
К IGDC-дедлайну я, конечно, не успел. Еле-еле дышали 4 квеста, в последние моменты кранча слегка испортил музыку и не успел сделать выбор языка. В результате - недорелиз с офигеннейшим звёздным небом. Не то что бы плохо, нет, это не стыдно было показать и выставить для состязаний, но хотелось, конечно, большего. Зато, настоящий, последний релиз меня радует - звуки очень сильно оживили игру (спасибо, Морровинд) и появилась, наконец, умная система локализации (опять же, на будущее).


Получилось:
+ Игра;
+ Четыре квеста, две концовки;
+ Отличная система "генерации" музыки;
+ Звуковое оформление, технически - на bass.dll;
+ Офигеннейшие звёзды, хоть они и не планировались;
+ Хорошие подсказки к объектам.

Так и осталось в планах:
- Многократная обводка объектов (может, так даже лучше);
- Третья концовка ("никакая") и четвёртая, спрятанная ("совсем плохая", доступная после прохождения всей игры);
- Ещё, как минимум, три квеста и несколько "побочных", ни к чему не приводящих;
- Из погодных условий: туман и "блеклость";
- Нормальное меню с настройкой параметров;
- Растягивающийся в реальном времени экран (сейчас можно только через options.ini);
- Графические мелочи;
- Мало, всё же, получилось сюрреализма, стимпанка и саспенса. А хотелось =)


Ещё один вывод: Надо учиться писать. И обязательно вести блог.
Серьёзно, он очень здорово помогает и подталкивает к разработке - посмотришь на него, и радуешься =) Память, опять же. Уметь красиво и грамотно писать - суперважно (этому я сейчас и учусь), знал бы - лучше бы относился в школе к русскому и литературе.

Ну и, наконец, главный вывод: Делать просто - сложно. Но нужно.


В целом, игра замечательная, я доволен. Спасибо вам.

пятница, 25 июля 2008 г.

1.0 Спасибо за игру

Релиз (2.75 Mb)

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

1.0 Ногтями к зубам

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

В предыдущем посте я обещал релиз 25го числа. Игра готова и поэтому вы её, может быть, не увидите. Сейчас у меня чуть больше сорока минут и мне очень, очень страшно выпускать её в печать, неоттестировав по-хорошему.

Что делать - понятия не имею.

p.s. Тут пришла идея не выпускать её совсем и удалить из сети - получится этакая игра-призрак. Старательно отогнал еретические мысли.

вторник, 22 июля 2008 г.

09. 0.99

Как-то даже страшно такое говорить. Но, вобщем, релиз почти готов. Ужас, мне потребовалось каких-то четыре года, чтобы подойти к этому (даже Белталити немножко не дотянул до единички). Даже страшно как-то.. Осталось настроить громкость звуков и окончательно оттестировать.

Ожидаемая дата: 25е июля (раньше просто не дотянусь до клавиатуры). Английская версия готова, а русская отредактирована - спасибо, Самурай Джек.

Квестов больше не будет - так и останется 4 этапа и 2 концовки. Понятнее тоже не станет, наверное. Сошлёмся на то, что "я так вижу". (Кстати, не открывая игру недели две, даже у меня возникли трудности с её прохождением о__О)

p.s. Оказывается, нас уже ждут =)

понедельник, 21 июля 2008 г.

09. ЭфИкс

Когда я только собирался делать Маджео, одним из оправданий (перед собой) было: "я обязательно перепишу звуковую часть и перейду на BASS, соберу основные грабли, и потом сделаю в Дебрайзисе нормальный звук". К конкурсному релизу, разумеется, даже не почесался.

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

BASS - замечательная библиотека, простая и логичная (ну вы же знаете). На простое переписывание под неё звуковой части ушло полчаса, и ещё где-то час на удобный интерфейс и разные рюшечки. Всем, вобщем, советую, и готовлю сотню на лицензию.

Да, и очень удобным оказалось привязывать фоновые звуки к состоянию объектов (прямо через указатель). Сложность кода и вероятность ошибок-с-неправильным-воспроизведением резко упали.

Ну а самые подходящие звуки, кто бы сомневался, Морровиндовские.

09. Local


Такая малюсенькая менюшка, и такие изменения в коде: фишка в том, что шрифты ещё не загружены, игровые объекты (и меню) не созданы, и даже заставка ещё не знает, на каком языке ей вещать.

Вывод: у меня далеко не оптимальный движок. Плюс: зато гибкий, все изменения заняли 20 минут. Минус: никто, кроме меня, пользоваться им не сможет (но и не надо =)

Английская версия готова, сделаю звуки и всё, и релиз.

воскресенье, 6 июля 2008 г.

08. Паблик

В печать! Продолжение следует, надеюсь. Открыто официальное представительство, пипец прям как всё серьёзно.

суббота, 5 июля 2008 г.

08. Бриллиантами в ладонь

Вот только попробуйте теперь не влюбиться в моё небо =)


Правильно рассыпать звёзы было очень, оочень трудно. На скриншоте, конечно, ничего не видно.

7го числа "релиз". Хахаха, какой там релиз. Успеть бы 4 квеста сделать и 2 концовки. Озвучка, скорее всего, отпадает, английская версия будет позже. Такой вот deadline, мужики.

понедельник, 23 июня 2008 г.

Программируем музыку

Статей и уроков я никогда не писал и не претендую. Все что ниже — собранные мною грабли.

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

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


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


Белые прямоугольнички — это и есть звуки, паттерны, каждый длиной 8, 4, 2 и 1 условных квадратиков (бит). Сохраняем каждый паттерн как отдельный файлик — и трек разрезан, остаётся только склеить его обратно уже в игре.


На будущее: у меня паттерн длиной 8 получился равен 2,824 секундам (зависит от темпа!!) и был выбран как основной (самый большой).


Клей
Так. Получилось несколько наборов звуков: басы, пианинка и гитара. Разумеется, одновременно проигрывать, например, 2 гитары смысла нет — получится каша, поэтому рождается страшное понятие инструмента.

В моём случае, это просто массив из N целочисленных, где N — число различных паттернов для инструмента, а числа в массиве означают сколько ещё раз надо проигрывать соответствующий звук (наверное, ничего непонятно =)

Вот примерный кусочек кода для проигрывания одного инструмента:
procedure SoundUpdate(count : single);
begin
timer := timer + count;

// текущий паттерн в очередной раз закончился
if timer > patterns[current].length then
begin
Play(patterns[current]); // проигрываем ещё раз
patterns[current] := patterns[current] - 1; // и уменьшаем счетчик

// если счётчик достиг нуля, выбираем случайным образом новый
// текущий паттерн, и назначаем ему случайное число повторений
if patterns[current] <= 0 then
begin
current := random(high(patterns_beat) + 1);
patterns[current] := (1 + random(2));
end;

timer := 0;
end;
end;

Проблемы не-ООП
Это было очень легко. Но, неэкономно — уже для трёх инструментов получалось слишком много кода. Не страшно, конечно, но настоящие проблемы начались когда я попробовал добавить паттерн другой длины. Например, я хочу, чтобы перед тем как зазвучит гитара (длиной 8), проигрался паттерн с гитарным вступлением (длиной 4, ещё и с отступом на 4 у.е.)

Я попробовал завести несколько таймеров, чтобы отсчитывать нужные моменты для всех возможных длин (напомню: 8, 4, 2 и 1), но их получилось жутковатое количество — ведь паттерн длиной 4 может прозвучать как в первой, так и второй половине паттерна длины 8 (и неплохо бы это дело контролировать). Итого, получится аж 15 таймеров, управляемых "вручную" — неудобно. Значит, пишем класс!)


Класс
Это был самый сложный этап. Получилось так:
const
base = 2824; // "базовая" длина (в миллисекундах)

TSoundPatterns = class
patterns : array of integer; // счетчики воспроизведения
current : byte; // текущий паттерн
start : single; // отступ
timer : single; // таймер, ясное дело
played : boolean; // флаг "уже проигранности" паттерна
public
procedure Play; // момент воспроизведения
procedure Next; virtual; // выбор следующего паттерна
procedure Update(count : single); // обновление
end;


procedure TSoundPatterns.Play;
begin
// нулевой номер паттерна означает тишину (не воспроизводится)
if current <> 0 then
sound.Play(current); // псевдокод! просто отдаем звуковому движку
// команду проигрывать звук, соответствующий
// нашему инструменту и текущему паттерну

patterns[current] := patterns[current] - 1;
if patterns[current] <= 0 then
Next; // генерируем дальнейшую судьбу нашей мелодии
end;

procedure TSoundPatterns.Update(count : single);
begin
timer := timer + count;
if (timer > start) and (not played) then // время проиграть звук
begin
Play;
played := true;
end;

if timer >= base then // следущая интерация, все по новой
begin
timer := 0;
played := false;
end;
end;
Теперь, для каждого инструмента (класса-потомка) нужно переопределить процедуру Next — и у каждого будет своя судьба =)
procedure TSPBeat.Next;
begin
current := random(high(patterns)) + 1; // выбор номера следующего паттерна
patterns[current] := (1 + random(2)) * 2; // и назначение ему числа повторений
end;

procedure TSPGuitar.Next;
var
i : integer;
begin
i := current;
current := random(high(patterns)) + 1; // выбор номера следующего паттерна
patterns[current] := (2 + random(2)) * 2; // и назначение ему числа повторений

if (i = 0) and (current <> 0) then // если была тишина (нулевой паттерн), а
begin // дальше зазвучит гитара (ненулевой),
sp_guitar_start.current := 1; // то проигрываем вступление
sp_guitar_start.patterns[sp_guitar_start.current] := 1; // один раз
end;
end;
Довольно просто, но на написание (осознание) потратилось порядочно времени.


Повторения
Всё хорошо, но паттерн больше одного раза за промежуток времени base не произведётся. А хотелось — например мышеклик (длиной 1) должен звучать сразу после щелчка мыши, а не ждать секунду-две для синхронизации. Для этого немножко колдуем:

// вписать вместо флага played
repeat_next : integer; // счетчик повторений
repeat_step : integer; // шаг повторений

// вычисление шага, _repeats — необходимое число повторений
repeat_step := 8 + _start - _repeats + 1;

procedure TSoundPatterns.Update(count : single);
begin
timer := timer + count;
if timer > start + repeat_next / 8 * temp + 4 then
begin
Event;
repeat_next := repeat_next + repeat_step;
end;

if timer >= temp then
begin
timer := 0;
repeat_next := 0;
end;
end;
Теперь, для того чтобы воспроизвести звук один раз прямо сейчас (и с синхронизацией по музыке! =) достаточно задать _repeats = 8, посчитать repeats_step и написать процедуру из двух строчек. Вот такая она для мышеклика:
procedure Click;
begin
sp_click.current := 1;
sp_click.patterns[sp_click.current] := 1;
end;

Заключение
Во-первых, основное время (base) можно сделать своим для каждого звука (технически это просто), но дело в том, что обычно в треке паттерны пропорциональны друг другу, и с единственным base управляться немного проще.

Во-вторых, нужно не забыть "почистить" звуки, чтобы в конце не было щелчков, а зацикленность была плавной и незаметной, но тут уже дело слуха (кстати, тестировать музыку очень сложно).

На самом деле здесь всё очень просто, на осмысление и программирование ушло 2-3 часа (раза в полтора меньше чем на этот пост =), так что не бойтесь, результат того стоит:
— Твоя музыка?! о_О
— Генерируемая?!! О_О
Удачи!) Надеюсь, в целом понятно. Вопросы? ↓

воскресенье, 22 июня 2008 г.

07. Фруктовые паттерны

Бета-версия (1 Мб). Готова ровно половина квестов, и ни одной концовки. Зато. Что-то такое в ней есть. А вы как считаете??


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

Осталось сделать всякие шумы и будет вообще замечательно (грозы! дождя побольше! ветра мне!! =)

И ещё, я очень старался подобрать настроение. Получилось довольно веселое. Может это и к лучшему. Я так вижу (слышу) в конце концов! =)

пятница, 20 июня 2008 г.

06. Quite simple

Делать просто - сложно.

Анимацию своими силами сделать почти невозможно. Систему таймеров - долго. Движок сообщений - не хочется. Физику цепей - трудно. Логику связанных объектов - неприятно.

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



Бета на волоске.

среда, 18 июня 2008 г.

06. Монохромный хлорофилл

Я очень долго останавливал себя, не получилось. Решил всё-таки "не ссать" и сделать честную растительность из частичек. Нарисовать травяной эллипс совсем-совсем несложно:


Дальше - веселее. Геометрию я учил плохо и давно, и найти нормали я не смог, а то что нашел посчитал слишком муторным. Поэтому рассчет направления травинок оказался, мягко говоря, кривоватым:


Осталось немножко - развернуть травинки как надо, расставить их в нужном порядке, нарисовать текстуры и добиться красоты:



Получился откровенный шлак. Мусор. Я потратил часа два на рисование травинок (вариантов десять), на подбор их размеров и углов, а получилась невнятная каша. Откат.

воскресенье, 15 июня 2008 г.

06. Трансплантация

Придумал и реализовал два с половиной квеста. Стало гораздо веселее, игра подошла к своей самой важной черте - она готова ожить, готова стать Игрой. Это очень хрупкое место, постараюсь не прозевать.

суббота, 14 июня 2008 г.

06. Read Me!

Как обратить внимание игрока на подписи к объектам? Правильно - рисовать эти подписи там, куда смотрит игрок. Другими словами, сделать всеми любимые "облачка". Пробуем:


Жестоко!) Даже если учесть, что на экране будут одна-две подсказки, оставлять такое нельзя - текст будет невозможно прочитать (особенно мой корявый почерк =). Значит, рисуем подложки:


Так, лучше. Остается только растащить подсказки, нарисовать подложку и скрыть лишнее. Просто, свежо и симпатично:


Первая видимая проблема - расположение подсказок на другом языке. Решение - тот же самый ini-файл, дописывать координаты прямо рядом с текстом.

Вторая проблема - что делать с длинными и многострочными подсказками? Скролл или многоэтажный текст - плохо. Не делать длинных подсказок? Думаю, да.

Первый хороший бонус - автоматически решен вопрос вывода "событийных" сообщений. Которых, может, и не будет, но всё же.

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

05. От фонаря

Задача: сделать красивый прожектор малыми силами.

Нарисовать фонарик легко, остаётся только заставить его светить. Сначала простенький контур для наглядности:


Дальше - сам луч. Рисовать его текстурой не хочется - угол "на лету" не поменяешь, большую текстуру таскать придется да и просто возня лишняя. Спасение - честная модель луча (суть обычный треугольник =)


Ну и вишенка: немножко пошуметь, выставить смешивание на умножение и подогнать углы и прозрачность.

Красота:

Результат очень радует. Потрачено где-то полчаса, а плюшка та-а-акая вкусная =)

пятница, 13 июня 2008 г.

05. Поражение интеллекта

Самый неожиданный подводный камень: думать сложно (sic!!). С грехом-пополам расписал первый квест. Один квест!! Самый простой. А до беты неделя, кошмар!.. (дальше, якобы, паника)

Но есть и радость: отыскался со-автор и переводчик на великобританский - Самурай Джек. Поразительная штука, это ОУЕО, со столькими людьми знакомлюсь, офигеть.

p.s. Адекватность и рационализм ломаются в крошки случайно и незаметно. Одна система частиц способна подарить часы медитации.

пятница, 6 июня 2008 г.

04. Рукописный кислород

Якобы альфа (300 кб). И только один готовый полуквест (про цветы). Надо думать, думать, думать, думать...

04. Охота за пикселями

Размеры текстур, повторюсь, равны степеням двойки. Объекты в такое вписываются с трудом и скрипом:


Дерево - вообще клинический случай, занимает пол неба. Управление было жутко неудобным, курсор попадал не туда, куда хотел игрок, даже при малом количестве объектов пиксель-хантинг доканывал, а без подсветки объектов игра вообще становилась машиной случайностей (проблема до конца не решена). По шестерёнке кликнуть было вообще нереально - ее перекрывало основание острова.

Я очень долго ленился и боялся делать баундинг-боксы - мол, громоздко, долго, много и неудобно. Заняло это минуты три. Ещё две минуты - раскидать сами боксы по объектам. Стало действительно удобно. Красота:


Бесплатный бонус - можно делать области попадания больше объектов и "фиктивные" области. В идеале, конечно, надо делать многоугольниками. Несложно, но, опять таки, лениво.

Сегодня будет "альфа". Понятия не имею что делать с квестами - их нет.

четверг, 5 июня 2008 г.

среда, 28 мая 2008 г.

03. Задача о колёсике

В одном из квестов на месте холма должна была вылезти большая вращающаяся шестерёнка. И всё бы здорово, но разместить её на острове практически невозможно - остров узенький, а шестерёнка довольно большая и будет вылезать, что неприятно. Что делать?

1) Исхитриться с деформацией шестерни, сплюснуть её по вертикали - ужасный вариант - деформировать объекты некрасиво, да и запрограммировать это придётся отдельно, неизящно. Зато такой способ позволял сделать шестерёнку с огромным радиусом, это да, это плюс.

2) Можно было разделить поверхность на 2 половинки - ближнюю и дальнюю, а шестерёнку выводить между ними. Но если сделать так, то потом будет сложно подвинуть шестерню по вертикали (придётся перерисовывать обе половины). Да и резать единый объект совсем не хочется

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


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

4) Ну и, наконец, самый логичный вариант. Надо было всего лишь включить голову с самого начала.



Вывод: не надо тратить время на ненужные эксперименты, учимся думать.

02. Маленькое вращающееся колечко

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

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

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

Ещё размышляю как "растянуть" процесс по времени, и оградить игрока от простого закликивания всего, на что попадёт курсор, но и не заставлять его скучать, при том, что анимации почти нет (и не будет). Вообще, всё как-то само сползает в сторону "состояний" (погода, время суток, свойства объектов), нежели событий, что хорошо, оригинально и, что таить, гораздо проще в реализации.

Всё это здорово, приходится думать головой.

суббота, 24 мая 2008 г.

02. Синоптик

Облака, дождь, дым, островотрясение (случайно вышло)...


Опробовал логические цепи в действии - нужно делать подсказки.

Как ни странно, сложнее всего оказалось рисовать облака. До сих пор не устраивают. Зато домики душевные получились.

01. Пером в глаз

Вот примерно так будет начинаться игра:


Очень неплохо, а, главное - быстро и без особых усилий. Предметы очень удобно размещать перетаскиванием.

четверг, 22 мая 2008 г.

00. Ужасы

Началось написание программного кода, готова 1я версия, есть основные классы, добавлять объекты просто и удобно. По крайней мере пока.

На скриншоте — черновые обсерватория и паровой двигатель. И совсем черновой курсор, который умеет попадать по объектам.


Предполагалось записать каждому объекту свой ограничивающий квадрат (к слову, все размеры текстур кратны n^2), но как-то и так пока неплохо.

Определился с "техникой" рисования (черновой карандаш → несколько раз обвести кистью → заливка фона).

Упёрся в отсутствие арта и логики (переписывать надо всё с нуля), программировать как бы и нечего. Даже с объектами до конца не определился. Вывод — на препродакшене я поленился, и теперь оно съедает время альфы. Учусь.

среда, 21 мая 2008 г.

Концепт

Готова первая редакция концепт-документа. Очень устаканивает мысли.

Всё ещё придумываю объекты и делаю наброски. Почти все придуманные черновые задачи летят в корзину, буду переписывать с нуля. Блок-схемы себя оправдали — удобно.

среда, 14 мая 2008 г.

Паровозы дирижаблей

Начался IGDC-конкурс, посовещавшись с Макаром, решили сделать темой паропанк (кстати, идея провести большой конкурс родилась после второй кружки третьего КРИ-дня, привет Кефиру).

Теперь нужно переделать сеттинг (трансформируем сюрр в стим =), добавить индустриальных штуковин, что здорово, потому что я как раз думал что бы ещё придумать в качестве объектов. Итак, приступаем к концепт-документу!)

Да, и раз уж участвую и все всё увидят, блог открыт. Нафиг сюрпризы, правда?

суббота, 10 мая 2008 г.

Идеи плотным киселём

Рисую блок-схемы, пытаюсь сделать и логично, и сбалансированно и интересно. Очень хочется приступить к написанию кода и рисованию предметов, но сам себя останавливаю - подожду ИГДЦ, а заодно в голове всё поплотнее уляжется.

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

До сих пор не определился окончательно с концовками (даже так - не определился какая "хорошая" а какая "плохая"). Ещё один вопрос - нужен ли сюжет? Наверное, нет.

пятница, 9 мая 2008 г.

Логические цепочки

Пробую редактировать логику с помощью блок-схем. Довольно удобно и гораздно нагляднее, нежели в блокноте:


четверг, 8 мая 2008 г.

Маджео

Депрессивный философский квест (не ай-спай, ни за что). Чёрно-белый (может краски и будут, но блеклые), полностью отрисованный в фотошопе.

Моя первая игра с preproduction'ом, причём довольно серьезным (играть буду в блокноте, реализация - для всех остальных). Даже скетчи рисую.

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

Когда начнётся, собственно, производство, пока неизвестно (на ИГДЦ с конкурсом, наверное), зато известно что будет длиться около 2х месяцев. До этого никто о нём не узнает.

Название не значит ничего (может быть пока).

Ну, в добрый путь