• UnrealEngine 4 + Python.Возможно ли?

    namaissur
    @namaissur
    stereoscopy, python, compositing, UE4, VR
    Можно а порой и очень даже нужно.. )

    ССЫЛКА НА ПЛАГИН

    This is a plugin embedding a whole Python VM (versions 3.x [the default and suggested one] and 2.7) In Unreal Engine 4 (both the editor and runtime).

    The Python VM tries to give easy access to all of the UE4 internal api + its reflection system. This means you can use the plugin to write other plugins, to automate tasks and to implement gameplay elements.

    It is not meant as a way to avoid blueprints or c++ but as a good companion to them (albeit reducing the amount of c++ required for coding a game could be an interesting thing ;). If your development pipeline is already python-based (Maya, Blender, ...), this plugin could easily help you in intgrating unreal into it.

    Another funny feature is that you can change your python code even after the project has been packaged. You can potentially build a completely new game from an already packaged one.
    Ответ написан
    Комментировать
  • Как создать итератор двухэлементных кортежей?

    @abcd0x00
    >>> def gen(start, end):
    ...     return ((str(i), str(i)) for i in range(start, end + 1))
    ... 
    >>> tuple(gen(1950, 1952))
    (('1950', '1950'), ('1951', '1951'), ('1952', '1952'))
    >>>
    Ответ написан
    Комментировать
  • Как извлечь информацию из игры для анализа?

    @nirvimel
    Не существует никаких универсальных методов, подходящих для всех случаев. Такой вопрос можно задавать только по отношению к конкретной игре. В целом тут не обойтись без реверс-инжиниринга (если только игра не open source).
    Из числа самых общих подходов к этой проблеме можно упомянуть следующее (от простого к сложному):
    1. Анализ формата save-файла и извлечение необходимых данных из него. Часто это оказывается единственно возможный путь, не смотря на кажущееся неудобство такого подхода.
    2. Вычисление статических адресов в адресном пространстве процесса, по которым находятся переменные, в которых хранятся какие-то важные игровые параметры. Для этого давно существуют такие автоматизированные инструменты как ArtMoney. Но против современных игр все это практически бесполезно, так как все структуры данных хранятся в динамической памяти.
    3. Гонять игру под отладчиком, выявлять функции (точки входов в них) которые вызываются на определенные игровые события, анализировать параметры этих функций, искать среди них переменные, отвечающие за какие-то значимые игровые параметры. Потом писать патч к игре, в котором перехватывать эти функции и сохранять передаваемые параметру куда-нибудь, откуда их можно легко получить снаружи.
    Ответ написан
    3 комментария
  • Как установить lxml для Python 3.5 под Windows 7 64bit?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Поставить готовый пакет отсюда:
    www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
    Ответ написан
    2 комментария
  • Как получить параметры у HTTP запроса python?

    @deliro
    Не обязательно. Но лучше, да, правильно и красиво.
    Ответ написан
    Комментировать
  • Как правильно решить задачу по поиску двух максимальных чисел в списке?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    import numbers
    b = sorted([x for x in a if isinstance(x, numbers.Number)])
    sum(b[-2:])


    Вариант без сортировки:
    import numbers
    import heapq
    
    b = [x for x in a if isinstance(x, numbers.Number)]
    sum(heapq.nlargest(2, b))
    Ответ написан
    2 комментария
  • Как правильно создать словарь из двух списков с помощью itertools?

    @ilov3
    Учу питон и джангу потому что модно
    Комментировать
  • Какие потоки есть в питоне?

    @nirvimel
    Потоки, создаваемые при помощи threading (и его низкоуровневой базы thread) являются настоящими полноценными потоками ОС (как в C/C++ и большинстве языков). Но в каждом процессе интерпретатора существует одна глобальная блокировка GIL, разделяемая между всеми потоками. Большинство инструкций Python (доступ ко всем объектам, глобальным переменным и вызов функций и методов) требуют захвата GIL. Так как единственный GIL в каждый конкретный момент может быть захвачен только одним потоком, следовательно только один, захвативший GIL, поток может исполняться в один момент времени. Следовательно о распараллеливании вычислений на чистом Python (без ухищрений) можно забыть. Это убивает большую часть преимуществ многопоточности, но не все. Например, многие функции дискового и сетевого ввода/вывода освобождают GIL во время ожидания окончания операции (доступ к Python-объектам внутри интерпретатора в этот момент не требуется), что позволяет другим потокам захватывать GIL. Следовательно, GIL не мешает распараллеливанию ввода/вывода.
    Ответ написан
    3 комментария
  • Какую тему выбрать для дипломной работы бакалавра?

    @kazmiruk
    Делал недавно для блоговой платформы механизм, который генерировал ссылки на другие посты этой же платформы. Задача вполне связана с обработкой информации, довольно сложная и интересная. В самом простом варианте (для бакалавра вполне пойдет) - tf-idf получаем ключевики для каждого поста, с помощью pymorphy отбираем существительные (так можно отсеять разные мусор, который добавляет эмоции посту, но не является основной сутью), генерируем леммы и затем просто ищем пересечения лемм для каждого поста. Соответственно по пересечениям потом проставляем ссылки. Будет работать не идеально, но на большинстве постов покажет хороший результат. Таким образом сместите акцент с банального блога (который делают 90% троечников) на какой-никакой анализ данных и "науку". По опыту могу сказать, что комиссии это нравится и проблем сразу становится меньше (также мало кто понимает что происходит и дабы не показаться дураками задают меньше каверзных вопросов)
    Ответ написан
    4 комментария
  • Как выполнить задачу параллельно и получить результат?

    Avernial
    @Avernial
    Разрабатываю научное ПО на языке Python.
    Первый пример с Pool:python docs
    Ответ написан
    Комментировать
  • Python или C++ для windows приложения?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Есть же cx_Freeze, например. Там все очень просто.
    Ответ написан
    2 комментария
  • Какую роль играет язык Python?

    @nirvimel
    В январе был вопрос, в ответе на который, я подробно расписал каким образом Python применяется в различных сферах. Мой ответ набрал больше 15 лайков, после чего через несколько дней вопрос со всеми ответами был удален автором (или модератором). Вот так отдельные личности выражают благодарность отвечающим и плюют на мнение сообщества. Несмотря на то, что я хорошо помню все свои ответы, у меня нет ни какого желания повторно писать то, что другие стирают (а у вас такое желание будет?).
    Ответ написан
    Комментировать
  • Почему не удаляются все элементы списка?

    @nirvimel
    С точки зрения производительности так будет быстрее:
    from collections import Counter
    
    def checkio(data):
        c = Counter(data)
        return [i for i in data if c[i] > 1]
    Ответ написан
  • Смысл упаковки ключевых аргументов в python 3?

    @nirvimel
    Да много где приходится использовать. Первое что вспоминается:
    1. Если одна функция является оберткой над другой функцией, реализация которой может меняться, то обертка принимает **kwargs и передает в оборачиваемую функцию, при этом может происходит изменение/добавление/удаление элементов словаря, т.е. параметров оборачиваемой функции.
    2. Написание декораторов - обобщение случая №1, когда оборачивается не конкретная функция, вызываемая по имени, а переменная.
    3. Часто используется в различных ORM, когда через параметры функции передаются значения полей модели/записи БД (сама ORM не имеет понятия о конкретной модели/таблице).
    4. Не уверен насчет того, насколько это правильный паттерн проектирования, но любую функцию принимающую словарь единственным аргументом можно переписать так, чтобы она принимала **kwargs, это дает возможность более удобной передачи аргументов f(var=42), вместо создания словаря на лету f({'var': 42}), и оставляет возможность передать готовый словарь через вызов с распаковкой аргументов f(**the_dict).
    Ответ написан
    1 комментарий
  • Движок или фреймвок для первой игры?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Все зависит от того, какую цель вы преследуете.
    Если ваша цель: создать игру, то однозначно юзайте движок.
    Если же вам больше интересно как это все работает и интересен сам процесс моделирования, то тут уже фреймворк и библиотеки.
    Ответ написан
    1 комментарий
  • Движок или фреймвок для первой игры?

    Ni55aN
    @Ni55aN
    Движок: меньше времени и знаний
    Библиотека: больше времени и знаний
    Ответ написан
    2 комментария
  • Как выбрать открытый проект на Python для поддержки?

    boonya
    @boonya
    Backend developer (Python/PHP)
    Какие то странные вопросы вы задаете. Это как "как выбрать еду которую я полюблю"...
    Если проект интересен тебе, если ты им пользуешься, если в нем есть что поддерживать, тогда форкаешь, кодишь и создаешь пулл реквесты. Если ты написал откровенное говно или это не то что нужно данному проекту, то PR закроют и скорее всего объяснят почему. Если же PR годный, то вмержат и скажут спасибо.
    Пробовать нужно!
    в большинстве открытых проектов довольно высокие требования к качеству решений

    Ну естественно высокие! А кто ж хочет чтоб в его любимца шлак контрибьютили?
    Ответ написан
    Комментировать
  • Как выбрать открытый проект на Python для поддержки?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вливайтесь в сам проект по развитию Python-а. Там же много работы: Перевод, документация, библиотеки, CPython и др. Да. Сразу будет жесть как тяжело, но зато потом, потом будет такая визитная карточка, что достаточно быстро будете находить новую работу.
    Ответ написан
    2 комментария
  • Как выбрать открытый проект на Python для поддержки?

    @bromzh
    Drugs-driven development
    1) Выбираешь проект (для начала небольшой), которым пользуешься сам.
    2) Смотришь список issues
    3) Выбираешь ту, которую сможешь сделать сам (для начала лучше поправить небольшую багу)
    4) Форкаешь проект
    5) Реализуешь issue
    6) Гоняешь тесты
    7) Если всё ок, делаешь пулл-реквест автору
    8) Повторить

    Ну и главное, надо следовать общему стилю всего проекта и про pep-8 помнить.
    Ответ написан
    Комментировать