Руководство по разработке

Материал из SS220 Paradise Wiki (SS13)
Перейти к навигации Перейти к поиску
MakeshiftGarrote.PNGЭтой странице требуется переводMakeshiftGarrote.PNG
Эта статья содержит непереведенную информацию.


Пособие к Paracode: Гайд
IconConstruction.png

Это руководство предназначено для обучения новичков успешной работе с Paracode.
Пожалуйста, прочитайте гайд полностью от верха до низа.

Чтобы максимально удобно и эффективно вносить изменения в код вам будут нужны эти три вещи:

  1. Текстовый редактор (VSCode крайне рекомендован)
  2. Github
  3. Сам BYOND редактор - Dream Maker

Быстрая навигация

Я абсолютный новичок
Мне нужно установить\настроить VS Code
Мне нужно настроить Git/Github
Я загрузил всё вышеперечисленное, как мне получить и настроить репозиторий?
Ок, у меня есть конфигурация репозитория, как мне менять содержимое?(Pull Requests)
Я хочу использовать TortoiseGit (Не для новичков)
Я хочу использовать Github Desktop (Дружелюбно к новичкам)
Ок, я завершил настройку своих изменений! Как мне закодировать/внести вклад на сервер?
Как мне создать Pull Request и отправить свои изменения через Desktop GitHub?
Я внёс свой вклад! Стоп, как вообще использовать TGUI?

Я абсолютный новичок

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


Просто прочитайте этот гайд пока не дойдёте до конца. Пока вы следуете этим шагам всё должно быть в порядке!

ContributingFlowchart.png


Устанавливаем и настраиваем Visual Studio Code

Установка VScode

  • Идём на вебсайт VSCode's: https://code.visualstudio.com/
  • Загружаем и устанавливаем актуальную версию.

Установка VSCode плагинов

Когда вы откроете Paradise репозиторий, у вас появится уведомление об установке некоторых рекомендованных дополнений, они просто устанавливаются по данному алгоритму

  • Перейдите на вебсайт VScode и загрузите плагины
  • Нажатие "Установка" перенаправит вас в VSCode где вы можете установить и перезагрузить его

Вот пара плагинов, которые крайне полезны для кодинга в DM


Установка и настройка Github

Эта часть про установку и настройку Git и созданию Github аккаунта.

Установка Git Bash

  • Переходим: http://git-scm.com/downloads
  • Загружаем Windows Git программу, подходящую вашей операционной системе (оно должно будет выглядеть как "Git-2.18.0-64-bit.exe")
  • Устанавливаем его и оставляем всё в стандартном режиме (просто пропускаем всё кнопкой next).
  • Дожидаемся конца установки.
  • Готово!

Регистрируемся в Git

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

  • Переходим: https://github.com/
  • Нажимаем Sign up в правом верхнем углу.
  • Вводим свою почту
  • Придумываем пароль
  • Создаём себе крутой ник
  • Соглашаемся или отказываемся от рассылки.
  • Решаем капчу и создаём аккаунт!
  • Готово!

Скрываем свою почту (Опционально, рекомендуется)

Некоторые из вас не захотят показывать в своём резюме, что они работали над какими-то сомнительными проектами. Или более приближённо, сообщество SS13 мрачно и полно ужасов, и вам захочется защитить свою почту (или использовать подставную почту в первую очередь). О, и вам наверняка захочется редактировать ERP сервера под альтернативным именем.

По умолчанию включено, но лучше перестраховаться

  • Заходим в аккаунт на Github
  • В правом верхнем углу нажимаем на свой профиль
  • Появится список, выбираем "настройки"
  • Переходим к Emails
  • Включаем настройку Keep my email addresses private. Теперь Github будет использовать безответны письма при операциях.
  • Теперь вы защищены лучше!

Настраиваем Git (Опционально)

  • Переходим: https://help.github.com/articles/set-up-git/#setting-up-git
  • Следуя гайду выше, вы можете установить Git для Windows если хотите, однако это не рекомендуется
  • Теперь у вас есть полностью настроенный Git, но если вы неграмотны в написании кода, как я, то вам захочется иметь какую-нибудь причудливую графику!

Дополнительная помощь

Вспомогательные видео (на английском) для лучшего понимания Github


Forking ParaCode

Понятие форкинга и репозитория:

Форкинг - создание своего ответвления от оригинального кода, создание репозитория

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


Теперь, посетите Paradise Github репозиторий Вам нужно будет нажать кнопку Fork в правом верхнем углу.

ForkingParacode.png

Ого, у вас теперь есть свой репозиторий! Фактически репозиторий - полная копия оригинального кода, отличие лишь в том, что они не связаны и любые ваши изменения не влияют на оригинал. Теперь, давайте скомбинируем ваш репозиторий и VS Code! Вернитесь в VS Code и перезапустите его. Под меню контроля ресурсов (выглядит как ветка дерева) нажмите Clone Repository. Это должно будет выглядеть так:


VSCodeSidebar.png


Если этой кнопки там нет, то вы можете нажать комбинацию Ctrl+Shift+P что бы открыть список команд, затем введите туда Git: Clone и нажмите enter.
Теперь, вставьте URL ссылку репозитория, который вы создали пару шагов назад. Для этого зайдите в свой репозиторий через меню профиля, а после возьмите ссылку страницы. Оно должно быть похоже на такую ссылку: https://github.com/ваше имя/имя репозитория Далее выберите папку, в которой будет хранится локальный репозиторий. Процесс загрузки может занять много времени, налейте себе чаю. После загрузки откройте эту папку в VS Code. Теперь у вас есть локальная копия кода!

Расширения VS Code

Нажмите на кнопку "Extensions" (расширения) на левой панели (выглядит как кучка квадратов), или нажмите комбинацию Ctrl+Shift+X. Вы должны будете увидеть количество рекомендованных расширений. Если нет, пропишите @recommended в поисковую строку. По крайней мере вы захотите установить необходимые расширений из списка ниже. Рекомендованные расширения не обязательны, но значительно облегчат вам работу.

Необходимые расширения

  • BYOND DM Language Support - подсветка синтаксиса для DM языка
  • DreamMaker Language Client - необычные функции, такие как отладка и переход к определениям
  • EditorConfig for VS Code - загружает стандартную конфигурацию редактора для кодовой базы
  • ESlint - предоставляет список для Javascript (этот необходим только если вы планируете работать с TGUI)

Рекомендованные расширения

  • GitLens - предоставляет классные фичи, такие как возможность выбрать строчку и увидеть время последней редакции и кто её редактировал
  • Error Lens - подсветка строк кода, в которых есть ошибки и показывание ошибок в той же строчке
  • GitHub Pull Requests - позволяет сделать запрос помощи прямо из редактора
  • Git Graph - позволяет более визуально удобно работать с ветвями
  • Bracket Pair Colorizer 2 - подкрашивает скобки в разные цвета, позволяя не запутаться в их количестве

Добавляем Paracode как верхний репозиторий

Нам надо добавить главный Paradise репозиторий в качестве удалённого репозитория.
чтобы сделать это, откройте командную палитру, введите Git: Add Remote и нажмите enter. Далее, вам предложит ввести URL ссылку , а потом и имя удалённого репозитория. Вводим https://github.com/ss220-space/Paradise в качестве URL ссылки, и upstream в качестве имени. После завершения вы будете иметь главный Paradise репозиторий в качестве верхнего удалённого: Это позволит вам легко отправлять запросы о помощи позже.


Делаем изменения

Во-первых, давайте поговорим о ветвях. Первое, что надо выполнить - это сделать новую ветвь в вашем ответвлении. Это важно, потому что вам никогда не следует делать изменения в вашу обычную ветвь (оригинальную) вашего ответвления. Ей стоит оставить в чистом состоянии.
Для каждого PR, который вы создаёте делайте новую ветку. Таким образом, каждый ваш индивидуальный проект будет иметь свою собственную ветвь. Изменения одной ветки не будут влиять на другие ветки, так что вы сможете работать над несколькими проектами одновременно.

Создание ветвей

Чтобы создать новую ветвь, откройте source control на боковой панели. Перейдите к More Actions menu (выглядит как ...) и нажмите Checkout to... , типа такого:


VSCodeBranching.png


Теперь нажмите "Create new branch". В этом гайде я буду создавать новую шляпу, поэтому именем моей ветки будет hat-landia. If you look at the bottom left hand corner, you’ll see that VS Code has automatically checked out our branch:Файл:VSCodeBranchExample.png (нужен файл)
Запомните, никогда не изменяйте главную ветвь! Вы можете работать с любой веткой сколько вам угодно, пока фиксируете изменения в отдельной (новосозданной) ветке.
Вперёд! Меняйте код как хотите! Это гайд по тому, как вносить изменения, не по тому, что вам вносить! Так что я не расскажу вам как именно вам кодить, создавать спрайты или менять карту. Если вам нужна будет помощь, попробуйте спросить в канале #help-chat или дождитесь кого-то из кодеров в онлайне в дискорде.

Изменения кода

Вы можете найти код для редактирования во владке "Explorer" (два листа бумаги) в боковой панели; если вам надо найти файл или строку кода, и вы знаете его имя или расположение, то вы можете использовать поиск, он находится в боковой панели под Explorer.

Стиль старой школы: если вы хотите использовать DreamMaker вместо этого, можете редактировать их там - как только вы их сохраните, VS Code обновит ваши изменения и вы сможете продолжать следовать гайду здесь.

Теперь сохраняем свои изменения. Если вновь взглянем на контроль ресурсов (Source Control), мы увидим, что у нас появилось несколько изменений. Git нашёл каждое изменение, которое вы сделали со своим форком на вашем компьютере! Даже если вы изменили единственный пробел в одной строчке кода, Git найдёт это изменение. Просто убедитесь, что вы сохранили свои файлы.

Тестируем свой код

Самый простой способ протестить свои изменения, это нажать F5 или воспользоваться меню run and debug под контролем ресурсов. Это скомпилирует ваш код, запустит сервер и присоединит вас к нему, а так же выдаст вам права администратора. Это также запустит дебаггер, который поможет вам изучить, что могло пойти не так, когда ошибка закроет вам игру. Если вы хотите не запускать дебаггер, то нажмите Ctrl + F5 для запуска. Запуск сервера может занять длительное время, не надо постоянно останавливать и перезапускать запуск.


Это не сделает вас админом в игре автоматически, для этого вам надо скопировать всё из /config/example и вставить это в /config. Затем надо будет отредактировать /config/config.toml , добавив строчку {ckey = "ваше имя в byond", rank = "Hosting Provider"} в список admin_assignments.


This compiles the code to a dmb file. Then you can run Dream Daemon, select the dmb file, set security to Trusted and hit GO to run the server. After the server starts you can press the button above the GO / STOP button (now red) to connect.


Файл:DreamDaemon.png


Be sure to always test not only if your changes work, but also if you didn’t actually break something else that might be related.

Committing to Your Branch

Hover over the word Changes and press the plus sign to stage all modified files. It should look like this:


Файл:VSCodeStageChanges.png


Or, pick each file you want to change individually. Staged files are the changes you are going to be submitting in commit, and then in your pull request. Once you’ve done that, they’ll appear in a new tab called Staged Changes.


Файл:VSCodeStagedChanges.png


Click on one of the code files you’ve changed now! You’ll see a compare of the original file versus your new file pop up. Here you can see, line by line, every change that you made. Red lines are lines you removed or changed, and green lines are the lines you added or updated. You can even stage or unstage individual lines, by using the More Actions (...) menu in the top right.


Now that you’ve staged your changes, you’re ready to make a commit. At the top of the panel, you’ll see the Message section. Type a descriptive name for you commit, and a description if necessary. Be concise!


Make sure you’re checked out on the new branch you created earlier, and click the checkmark! This will make your commit and add it to your branch. It should look like this:


Файл:VSCodeCommit.png


There you go! You have successfully made a commit to your branch. This is still ‘unpublished’, and only on your local computer, as indicated by the little cloud and arrow icon in the bottom left corner.


Publishing to GitHub

Click the GitHub icon on the left sidebar. It looks like a cat in circle. Now, you’ll want to click the + sign that appears in the top left, like this:


Файл:VSCodeCreatePR.png


Then, select the upstream repo and target the master branch. Then, you’ll be able to select the title of your PR. The extension will make your PR with your selected title and a default description. BEFORE SUBMITTING: ensure that you have properly created your PR summary and followed the description template.

A note on changelogs. Changelogs should be player focused, meaning they should be understandable and applicable to your general player. keep it simple,

fix: fixed a bug with X when you Y
tweak: buffed X to do Y more damage. 

Avoid coding lingo heavy changelogs and internal code changes that don't visibly affect player gameplay. These are all examples of what you shouldn't add:

tweak: added the NO_DROP flag to X item.
tweak: refactored DNA to be more CPU friendly

ShareX is a super useful tool for contributing as it allows you to make gifs to display your changes. you can download it, here

if all goes well, your PR should look like this:


Файл:ExamplePR.png


If you want to add more commits to your PR, all you need to do is just push those commits to the branch.



Learning how to code

Now that you've set up everything there's just a little bit more to go. Now we're getting to the harder part, we have to learn logic and code. Don't fear however. There's a nifty guide on the github that will help you out!

DM Guide


STOP: At this point, if you're a beginner, you are good to go, everything below this is additional instructions for setting up other IDEs and advanced information


Setting up & Using TortoiseGit

Forking Code

See this


Downloading the Code

  • Find a place you don't mind the code sitting.
  • Right click and choose Git Clone...
  • The URL field should be filled with the URL of your Fork. If not, paste it in.
  • Click Next and watch flying tortoises bring you your code.

Setting up TortoiseGit

  • Right click on the folder that was created (usually called Paradise), and go to TortoiseGit and then click on Settings.
  • Click on Remote under Git.
  • There should be one thing on the list of remotes, with the name: origin.
  • You're now adding the main repository as a source you can pull updates from.
  • In the Remote box type in upstream.
  • In the URL: box put: https://github.com/ss220-space/Paradise.git
  • Click Add New/Save.
  • Click Ok.
  • Almost done!

Updating your Repository

  • Updating your repo with the master should be done before trying anything.
  • Right-click the folder your repo is in and select TortoiseGit then Pull.
  • Click the radial button next to Remote and make sure upstream (or whatever you called it) is selected next to it.
  • The remote branch should be set to master.
  • Then click Ok. This will pull the latest changes from the master repo.

Making a Branch

Branching your repo is very important for organising your commits, you should have a different branch for each unrelated code change (e.g. if you wanted to make some new sprites for one item and change the properties of another these should be in seperate branches), as Pull requests work off branches rather than commits this will allow you to make a seperate Pull Request per change. Doing this streamlines the whole process and will save everyone a bunch of headaches.

  • Right-click in your working folder. Then choose TortoiseGit, and Create Branch...
  • Type in your new branch name
  • (Optional) Tick Switch to new branch
  • Press Okay and your new branch is created

Switching between Branches

  • Right-click in your working folder. Then choose TortoiseGit, and Switch/Checkout...
  • Choose your Branch then press Okay


Making a Commit

  • A commit is confirmed change of the files in your repo, it's how you make changes permanently to the files in your repo, so try not to commit without making sure it works (though subsequent commits can fix it).
  • As said before, you should use different branches to separate your commits/changes. Don't commit to master. It should be clean, so you can fall back on it if needed.
  • To make your commits, you need to edit the files using BYOND's inbuilt editing tools. Make sure to follow coding standards when making your changes! When you're finished, right click the folder you're working with and choose Git Commit -> "[Your Branch Name]" (Example: Git Commit -> "My_First_Branch")
  • You can then select only the files you want to be committed by ticking or unticking them. You should also write a detailed commit summary, detailing what happened in that commit.
  • Click Ok and the commit will be committed to your local repo!

Making a Pull Request

  • Right-click in your working folder. Then choose TortoiseGit, and Push...
  • Set Local and Remote to the name of the branch you committed before. (e.g. My_First_Branch)
  • Under Destination, set Remote: to origin.
  • Click Ok. This'll upload your changes to your remote repo (the one on GitHub).
  • Head to your GitHub repo e.g https://github.com/NAME/Paradise
  • Click Pull Request at the top right.
  • Fill out a summary and then create the pull request.
  • You're done! In many cases there will be issues pointed out by other contributors, unfortunate merge conflicts, and other things that will require you to revisit your pull request.
  • Optionally, view Clean Commits for a guide on cleaner commit logs, cleaner commits help maintainers review!

Clean commits / Squashing commits(Optional)

  • Your commit logs are filthy, full of one or two line commits that fix an error that makes you look bad, and the commit is called "Whoops" or "oops"
  • Navigate to your local version of the branch
  • Ensure it is up to date with the remote
  • Go to Show log
  • Select all the commits associated with this change or PR
  • Right click and choose Combine to one commit
  • This will open up the standard commit interface for TortoiseGit, with the commit logs of the selected commits merged together
  • Perform the normal routine for a commit
  • Go to push your branch to the remote branch
  • Ensure Force Overwrite Existing Branch (may discard changes) is selected to make sure the PR/Remote updates to contain just this squashed commit


Настройка и использование Github Desktop

  • Заходим на: https://desktop.github.com/
  • Скачиваем Github Desktop для своей системы.
  • Дожидаемся окончания установки!
  • Следуем шагам для регистрации/логина на GitHub..

Ответвление [Fork]

Читаем данный гайд по ответвлению.
Выпадающее меню

Создание локального репозитория

  • Открываем Github Desktop
  • Выбираем "File", "Clone repository.."
  • Выбираем ваш ответвленный Paradise репозиторий
  • Выбираем локальный путь куда будет клонирован репозиторий
  • Нажмите Clone и дождитесь окончания
  • Теперь у вас есть локальный репозиторий на вашем устройстве

Обновление вашего репозитория

  • Перед тем как начать работу, вы должно обновить ваш master
  • Откройте Github Desktop и выберите ваш репозиторий
  • Нажмите на Current Branch в верхней части экрана
  • Выберите ваш master, для нашего билда это master220
  • Кликните внизу на Choose a branch to merge into master220
  • Найдите upstream/master branch и выберите его.
  • Нажмите на Merge upstream/master into master
Branch в GitHub Desktop

Ответвляем от репозитория [Branch]

  • Branch-ветвление вашего репозитория очень важно для организации ваших коммитов (изменений), у вас должна быть отдельная ветка для каждого несвязанного изменения кода (например, если вы хотите создать несколько новых спрайтов для одного элемента и изменить свойства другого, они должны быть в отдельных ветках). Запросы на слияние (Pull Request) работают с ветками (Branch), а не с коммитами, это позволит вам создавать отдельные запросы на слияние для каждого изменения. Это упростит весь процесс и избавит всех от головной боли...
  • Откройте Github Desktop и выберите ваш репозиторий
  • Нажмите на Current Branch в верхней части экрана
  • В выпадающем меню нажмите на New Branch
  • Задайте ему название зависимое от ваших изменений и нажмите Create branch

Переключение между branch-ветвями

  • Откройте Github Desktop и выберите ваш репозиторий
  • Нажмите на выпадающее меню Current branch и выберите branch-ветку на который хотите переключиться.
  • If you have open changes then it might fail. Either stash, commit or discard the open changes and try again. Если у вас есть изменения, это может привести к ошибке. Вы можете их зафиксировать, оставить в предыдущей ветке, отменить изменения и повторить попытку.
Внесение изменения

Делаем Commit-изменение

  • Коммит — это подтвержденное изменение файлов в вашем репозитории, именно так вы постоянно вносите изменения в файлы в вашем репозитории, поэтому старайтесь не вносить коммит, не убедившись, что он работает (хотя последующие коммиты могут это исправить).
  • Как и было ранее сказано, вы должны использовать разные версии веток-branch'ей для внесения ваших commit-изменений. Не вносите изменение в ваш master. Он должен оставаться чистым, чтобы вы могли использовать его для создания последующих веток и откатов при нужде.
  • Чтобы внести свои изменения-commit'ы, вам нужно отредактировать файлы с помощью встроенных инструментов редактирования BYOND или любого другого инструмента редактирования, такого как Visual Studio Code (Как его установить?), который рекомендуем для разработки. Обязательно соблюдайте стандарты кодирования при внесении изменений!
  • Откройте Github Desktop и выберите ваш репозиторий
  • Повторно проверьте внесенные вами изменения.
  • Назовите внесенные изменения.
  • Опционально, опишите внесенные вами изменения.
  • Нажмите Commit to "BRANCH_NAME"
  • Ваши изменения внеслись в вашу ветку, вы можете повторно увидеть их во вкладке History

Делаем Pull Request (ПР)

  • Открываем Github Desktop и выбираем ваш репозиторий
  • Нажимаем на Public branch
  • Переходим на ваш GitHub репозиторий, к примеру: https://github.com/NAME/Paradise
  • Нажимаем Pull Request на самом верху
  • Заполняем форму с изменениями, после чего создает Pull Request.
  • You're done! In many cases there will be issues pointed out by other contributors, unfortunate merge conflicts, and other things that will require you to revisit your pull request.
  • Готово! Во многих случаях в ваших изменениях могут обнаружиться ошибки, на которые указали другие участники, либо же неудачные конфликты слияния или другие вещи, которые потребуют от вас пересмотра вашего запроса на включение.
  • Не забудьте убедиться что у вас всё верно и постарайтесь получить одобрение от других участников разработки.
  • Теперь вам необходимо ожидать внесения ваших изменений в родительский репозиторий.


Как делать предложения правок на GutHub

GitHub как делать ревью 1.png GitHub как делать ревью 2.png


Learning how to use TGUI

If you're still brand new, it's recommended that you pick up DM more before moving on to TGUI. All of our user interfaces (except OOC stuff like admin panels) are made using TGUI, or need to be converted to TGUI as some point. (This is where you come in!)

TGUI uses InfernoJS(based off of reactJS) which is an extension to javascript. It can be daunting to learn because it's in a completely different language but don't fear! There's plenty of guides you can follow.


Guides

TGUI is simple but hard to understand to someone unfamiliar to it. READ THESE GUIDES.

Make sure to Read these in order

Как внести свой вклад?
Общее Руководство по разработке
Сервер Настройка базы данных, Запуск локального сервера
Код Структура кода SS13, SS13 для опытных программистов, Форматирование текста, Как делать перевод игры
Маппинг Руководство по маппингу
Спрайтинг Руководство по спрайтингу
Вики Руководство по редактированию вики