Приветствую всех! Это дневник разработки моей игры (или дневник разработчика. Кстати, как правильно?). Для начала стоит рассказать, как у меня появилась идея делать эту игру. Если вас это не интересует сразу можете переходить к пункту «Начало Разработки» или «Идея» если вы хотите понять основную идею игры.
Появления идеи.
Некоторые возможно знакомы с серий игр King’s Bounty (ну та, что от Katauri), так вот пару месяцев назад я занимался перепрохождением этих игр, я также увлекся историей разработки это игры, я мне захотелось сделать что-то подобное. Но как это обычно бывает, так ничего я и не начал.
Через некоторое время мне повезло: один мой знакомый попросил меня, помочь ему решить его проблему с программированием. Эта просьба заставила меня вспомнить, что такое программирование. Мне пришлось заново накатить Visual Studio, что помочь ему. Конечно, я мог отказать ему, но тогда это бы не побудило меня создать собственный проект.
Через некоторое время, когда проблема была решена, у меня начали появляться идея создать игру. Мысли из-за недавно пройденной King’s Bounty еще сильнее побуждали меня к разработке. Тогда я еще не был уверен в своих силах, поэтому я решил поиграться с Visual Studio и консолью.
С моими успехами в выводе текста, моя уверенность повысилась (знаю звучит глупо), и я решил начать разработку идеи игры. Лично для меня писать сюжет и идею игры на бумаге или в Word очень скучно, так что я решил начать с написания кода, параллельно придумывая игру (с помощью такого метода я много раз пытался сделать игру, но всегда не удачно, впрочем, это меня не остановило).
Идея.
Тип моей игры – ролевая RPG. У меня всегда была мечта создать свою фэнтезийную игру, и вот мне снова предоставился шанс. На момент начала разработки в моей голове не было как такого сюжета, я думал, что, когда движок игры будет готов сюжет будет придумать не сложно.
Сразу после обдумывания идея и у меня появилась проблема связанная с графическим оформление игры. Проблема с графикой очень частая проблема для меня при разработке игр. Решение было необычное, пугающее и очень-очень странное – делать консольную игру. Не в смысле игру для консолей типа PS или Xbox, а игру для cmd, консоли в Windows. Решение необычное, но оно убирало множество проблем, например системные требования: такая игра пойдет даже на микроволновку.
Начало разработки.
Язык, на котором я буду писать – C#. Я выбрал его т. к. у меня уже был опыт работы с ним, и я считаю его очень удобным.
Так как на момент начала разработки у меня не было основной идеи игры, я решил начать с создания классов, которые в будущем сыграю важную роль в игре.
Первым классов в это проекте был IntelligentWriter. Он должен существенно упрощал работу с консолью, и добавлял новые методы. Основные: WriteDelay (этот метод занимается плавным выводом текста на консоль, скорость вывода можно настроить), WriteDialog (занимается выводом текста на консоль с использование имени персонажа, может работать с задержкой), WriteList (метод, который выводит список, он был специально разработан для работы в команде с IntelligentReader).
IntelligentReader.
Класс, отвечающий за более качественное считывание нажатий клавиш. Сказать мне, о нем в принципе нечего, так что идем дальше.
Отрисовка карты.
Отрисовка карты в консоли — это еще одна интересная идея. За нее отвечает класс IntelligentDrawer. Вы скажите мне, что я поехал головой, но давайте я вам объясню, как это работает.
У нас есть специальные метод, который создает двумерный массив char. Этот массив и есть наша карта. Наш метод далее наполняет массив символами, вот, например символы, которые я использовал для отрисовки границ карты: ‘┌’ ‘┐’ ‘└’ ‘┘’ и т. д. Когда наш персонаж будет каким-либо образом менять свое положение на карте мы будет отчищать консоль, а затем заново отрисовывать карту.
Персонаж.
Изначально, я придумал небольшую систему для персонажа. Потом я ее переделал, и она стала более удобной. Но сейчас я вам расскажу про первую версию этой системы.
Наш персонаж имеет в себе переменные: x и y. Они обозначают координаты. Когда персонаж меняет свое положение, IntelligentDrawer перерисовывает карту с учетом изменений. Здесь вроде бы все просто. То есть персонаж это просто мешок с камнями, который может перемещаться.
Конец.
К сожалению, этот пост подходит к концу. Здесь я попытался рассказать про мою игру, то, как я ее придумал и как начал над ней работать.
Возможно, этот пост показался вам затянутым, или очень маленьким для дневника разработки. Пишите свою комментарии, я все прочитаю и обязательно отвечу.
Извиняюсь за отсутствие скриншотов. Так как я уже не люблю сохранять старый код или результаты работы старого кода, то я не могу предоставить вам ничего. Я еще не полностью изложил идею игры, так что если мои дневники разработки заинтересуют кого-то, то я с радостью продолжу их писать.
Всем спасибо за потраченное время!