Я учился программировать в течение последнего года. Я начал с FCC, сделал интерфейсный сертификат за 7 недель * (месяц фактического кодирования), присоединился к Chingus, немного изучил javascript и пробовал себя в vuejs / d3js / python / django и даже немного машинного обучения. Я действительно не знаю, что я планировал с этим делать. Я просто следил за тем, что интересно. Однако недавно я попал в игровую группу P1xt и полностью поменял направление.

* Итак, в этой части изначально было сказано 3 недели, но, может быть, я неправильно это запомнил? Я просмотрел свою страницу в FCC и начал 13 апреля (приближается моя годовщина!) И закончил 4 июня. В целом, это 7 недель, но я также вернулся в США, чтобы навестить семью, поэтому я взял трехнедельный перерыв. В общем, до сих пор горжусь этим = D.

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

План

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

Вы можете проверить мой прогресс и список ресурсов здесь https://instagantt.com/shared/s/614271304992587/latest. Первый раз, когда что-то перечисляю, в описании есть ссылка на ресурс. То, что вы видите в бэклоге, - это то, что я думаю добавить в свой план. Я надеюсь, что смогу обновлять каждую неделю в воскресенье или понедельник. Так что следите за мной и следите за моим путешествием, чтобы стать разработчиком игр.

В основном в течение следующих 3 месяцев я хочу завершить

  1. Чтение историй для видеоигр, Желтая книга C #, Освоение разработки 2D-игр на Unity
  2. Изучение математического анализа
  3. Курс Udemy по освоению разработки мобильных игр в Unity
  4. Возможно, вы найдете больше ресурсов C #, особенно по объектно-ориентированному программированию.

Важные уроки недели

Начало работы с C # и VS Code

Следуйте этому руководству https://code.visualstudio.com/docs/other/dotnet

И не забудьте начать новый проект с помощью dotnet. Я произвольно делал что-то в единстве и забыл о том, как я настраиваю C #, поэтому, когда я решил следовать некоторым базовым руководствам по C #, я не вспомнил, что нужно начать новый проект, и не имел доступа к отладке и intellisense.

Во-вторых, если в Windows в csc к переменным пути, вы можете скомпилировать свой код через терминал, например:

csc.exe hello.cs

Путь csc: c: \ Windows \ Microsoft.NET \ Framework \ xxxx

Видеоигры

  • ИСТОРИИ КОНФЛИКТЫ.
  • Если у вас есть именованный персонаж, у него должен быть хорошо развитый персонаж, включая такие вещи, как история / голос / желания / желания / недостатки и т. Д.
  • Не походите на MGS2, где у них было 11 минут вступления, вплетенного в важные элементы игрового процесса и не относящуюся к делу ерунду. По возможности ПОКАЗАТЬ, НЕ СКАЗАТЬ.
  • Заставьте людей заботиться о главном герое. Их желания должны быть такими же, как у героев. Подумайте о Half-Life.
  • Помните арки персонажей и пути героев. Подумайте об истории, которую вы рассказываете. Не только у вашего героя должна быть дуга персонажа.
  • ДИАЛОУЖ - последнее средство для объяснения чего-либо.
  • ЗЛОЙ очень важен. Они должны стать серьезным испытанием для героя. Если они слишком простые или слабые, это серьезно ухудшает то, как игрок видит героя. Кроме того, у них должны быть логические потребности и желания. Это не старые Люди Икс, где есть Магнето и Братство злых мутантов, злодеи должны считать себя хорошими.

Мастер разработки 2D-игр на Unity

  • Расширяйте своих персонажей с помощью классов. Например, у вас есть класс человека с некоторыми основными атрибутами, а затем класс героя, который расширяет его и добавляет все, что вам нужно.
  • Это также означает, что вам следует заранее спланировать свое поведение. Какие атрибуты должны быть у каждого персонажа?
  • НЕ ИСПОЛЬЗУЙТЕ ОДИН ОБЪЕКТ НАПРЯМУЮ ВЛИЯЕМ НА СТАТУС ДРУГОГО ОБЪЕКТА. Итак, если у вас есть герой и вражеский объект, и герой атакует врага, объект-герой не должен получать доступ к HP вражеского объекта и вычитать его напрямую, он должен вызывать у врага метод TakeDamage или что-то в этом роде.
  • Три метода обновления в Unity

Update (): используется для большинства вещей, которые вы хотите постоянно проверять или запускать.

FixedUpdate (): это лучшая функция обновления для использования с физикой.

LateUpdate (): лучше всего подходит для движения камеры или других элементов, которые вы хотите обновить после обновления всего остального.

Исчисление

  • Calc - это сложно ... Сначала ознакомьтесь с Essence of Calculus, возможно, если вы хотите лучше представить себе, что происходит.
  • Также, вероятно, сложно мотивировать себя изучить это. Это то, что заставило меня составить гораздо более подробный план того, как закончить этот курс. Что, в свою очередь, сделало меня более подробным и обо всем остальном.

Желтая книга C #

  • с помощью системы; В системе описывается множество полезных методов, а оператор using указывает C # использовать элементы из системы.
  • Класс - это контейнер, и вам необходимо изобрести идентификатор для каждого класса (классы обычно пишутся с заглавной буквы, например: MyClass и должны соответствовать имени файла MyClass.cs). В C # все существует в классе.
  • Ключевое слово static гарантирует, что метод, который следует за ним, всегда присутствует, вы можете вызвать его по имени. Все еще немного сбит с толку, но позже мне пообещали лучшее объяснение.
  • void ключевое слово означает, что этот метод не возвращает значение.
  • Вы можете передавать переменные по ссылке, помещая перед ним ref . Пример: (MyMethod (ref int x)). Любое изменение x в этом методе также обновит x снаружи, потому что ... вы передаете его по ссылке.
  • Если вы хотите, чтобы метод мог просто обновлять значение, а не читать значение, вы можете использовать ключевое слово out, как в MyMethod (out int x).
  • Переменные обычно набираются в верблюжьем регистре, например myVariable
  • Все операторы возвращают значение. х = 5; вернет 5. Таким образом, вы можете делать такие вещи, как x = y = z = 5; и все три переменные будут установлены на 5.
  • Переменные привязаны к блоку, в котором они определены, и C # не позволяет вам определять переменную с тем же именем, что и во внешней области.

GD50

Посетите Гарвардский курс по игровому дизайну https://cs50.github.io/games/. Я думал о том, чтобы заняться этим, но я не хотел изучать другой игровой движок. Я мог бы прочитать заметки в течение следующих нескольких недель, чтобы узнать, смогу ли я почерпнуть некоторые концепции игрового дизайна.

Заключительные мысли

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

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

На второй неделе!