Bennu является высокоуровневым скриптовым языком программирования для разработки игр с открытым или закрытым исходным кодом. Он ориентируется на мобильность и кроссплатформенность. Первоначально он был разработан хакером из Аргентины, который использует ник SpliterGU.
Официально поддерживается GNU/Linux, MS Windows и GP2X Wiz. Но возможен запуск и на *BSD, Mac OS X и других операционных системах. Bennu — это развившееся ветка языка Fenix и она достаточна легка для понимания, изучения и создания игр.
Документацию по Bennu на английском языке можно получить на официальном Wiki-ресурсе.
Установка игр:
В качестве блиттера используется библиотека SDL. Поэтому нужно скачать и установить нужные SDL-библиотеки для вашего телефона. Для большей скорости рекомендую установить SDL HW (RC4). Игра представляет собой обычный MGX-пакет, который устанавливается через файловый менеджер.
Портирование:
Игр на BennuGD не слишком много. Само портирование выполнять достаточно легко. Компиляция в байт-код производится прямо на устройстве, как и в случае с Python. Ссылки, где можно скачать исходники BennuGD-игр:
- http://neotron-games.blogspot.com/;
- http://projects.bennugd.org/;
- http://dl.openhandhelds.org/cgi-bin/wiz.cgi (поиск по слову Bennu).
Игра, написанная на Bennu, имеет в основном такую структуру:
- Папка bgd-runtime/ — содержит библиотеки и дополнительные модули, необходимые для запуска игры;
- PRG-файлы — это и есть исходный скриптовый код игры. В нём можно поправить управление, разрешение экрана и другое;
- DCB-файлы — это уже скомпилированный байт-код под наш процессор, полученный из PRG-файлов;
- LIB-файлы и INC-файлы — дополнительные исходные файлы. Например, в файле jkey.lib можно поправить управление;
- Ну и, естественно, Data-файлы игры. Поддерживается музыка OGG-формата.
Клавиши управления:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
"_ESC" - RedKey (often not work) "_1" - 1 "_2" - 2 "_3" - 3 "_4" - 4 "_5" - 5 "_6" - 6 "_7" - 7 "_8" - 8 "_9" - 9 "_0" - 0 "_MINUS" - vol "-" "_EQUALS" - vol "+" "_BACKSPACE" - (->) "_TAB" - green key "_ENTER" - Center "_F9" - L.Soft "_F11" - R.Soft "_L_ALT" - Camera Key |
Для начала нужно откомпилировать игру, для этого нужно воспользоваться скриптом cm.sh (подробнее — смотрите структуру пакетов выше). Этот скрипт выглядит так:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/sh mypath=${0%/*} LIBDIR1=/ezxlocal/download/mystuff/games/lib LIBDIR2=/mmc/mmca1/games/lib LIBDIR3=$mypath/lib LIBDIR4=../bgd-runtime export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3:$LIBDIR4 export HOME=$mypath export SDL_QT_INVERT_ROTATION=1 cd $mypath exec ../bgd-runtime/bgdc $mypath/Name.prg |
Программа bgdc является компилятором, а Name.prg — компилируемым исходником. После компиляции просто запускаем игру скриптом run.sh, который выглядит так:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/sh mypath=${0%/*} LIBDIR1=/ezxlocal/download/mystuff/games/lib LIBDIR2=/mmc/mmca1/games/lib LIBDIR3=$mypath/lib LIBDIR4=../bgd-runtime export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3:$LIBDIR4 export HOME=$mypath export SDL_QT_INVERT_ROTATION=1 cd $mypath exec ../bgd-runtime/bgdi $mypath/Name.dcb |
Программа bgdi является интерпретатором, Name.dcb — нашим скомпилированным байт-кодом. Выложенные на сайте пакеты уже откомпилированы и их можно просто запускать.
Авторство:
Официальный сайт: http://www.bennugd.org/
Автор: SpliterGU
Спасибо за помощь: JLCebrian, Slainte, SplinterGU, Daniel Navarro Medrano
Портировал на MotoMAGX: EXL
Дополнительную информацию можно прочитать в этой теме.