Лучше так, чтобы всё было модульно и при необходимости использования одинакового функционала, исходный код логики использовался всегда только однократно. Нужно разработать общий вид архитектуры в виде схемы вложенных блоков и связей между ними. А уже только после этого - кодировать этот "сборщик".
Хочу влиться в работу на Unity 3D. Пишут в требованиях "Хорошее знание C# 6, .net framework 4.x;".
Минимум - нужно знать Unity!
А это - не C#!
C# - это уже как внутренний скриптинг под Unity.
Зная C# и не зная Unity - ничего сделать вообще не сможете!
1. Верстальщик - делает разметку html5 и стили css3 (+подключает ресурсы: изображения и шрифты из макета).
2. Логику реакции объектов на события - пишет фронт-эндер на js.
"Сверстать калькулятор" - только вёрстка.
"Сделать калькулятор" - это вёрстка + фронт-энд кодер на js.
Если в "лоб":
Чтобы понять, что это эллипс, достаточно, чтобы сумма всех векторов, соединяющих соседние точки контура равнялась нулю (полный период).
Полупериоды были бы зеркальными относительно друг друга. А соседние четверти периода - наоборот, разными (одинаковые - это окружность).
Добавлю к отличному ответу Hemul GM:
Возможно, что алгоритм обмена написан с динамическим распределением нагрузки и если более мощные компы видят других игроков, сервер распределяет вычислительную нагрузку между игроками в зоне прямой видимости так, чтобы всем было комфортно играть. Это сложно сделать, но вполне реально.
1. Отсутствующий реферер.
2. Кривой useragent.
3. Прямой запрос на поиск - запретили.
4. Или делают проверку токена на валидацию "прозрачной" пройденной ajax-авторизации для гостей.
5. Или проверяют наличие или свойства некого системного объекта, который отличается от браузерного при парсинге.