1

Этап 1

Разработка стандартной версии "морского боя"

28 декабря—10 января

1

Этап 1

Разработка стандартной версии "морского боя"

28 декабря—10 января

28 декабря 2014 10 января 2015
Цель просрочена на 3556 дней

Цель заброшена

Автор не отписывался в цели 9 лет 8 месяцев 20 дней

Автор цели

Общая

Написать "морской бой" под android и выложить на google play

Здраствуйте. Я, Иван. Хотел бы сделать игру, WoW-killer суть такова...

Думаю, рано или поздно любого заядлого геймера при задрачивании очередной игрушки посещает примерно мысль "Черт, почему разработчики не могли добавить %фичанейм?". При определенном стечении обстоятельств мысль трансформируется в "Я же могу сделать лучше!". Ну из нее берет начало неудержимый поток: "Ох, а как было бы здорово сделать свою игру"; "Круто было бы сделать Доту, только с лазерами"; "А ведь на этом можно еще и кучу денег заработать!"; "Все, с завтрашнего дня начинаю". И, как правило, не начинают. По крайней мере, так было до сих пор у меня.

Постановке этой цели предшествовало много креативных идей, грез о золотых горах и изрисованных клочков бумаги. Начиналось все с пристрастия к играм меня и моего тогдашнего начальника. Постепенно обсуждения игр в курилке перерастали в обсуждение того, как круто будет сделать свою игру. И конечно же, это должна была быть убийца WoW, EVE и Lineage вместе взятых. После были попытки хоть немного структурировать идеи на бумаге. У меня до сих пор валяется где-то стопка листиков с набросками идей, корявыми концепт-артами и списками киллер-фич в духе "опупенная графика; живой мир; реалистичная экономика" и подобными. Естественно, так они на бумаге и остались - вряд ли два хеллоуворлдщика в обозримые сроки могут сделать игру, напичканную функционалом пяти лучших игр, сделанных топовыми профессиональными студиями. Однако кое-что я все-таки сделал: прошел туториал по разработке игр на allegro под C++, написал 216 строчек кошмарного кода на python, воплощая менее масштабную идею зомби-шутера (если кому интересно, тут ). А еще мы перелопатили огромное количество книг, статей и howto из области геймдева. Постепенно пришло понимание того, что глобальную игрушку мы не потянем даже если наймем программистов и художников. Так что WoW-killer трансформировался сначала в Dota-killer, потом в "простенькую игрушку с корованами и корабликами", а теперь - в "морской бой для мобилок с небольшими фичами. Надо же с чего-то начинать".

Работа над морским боем началась недели две назад с выбора инструментов. Выбор остановили на unity - хотелось выпустить игру побыстрее и начать снова ломать зубы о старые идеи. Первая неделя прошла за изучением обучалок и попытками не заспамить мегафичами обучающий проект. Вторая неделя ознаменовалась попытками написания мегадвижка для сетки - яркий пример overengineering. По замыслу, центральным объектом игры становилась сетка, которая должна была отвечать и за размещение\масштабирование кораблей, и за обработку событий, и за игровую логику. В итоге получилось нечто забашованное, но играбельное. Однако дальнейшая разработка сулила сплошную головную боль и страдания, поэтому сегодняшний день будет посвящен переосмыслению картины мира и рефакторингу кода. Нужно сильно постараться снова не накодить лишнего функционала "на потом". Ну а до 31-го декабря нужно уже доделать это чудо ламерской мысли и приступить к навешиванию фич.

 Критерий завершения

Игра доступна для скачивания

 Личные ресурсы

Личное время 24\7, появившееся после сокращения с работы

 Экологичность цели

Эта цель необходима мне для начального погружения в gamedev, повышения скилла "программирование" и первого опыта доведения проекта до финала.

  1. Разработка стандартной версии "морского боя"

    Этот этап нужен больше для того, чтобы хоть немного набить руку на программировании и unity.

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

    Расстановка: из меню выбирается корабль длиной l, расположенный горизонтально (вдоль x) по умолчанию. Ориентацию корабля можно менять на вертикальную. Далее выбирается клетка на поле игрока, в которую корабль будет помещен, и если клетки на площади размещения корабля свободны, то корабль размещается на поле. Этап заканчивается после нажатия на кнопку "начать игру" в случае если все корабли игрока были расставлены на поле. В начале этого этапа ИИ также расставляет свои корабли.

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

    Конец игры: Вывод статистики игры и предложение сыграть еще одну партию. После принятия предложения поля игрока и противника приводятся в изначальный вид, и игра возвращается в режим "Расстановка".

  • 3953
  • 28 декабря 2014, 13:36
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?