Ответы пользователя по тегу Разработка игр
  • Как сделать текстовою игру?

    angru
    @angru
    Возьмите какую-нибудь готовую вселенную и сделайте по ней текстовую игру, в интернете полно всяких вики: fallout/elder scrols/stalker/d&d/etc

    Еще есть интересный жанр roguelike, вот здесь много статей, как делать игры подобного рода rlgclub.ru

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

    angru
    @angru
    pivot, скорее всего, отвечает за точку вращения. т.е. если размер спрайта 40х40, а pivot = (20, 20), то спрайт будет вращаться вокруг своего центра, а если (0, 0) то вокруг левого верхнего/нижнего(в зависимости от какого угла экрана начинается отсчет) угла.

    хотя судя по координатам (-20, 0) - это может мыть и какое-то постоянное смещение. например, вы размещаете спрайт в точке (30, 30), но при таком pivot он будет находиться в точке (10, 30).

    Точнее сказать трудно, это вам самому надо поиграться со смещениями, попробуйте изменить что-нибудь в файле и посмотреть, что изменится в игре.
    Ответ написан
    Комментировать
  • Есть ли java-библиотеки для создания текстовой адвенчуры?

    angru
    @angru
    А обязательно Java? Есть крутой движок: INSTEAD, там lua, но язык очень (очень) простой.
    Ответ написан
    Комментировать
  • Движок или фреймвок для первой игры?

    angru
    @angru
    я не знаю что лучше движок или фреймворк, фреймворк может оказаться слишком сложно, а движок неинтересно.

    но самое крутое что видел для поиграться - love2d, это фреймворк, со скриптами на lua, но это чисто поиграться, потому что только для десктопа. хотя вот они релизнули новую версию и там есть ios/android, это уже очень круто.


    плюсы:
    • lua очень прост
    • сам фреймворк очень прост
    • хорошая документация
    • физика из коробки
    • шейдеры из коробки
    • куча готовых игр с открытым кодом(для обучения вообще киллер фича)


    минусы:
    • весь ваш код открыт(для кого-то это проблема, а мне кажется не стоит выеденного яйца)
    Ответ написан
  • Как повернуть башню танка на объект?

    angru
    @angru
    1. берете позицию противника, вычитаете из вашей позиции.
    2. вычисляете угол получившегося вектора
    3. вычитаете из получившегося угла угол поворота вашего танка и угол поворота башни.
    Ответ написан
  • Как реализовать игру с графикой "Псевдо-3D"?

    angru
    @angru
    Если вы хотите именно как в Doom и писать с нуля, то гуглите ray casting.
    Описание алгоритма: раз, два(с примерами на разных языках)
    Ответ написан
    Комментировать
  • На чем посоветуете писать 2D игру под *nix?

    angru
    @angru
    Есть шикарный движок/фреймворк love2d, все пишется на совсем элементарном lua, поддерживаются 3 основные десктопные ОС. В общем все здорово, разве что исходники вашей игры никак не защищены, хотя я бы на вашем месте не парился.

    Если все-таки хотите питон, то есть возможность собрать exe: существуют специальные инструменты cx_Freeze, py2exe, хотя не факт что сработает. Не знаю как с pygame, kivy, pyglet, etc, но я использовал pysfml(биндинги к sfml) и с помощью cx_Freeze собирал, правда есть некоторые ограничения: pysfml в собранном виде есть только для python 3.3 и ниже, соответственно если хотите python 3.5 - надо самому собирать из исходников), плюс нужны дополнительные танцы с бубном, чтобы включить все зависимости, но если один раз разобраться, то все вполне себе работает.

    В общем, я бы взял love2d, так как проще и "каноничнее".
    Ответ написан
    Комментировать
  • Что нужно знать, чтобы работать в сфере разработки игр?

    angru
    @angru
    В дополнение к предыдущим ораторам, сначала немного изучите предметную область, разберитесь чем вы хотите заниматься, когда определитесь, приступайте к изучению, делайте больше упор на практику, не стоит задерживаться на этом этапе надолго, как только наработали небольшую базу, пытайтесь либо устраиваться на работу каким-нибудь стажером(что ну очень маловероятно), либо присоединяйтесь к какому-нибудь некоммерческому проекту в качестве подмастерья. Например здесь, создаете тему, показываете наработки, проситесь помощником в проект, именно помощником, чтобы был человек, который смог бы передать вам часть своего опыта. Это довольно утопично, но если получится - намного лучше, чем самой во всем разбираться.

    Что касается конкретно моделирования, я тут не спец, но там очень много направлений(моделирование, текстурирование, анимация и т.д.) и скорее всего придется выбрать какое-то одно иначе не сдюжите.

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

    angru
    @angru
    Может посмотреть в сторону лучей?
    1. проверяем дистанцию до игрока, если в зоне видимости - продолжаем.
    2. кастуем луч от противника к игроку.
    3. проверяем находится ли луч в области видимости(что-то типа 0 >= abs(угол луча - угол поворота противника) <= (угол обзора противника / 2)
    4. проверяем пересекается ли луч с отрезком(стеной) (гуглим алгоритмы)
    Ответ написан
    Комментировать
  • Возможно ли разработать конкурентно способную 2-d игру написанную на Python ( pygame)?

    angru
    @angru
    Если хочется помучиться, то можно попробовать. Но имейте ввиду, в питон сообществе разработка игр - не такая уж частая забава, соответственно приготовьтесь к тому, что информации сравнительно мало, как и людей, способных помочь вам, если возникнет какая-нибудь проблема.
    Ответ написан
    Комментировать
  • Как написать 2D движок на Python?

    angru
    @angru
    Думаю вам лучше копать не в сторону питона и pygame, а в сторону архитектуры игровых движков, а технологии не принципиальны.

    Литература о построении игровых (графических) движков?

    Кстати, помимо pygame есть еще pysfml и pyglet, как мне кажется они более низкоуровневые и больше подходят к вашей задаче. Но если вы совсем новичок, тогда лучше брать то, что проще, а это скорее всего как раз pygame. А если правильно продумаете архитектуру и полностью скроете все упоминания о pygame от конечного пользователя движка, то потом можно будет относительно легко заменить бекенд(pygame) на другую библиотеку, если от этого будет какой-нибудь значительный выигрыш в скорости.

    Также хочу предостеречь вас, написание движков на питоне - относительно неблагодарное занятие, не зря я не встречал ни одного такого движка(разве что RenPy, но он для визуальных новелл, там скорость не нужна), а всякие pygame, pysfml, pyglet - это просто биндинги к сишным библиотекам. Питон сам по себе не очень шустрый и добавлять дополнительный слой абстракции - дополнительное ограничение быстродействия. На мой взгляд, если и писать игры на питоне, то просто сразу поверх одной из трех вышеперечисленных библиотек, без всяких движков. И скорее всего придется отчаянно сражаться за производительность и писать не совсем идиоматичный код: как-то избавляться от циклов, стараться поменьше вызывать функции, сокращать использование точек и т.д. Простые танчики или марио можно написать и без этих извращений.

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

    ну а вообще нет ничего невозможного(код), хотя там минимум функционала.
    Ответ написан
    1 комментарий
  • Видимость переменных и ООП в lua?

    angru
    @angru
    либо так, либо передавать в конструктор каждого игрового обьекта какой-нибудь обьект типа world, в котором хранятся все обьекты.

    Ball = class("Ball", { x = 0, y = 0, world = nil })
    
    function Ball:init(x, y, world) 
        self.x, self.y self.world = x, y, world
    end
    
    function Ball:touch()
        local counter = self.world.get('counter')
        counter.increase(10)
    end


    как-то так наверное
    Ответ написан
    Комментировать