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

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

Основные цели

Цель 1:

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

Цель 2:

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

Это означает отсутствие Unity, Unreal и ничего подобного. Вместо этого я буду использовать такие технологии, как Electron, о которых я не удивлюсь, если вы не слышали. С другой стороны, я еще не очень хорошо знаю свою аудиторию для этого сериала. Может быть, вы супер крутой и уже создали свое собственное приложение Electron.

Цель 3:

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

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

Второстепенная цель:

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

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

Игра

Выживайте, стройте, исследуйте

У меня есть особое видение Codename: Jaco. Я думаю, что масштаб является сложным, но выполнимым для команды из одного человека (это мое ожидание, как я уже говорил ранее. Но если это соберет немного таланта, я не буду уклоняться от этой возможности).

Столбы

Основной вид

Большая часть игры будет проходить через основной вид. Это будет изоморфный, минималистичный вид где-то между основными видами Civilization и Проявочной (репозиторий).

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

И хотя «Проявочная комната» была в первую очередь посвящена сбору и исследованию ресурсов, Жако будет обменивать таймеры и ресурсы «Проявочной комнаты» на создание улучшений базы и защиту вашего поселения.

Пошаговый

Жако — пошаговая игра. Каждый ход игрок будет вынужден делать важный выбор. Будете ли вы собирать припасы, строить улучшения базы, производить потомство или исследовать?

Действия

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

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

Наконец, вы произведете потомство. Jaco будет разработан с намерением сделать игру сложной и с ожиданием того, что игрок в какой-то момент умрет. Но смерть — это не Game Over. Скорее, если вы производите потомство, ваш выводок будет служить вашей дополнительной жизнью, гарантируя, что будущие поколения смогут продолжать выживать, строить и исследовать.

Технологии

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

Электрон

Electron — это новая технология, разработанная людьми из GitHub. Это та же платформа, на которой работает их редактор кода Atom. Концепция Electron заключается в следующем: использовать существующие веб-технологии для создания настольных приложений.

Я буду использовать Electron, чтобы превратить Jaco в кроссплатформенный игровой процесс. Довольно круто, правда?!

Реакт.js

React — это технология, разработанная Facebook для создания пользовательских интерфейсов. Поскольку пользовательский интерфейс является такой важной частью видеоигры, а React — интуитивно понятной платформой пользовательского интерфейса, React будет играть большую роль в Jaco.

Node.js

У вас не может быть Electron без Node, но Node в любом случае — это колени пчелы, так что я не жалуюсь. В то время как React будет работать с пользовательскими компонентами, Node будет поддерживать внутреннюю логику, обрабатывая всю логику, которую игрок не видит.

Монго?

Я ставлю знак вопроса позади Mongo, потому что не знаю точно, буду ли я использовать Mongo или нет. В любом случае вам нужна база данных для сохранения игр (насколько мне известно, но мы могли бы сделать это с помощью простых файлов JSON), и в этом случае MongoDB кажется мне хорошим вариантом из-за это гибкость.

Вывод

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

Хотите принять участие? Напишите мне, возможно, @ [email protected] или перейдите по ссылке ниже и следите за проблемами github.

Или, если вы просто хотите посмотреть репозиторий, вы можете найти его текущую версию здесь (сейчас она выглядит не очень, но подождите некоторое время): https://github.com/goopscoop/jaco

Читайте следующий пост из серии:



Или посетите оглавление дневника разработчиков JACO, чтобы узнать больше: