Я исправил предыдущие ошибки и решил пойти немного дальше перед тем как получить ответ
Вот решение: https://github.com/NoNameDeleted/BotsCollectors/tree/01f339eb8496d894bebad85fb3af69745a07bdb1
И вот отзыв по нему:
Мои мысли: вобщем зря наверное я начал делать следующее задание (колонизация) которое является продолжением этого задания (боты сборщики) потому что я начал накидывать некоторые "намётки" и не доделал их, думая что проверяющий поймёт что они не являются частью задания и пропустит недоделанные части, но нет
Ну ничё, я уже почти доделал второе задание ещё не сдав первое
И кстати это самое последнее задание в блоке юнити и после него я могу с гордостью заявить что прошел юнити на 100%
Вот решение: https://github.com/NoNameDeleted/BotsCollectors/tree/01f339eb8496d894bebad85fb3af69745a07bdb1
И вот отзыв по нему:
1) Удаляйте неиспользуемые using
2) UnitsSpawner - переменная Unit unit в функции SpawnUnit не нужна
3) HasFreeUnits - можно сократить public bool HasFreeUnits => _freeUnits.Count > 0; и кстати это свойство не используется в коде
4) ResourceStorage - лучше пишите методы событий Unity в порядке их вызова (Awake выше OnEnable, Start ниже OnEnable)
5) ResourceStorage - если класс называется хранилищем ресурсов, то он наверное должен выступать только складом, а не базой данных для бронирования ресурсов, для этого нужен отдельный класс
6) можно не делать явное сравнение с правдой, например (isAlive == true) или isAlive != false). Результатом сравнения будет всё тоже значение, поэтому эта операция не нужна
7) Unit стр 41 - вместо постоянного ручного перемещения объекта можно просто прекрепить его как дочерний объект и открепить когда довезём
8) Base
1. после { и перед } пустые строки не нужны
2. не мучайте код с помощью Update, пытайтесь отправить ботов за ресурсами только событийно в двух случаях, когда сканер событием оповестил что он обнаружил ресурсы (чтобы если все боты были без работы, то ничего не сломать), и в момент возвращения бота на базу, это сильно сократит количество вызовов метода GatherResouses
9) Builder - метод BuildBase ничего не делает, буквально, в нём кода нет
10) Player
1. поле _isBuildMode не используется
2. у всех членов класса должны быть явно указаны модификаторы доступа
3. переменные должны именоваться в стиле camelCase
Мои мысли: вобщем зря наверное я начал делать следующее задание (колонизация) которое является продолжением этого задания (боты сборщики) потому что я начал накидывать некоторые "намётки" и не доделал их, думая что проверяющий поймёт что они не являются частью задания и пропустит недоделанные части, но нет
Ну ничё, я уже почти доделал второе задание ещё не сдав первое
И кстати это самое последнее задание в блоке юнити и после него я могу с гордостью заявить что прошел юнити на 100%
🔥2👍1
(мне резко разонравилось слово "ментор" наверное по тому что я пишу его в каждом посте, поэтому теперь буду писать "проверяющий")
Ответ проверяющего по предыдущему решению:
мои разумения:
Про то что вычисления корня это сложная задача для процессора я вообще не знал это же должно быть как умножение и деление по нагрузке, странно и почему нахождение какой то там магнитуды менее затратно чем нахождение корня тоже неизвестно
А остальные замечания все по мелочи я их быстро исправил
Решение: https://github.com/NoNameDeleted/BotsCollectors/tree/d8c7e4c5e330f5f201bbb12e3f1bb240588e8ad1
Ответ проверяющего по предыдущему решению:
1) if (Vector3.Distance(positionNearby, transform.position) < _sphere.radius) - "Vector3.Distance - Это очень затратная операция из-за вычисления корня в конце. У процессора с этим туго. Везде где возможно лучше вместо дистанции использовать sqrMagnitude, это даже в документации написано (просто сравниваешь не с самой дистанцией, а с ее квадратом). https://news.1rj.ru/str/KaDR_gamedev/83
2) public event Action<Resource> UnitUnloadResource;
3) public event Action ReadyForNewTask;
4) public event Action<Resource> UnitAimedAtResource; - события именуются в прошедшем времени с окончанием -ed или -ing
5) StartCoroutine(nameof(MoveToResourse), resource);
6) StartCoroutine(nameof(MoveToBase), resource); - немного странное решение. Почему сразу не написать StartCoroutine(MoveToBase (resource));
7) if (_resourceStorage.HasFreeStorageSpace == true) - не делайте явную проверку с true. Ведь результатом сравнения будет всё тоже значение
_base.GetComponent<ResourceDistributor>().Initialize();, а если на базе нет компонента ResourceDistributor?
8) if (_generator == null)
_generator = FindObjectOfType<ResourceGenerator>(); - я бы предпочел в OnValidate выводить ошибку что поле не заполнено
мои разумения:
Про то что вычисления корня это сложная задача для процессора я вообще не знал это же должно быть как умножение и деление по нагрузке, странно и почему нахождение какой то там магнитуды менее затратно чем нахождение корня тоже неизвестно
А остальные замечания все по мелочи я их быстро исправил
Решение: https://github.com/NoNameDeleted/BotsCollectors/tree/d8c7e4c5e330f5f201bbb12e3f1bb240588e8ad1
🔥2
Приняли задание✨
С небольшими замечаниями, но их я исправлю уже когда буду сдавать вторую часть
Замечания:
С небольшими замечаниями, но их я исправлю уже когда буду сдавать вторую часть
Замечания:
1) Удаляйте неиспользуемые using
2) Base
1. FindObjectOfType - не используйте методы Find для получения ссылок на компоненты объектов со сцены, это неявное обращения к объектам и трудозатратное по производительности, также и с ResourceStorage
2. в OnDisable происходят подписки вместо отписок
3) можно не делать явное сравнение с правдой, например (isAlive == true) или isAlive != false). Результатом сравнения будет всё тоже значение, поэтому эта операция не нужна
4) ResourceDistributor - более 1 пустой строки подряд быть не должно
5) UnitsDepot - SendFreeUnitToGathering - условные операторы отделяются от остального кода пустой строкой с двух сторон
6) Builder
1. переменные должны именоваться в стиле camelCase
2. Input.GetMouseButtonDown(0) - магия
🥰2
Сегодня учился делать мини приложения в телеге
Получилась вот такая интерактивная страничка
@PixelFolderBot по концепту одной писелярщицы чтобы открыть приложение нужно перейти в бота и нажать кнопку open слева внизу
Там можно переключать вкладки и нажимать на кнопки, правда они пока без функционала, но зато работает кнопка подписаться она перекинет вас не канал автора гифки
Получилась вот такая интерактивная страничка
@PixelFolderBot по концепту одной писелярщицы чтобы открыть приложение нужно перейти в бота и нажать кнопку open слева внизу
Там можно переключать вкладки и нажимать на кнопки, правда они пока без функционала, но зато работает кнопка подписаться она перекинет вас не канал автора гифки
Forwarded from Дневник разработчика
Construct 3 Hack.rar
3.3 KB
🎁Construct 3 FREE🎁
💾Устанавливается как расширение для браузера Edge, Chrome
После установки запустите версию на выбор:
r424 (Авторизация) - https://editor.construct.net/r424/
r421 (Без авторизации) - https://editor.construct.net/r421/
После запуска выберите соответствующую версию в меню справа сверху, и нажмите "Запустить"
r424 - для корректного запуска зайдите в любой свой аккаунт (можно создать новый пустой), затем нажмите "запустить", и перезайдите в свой аккаунт (НЕ ПРЕЗАГРУЗИТЬ ВКЛАДКУ, А ВЫЙТИ И ЗАЙДИ В АККАУНТ СНОВА!)
r421 - можно НЕ ВХОДИТЬ В АККАУНТ, и сразу нажать "запустить". Для этой версии вход в какой либо аккаунт не требуется
💾Устанавливается как расширение для браузера Edge, Chrome
После установки запустите версию на выбор:
r424 (Авторизация) - https://editor.construct.net/r424/
r421 (Без авторизации) - https://editor.construct.net/r421/
После запуска выберите соответствующую версию в меню справа сверху, и нажмите "Запустить"
r424 - для корректного запуска зайдите в любой свой аккаунт (можно создать новый пустой), затем нажмите "запустить", и перезайдите в свой аккаунт (НЕ ПРЕЗАГРУЗИТЬ ВКЛАДКУ, А ВЫЙТИ И ЗАЙДИ В АККАУНТ СНОВА!)
r421 - можно НЕ ВХОДИТЬ В АККАУНТ, и сразу нажать "запустить". Для этой версии вход в какой либо аккаунт не требуется
🥰1
Недавно сделал интерактивный коллаб и забыл выложить сюда
https://news.1rj.ru/str/HexCollabBot?startapp
Там можно нажимать по карте и переходить на канал автора куска этой карты
А ещё я специально для этого коллаба научился делать аддоны для констракта, а это капец как сложно там так всё запутанно сделали, что я дня три только разбирался как настроить среду для разработки аддона
Но в итоге всё получилось, там в аддоне всего три действия: открытие ссылки внутри телеграмма и открытие внешних ссылкок, ну и инициализация мини апа
Но я супер доволен что игра смогла запуститься с моим плагином и не ломается)
Возможно в будущем продолжу его разработку, хоть в нём и нет смысла, потому что такой плагин уже есть в сторе платный и бесплатный от playgama
https://news.1rj.ru/str/HexCollabBot?startapp
Там можно нажимать по карте и переходить на канал автора куска этой карты
А ещё я специально для этого коллаба научился делать аддоны для констракта, а это капец как сложно там так всё запутанно сделали, что я дня три только разбирался как настроить среду для разработки аддона
Но в итоге всё получилось, там в аддоне всего три действия: открытие ссылки внутри телеграмма и открытие внешних ссылкок, ну и инициализация мини апа
Но я супер доволен что игра смогла запуститься с моим плагином и не ломается)
Возможно в будущем продолжу его разработку, хоть в нём и нет смысла, потому что такой плагин уже есть в сторе платный и бесплатный от playgama
ct.js game.zip
1.4 MB
Я ещё раз сделал точно такую же интерактивную карту-коллаб, только в этот раз не на констракте, а на CT.JS
Новую версию можете протестить тут: https://news.1rj.ru/str/PixelFolderBot?startapp , а предыдущая версия доступна по старой ссылке: https://news.1rj.ru/str/HexCollabBot?startapp
На обе версии я потратил одинаковое количество времени и усилий и функционал получился одинаковым. Но как можете заметить версия на коте хуже работает: масштабирование на телефонах работает через раз, при перемещении карты приложение постоянно пытается свернуться, а также иногда выскакивает ошибка, которая полностью останавливает приложение и его приходится перезапускать.
Возможно всё это можно как то пофиксить, но на констракте всех этих багов небыло изначально и я ничего специально не делал чтобы они не появились.
В файле прикрепляю сам проект на коте. Выводы делайте сами.
Новую версию можете протестить тут: https://news.1rj.ru/str/PixelFolderBot?startapp , а предыдущая версия доступна по старой ссылке: https://news.1rj.ru/str/HexCollabBot?startapp
На обе версии я потратил одинаковое количество времени и усилий и функционал получился одинаковым. Но как можете заметить версия на коте хуже работает: масштабирование на телефонах работает через раз, при перемещении карты приложение постоянно пытается свернуться, а также иногда выскакивает ошибка, которая полностью останавливает приложение и его приходится перезапускать.
Возможно всё это можно как то пофиксить, но на констракте всех этих багов небыло изначально и я ничего специально не делал чтобы они не появились.
В файле прикрепляю сам проект на коте. Выводы делайте сами.
А ещё во время разработки я выписывал все плюсы и минусы движка которые заметил лично для себя
ct.js по сравнению с construct3:
➕ Плюсы:
1. Полностью бесплатный
2. Открытый исходный код
3. Поддержка тайпскрипта из коробки (в констракте он настраивается через дев мод и прокси сервер)
4. Котомоды для кота создавать проще чем расширения для констракта из-за более понятной структуры и не надо поднимать прокси сервер для быстрых обновлений как в костракте
5. Возможноть создавать кастомные поведения во время разработки игры (в констрате их можно создавать только во время разработки расширений)
6. Пикси фильтры лучше чем эффекты констракта: их больше и на сайте пикси есть интерактивная демка для предпросмотра
7. pointer в коте лучше чем mouse и touch плагины вместе взятые: Pinch, Rotation, Panning, Pen Eraser, Triple press - всего этого нет в констракте
8. Редактор кода работает лучше: подсказки, поддержка ts типов, подсветка ошибок и т.д.
9. Редактор типов контента
10. Сделан в России
➖ Минусы:
1. Нет поддержки es6 модулей -> не работают import/export
2. Нет экспорта на консоли
3. Встроенные элементы интерфейса не являются HTML элементами -> не поддерживаются css стили для них
4. Нет таймлайна
5. Нет редактора флоучартов
6. Редактор работает только на пк, а констракт ещё и на телефонах
7. Нет облачных сохранений и бэкапов из коробки
8. Не популярный -> меньше комюнити -> нет поддержки от крупных платформ типа: яндекс игры, крейзи геймс, гейм бридж, плэйгама и т.д.
9. Меньше туториалов и обучающих материалов
10. Редактор немного хуже: нет слоёв -> UI надо создавать в отдельной комнате, кнопка "применить" закрывает окно редактирования ресурса (почему?), в некоторых редакторах отклик интерфейса медленнее.
ct.js по сравнению с construct3:
1. Полностью бесплатный
2. Открытый исходный код
3. Поддержка тайпскрипта из коробки (в констракте он настраивается через дев мод и прокси сервер)
4. Котомоды для кота создавать проще чем расширения для констракта из-за более понятной структуры и не надо поднимать прокси сервер для быстрых обновлений как в костракте
5. Возможноть создавать кастомные поведения во время разработки игры (в констрате их можно создавать только во время разработки расширений)
6. Пикси фильтры лучше чем эффекты констракта: их больше и на сайте пикси есть интерактивная демка для предпросмотра
7. pointer в коте лучше чем mouse и touch плагины вместе взятые: Pinch, Rotation, Panning, Pen Eraser, Triple press - всего этого нет в констракте
8. Редактор кода работает лучше: подсказки, поддержка ts типов, подсветка ошибок и т.д.
9. Редактор типов контента
10. Сделан в России
1. Нет поддержки es6 модулей -> не работают import/export
2. Нет экспорта на консоли
3. Встроенные элементы интерфейса не являются HTML элементами -> не поддерживаются css стили для них
4. Нет таймлайна
5. Нет редактора флоучартов
6. Редактор работает только на пк, а констракт ещё и на телефонах
7. Нет облачных сохранений и бэкапов из коробки
8. Не популярный -> меньше комюнити -> нет поддержки от крупных платформ типа: яндекс игры, крейзи геймс, гейм бридж, плэйгама и т.д.
9. Меньше туториалов и обучающих материалов
10. Редактор немного хуже: нет слоёв -> UI надо создавать в отдельной комнате, кнопка "применить" закрывает окно редактирования ресурса (почему?), в некоторых редакторах отклик интерфейса медленнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Я уже некоторе время ищу идеальный движок для телеграм мини игр
Попробовал 4 движка и хочу написать краткий отзыв по каждому:
1. Годот - у этого движка очень хорошие инструменты разработки: редактор сцены, карт, интерфейса, кода одни из самых лучших среди всех движков. И очень удобное API для интеграции и взаимодействия с JS SDK которые необходимы для работы игры в телеграме. Создавать игры на нём очень приятно и весело, до того момента пока тебе не захочется экспортировать своё творение. Вес веб билда почти 10 МБ с учётом всех сжатий и загрузка игры более 15 секунд - это ужас. Поспрашивал других людей - сказали что в годо очень плохая поддержка веба и "скажи спасибо, что там есть хоть какой то веб экспорт" ну чтож спасибо.
Оценка: 4/10
2. Вторым движком, который я протестил был констракт3. С технической стороны этот движок идеален во всём: отличный редактор, великолепная поддержка любых JS библиотек и SDK благодаря нативной поддержки модулей и import/export синтаксиса а так же самый маленький вес игры менее 700 КБ благодаря этому игра открывается моментально без какой либо загрузки, можете проверить сами: https://news.1rj.ru/str/HexCollabBot?startapp
Но есть один минус, который перечёркивает вообще все плюсы - это ценовая политика и проблема не только в том что цена огромная 6к рублей в год и невозможно его купить из россии, а в том, что даже если ты затерпел и обошел все эти преграды, то у тебя всё равно в любой момент разрабы могут забрать движок и не вернуть деньги. Именно так они и поступили со мной.
Оценка 2/10
3. Следующим движком стал ct.js. Я написал про него отдельный пост. Если вкратце, то концепция движка хорошая, размер билда приемлемый - чуть больше констракта, удобство интеграции библиотек - сложно, но можно, но вот сырость движка даёт о себе знать. Я сделал точно такую же интерактивную карту точно такими же методами как и на констракте, и она даже работает точно также, но есть нюанс с постоянными багами и вылетами даже в такой простой игре из-за чего использовать его я бы не рекомендовал. На саму карту и баги в ней можете посмотреть тут: https://news.1rj.ru/str/ctjstestBot?startapp
Оценка 6/10
4. И последний движок - Gdevelo5. Способ написания логики примерно такой же как и у констратка где-то лучше, где-то хуже. Интеграция библиотек такая же как у ct.js не простая - но возможно. Размер билда примерно такой же как у констракта и ct.js но загрузка не моментальная около секунды (скорее всего это сделано искусственно, чтобы показать сплэш с рекламой движка). Посмотреть можете тут:
https://news.1rj.ru/str/PixelFolderBot?startapp
Оценка 8/10
Итог: Идеального движка на 10/10 я не нашел, но Gdevelop5 самый лучший из того что есть. Нет проблем с ценой как у констракта, нет проблем с размером билда как у годота и нет проблем с багами как у ct.js всё работает надёжно и чётко без багов и вылетов. Поэтому для будущих своих интерактивных проектов и игр для телеграмма я буду использовать именно Gdevelop5 пока не появится что то лучше на 10 из 10, но думаю это случится ещё не скоро
Попробовал 4 движка и хочу написать краткий отзыв по каждому:
1. Годот - у этого движка очень хорошие инструменты разработки: редактор сцены, карт, интерфейса, кода одни из самых лучших среди всех движков. И очень удобное API для интеграции и взаимодействия с JS SDK которые необходимы для работы игры в телеграме. Создавать игры на нём очень приятно и весело, до того момента пока тебе не захочется экспортировать своё творение. Вес веб билда почти 10 МБ с учётом всех сжатий и загрузка игры более 15 секунд - это ужас. Поспрашивал других людей - сказали что в годо очень плохая поддержка веба и "скажи спасибо, что там есть хоть какой то веб экспорт" ну чтож спасибо.
Оценка: 4/10
2. Вторым движком, который я протестил был констракт3. С технической стороны этот движок идеален во всём: отличный редактор, великолепная поддержка любых JS библиотек и SDK благодаря нативной поддержки модулей и import/export синтаксиса а так же самый маленький вес игры менее 700 КБ благодаря этому игра открывается моментально без какой либо загрузки, можете проверить сами: https://news.1rj.ru/str/HexCollabBot?startapp
Но есть один минус, который перечёркивает вообще все плюсы - это ценовая политика и проблема не только в том что цена огромная 6к рублей в год и невозможно его купить из россии, а в том, что даже если ты затерпел и обошел все эти преграды, то у тебя всё равно в любой момент разрабы могут забрать движок и не вернуть деньги. Именно так они и поступили со мной.
Оценка 2/10
3. Следующим движком стал ct.js. Я написал про него отдельный пост. Если вкратце, то концепция движка хорошая, размер билда приемлемый - чуть больше констракта, удобство интеграции библиотек - сложно, но можно, но вот сырость движка даёт о себе знать. Я сделал точно такую же интерактивную карту точно такими же методами как и на констракте, и она даже работает точно также, но есть нюанс с постоянными багами и вылетами даже в такой простой игре из-за чего использовать его я бы не рекомендовал. На саму карту и баги в ней можете посмотреть тут: https://news.1rj.ru/str/ctjstestBot?startapp
Оценка 6/10
4. И последний движок - Gdevelo5. Способ написания логики примерно такой же как и у констратка где-то лучше, где-то хуже. Интеграция библиотек такая же как у ct.js не простая - но возможно. Размер билда примерно такой же как у констракта и ct.js но загрузка не моментальная около секунды (скорее всего это сделано искусственно, чтобы показать сплэш с рекламой движка). Посмотреть можете тут:
https://news.1rj.ru/str/PixelFolderBot?startapp
Оценка 8/10
Итог: Идеального движка на 10/10 я не нашел, но Gdevelop5 самый лучший из того что есть. Нет проблем с ценой как у констракта, нет проблем с размером билда как у годота и нет проблем с багами как у ct.js всё работает надёжно и чётко без багов и вылетов. Поэтому для будущих своих интерактивных проектов и игр для телеграмма я буду использовать именно Gdevelop5 пока не появится что то лучше на 10 из 10, но думаю это случится ещё не скоро
❤3
Forwarded from Lord DM
UltraFreeProMax 2.0.4 - r449-2.rar
1.9 MB
Ultra Free Prox Max 2.0.4 – Edge, Chrome, Firefox, Desktop App.
Added support ONLY for version r449-2, which is the latest stable version.
It works on Edge, Chrome, and Firefox.
"In this update, login is OPTIONAL."
Tutorial r449-2
1.- Go to the correct link: https://editor.construct.net/r449-2/
2.- It's quite simple; you just have to press F12, then press Control + F5. This will refresh the page.
Using older versions remains the same:
r422, r423, r424: activate the patch and log in. (Works on Edge and Chrome) (Does NOT work on Firefox)
r421 or lower: no login is required, but if you want to use your account, first log in and then activate the patch. (Works on Firefox, Edge, Chrome)
Note:
If you want to use version 432-3, use version 2.0.1 of the crack.
If you want to use version 440, use version 2.0.2 of the crack.
If you want to use version 440-2, use version 2.0.3 of the crack.
:v
Added support ONLY for version r449-2, which is the latest stable version.
It works on Edge, Chrome, and Firefox.
"In this update, login is OPTIONAL."
Tutorial r449-2
1.- Go to the correct link: https://editor.construct.net/r449-2/
2.- It's quite simple; you just have to press F12, then press Control + F5. This will refresh the page.
Using older versions remains the same:
r422, r423, r424: activate the patch and log in. (Works on Edge and Chrome) (Does NOT work on Firefox)
r421 or lower: no login is required, but if you want to use your account, first log in and then activate the patch. (Works on Firefox, Edge, Chrome)
Note:
If you want to use version 432-3, use version 2.0.1 of the crack.
If you want to use version 440, use version 2.0.2 of the crack.
If you want to use version 440-2, use version 2.0.3 of the crack.
:v
Moth
Приняли задание✨ С небольшими замечаниями, но их я исправлю уже когда буду сдавать вторую часть Замечания: 1) Удаляйте неиспользуемые using 2) Base 1. FindObjectOfType - не используйте методы Find для получения ссылок на компоненты объектов со сцены…
Movie_006.webm
1.6 MB
Это самое длинное задание в моей жизни))
Прошло 8 месяцев с тех пор как я сдал первую чать последнего задания из блока юнити
Сначала учёба отнимала много времени, потом получил диплом по основному образованию, потом разучился программировать и вообще всё стало лень, начал делать потихоньку небольшие проекты на других движках и вот наконец вернулся к юнити.
Прошло 8 месяцев с тех пор как я сдал первую чать последнего задания из блока юнити
Сначала учёба отнимала много времени, потом получил диплом по основному образованию, потом разучился программировать и вообще всё стало лень, начал делать потихоньку небольшие проекты на других движках и вот наконец вернулся к юнити.
Так вот текст задания:
И моё решение: https://github.com/NoNameDeleted/BotsCollectors/commit/9350648e55167c51675843a0ea733f1a32ab3b72
Скорее всего это задание не примут с первого раза да и со второго тоже, это будет эпопея на 8-10 исправлений, так что свои комментарии по коду буду уже писать в следующих попытках.
Продолжаем работать в проекте задачи Боты сборщики, добавим новый функционал:
1. Когда на базу принесли три единицы ресурсов, она тратит их на создание нового юнита, который ведет себя также, как и старые юниты.
2. У каждой базы должна быть своя коллекция ресурсов.
3. Игрок может установить флаг базы на уровне, кликнув на базу, а потом на любую точку плоскости. Флаг невозможно установить за пределами карты, а также у одной базы не может быть больше одного флага. Если в момент клика флаг базы уже находится на уровне, то он должен быть переставлен в новое место.
4. Когда флаг базы поставлен, ее поведение меняется, устанавливается новый приоритет. По этому приоритету база ожидает сбора 5 единиц ресурсов, а потом тратит их на отправку свободного юнита к флагу, чтобы тот построил там новую базу. С этого момента отправленный юнит принадлежит новой базе.
5. При постройке новой базы флаг исчезает и поведение старой базы возвращается к постройке новых юнитов.
6. Нельзя построить новую базу, если у вас остался один юнит.
И моё решение: https://github.com/NoNameDeleted/BotsCollectors/commit/9350648e55167c51675843a0ea733f1a32ab3b72
Скорее всего это задание не примут с первого раза да и со второго тоже, это будет эпопея на 8-10 исправлений, так что свои комментарии по коду буду уже писать в следующих попытках.
GitHub
Building base functionality · NoNameDeleted/BotsCollectors@9350648
Contribute to NoNameDeleted/BotsCollectors development by creating an account on GitHub.
🥰1
Ответ проверяющего по предыдущему заданию:
Сложно понять с первого раза смысл этих замечаний. Но если обобщить написанное, то все ошибки в построении архитектуры и связи объектов между собой.
Перед этим я сделал несколько проектов на Gdevelop и там вообще не надо было строить архитектуру никак, там концептуально это понятие отсутствует и из-за это программировать гораздо легче. Чтож буду привыкать.
А ну и ещё я не знал что в одном енумираторе можно сделать несколько последовательных действий, мне это как то даже в голову не приходило.
Привет!
Сейчас у тебя ресурсы попадают в свободные напрямую из спавнера. Всем классам должно быть все равно на то, откуда ресурсы появляются на карте. Важен сам факт наличия ресурса. Сделай поиск ресурса полностью через сканнер.
Так же релизить ресурс напрямую в спавнер не нужно. У тебя появляется лишняя зависимость на спавнер. Заставь спавнер подписываться на событие объекта, который он заспавнил. Тогда, чтобы зарелизить ресурс, базе достаточно вызвать resource.Release.
Использовать FindObjectOfType не нужно. Сделай у базы метод инициализации. Туда и передавай все необходимое.
У тебя сейчас у бота несколько корутин. Если хочешь, можешь переделать на что то подобное:
public IEnumerator Collect(Resource resource)
{
yield return _botRotation.SmoothLookAt(resource.transform); // обычный метод IEnumerable
yield return _botMovement.MoveTo(resource.transform);
_botAnimator.PlayLift();
yield return new WaitUntil(() => _botAnimator.IsLifting);
yield return _botRotation.SmoothLookAt(_homeBase.transform);
yield return _botMovement.MoveTo(_homeBase.transform);
MissionCompleted?.Invoke(resource);
} - все методы будут выполняться последовательно.
Сложно понять с первого раза смысл этих замечаний. Но если обобщить написанное, то все ошибки в построении архитектуры и связи объектов между собой.
Перед этим я сделал несколько проектов на Gdevelop и там вообще не надо было строить архитектуру никак, там концептуально это понятие отсутствует и из-за это программировать гораздо легче. Чтож буду привыкать.
А ну и ещё я не знал что в одном енумираторе можно сделать несколько последовательных действий, мне это как то даже в голову не приходило.
👍1
| Название | Размер | комментарий |
| ------------------------ | ------------------------------- | -------------------- |
| godot | ~ 40 мб | Без изменений |
| godot | ~ 10 мб | Перекомпилированный |
| unity | ~ 10.7 мб | 3д |
| unity | ~ 7.7 мб | 2д |
| p5.js | 4.5 мб | 3д |
| defold | 3.5 мб | 3д |
| Heaps io | 2.5 мб | 3д |
| Picotron | 1.9 мб | 2д |
| Scratch | 1.8 мб (Turbowarp) | 2д |
| Gdevelop 3д | 1.6 мб | 3д |
| Game maker | 1.6 мб | 2д |
| Phaser | 1.5 мб | 2д |
| Construct | 1.5 мб | 2д |
| Ct.js | 1.1 мб + 0.8 мб иконки = 1.9 мб | 2д |
| Gdevelop 2д | 930 Кб | 2д |
| three.js | 700 мб | 3д |
| Pixi.js | 460 Кб | 2д |
| Kaplay | 160 Кб | 2д |
| Point.js | 96 кб | 2д |
| Little JS | 7-8 Кб | Версия для 13k джема |
| CanvasRenderingContext2D | 0 б | 2д |
сделал таблицу размера пустых html билдов на разных движках
чтобы найти самый оптимальный движок по соотношению рзмер билда / функционал
победил однозначно Gdevelop
у него есть полноценная поддержа 2д и 3д в одном проекте в отличае от playcanvas, babylon и three у которых только 3д функции без 2д - нет элементарно поддержки тайлмапов, и 2д физики
ну и размеру билда даже 3д вполне приемлемый, даже меньше чем у скратча, у котого только 2д редрер
а так же он не добавляет 3д библиотеку если ты не используешь 3д в своём проекте и тогда разер билда у него становится самый маленький по сравнению с другими движками у которых есть полноценные редакторы (т.е. не считая фреймворки)
чтобы найти самый оптимальный движок по соотношению рзмер билда / функционал
победил однозначно Gdevelop
у него есть полноценная поддержа 2д и 3д в одном проекте в отличае от playcanvas, babylon и three у которых только 3д функции без 2д - нет элементарно поддержки тайлмапов, и 2д физики
ну и размеру билда даже 3д вполне приемлемый, даже меньше чем у скратча, у котого только 2д редрер
а так же он не добавляет 3д библиотеку если ты не используешь 3д в своём проекте и тогда разер билда у него становится самый маленький по сравнению с другими движками у которых есть полноценные редакторы (т.е. не считая фреймворки)
👍2
Годот оказался хуже всех хотя мне казалось что юнити билд должен больше весить, а на деле если удалить из юнити билда все лого и поставить size optimization вместо perfomance то там размер получится примерно как у дефолда
А ещё оказалось чтобы убрать ненужные функции в билде годо нужно пересобирать весь движок из исходников что занимает немало времени
В дефолде например для этого нужно просто прожать несколько галочек в настройках, а construct и gdevelop делают это автоматически просто не включают ненужный код если он не используется в игре
А ещё оказалось чтобы убрать ненужные функции в билде годо нужно пересобирать весь движок из исходников что занимает немало времени
В дефолде например для этого нужно просто прожать несколько галочек в настройках, а construct и gdevelop делают это автоматически просто не включают ненужный код если он не используется в игре