• Есть ли живые opensource javascript игры, в которые можно контрибьютить?

    Tiendil
    @Tiendil
    Разработчик ПО.
    У https://the-tale.org есть небольшая (клиентская) часть на JavaScript, которой не помешало бы дополнительное внимание.

    Исходники: https://github.com/the-tale
    Ответ написан
    Комментировать
  • Какой язык программирования выбрать для первой игры?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Game Maker: https://www.yoyogames.com/gamemaker

    Для 2д игр в качестве хобби — самое то. Есть куча готовых ассетов, примеров, многое разжёвано и упрощено, большое и активное сообщество.

    Из недостатков - собственный ЯП, который вне GM никому не нужен.
    Ответ написан
    Комментировать
  • Имеет ли смысл создавать свой собственный игровой движок?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Имеет ли смысл создавать свой собственный игровой движок?

    Зависит от цели создания.

    Если для конкуренции с существующими движками, то не имеет - весовые категории не те.

    Смысл имеется, если целью ставится:

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

    Какого уровня программисты занимаются созданием игровых движков?

    Любого, в зависимости от цели.

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

    Предложить можно всё, что угодно, но никто не согласится. Можно попробовать найти финансирование под разработку готовой игры с УНИКАЛЬНЫМ геймплеем на этом движке.

    Имеет ли смысл переписывать компоненты существующих движков (например рендер-составляющую в Unity), для собственных нужд?

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

    Программист 3D-графики и шейдеров ( OpenGL, DirectX ) = программист движка? :)

    Смотря какой программист и смотря какой движок :-D

    Вообще понятие «движок» очень расплывчатое, так что и да и нет.
    Ответ написан
    Комментировать
  • Что написать для пополнения портфолио?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Для портфолио подойдёт любой внедрённый проект: сайт с посещениями, бот с пользователями, игра с игроками, etc.

    Сейчас, большая часть сложности разработки ПО находится не в написании самого кода, а в сопутствующих активностях (исследование, организция окружения разработки, тестирование, внедрение, поддержка, etc).

    Поэтому, проект с пользователями (лично в моих глазах) даст фору более сложному проекту разработанному "в стол". Поэтому самая главная рекомендация - решить конкретную задачу, а не фантазировать. Если будет статья на каком-нибудь хабре с лайками и комментариями - совсем замечательно.

    Расчётные проекты могут пойти как в плюс так и в ноль, в зависимости от того, насколько собеседующий в курсе темы, по которой они делались.

    Рекомендовать более точные темы сложно, поскольку не указано чем конкретно хотите заниматься (в какой области хотябы: веб, машинное обучение, офлайн по, etc).

    В сайте только с проектами смысла особого нет. Его легко заменяет профиль на гитхабе. Если делать сайт, то в виде блога, чтобы на нём были какие-то полезные материалы. В начале карьеры на личный блог хороших статей много не напишешь, поэтому лучше идти, опять таки, в какой-нибудь хабр.

    То есть, получается, что в резюме (поначалу) лучше вкладывать ссылки на гитхаб и профиль хабре, чем на личный сайт.
    Ответ написан
    3 комментария
  • Актуальна ли сфера разработки мобильных игр как бизнес?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Без опыта с такой суммой у вас почти нет шансов что либо сделать. Только если повезёт собрать профессиональную команду, а без опыта в индустрии вы её сразу не соберёте.

    Рынок мобилок сложный и перегрет деньгами. Большая часть монетизаци строится на покупке трафика задорого и попытке выжать из игроков больше, чем они стоили. То есть кроме затрат на разработку вам нужно будет ещё в несколько раз больше денег на маркетинг.

    Учитывайте также, что даже профессиональной команде надо будет сработаться, наработать какой-то инструментарий, нащупать нишу. То есть несколько первых проектов гарантировано уйдут в минус.

    Что можно сделать:

    - Найти уже готовую команду с существующими качественными проектами и влить в них деньги на макретинг (и закрытие кадровых дыр).
    - Приписать к сумме нолик и надеяться, что мозгов и удачи хватит, чтобы на эту сумму вытянуть.
    Ответ написан
    Комментировать
  • Как найти свою ц/а?

    Tiendil
    @Tiendil
    Разработчик ПО.
    > Соцсети не помогают, для этого нужны денежные вложения.
    Либо время.

    Вопрос, как я понимаю, скорее не про ЦА, а про формирование сообщества. Чтобы народ не рассходился между выпусками игр.

    Для этого нужно тратить время и (опционально) деньги. Делается так:

    - Заводится форум/блог/группа в соц. сетях - лучше форум с блогом и репостинг постов в соц. сети - не так сложно сделать, как кажется. Но главное одну площадку сделать основной (чтобы не размывать людей) и на ней вести общение.
    - Отовсюду пробрасываются ссылки на основную площадку (из игр, статей, новостей, etc).
    - Общаетесь там с игроками, отвечаете на вопросы, задаёте вопросы. Общаться можно в том числе и не по основной тематике (хоть про спорт, хоть в словесные игры играть), нужно чтобы у людей там завязались знакомства.
    - ??????
    - Профит.

    Если людям игры нравятся, то рано или поздно они соберутся в сообщество. Главное помнить, что сообщество является отражением своих лидеров (как себя будете с ним вести, таким оно и будет).
    Ответ написан
    1 комментарий
  • Как разработать свой игровой движок с нуля?

    Tiendil
    @Tiendil
    Разработчик ПО.
    1. Открываешь текстовый редактор.
    2. Пишешь код.
    3. Компилируешь.
    4. Смотришь результат.
    5. Если не устраивает, переходишь к п.1.
    6. ?????
    7. Profit.
    Ответ написан
    Комментировать
  • Turn-based mobile MMO over HTTP?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Это называется long polling . Можно погуглить особенности решения по этому термину.

    Вот случилось у меня 1000 CCU - будет ошибкой такое решение? 10000?

    Глобально или на физический сервак? Это ж разные вещи. Как я понимаю, всё-таки в расчёте на физический сервак. Но и сервак-серваку рознь, как и само CCU беp "профиля нагрузки" мало что говорит.

    В целом, ответы на такие вопросы проще получать экспериментальным путём (собрать простой прототип и натравить на него ботов).

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

    Для прототипа и 1000 CCU точно хватит, если ходы не частые. Например, я по такому принципу сделал дебажный матчмейкер.

    Если бы не было мультиплеера (когда пользователь просто ждёт что-то), то покатило бы и для прода.

    В случае мультиплеера (когда пользователи ждут друг друга), не вижу преимуществ перед поддержкой обычного соединения, кроме сэкономленого времени на разработку MVP. Минусами же станус костыли для поддержки соедиенения и определения дисконектов. Для случая низкуоровневой работы с tcp есть куча мануалов и "стандартных" решений. В случае работы на уровне не ниже http могут возникнуть непредвиденные проблемы из-за промежуточного софта и самого протокола.

    Кроме того, при простейшей реализации long polling одно из соединений будет забито на обработку одной команды и послать другое будет нельзя. А значит потребуется делать отдельные http запросы на каждую дополнительную команду. Теоретически можно загнаться и сделать передачу нескольких команд через такое соединение, но это уже ничем не будет отличаться от собственного протокола через tcp (кроме дополнительных тормозов и костылей).

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

    Резюме:

    - если есть экспертиза и время: делать нормальную коммуникацию через tcp
    - если экспертиза не очень и сроки не горят, то делать нормальную коммуникацию через http с двумя командами (отправить изменения, получить текущее состояние)
    - если нужно ещё вчера, то long polling подойдёт.
    Ответ написан
    4 комментария
  • Можно ли перейти в GameDev, если ты разработчик сайта?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Бэкендеров в геймдеве не хватает: днём с огнём не сыщешь, иди. Может даже денег дадут хороших.
    Для большого количества игр бэкенд ничем не отличается от обычного сайта, разве что страницы рендерить не надо. Вообще, игровая логика — не самый большой кусок сервера, когда она на нём делается.
    Геймдев ничем не отличается от любой другой разработки. Это просто миф. Всё те же проблемы, всё те же критерии. Разве что работники менее дисциплинированные, но это от команды зависит.
    На питоне вполне неплохо пилят сервера (как непосредственно игровые, так и инфраструктурные). Wargaming не жалуется. На клиенте Python тоже есть (в тех же танках, например), но в индустри используется не так активно.

    Pygame — мало кто использует, это скорее привет из прошлого для туториалов. Но можно найти движки с биндигами питона.
    Ответ написан
    Комментировать
  • Поможете найти адекватный движок и язык?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Ответ написан
    Комментировать
  • У меня в перспективе работа над AAA проектами, поэтому стоит ли выбирать Unreal Engine лишь потому что там c++?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Как минимум Unreal Engine даст представление о том, как устроены джижки на C++.

    Исходя из того, что сейчас у них кастомные движки, нельзя сделать выводы, что так будет и дальше.

    Для первого проекта не обязательно (и даже не желательно) брать что-то монструозное. Попробуй взять движок поменьше и попроще (на плюсах их хватает). Сделай игру, столкнись с реальными проблемами разработки.

    Если сразу начнёшь делать на "комбайне", то не будешь понимать многих решений, которые в нём приняты.
    Ответ написан
    Комментировать
  • Почему nginx долго отдает изображения?

    Tiendil
    @Tiendil
    Разработчик ПО.
    А точно в nginx проблема? Посмотрите в логах nginx вермя отдачи данных.

    Скорее всего перед nginx что-то стоит или сама сеть медленно работает.
    Ответ написан
    8 комментариев
  • На каком языке писать комментарии для проекта?

    Tiendil
    @Tiendil
    Разработчик ПО.
    На языке, на котором общается команда, с учётом будущего её развития.

    В противном случае получится испорченный телефон.

    Учтите, что родной язык знают все, а иностранный могут не знать (люди учат немецкий, французский, китайский, etc).
    Ответ написан
    Комментировать
  • Какой паттерн проектирования использовать при фильтрации данных?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Паттерн: «просто напиши этот код».

    До тех пор, пока не будет указано каких-то особых требований/ограничений для задачи, сказать что-то про архитектуру нельзя. Тем более, что в большинстве случаев фильтрации данных именно этот паттерн себя очень хорошо зарекомендовал.
    Ответ написан
    Комментировать
  • Как лучше хранить настройки проекта Django?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Разбивать настройки по разныим *.py файлам для разных окружений не очень удобно.

    Удобнее иметь один settings.py, который импортирует настройки из какого-нибудь общераспространённого формата (json, ini, etc). В этом плане django-environ может быть удобным, но не обязательным решением.

    держать его вне системы контроля версий

    Делать это не нужно. Хотя можно держать конфиги вне репозитория приложения — в отдельном репозитории со скриптами деплоя (так как не все люди, имеющие доступ к исходникам, должны иметь доступ к параметрам деплоя, и наоборот).

    Держать настройки непосредственно в *.py файлах неудобно по тому, что в них, кроме прямых указаний параметров, ещё может быть разный код для их подготовки (всё-таки, это обычный код на Python). При доставке кода на сервера такие конфиги так или иначе генерируются. В итоге усложняется разработка - появляется необходимость править код и в *.py файле, который использует разработчик и в шаблоне этого же файла, который будет использоваться для генерации конфига на сервере. Такой подход — прямой путь к багам.
    Ответ написан
    Комментировать
  • Как в django реализовать оператор #>>?

    Tiendil
    @Tiendil
    Разработчик ПО.
    RawSQL и вообщеще запросов на SQL смущаться не надо :-) это вполне нормальная практика.

    ORM делаются для упрощение жизни, но если мы что-то упрощаем, то что-то обязательно усложнится. В случае ORM усложняются нестандартные запросы. Если начать допиливать расширения для ORM, то работа с ней может стать сложнее формирования запросов на SQL и пропадёт весь профит.

    Поэтому, на мой взгляд, правильнее сложные запросы писать на SQL, а простые делать с помощью ORM, если так удобнее.

    P.S. При сложных запросах Django ORM значительно тормозит сама по себе (из-за суровой внутренней логики). Разработчики Django это исправляют, но очень медленно.
    Ответ написан
    Комментировать
  • Как создать веб приложение на node js или django?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Бэкенд нужен когда собираешься там что-нибудь хранить или выполнять фоновые задачи.

    Если калькулятор сам на js, то достаточно какого-нибудь хостинга статических сайтов.

    Например, этого: https://pages.github.com/
    Ответ написан
    Комментировать
  • Что нужно знать Full-Stack разработчику?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Full Stack - это абстракция, за ним может скрываться очень много чего. И бывает он не только в вебе :-)

    Как минимум, для веба:

    - HTML5 + CSS
    - JavaScript + любой популярный фреймворк.
    - Любой язык для бэкенда: Python, JavaScript, Go, etc. Вообще, бэкенд сейчас на всём пишут.
    - Любая технология автоматизации деплоя (опционально, но лучше иметь представление).
    - Любая база данных + её язык запросов.
    - Любой веб-сервер (его конфигурация, опционально)

    Но лично я не рекомендую учиться именно сразу на Full Stack. В итоге знания будут очень неполные из-за большого фронта обучения. Лучше выучить одну чать, но хорошо. Это позволит начать немного понимать и вторую часть, после чего её можно будет целенаправленно выучить.

    Кроме того. Frontend довольно стандартен по технологиям, бэкенд очень различается. Можно стать Full Stack разработчиком со знанием бэкенда, который никому не нужен.

    Простой путь: учить фронтэнд (глубоко) и потом догоняться бэкендом под нужды текущей работы.

    Хардкорнее: учить бэкенд и постепенно перенимать функции фронтенда на текущей работе.
    Ответ написан
    Комментировать
  • Как организовать раздел популярных рассказов на сайте?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Зависит от скорости появления новых рассказов.

    Если их мало, то достаточно сортировать по дате добавления.
    Если идёт заметный поток, и новые не задерживаются в списке, то ввести понятие "новый рассказ" (наприме, созданный за последнюю неделю) и новые рассказы сортировать по лайкам.

    Для задач среднего портала этого хватит.
    Ответ написан
  • Как называется эта специальность в геймдев и как им стать?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Возможно имеется в виду technical artist. Правда они очень разные могут быть: от верстальщиков интерфейса до программистов шейдеров и прочего. В общем случае должность подразумевает знание и программирования и арта.
    Ответ написан
    Комментировать