Небольшая история разработки своей игры на чистом Windows Forms + С# в мои 16 лет

Небольшая предыстория


В разработку я пришёл в середине 8 класса(сейчас закончил 9), раньше я очень много играл в игры, поэтому написать свою было большое желание. И вот спустя огромную кучу теории, и мелких проектов я добрался до первого большого проекта. Вообщем, я — самоучка. Первым серьезным проектом стала моя игра про рыбалку, написанная на чистом Windows Forms + C#. Сразу скажу, что писать игру на стороннем движке я не вижу смысла, ведь моя дорога не лежит в Gamedev.

Разработка проекта


Идея создания появилась от крупной 2D игры «Русская рыбалка», кстати большинство текстур я взял именно оттуда, потому что заниматься рисованием не входит в мои планы. Удивительно, но благодаря большому опыту на мелких задачах Гуглом при разработке почти не пользовался. Из чего делаю вывод, что решение даже простых мелких задач даёт большой профит.

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

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

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

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

Скриншоты

















Небольшой вывод, скорее даже послание начинающим разработчикам.


Ребята, никогда не сдавайтесь, пишите код каждый день, изучайте технологии, несмотря на свой возраст. Это того стоит. Ведь в свои 16 лет я уже думаю, о том, как устроиться на работу программистом. Я надеюсь, что этот пост придаст кому-то мотивации для изучения. Но главное — помните, что программистами не рождаются!

В будущем постараюсь написать статью о моём обучении, устройстве на работу. Но к сожалению, HeadHunter в моём городе пуст, как C# так и java вакансии. Так что буду думать.

Спасибо всем, кто прочитал этот пост до конца, прикреплю для вас ссылку на мой Гугл диск с проектом. Я вернусь сюда сильнее!

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

Было:


Гугл диск

Стало(только 2 локация)

Гугл диск

P.S.: Спасибо, Habr, что ты есть =)
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 19

    +1
    ты лучше на Github выложи, проще смотреть код
      –1
      Совет хороший, а форма общения оставляет желать лучшего.
        +1
        если чуть раскрыть этот совет, то нужно пробовать работать с системой контроля версий (например git), это полезно при разработке и одно из требований везде при трудоустройстве (базовые вещи освоить и начать пользоваться быстро можно).
          0
          С ним надо ещё разобраться ;)
          +4
          Слишком кратко и абстрактно написана статья.
          Хотелось бы увидеть тех. подробности, как что реализовывал, какие проблемы возникали, как вы их решали, как построена архитектура приложения.
            +1
            Спасибо, буду делать вторую часть, там всё подробно буду объяснять
              0
              Да нет там архитектуры, не в обиду автору. Мой коммент тут еще:

              habr.com/ru/post/458630/#comment_20354796
              0
              Стиль именования в проекте просто ужасен. Item.cs соседствует с Jhivec.cs. А ozerolvl1.cs — смесь транслита и сокращения «level» на английском. Form1, Panel1, Button1, Button1_Click и т.д.

              За такой стиль претендент на работу программистом подлежит немедленному сожжению на костре HR-инкивизиции :)

              Edit: вот как раз и свежий пост в тему: 10 ошибок начинающих программистов
                0
                Спасибо, буду исправляться
                  +1
                  С одной стороны, вы правы. С другой — попробуйте вспомнить через полгода, как перевести на английский слово «опарыш» :)

                  Автору:
                  Код посмотрел по диагонали. Куча анти-паттернов, начиная от повсеместного использования статики и god-object-ов. Классы во многих случаях нужны только чтобы сделать Fishes.CFish is Golec — ну это несерьезно, извините. 80 полей в классе? Ну и все свалено в одну кучу в папку. Про именование, форматирование кода — даже не говорю.

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

                  PS: папки bin, obj советую удалять. Им не место ни в архиве, ни в гит.
                    +1
                    Я думал, что создание такого класса не будет считаться глобальными данными, но сейчас прочитал «Совершенный код» Макконнелла, и понял, что не прав. Сейчас всё переделываю, чтобы не только работало, но и было правильно написано.
                  0
                  Вторая ссылка битая, кстати
                    0
                    Исправил
                    0
                    Данил, ты молодец, что не постеснялся написать, что в свои 16 лет сделал игру на C#+WinForms.

                    Это действительно здорово. И очень здорово, что оно даже работает.

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

                    Кроме того, рановато тебе ещё идти работать программистом. Поднаберись опыта, понапиши какие-нибудь классные штуки, почитай соответствующую литературу (от себя советую почитать Джеффри Рихтера — «CLR via C#»), посмотри как другие пишут код (на гитхабе полно опенсорсных проектов).

                    Удачи. :)
                      0
                      Статья создана, чтобы получить фидбэк о первой версии проекта, ведь больше некому его оценить. Сейчас от первой версии не осталось ничего(ведь это была проба создать большой проект). Спасибо вам за ваш отзыв.

                      0
                      Рекомендую к прочтению «Чистый Код» Боба Мартина. Книга небольшая по объёму, но очень полезная. Можете не читать всю прямо сейчас. Уделите внимание первым пяти главам, это всего 120 страниц (имена, форматирование и т. д.).

                      Примените изученные советы и ваш код станет лучше! :)
                        0
                        Есть ли смысл после «Совершенного кода» Макконнелла читать «Чистый код»? По-моему, будет довольно спорная польза. И с наименованиями я вроде разобрался, спасибо за подсказку.
                          +1
                          Смысл есть всегда. Главное — что ты что-то почерпнул для себя из всего этого прочитанного.
                        +1
                        Про трудоустройство, на hh не всё есть, можно искать IT фирмы города и на их сайтах (возможно писать/звонить) узнавать нет ли вакансий, может кто-то как раз подумывает взять джуниора но ещё не разместили вакансию. Просматривая вакансии вы можете для себя составить список (часто встречающегося, но адекватного для джуниора) какие навыки требуются на рынке и примерно по списку читать пробовать разбираться (возможно по вакансиям из другого города).

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

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

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

                        Самое читаемое