Pull to refresh
12
0
Алексей Павлов @lexxpavlov

Программист

Send message
Дело не в комментариях к коду, а в объяснениях, зачем было выбрано именно такое решение, и почему так. Тогда получился бы туториал с хорошей заявкой на обучение новичков.
Что такое if или foreach знает каждый программист, который учится больше нескольких недель. А вот на этих вопросах можно было бы и остановиться подробнее:
— для чего был создан интерфейс IPoolObject
— почему был выбран стек (псевдостек) для хранения объектов в пуле
— для чего были выбраны именно такие методы в классах (имя метода OnPush в интерфейсе, на мой взгляд, отражает технические особенности пула, а не назначение этого метода)
— как организован доступ к пулу (через статическое поле Instance, такой полу-синглтон. Кстати, зачем дублировать в менеджере все методы самого пула? ведь вместо Instance = this можно было написать Instance = poolManager)
— что такое yield?
— в самом начале вы указали, что ваш пул можно использовать в Photon Server. Другие пулы нельзя в нём использовать? Что вы сделали, чтобы можно было. И вообще — что такое Photon?

Если бы в статье были ответы на эти и подобные вопросы, тогда получился бы отличный туториал, который оценили бы гораздо выше. А сейчас получилась статья в стиле «смотрите как я умею!», на что я и ответил в первом комменте.
Довольно обычная вещь, без изюминки. Таких пулов довольно много. Чем ваш реализация отличается от других пулов? Зачем вы решили делать свой велосипед?

Лично я из бесплатных пользовался двумя — ObjectPool и PoolBoss. Первый попроще, второй понавороченнее. Оба могут работать через методы расширений — вызываются прямо у GameObject или Transform. PoolBoss дополнительно имеет настройки в редакторе — довольно удобно.

Хм… Сейчас зашёл на страницу PoolBoss-а в AssetStore — он теперь не бесплатный… Вышла новая версия, Unity 5.0 ready
У вас кнопка «Назад» вызывает окошко настроек, повторное нажатие «Назад» возвращает в игру. Вот если на окошке настроек добавить кнопку «В меню», добавить само меню (пусть даже с парой пунктов «Играть» и «Об авторе», или «Другие игры»), то в нём кнопка «Назад» сделать как выход из игры.

На самом деле, многие люди ищут привычные способы для выхода — а привычный выход — это кнопка «Назад». А кнопка «Home» вообще выкидывает на рабочий стол, а не к предыдущему открытому окну, что тоже может быть неудобно.
Мне игра понравилась, забавная. Но и правда — не хватает выхода. Другие игры же это обходят — сделайте выход в меню, и оттуда кнопка «Назад» будет выходит из игры.
И второе — ачивки плохо названы — «Level 2» и т.п. Было бы гораздо лучше, если бы они показывали продвижение игрока по «сюжету», например, за прохождение первого уровня давать ачивку «Первый отпор», «Первая кровь» или «Бей краснокровых»!
А можно ли его попробовать предложить абсолютному новичку? Потому как такой новичок в WP за неделю сможет сделать бложик (хоть и кривенький).
И как вам Ghost? поделитесь впечатлениями. Можно ли сравнить с WP, например?
кстати, о том же множестве Мандельброта на php уже говорили сегодня в дайджесте PHP, процитирую:

Представлена экспериментальная реализация JIT для PHP от Zend — Один из главных авторов PHPNG, Дмитрий Стогов, анонсировал реализацию JIT. На некоторых синтетических тестах заметен значительный рост производительности, а для специфичных случаев, например, подсчет множества Мандельброта, показывает 30 кратный рост и опережает реализацию на C.
а почему вы решили, что там был рандом? может, сервер запоминал, какая статуя «выигрышная», и при щелчке смотрел, по ней ли нажали. Хотя, с другой стороны, абсолютно нет никакой разницы, кидать рандом ДО выбора статую или ПОСЛЕ этого — результат абсолютно не изменится.
хмм… я вот подумал. Такой гроссмейстерский бот не будет отличим от игрока, по крайней мере — онлайн. А вот если всех победителей пригласить на офлайн-соревнование, и там они должны будут показать хотя бы наполовину такие же результаты — то они не боты.
>Конечно, непросто будет различить гроссмейстера и бота
Мне кажется, если будет получен бот, который успешно пройдёт все ваши проверки, то это гроссмейстерский бот. Получается, приз получит гроссмейстер — а в какой сфере гроссмейстер (программирование или игры), уже не так важно — награду получит достойный.
и во время успеха отчаяние будет возрастать
А в чём отличие от Fabric.js? (статьи о нём на хабре — один и два)
Храните ли исходники ассетов тоже в репозитории? (psd, исходные проекты 3д-моделей, т.п.)
Поделитесь опытом, кто как хранит в репозитории большие бинарные ассеты (картинки, текстуры, модели, звуки и музыка).
Какие VCS используете? какой опыт в этом?
много сахара вредно, это ещё диетологи говорят!
>почему игры на 5 игроков продаются в вакууме в два раза лучше, чем игры на четырёх
ммм… Космонавты покупают?.. Играть в вакууме.
Ну вообще-то, их там сейчас до шестерых человек доходит — не подходит вариант…
Во-первых, в родителе класса формы нет контейнера, и его туда в любом случае нужно передавать.
А во-вторых, передавать контейнер в сервис не очень правильно, потому что это идёт вразрез с самой идеей DI-контейнеров — уменьшать связность компонентов, а тут придётся в классе определять, где находятся нужные ему данные.
Поэтому в сервисы нужно уже готовые данные или другие сервисы. А передача через конструктор — это простейший способ передачи зависимости.
1) и 3) Я когда-то сделал этот бандл для себя, и я как-то исторически использую аннотации. Уже потом я решил его использовать для демонстрации в этой статье. Если бы я изначально делал публичный бандл, то я бы, конечно, сделал бы маппинг на yaml.
2) Вся логика вынесена из бандла, в нём вообще нет контроллера, во второй части контроллер перенесён в другой бандл. Поэтому нечего выносить в сервис. В первой части есть контроллер, но он предназначен для того, чтобы просто работало, я не стал сильно заморачиваться о нём, ведь в самом бандле его не будет.
4) согласен.
Основная часть статьи — третья и четвёртая, и частично вторая, а первая — чтобы было о чём говорить в остальной части. Мне бы следовало, наверное, указать, что код контроллера (и шаблоны, что уж там говорить) — не образцы для подражания. Я, например, в контроллерах своих рабочих проектов вообще отказался от ParamConverter и от аннотации Template.

Information

Rating
Does not participate
Location
Саратов, Саратовская обл., Россия
Date of birth
Registered
Activity