• Как рассчитать точку и время пересечения 2 объектов?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Вариант в лоб, но без 3 пункта.
    У вас есть точка старта и вектор направления. Исходя из этого вы строите прямую, проходящую через точку старта и совпадающцю (не уверен в термине) с вектором. Получаете естественно уравнение прямой. То же делаете для второй точки. Далее находите точку пересечения этих двух прямых (это легко, зная их уравнения). Отлично, точка пересечения есть. И она единственная (если существует - прямые могут быть параллельны). Далее считаете расстояние из первой точки в точку пересечения, и из второй в точку пересечения. Берете скорости объектов (они должны быть известны - иначе нерешаемо), и считаете сколько каждому потребуется для преодоления пути из стартовой точки в точку пересечения. Если время совпало - пересекутся.
    Ответ написан
    5 комментариев
  • Как вынести похожие сущности в один абстрактный класс?

    @khrisanfov
    Программист
    Нужно создать интерфейс с методами sendSms() и getBalance(), затем реализовать его для каждого провайдера. Количество классов будет соответствовать количеству провайдеров, у всех будет один общий интерфейс.
    Ответ написан
    7 комментариев
  • Как подписывать разработанные сайты?

    dom1n1k
    @dom1n1k
    Единственный адекватный вариант - пункт в договоре (так делает например САЛ).
    Если фрилансер - можно попробовать устные договоренности (но понятно, что клиент в любой момент может передумать - и это его право).
    А за все ужимки с потайным функционалом надо отбивать руки.
    Ответ написан
    1 комментарий
  • Как реализовать мои маленькие мысли?

    TheKnight
    @TheKnight
    Программист
    InetAddress address = InetAddress.getByName("www.example.com"); 
    System.out.println(address.getHostAddress());

    stackoverflow.com/a/15788605

    Это что касается получения IP по имени.
    Что же касается кода - какой нафиг флоат? Зачем дабл? Какого черта используется неявное приведение Float к Double? Что происходит вообще?
    Ответ написан
    4 комментария
  • Возможен ли универсальный абстрактный алгоритм подхода к решению нетривиальных задач?

    usdglander
    @usdglander
    Yipee-ki-yay
    Нетривиальные задачи на то и нетривиальные, что для них не существует общего метода решения. Обычно просто надо посмотреть на задачу под нужным углом, чтобы решение пришло само!
    Ответ написан
    2 комментария
  • Что такое классические алгоритмы и структуры данных в вакансиях?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Классические алгоритмы - алгоритмы поиска, сортировки и обработки данных. Структуры данных - стеки, кеши, массивы, списки.
    Ну и буду старомоден, ничего лучше в этом мире до сих пор нет, как трехтомних Дональда Кнута - Искусство Программирования. Просмотрев оглавление первого тома - получите весь список! Ну а если просто прочтете по две-три странички каждого раздела, то будете в курсе, как они работают. Если разберете еще и примеры, то будете классным специалистом . А если и до решения задач доберетесь, то вас многие фирмы почтут за честь иметь в штате. Выполнение одного из заданий сложностью 45 - нобелевка.
    Но вам сейчас нужно просто прочитать оглавление! Начните с этого.
    Упс, еще и третий том обязательно оглавление.
    Ответ написан
    1 комментарий
  • Вывод на экран java?

    @Neonoviiwolf
    Flutter developer
    Да тут пропуск целого семестра видно. Открываем главу "массивы" и читаем
    Ответ написан
    2 комментария
  • Где найти бесплатные текстуры и т.д для создания простенькой игры?

    JohnZoidberg
    @JohnZoidberg
    1. Kenney.nl

    Этот находящийся в Нидерландах сайт предлагает разработчикам замечательную графику. Присутствуют материалы, признанные Общественным достоянием. А это значит, что вы можете использовать их где угодно, не беспокоясь об авторских правах. Так же есть поиск графики по категориям, что значительно ускоряет процесс.
    Кроме того, на сайте представлены подборки бесплатной музыки.

    2. OpenGameArt.org

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

    3. Untamed.wild-refuge.net

    Отличный ресурс для тех, кто задумывает или уже создает свою RPG.
    При переходе по ссылке справа вы увидите колонку ресурсов. Персонажи, предметы, локации и тому подобное, при нажатии на которых все-все объекты появятся на одной странице, что упрощает и ускоряет выбор. При клике на понравившегося персонажа, открывается ссылка на .png файл, со всеми 3d-проекциями и движениями, что идеально подходит для создания собственных спрайтов.

    4. Crateboy.itch.io

    Отличительная особенность данной коллекции - 8-битная графика городов. Вся библиотека совершенно бесплатна, и всё, о чём просит автор - упомянуть о нём в своей игре (credits).
    Цветовая гамма данной библиотеки является её отличительной особенностью, и при использовании в исходном виде вполне может определить дизайн всего проекта.

    5. Bagfullofwrong.co.uk

    Коллекция материалов, созданных и использованных в различных проектах дизайнером Робом Фероном для Вашего личного пользования.

    6. Gameart2d.com

    Вебсайт, запущенный индонезийским разработчиком игр, с отличным вкусом в области дизайна игр. Хотя большая часть материалов сайта является платной, так же присутствует и бесплатная, в которой Вы можете найти симпатичные изображения. Помимо спрайтов на сайте представлены наборы для создания уровней, GUI и прочее.

    7. Wigdetworx.com

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

    8. Glitchthegame.com

    Создатели проекта Glitch, закрытого в 2012 году решили сделать всю её графическую часть Достоянием общественности (никакие авторские права для использование не требуются). К Вашим услугам более 10,000 изображений восхитительного качества собранные воедино и доступные по одному нажатию.

    9. Dumbanex.com

    Идеально для сайдскроллеров и платформеров
    Множество графики от дизайнера-фрилансера Брента Андерсона. Всё бесплатно при условии упоминания в приложении (Credits).

    10. Reinerstilesets.de

    Бесплатная графика от разработчика игр разработчикам игр. Помимо библиотек на сайте есть неплохие туториалы.

    11. Sharecg.com

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

    12. Roenica.com

    Отличный сайт с графикой для инди проектов и казуалок.
    Всё разбито на категории по типу игры и упаковано в ZIP архивы. Есть и 2D и 3D графика, но так же как и в предыдущем случае стоит внимательно смотреть на лицензию, под которой распространяется контент.

    13. Blogoscoped.com

    Сам сайт - форум про Гугл и всё, что с ним связанно, но в 2006 году его участник Philip Lenssen выложил на нем около 700 спрайтов, которые теперь распространяются под Creative Commons License

    14. Lostgarden.com

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

    15. Subtlepatterns.com

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

    16. Openclipart.org

    Обширное сообщество с огромными объемами графики. Всё, что сможете найти на этом сайте, совершенно бесплатно. Правда вот поискать придется как следует.
    Ответ написан
    12 комментариев
  • Какую фантастику порекомендуете, где главный герой программист/инженер?

    Holzfaller
    @Holzfaller
    Ruby / Ruby on Rails developer (full-stack)
    www.etnogenez.ru/book/hackers - 3 книжки, читаются быстро и легко
    Ответ написан
    Комментировать
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

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

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

    * Кэш должен очищаться по двум условиям (не по одному из, а именно по двум):
    - Время.
    - Протухание по бизнес логике.
    Разрешается по только времени в безвыходных ситуациях, но тогда время - короткий период.
    - При расчете ключей кэша должна использоваться переменная из конфигурации приложения (на случай обновлений кэш сбрасывается кодом, а не флашем кэш-сервера). В случае использования множества серверов - это очень удобный и гибкий инструмент при диплое.

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Java.Игровый движки?

    stasuss
    @stasuss
    быдлокодер со стажем
    LibGDX - офигенная штука, и не надо слушать тех кто говорит что ява - не игровой язык
    Ответ написан
    Комментировать
  • На чем писать браузерную 2D многопользовательску RPG игру?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Берете дизайнера, который нарисует вам интерфейс как в линедж только 2д.
    Берете художника, который понаделает вам графики как в линейдж, только 2д.
    Берете композитора, который сделает вам музыку как в линейдж только.... моно.
    Берете игровой вебдвижок, который может рисовать изображение как в линейдж только 2д.
    Изучаете ЯП, на котором будете писать игру как линейдж, только 2д.
    Пишите игру как линейдж, только 2д.
    Еще вам нужен сервер, как у линейдж, только для 2д мира.
    Ответ написан
    8 комментариев
  • Как вернуть мотивацию к обучению?

    У меня падала мотивация тоже когда завидовал. А потом я подключал системный подход (спасибо универ!) к своей ситуации, смотрел какие входные данные были у этих людей (например богатые родители, развитая страна или банально у него компьютер появился в 5 лет а у меня в 15) и всё вставало на свои места, ведь понимаешь, что ты сам кузнец своего счастья.
    Ответ написан
    5 комментариев
  • Почему в книге Шилдта по java 8 от 2015ого года (издание 9) до сих пор много упоминаний про аплеты/сервлеты?

    Ewintory
    @Ewintory
    Java / Android developer
    Оффтоп:
    новичок в мире IT
    высказал свое мнение
    в вебе же уже давно не правит Java

    Как можно судить о платформе, которую ты еще толком не знаешь?
    Ответ написан
    9 комментариев
  • Какой выбрать вуз для обучения на программиста?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Любой из представленных вузов даст фундаментально базовые и ВАЖНЫЕ знания по научным и естественно-техническим дисциплинами, основам и тонкостям, начиная от математике до программирования - все это вам будет нужно, если вы хотите стать хорошим программистом, даже на Java....
    Не важно что в некоторых вузах учат еще на паскале или си, для вас главное научиться базе, основам, понять суть, углубиться в теорию, чтобы потом применить это все на практике. Теория алгоритмов, структуры программ, булева алгебра, основы математики и все подобные дела вплоть до шифрования....
    Учите базу, учите учиться, учитесь искать информацию, учитесь идти вперед прогресса. Любой вуз, главное технический и главное профильно-естественно-научно-программистский....
    Хоть МГУ, хоть ИТМО, хоть Бауманка, хоть МИФИ, даже если вы будете заниматься научными работами и практикой в университете - это неоценимая польза для вашей будущей карьеры.
    Главное что хотелось бы отметить, того что дают в универе этого мало, особенно по современным технологиям. Там дают базу, умения, а вот современные технологии - это уже ваша способность интересоваться, будь то jQuery, Erlang, Scala, git, SVN, etc etc etc, любой программно-инженерный инструмент, любая IDE, любой язык программирования, модный, находящийся в тренде - это уже дело рук вашей личности, самостоятельно пожалуйста.... Что можно сказать - лет на 5 придется углубиться по самые уши в науку и знание. Не стремитесь бежать работать и подрабатывать даже джуниором, особенно на начальных курсах. Главное учиться, по крайней мере до курса 4-5, не отрывайте себя от учебы. Ну а потом уж можно совмещать и учебу и практику\работу....
    Удачи, и доваздасться вам программистская наука!
    Ответ написан
    25 комментариев
  • Как сделать сервер для игры на Java?

    Foror
    @Foror
    Графоман
    Копайте в сторону NIO. Можете здесь на русском поискать www.youtube.com/user/KharkovITCourses/videos

    Если подвисает раз в 20 сек., то скорее всего срабатывает GC. Можно попробовать добавить опцию -Xmx 1G при старте JVM, тем самым выделив 1G оперативки, тогда GC будет реже срабатывать.

    Можно еще и сам GC потюнить, гуглите на тему GC CMS tuning или Java GC types для смены GC на какой-нибудь другой.
    Ответ написан
    Комментировать
  • Как сделать сервер для игры на Java?

    @aleks_raiden
    Я думаю, вам для начала пригодятся эти ссылки (за некоторыми одна статья, некоторые идут на целые разделы):

    gamedev.9fog.com/tag/java-server
    javatalks.ru/topics/24659?page=1#121338
    https://forum.zone-game.info/showthread.php?t=24211
    habrahabr.ru/post/229045
    habrahabr.ru/post/136765
    Ответ написан
    Комментировать
  • Стоит ли использовать Community Edition IntelliJ IDEA, или остаться на Eclipse?

    timych
    @timych
    Сам до последнего был сторонником Eclipse. (когда уже все коллеги пересели на idea). но когда попробовал что это такое, то понял какой эклипс все таки забагованный и неудобный по сравнению с идеей :)
    Ответ написан
    Комментировать
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    kumaxim
    @kumaxim
    Web-программист
    "Рейтинг сложности" мне кажется бредом. Я начал программировать 11 лет назад, окончил ВУЗ по ИТ-специальности, участвовал в паре hightload проектах...

    Я считаю что сложность вопроса - вещь весьма относительная. Допустим для меня любые вопросы про начало своего дела являются элементарными, я на них могу без проблем ответить в 3 часа ночи, если меня разбудят. А являются они таковыми для меня, т.к. у меня было 6 проваленных проектов, на которых я набил себе огромную кучу шишек(и как разработчик, и как руководитель/основатель).

    Однако, для человека, который создает вопрос типа "Откуда взять трафик" или "Как оптимизировать сайт" вряд ли за плечами имеет мой опыт. Да и откуда он возьмет его?! Я сам раньше таким был, отсюда и все мои шишки... Я не считаю правильным посылать нафиг новичков, только потому что они новички. Пройдет пару лет, эти ребята набьют свои шишки, получат свой опыт и станут нормальными специалистами.

    Возвращаясь к вопросу что делать с таким вопросом сейчас.
    Давайте возьмем какой-нибудь тег, например Laravel. Пусть в теге 300 вопросов, 11 тыс. лайков и 2 тыс. человек, которые участвуют в его обсуждении. Давайте будем считать, что если у одного человека, есть, допустим, 10% лайков по всем вопросам данного тега, то он специалист в этом вопросе. Я думаю логично - лайки к ответам ставит сообщество, значит сообщество считает его полезным. От суда получается, что первая переменная - количество лайков в теге у конкретного человека сообщества.

    Идем далее. Вопросы могут создавать любые люди. Однако, эти люди могут быть как новыми, так и авторитетными членами сообщества. Далее давайте подумаем, новые члены сообщества у нас как раз задают тупые вопросы, следовательно они не заслуживают внимание экспертов. Отсюда имеем вторую переменную - количество лайков в теге у вопрошающего.

    Отсюда можно сделать предположение: чем больше у человека лайков в теге, тем большим специалистом он является. Следовательно, ничего не мешает ввести систему рейтинга, вида
    1. до 100 лайков - новичок
    2. от 101 до 500 - опытный пользователь
    3. от 501 до 1000 - профессионал
    4. от 1001 - эксперт


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

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

    Как развитие идеи можно добавить какой-нибудь тест на знание вопроса, дающей +50 лайков, для более быстрого подъема по "лестнице".

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