Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > Какие есть движки для игр


Автор: Frees 20.8.2011, 17:05
Расскажите какие движки есть какие лучше, удобнее, какие с русской докой...

Поделитесь опытом использования...

Автор: ivanovpv 23.8.2011, 07:26
Почитайте http://stackoverflow.com/questions/5206089/game-engine-for-android и выберите подходящий.

А вообще я как-то рядом проходил и слышал у знакомого что он юзает http://code.google.com/p/cocos2d-android-1/ - популярный движок для iPhone портированный под Android

Ну а так, я не особо ярый сподвижник разработки игр и особо ничего не знаю.

Автор: Frees 23.8.2011, 08:19
Цитата(ivanovpv @  23.8.2011,  10:26 Найти цитируемый пост)
Почитайте обзор движков под Android и выберите подходящий.

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


Цитата(ivanovpv @  23.8.2011,  10:26 Найти цитируемый пост)
Ну а так, я не особо ярый сподвижник разработки игр и особо ничего не знаю.


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

Автор: bogatztvo 24.8.2011, 20:47
да, действительно актуальная информация и для меня

Автор: Dapo 31.8.2011, 06:50
Взгляните в сторону AndEngine. Хорошие примеры использования + хороший форум  + много полезных библиотек на его базе + реальные игры на маркете.
www.andengine.org

Автор: javastic 7.9.2011, 10:20
По моему мнению сейчас нормальный движок + доки + факи + поддержка это AndEngine и http://code.google.com/p/libgdx/

я сейчас пробую именно последний. Он позволяет автоматически делать порт под Android, Windows, Linux и MacOS. Да и API попонятнее. Хотя каждому своё. smile

Автор: Frees 7.9.2011, 12:16
Цитата(javastic @  7.9.2011,  13:20 Найти цитируемый пост)
Да и API попонятнее

А с чем сравнивали?

Автор: javastic 7.9.2011, 14:34
с AndEngine и Cocos2D  (первый нормальный, но мало примеров, второй притормаживает, при обычном меню показывает 14-16 Fps).

Автор: Чемодан 13.9.2011, 03:10
Ох уж эти движки бестолковые, намаялся я с ними ((
javastic, andengine гораздо легче для понимания, но никакой документации у него нет, только форум и кое какие рабочие примеры.
На примерах особо тоже не поучишься, когда они еще и без комментариев. Если очень сильно захотеть, то можно написать что-то
хорошее на andengine, но так как весь движок состоит всего из 18 тысяч строк кода, а большая часть оттуда - хлам, быстрее написать своё,
чем использовать их. Разве что box2d выдернуть, но... (ниже)
libgdx на практике оказался очень медленный, вероятнее всего из-за недо-кросс платформенности. Документация только по началу кажется
достаточной, но даже прочитав http://www.amazon.com/Beginning-Android-Games-Mario-Zechner/dp/1430230428/ автора движка и документацию на их сайте,
вопросов остается масса, ответы на которые есть в коде, а его, уж спасибо, читать тоннами в поисках "правды" - надоело.
Ну и про box2d. В andengine используется порт box2d от libgdx, но у andengine получилось лучше его применить - физика в 
приложении на libgdx для Win работает совершенно иначе, чем в варианте на Android, который по умолчанию позволяет создавать libgdx.
Разительная разница в поведении объектов, совершенно другое поведение, а производительность оставляет желать лучшего. Так что
тут хоть понятный Api, хоть непонятный - бесполезно.
Оба движка годятся для особо ленивых, которым лучше прочитать тонну, чем самому что-то написать.

Лично я после месяцев трёх издевательств над самим собой этими движками, пришел к выводу - берем Jbox2d (не пропускаем J вначале слова)
или другой порт box2d, если нужна прямо физика и крутим всё остальное. И получилось быстрее и красивее, чем andengine и libgdx.
Графика GL2D, мультитач без багов с параллельными координатами, акселерометр с калибровкой, физика, плюшки - что еще нужно? 3D? )) Это уже другая история.

Frees, а ты много чего видел с "русской докой", да еще и "лучше" и "удобнее"? )) Зря время потеряешь. Monkey еще, но там всё серьезно,
angle (сложно назвать вообще чем-то, но оно позиционируется как engine), Min3D. Кстати, Min3D был бы неплох, если бы была документация
нормальная. Всё равно http://code.google.com/p/min3d/.

Dapo, форум у andengine - **о. 99% всех постов - либо поиски документации, которой нет, либо "а как то" и в ответ ссылка на один 
из ~30 примеров. Абсолютно не юзабельный форум.

orge3d вроде как уже скоро портируют, но это уже NDK и невесть сколько косяков на первых парах )

Автор: Frees 13.9.2011, 07:31
Цитата(Чемодан @  13.9.2011,  06:10 Найти цитируемый пост)
Frees, а ты много чего видел с "русской докой", да еще и "лучше" и "удобнее"?

С русской докой еще ничего не видел, наверно таких и нет, да и язык не так уж критичен...

пока что плюхаюсь с AndEngine 

Автор: Чемодан 13.9.2011, 08:19
Frees, если тебе вдруг будет полезным:

В начале проекта добавляй

Код

import org.anddev.andengine.ui.activity.BaseGameActivity;
import android.view.Display;

основной класс объявляешь

public class ClassName extends BaseGameActivity implements (если надо)...

в самом классе замени CAMERA_WIDTH = что-то и CAMERA_HEIGHT на

Код

private int CAMERA_WIDTH, CAMERA_HEIGHT;

а onLoadEngine начинай с

Код

        Display d = getWindowManager().getDefaultDisplay();

        CAMERA_WIDTH  = d.getWidth();
        CAMERA_HEIGHT = d.getHeight();

        this.camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
...

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

Думаю, тебе разжевывать не нужно, просто решил "подмогнуть", потому что эти вопросы часто встречаются на
форуме andengine.

Автор: A5uKa 13.9.2011, 08:51
http://www.design3.com/unity/fundamentals/mobile-skater-game

Автор: javastic 13.9.2011, 10:57
Чемодан, я так понял что  ты написал свой собственный движок. Если так, то будешь ли ты его выставлять под какой-либо лицензией и можно ли с ним как-то ознакомится?

Автор: Чемодан 13.9.2011, 16:22
javastic, да, правильно. Игры-то делать на чем-то нужно. Только моё время денег стоит и в 
opensource я не подавался smile
В нашей стране ничего не покупают и на кнопку Donate никто не нажимает (наверное не знают
что это значит ))) ), а переводить документацию как-то пока не хочется, которую еще нужно грамотно
написать, чтобы самому рано или поздно не забыть, где и что я написал и другим понятно было.
Еще сообщество поддерживать... нее, за это не платят ))

Пока что делаю игры на нём, буду развивать, наблюдать как работает, что добавить, что
улучшить. Супер-рабочий, само собой, с первого раза не напишешь. Как буду точно готов,
выложу jre и javadoc.

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

Автор: Frees 13.9.2011, 16:37
Чемодан, в Вашем случае профит в опенсурс не от донат, а в том что кто то будет (а может и не будет) бесплатно улучшать движек.

Автор: Чемодан 13.9.2011, 16:42
Frees, я же его под себя делаю, значит меня более-менее всё устраивает )
А вот если он кому-то понадобится, то это уже его своеобразная плата - улучшать его )

Автор: javastic 15.9.2011, 10:14
Ну тогда желаю лично процветания! Если вещь будет стоящая, то почему бы и не купить.

Автор: Чемодан 15.9.2011, 12:44
Ой спасибо хорошо )
Заморочился сегодня с wiki-движком, вроде получилось. Как только нормально разберусь, накатаю документацию, туториалы
и скажу как называется и где искать )) Думаю, что еще месяц допилов точно будет, чтобы стартануть без позора )

Автор: ruberoid 15.9.2011, 13:39
Цитата(Чемодан @  15.9.2011,  12:44 Найти цитируемый пост)
Заморочился сегодня с wiki-движком, вроде получилось. Как только нормально разберусь, накатаю документацию, туториалыи скажу как называется и где искать )) Думаю, что еще месяц допилов точно будет, чтобы стартануть без позора )

Отпишитесь плиз. Мне тоже интересно.

Автор: AlexKozlov 7.12.2011, 10:24
прошло два месяца - и тишина?

Автор: javastic 7.12.2011, 11:16
В течении 2х месяцев пробовал различные 2D движки и остановил свой взгляд на http://www.e3roid.com/.
Попробовал сделать несколько простых геймов. Скорость на высоте, доки понятные, примеры почти по всему API.
Так что пробуйте. Вот пример как пальцем по экрану перемещать спрайт:

Код

package javastic.test;

import android.view.MotionEvent;
import com.e3roid.E3Activity;
import com.e3roid.E3Engine;
import com.e3roid.E3Scene;
import com.e3roid.drawable.Background;
import com.e3roid.drawable.Sprite;
import com.e3roid.drawable.texture.AssetTexture;
import com.e3roid.drawable.texture.Texture;
import com.e3roid.drawable.texture.TiledTexture;
import com.e3roid.drawable.Shape;

public class GlobalMonopoly1Activity extends E3Activity {

        // разрешение экрана
    private final static int WIDTH = 800;
    private final static int HEIGHT = 480;
    
    private Sprite  robot;
    private Texture robotTexture;

        @Override
    public E3Engine onLoadEngine() {
                // устанавливаем Landscape без поворота экрана, растягиваем фоновую картинку 480x320 на 800x480
        E3Engine engine = new E3Engine(this, WIDTH, HEIGHT, E3Engine.RESOLUTION_STRETCH_SCENE);
                engine.requestFullScreen();
                engine.requestLandscape();
      return engine;
    }

@Override
    public E3Scene onLoadScene() {
        E3Scene scene = new E3Scene();
 
                //устанавливаем фоновую картинку fon.png
        Background background = new Background(
                new TiledTexture("fon.png", getWidth(), getHeight(), this));
        scene.getTopLayer().setBackground(background);
        
                // позиционируем спрайт по середине экрана
        int centerX = (getWidth()  - robotTexture.getWidth())  / 2;
        int centerY = (getHeight() - robotTexture.getHeight()) / 2;
        
        robot = new Sprite(robotTexture, centerX, centerY) {
            @Override
            public boolean onTouchEvent(E3Scene scene, Shape shape, MotionEvent motionEvent, int localX, int localY) {
                                // делаем перемещение спрайта касанием пальца
                if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) {
                    move(getTouchEventX(scene, motionEvent) - (getWidth()/2), 
                         getTouchEventY(scene, motionEvent) - (getHeight()/2));
                }
                return false;
            }
            
        };
        scene.addEventListener(robot);
        scene.getTopLayer().add(robot);
        
                return scene;
             }


    @Override
    public void onLoadResources() {
                // загружаем графику (спрайты и т.д.)
        robotTexture = new AssetTexture("robot.png", this);
    }

}


вот.

Автор: Dapo 23.12.2011, 03:46
Чемодан всех распугал и сам убежал. ) 
javastic, а andengine не впечатлил? код, кстати очень похож.

Автор: javastic 23.12.2011, 15:46
Мне он показался более медленным. Может он конечно и лучше, но пока нет времени сравнить.

Автор: Dapo 27.12.2011, 02:52
Не силен в чистом опенжл, но понятно, что чем больше объем графики тем тормознее. К вопросу о сравнении приведу такую инфу:
На текущий момент в нашем 2D-платформере есть уровни по 5-6Мб анимированой графики+ 1-1.5 статичной + 2-х уровневый паралакс, + физика+ партиклы+ различные извращения над спрайтами (модиферы) с применением функций трансформации+1-1,5Мб всяких звуков. галакси-таб - 45 фпс, галакси-с 9000, 9003 имеем 36 фпс, сони эриксон экспирия х8 имеем 28 фпс. Т.е. даже на довольно старенькой экспирии результат неплохой.
Оговорюсь, что данная информация не дает объективной оценки движка. Тем не менее, на этапах оптимизации быстродействия в первую очередь смотрел в свой собственный код и собственно оптимизировать приходилось именно его - особенно портили жизнь длинные переборы, ну и неправильная организация текстур. 
Из проблем с которыми столкнулся - организация загрузки ресурсов в фоне, без нее, понятное дело, загрузка уровня выглядела мягко говоря хреново. Форум помог, на нем есть решение. 
Все остальные проблемы от невнимательности пожалуй.
Если у кого есть подобная инфа по другим движкам - пишите, так сказать, прямо с поля боя ))

Автор: ShellRaiser 27.1.2012, 01:15
AndEngine, LibGDX, Cocos2d-x (не Cocos2d, на яве дико тупит) сишная реализация 

из платных - Unity3D, Marmalade, Schiva3d

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)