pinkerator (pinkerator) wrote in gamer,
pinkerator
pinkerator
gamer

Pixel Dominoes. История разработки одной игры для Ludum Dare.

PixelDominoes_Scr1

В минувшие выходные проходил очередной (уже 26 по счету) чемпионат по скоростной разработке игр под названием Ludum Dare.
Разработчикам-одиночкам давалось 48 часов, чтобы от начала и до конца сделать игру по теме "Minimalism".

Погода в тот день не задалась, вечер был свободный - вот я и решил поучаствовать ради интереса. Небольшой дневник разработки - под катом :)


21:32

За окном дождь. Только вошел домой. Чашечка кофе, пригласить в гости кота и за дело!

IMG_5598

21:35

Если верить сайту,
Ludum Dare 26 Compo Ends: in 1 day, 8 hours, 24 minutes, 24 seconds
Я планирую разобраться с игрой за вечер – завтра свободного времени уже не будет.

Общая идея проекта, который созрел у меня в голове – минималистичное домино. Я обратил внимание, что когда люди играют в домино и выкладывают из косточек на столе “змейку” – значение для следующего хода имеют только две крайних косточки с их числом точек. Соответственно, я решил сжать весь игровой стол до одной косточки, у которой, в зависимости от сделанного хода, будет меняться левая или правая цифра.

Соперника – убрать.

Просчет косточек, которые уже были в игре – обойдемся без него.

Рабочее название игры – “Minimalistic Dominoes”.

Посмотрим, что выйдет!

21:47

Как выяснилось, под Виндой стоит только Visual Studio в версии для Windows Phone… Плохо дело! Качаю Express вариант для настольных приложений.

dev1

21:48

Одновременно кодирую все номера косточек домино, которые будут использоваться в игре:

00 – 1
01 - 2
02 – 3
03 - 4
04 - 5

05 - 6
06 – 7
11 - 8
12 - 9
13 - 10

14 - 11
15 - 12
16 - 13
22 - 14
23 - 15

24 - 16
25 - 17
26 - 18
33 - 19
34 - 20

35 - 21
36 - 22
44 - 23
45 - 24
46 - 25

55 - 26
56 - 27
66 - 28

Стандартный набор 28 косточек – цифры сошлись.

21:57

Visual Studio все качается, пока делаю графику для доминошек в фотошопе.

dev2

22:00

Надоело сидеть в тишине – включаю музыку.

22:07

Visual Studio установилась. Сейчас буду проверять, подойдет ли эта версия для разработки домино-игрушки.

dev4

22:11

Генерируем стандартную форму. 1280х720, тонкая полоска сверху.

Первый запуск!

dev7

Вот и мысли мгновенно растерялись – думаю, с чего теперь начать.

22:13

28 косточек будут расположены в 2 ряда
По 14 в одном ряду

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

50 точек по горизонтали для каждой - мало
70 – много
60 – в самый раз

14 * каждая по 60 = 840

Ок

Между ними отступы по 10 пикселей – это еще 130 точек

840+130 = 970 пикселей вся зона домино “на руках” игрока

310 на отступы
Значит слева и справа считаем по 155

Высота каждой косточки, соответственно, 60*2 = 120 точек (два квадратных сектора с точками).

22:22

Присутствие или отсутствие домино решено менять за счет FlatStyle стиля кнопки.

dev9

22:28

Дизайн формы

Первый ряд домино выстроен.

dev10

22:30

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

22:42

Вся графика по доминошкам в руках игрока завершена.

dev12

22:49

Загружаю графику в проект.

dev13

Понимаю, что нужно взять перерыв на еду.

***

23:15

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

23:26

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

23:35

Отдельная графика по центральной доминошке готова.
Дописываю переменную, по которой она отслеживается.

23:40

Отрисовка центральной доминошки работает!

dev14

23:50

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

00:10

Делаю для одной кнопки рабочий функционал “хода” игрока (если подходит к центральное доминошке – ход происходит, если нет - облом).
Выношу его в отдельную функцию и прикрепляю ко всем доминошкам в руках игрока.

00:20

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

0:31

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

0:32

Волевым усилием решено переименовать игру из Minimalistic Dominoes в Pixel Dominoes. Да, так стало правда лучше.

0:37

Добавил в код обработку победы игрока. Пока она пустая, но только что я формально прошел игру до нее. Почувствовал приятное чувство кхм… “близости завершенности”.

0:47

Прячу все элементы на загрузке, добавляю логотип Sometimes You и кнопку “BEGIN”, которая позволяет начать игру.

0:57

Еще немного доработки по титульному экрану и кнопка “AGAIN ?” для повтора игры.

Вроде бы по коду все готово :)

0:59

Из половинки центральной доминошки с пятью точками делаю иконку для игрушки в онлайн-редакторе иконок.

dev15

1:10

Оптимизация графики – снижаю разрешение у всех картинок в десять раз (в оригинале они были просто огромными).
Результат - 1,64Mb откомпилированного EXE превратились в 358Kb.
Время 3,5 дискет вроде бы давно прошли, но подобная оптимизация – это все-равно приятно!

dev16

Игра готова!

***

Напоследок - немного ссылок.

Скачать игру (меньше 64Кб в архиве): http://sometimesyou.com/PixelDominoes_LD26.zip
Скачать исходники: http://sometimesyou.com/PixelDominoes_LD26_Src.zip

Страница игры на Ludum Dare: http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=23092
Если игра понравилась - голосуйте, комментируйте :) Я только рад буду!

Tags: .платформа: pc, .рубрика: инди-игры, .рубрика: как делают игры?, .содержание: картинки, .содержание: скачать/распродажа, материал для gamer.livejournal.com
Subscribe
promo gamer december 14, 2012 10:36 41
Buy for 100 tokens
Советы авторам! 0. Если ваша статья крупнее расписания лекций третьего курса на четверг - прячьте под кат все, кроме одного небольшого скриншота\картинки и одного-двух абзацев. По кату обязательно кликнут и прочтут остальное, не беспокойтесь. 1. Определите для себя, о какой игре вы…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 5 comments