Как стать автором
Обновить

Комментарии 75

Интересно, может даже по участвую. Даже есть своя игра, так и не дописанная, а тут такой повод хммм.
Я вот тоже сначала соблазнился…
Но свой фреймворк на котором делаю все проекты — не имею права выкладывать в Open Source…
Эх, печаль… Хоть с нуля пиши всё…
Я вообще под webgl/three.js пишу, ваши бы проблемы мне :(
Прекрасно. Только два (с половиной) вопроса:
1. Для каких языков уже существует компилятор под KolibriOS?
2. Возможно ли подать на конкурс больше одной игры?
2а. А если одна будет портом уже существующей, а вторая — оригиналом?
1. Можно использовать C, Pascal и ассемблер. Ещё есть интерпретаторы TinyPy и Lua
На колибри работают 3D-рендеры? Или игрушку только плоскую?
Есть порт MESA, который умеет в software render, и вроде даже с AMD/Intel работать умеет.
Есть TinyGL, подмножество OpenGL с программным рендерингом. Если его хватит, можно использовать.
А Lazarus или его аналог на Колибри есть?
Нет, нету.
Извините за задержку с ответом — нужно было подумать насчёт пункта №2.
1. Для каких языков уже существует компилятор под KolibriOS?
В нашем проекте много компиляторов различной степени готовности — вот здесь находится далеко не полный их список. Проблема возникнет на этапе добавления игры в авто-сборку из исходников — на сегодняшний день, авто-сборка поддерживает только эти языки: FASM, NASM, Sphinx C--, GCC/G++, MSVC. Если Вы захотите использовать другой язык, то Вам придётся сначала обсудить с CleverMouse возможность поддержки этого языка авто-сборкой.
2. Возможно ли подать на конкурс больше одной игры?
2а. А если одна будет портом уже существующей, а вторая — оригиналом?
С одной стороны, ограничивать каждого участника только одной игрой невыгодно нам же самим (больше игр на конкурсе -> больше игр в Колибри). С другой стороны, вообще без ограничений мы рискуем быть завалены горой «мусора» от одного участника (который вместо 1-2 хороших игр, решит сделать 45 плохих — по одной за каждый день до окончания конкурса). Поэтому нужно где-то провести границы. Думаю, что 3 игры на участника — это разумный лимит (призов тоже 3). Добавил в правила новый пункт:
Каждый участник может послать на конкурс до трёх (3) игр, написанных им (новых либо портированных).
Каждый участник может послать на конкурс до трёх (3) игр, написанных им (новых либо портированных).

Думаю, нужно уточнить, что может ли человек получить более одного приза.
Да, может, то трёх призов соответственно. Обновил условия.
«включая все «ресурсы» — картинки, спрайты, звуки, музыку, если таковые имеются» — извините, до свидания.
Вы не совсем точно поняли посыл. Игра может быть и вообще без «ресурсов» (см. виртуальный собеседник Eliza), но мы не хотим, чтобы Вы «напиратили» музыки из «Утомлённых солнцем», а потом Михалков нас бы прижал.
Для облегчения задачи, добавил в правила новый пункт:
«Ресурсы» для игры (картинки, спрайты, звуки, музыку, если таковые имеются) можно использовать чужие, при условии, что они также распространяются под одной из утверждённых open-source лицензий.
нельзя портировать игру, написанную кем-то другим

В том числе, нельзя портировать OpenSource игры? При условии ненарушения прав…
Было решено этого не разрешать, иначе есть немаленький шанс, что работа по портированию будет сделана не руками самого участника, а руками невольных помощников. Свои собственные игры можете портировать на здоровье.
А как насчет CC и Public Domain для ресурсов? Там есть отсылки в FAQ'e, но конкретно этого конкурса?
К примеру, у меня есть свои поделки, но поскольку художник я от слово «худо», то беру то, что можно брать — древние как кость мамонта произведения (точнее их фотографии или скан-копии) или с wikipedia ресурсы, где лицензия позволяет)
Если лицензия позволяет некоммерческое использование, то можно и для этого конкурса.
кстати, а чего mail.ru молчит про тот розыгрыш? или то и был розыгрыш?
ой, всё! нашёл
Можно написать 2048. Игра простая, так что можно писать на АСМе.
Хорошая идея! У нас как раз такой игры ещё нет :-)
<юмор-mode>А что, Unity3d под Kolibri ещё не портировали?</юмор-mode>

Какие вообще более-менее популярные игровые движки есть? Например, RenPy нет и не предвидится из-за отсутствия питона(((
<юмор-mode>А что, Unity3d под Kolibri ещё не портировали?</юмор-mode>
С помощью Unity3d игру любой может написать — а Вы попробуйте сделать игру без неё. Ну или портируйте Unity3d сами — тогда пожалуйста :-)
Какие вообще более-менее популярные игровые движки есть? Например, RenPy нет и не предвидится из-за отсутствия питона(((
У нас больше всё самописное. Единственный игровой движок — tengine, написанный pascualle и им же портированный под Колибри. tengine пока не в авто-сборке, но можно попросить помощи у pascualle, и написать игру под него. Есть ещё ScummVM, но это движок для запуска существующих игр, а не для разработки новых.
python полностью портирован? какая версия?
можно ли использовать дополнительные библиотеки, например pygame?
Выше писали, что есть только TinyPy. А это далеко не полный Python… Но с pygame там вроде даже можно что-то получить. Например, вот.
Какая на данный момент последняя поддерживаемая версия SDL? Кроме непосредственно самой SDL, портирован ли «обвес» типа SDL_ttf, SDL_mixer и т.п.? Если нет, то какие из кроссплатформенных Си-библиотек поддерживаются для вывода звука? Есть ли уже готовые примеры подключения SDL в системе автосборки?
SDL 1.2.2, на следующие версии никто не смотрел. SDL_ttf требует FreeType, которого нет. Звук в SDL есть. Файл конфигурации сборки SDL-версии Quake, со звуком: contrib/other/sdlquake-1.0.9/Tupfile.lua.
SDL_image? Поддерживает PNG с прозрачностями? Про звук — хотелось бы выводить OGG. Стандартными средствами SDL это вроде не умеет, именно поэтому спросил про SDL_mixer.
Из того, что оказалось под рукой в репозитории, SDL_image отказался собираться с libpng из-за того, что последняя с какого-то момента перестала выставлять на всеобщее обозрение в png.h внутренности своих структур, а первая до какого-то момента эти внутренности использовала. Я думаю, что это решается обновлением версии, но этим кто-то должен заниматься.
С прозрачностью не должно быть проблем, внутри SDL собственный рендерер, умеющий прозрачность.

SDL_mixer под рукой нет. Если там нет каких-то хитрых зависимостей — не должно быть и проблем. Если есть — вы рискуете получить игрушку размером больше img-образа системы.
freetype вообще-то есть, используется для сборки mupdf и браузера.
можно использовать любой язык программирования —… хоть JAVA ...

А есть виртуальная Java-машина под KolibriOS?
Ну, у меня получилось запустить класс. Но я не умею в java, так что дальше jvm дело не пошло. Хотел поддержку MIDP 2.0 добавить, но не осилил.
Ну, она на C++, а на момент портирования jvm не было способа собирать программы на «плюсах».
GCC? Он уже нормально работает там?
По-прежнему только кросс-компиляция.
Я не к этому, а к тому, что раньше единственной инструкции был пост на форуме. Сейчас таки прошел по ссылке, как минимум с документацией стало лучше :)
Стало больше постов на форуме, да. Вообще уже много лет есть инструкция «HLL in Kolibri», и даже недавно появилась статья на Хабре.
Вот она: habrahabr.ru/company/kolibrios/blog/229231/
Нельзя портировать чужую игру. Но вопрос насколько разрешены римейки? Хорошо бы очертить границы.
Римейк можно, если код римейка написан Вами.
За 3 часа так и не разобрался, как скомпилировать g++ HelloWorld (под linux). Хорошего (простого для начала работы) SDK явно не хватает. Кажется это хорошая тема для GSoC 2015.
Вот выдержка из build.txt на сервере:
For a GCC program, get the toolchain at ftp.kolibrios.org/users/Serge/new/Toolchain/.

Under Windows, you need the package with «msys» in name and MinGW;
after installing MinGW, unpack the package to
\MinGW\msys\1.0\home\autobuild\tools\win32, the package assumes
exactly this path. Run MinGW shell.

Under Linux, you need the package with «linux» in name
and runtime library cloog; e.g. for Debian-based distributives
use apt-get install libcloog-isl4. Unpack the package to
/home/autobuild/tools/win32, the package assumes exactly this path.

In both MinGW and Linux, make sure that the command
/home/autobuild/tools/win32/bin/kos32-gcc
invokes the compiler.

If the program uses libraries, you will also need to either compile
them separately or download SDK, if they are included to SDK.
Compiling is ultimately a sequence of calls to kos32-gcc and kos32-ld,
but filling exact parameters can be tricky, so maybe you want to
use Tup — proceed to Q2/A2 — or Make, if a maintainer has provided Makefile.

Вот частичный перевод на русский: bitbucket.org/pascualle/tengine/raw/099dbc8dd7c33ea34cb230fa0289cca4e72e4c86/samples/scroll_map/_kolibrios/readme.txt
Если ещё есть вопросы, нужно пинать автора на нашем форуме (можно в этой теме).
Хорошего SDK действительно не хватает, но для GSoC 2015 это плохая тема — студенты не справятся.
Тоже возился: hello world собрался, но запускаться на живой системе ни в какую не хочет. Что самое странное: накачал на форуме бинарников для системы и они тоже не запускаются. Какая-то очень странная фигня.
Это очень-очень странно. Какую конкретно версию Колибри Вы скачали, и какие программы с форума (хотя бы одну ссылку)?
1) Билд абсолютно правильный.
2) Попробуйте до запуска программы открыть доску отладки (board), и посмотреть, пишется ли на доску какое-то сообщение после запуска программы (проверьте в обеих вкладках — kernel & user).
Ничего.

KFM, кстати, при запуске пишет «File system error 0000000031»
Откуда Вы запускаете Колибри? На реальной машине, или в эмуляторе? Если на реальной машине, то сообщите точную марку процессора и количество оперативной памяти. Если в эмуляторе, то название эмулятора и точную версию, а также количество оперативной памяти, которое Вы выделили.

latest-iso, который Вы скачали, Вы монтируете как виртуальный CD-ROM, или записали на реальный CD-ROM, или на флешку, или куда-то ещё? И куда Вы клали чужую программу и Вашу, и какая там файловая система?
Оу, открыл бинарь во встроенном HEX-редакторе, а там нули. Получается, проблема в FAT-драйвере или еще чем-то
Возможно, ему не понравился размер диска в 4Мб. Изменил его на больший: попробовал и 100Мб, и 1Гб. Имею теперь другую проблему: не вижу скопированных туда файлов в kolibri :)
qemu-2.1.2
Нет. Тот баг касается случая, когда qemu сам создаёт образ на основе папки по -hda fat:..., и делает это неправильно.
Ну тогда есть ещё один баг QEMU. Который, вроде бы, больше подходит под описание tyderh.
Сделал вместо -hda image эмуляцию USB-флешки. Заработало. Спасибо за помощь.

Осталось теперь разобраться, как libimg подключить из RTL.
А вот KFar мне пишет «Файл не является исполняемым». В колибри ведь нет бита исполнения?
Сигнатура внутри файла у меня, есть. Собирал я при помощи gcc с RTL.
gittup.org/tup/lua_parser.html
Tup позволяет задавать правила сборки двумя способами: на своём собственном DSL — синтаксис которого использует большая часть мануала — и на Lua. Lua, будучи полноценным языком программирования, позволяет больше.

Вы взяли в качестве примера файл, который делает магию под капотом, в функциях compile_msvc и link_msvc из programs/use_msvc.lua. К сожалению, сейчас, чтобы получить Колибри-бинарник от gcc или msvc, нужно делать довольно много магических пассов, специфических для компилятора — Tup позволяет затолкать их под капот в use_gcc.lua/use_msvc.lua, но не избавиться от них.

Если вы хотите понять принципы, я советую начать с более простых fasm или nasm: например, programs/network/ftpc/Tupfile.lua, programs/develop/examples/thread/trunk/Tupfile.lua. Тема на форуме с некоторыми комментариями: board.kolibrios.org/viewtopic.php?f=7&t=2869 — там уклон на сравнение со старой системой автосборки на Make, но и просто информация есть.
Призы будут выплачены во 2 квартале 2016 года.
Хорошо хоть «будут выплачены», а не «Good scam.»

На самом деле, просто перевести деньги за выигрыш гораздо легче, чем пинать студента, который посередине работы вдруг пропал на месяц, и неизвестно, закончит ли он работу вообще. Затем вручную проконтролировать качество 100 флешек (2 раза, так как первая партия оказалась бракованной), совмещая это между работой и семьёй. А когда все флешки проверены, на них записана Колибри, они протестированы на нескольких разных компьютерах, на них наклеены стикеры с результатами тестов, они запечатаны в конверты и на конвертах наклеены адреса получателей, внезапно оказывается, что в тебя летят ракеты Хамаса, и часть почтовых отделений Израиля вообще закрыта из-за этого на 2 месяца. А когда перемирие с Хамасом наконец подписано, служащие почты начинают забастовку, и почтовые отделения опять закрыты.

И тем не менее, всё это уже позади, и почти все бекеры, выбравшие только флешку в качестве вознаграждения на Кикстартере, и указавшие правильный адрес в опросе, уже получили её (могу выслать Excel с данными, если хотите). 3 флешки вернулись из-за неправильного адреса, ещё 3 флешки оказались потеряны (видимо, почтой Израиля). С этими 6 бекерами я свяжусь индивидуально и договорюсь о способе решения проблемы (повторная пересылка либо возврат денег).

Бекеры, выбравшие флешку и футболку (как Вы), тоже получат их в скором времени (надеюсь, до Нового 2015 года). И всем бекерам мы предлагали возврат денег, если ожидание им больше не подходит. Никто не попросил деньги назад, но Вы всё ещё можете воспользоваться этой возможностью.

Я сам пожертвовал деньги 9 проектам, из них у 5 уже прошёл обещанный срок доставки наград. Из этих 5 проектов, только 1 доставил награды вовремя (снимаю шляпу), ещё 2 доставили с опозданием где-то на год (как в случае с нашим Кикстартером), 1 просто скрылся с деньгами (кстати, наш соотечественник), и последний потратил деньги, но проект завалил (но хоть признался об этом позавчера). Если руководствоваться Вашей логикой, что все проекты на Кикстартере всегда вовремя вышлют награды, то вынужден Вас разочаровать — таких меньшинство.

Я не пытаюсь оправдываться, просто почувствовал нужным объяснить ситуацию.
И ещё очень хотелось бы примеры многопоточности и проигрывания WAV. На Си… Нативными средствами Колибри.
API звуковой подсистемы: programs/develop/sdk/trunk/sound/include/sound.h. За исключением test_wav, все функции оттуда — вызовы драйвера, так что нативнее некуда.
Пример использования, с многопоточностью: programs/media/ac97snd/ac97snd/ac97wav.c.
Не подскажете, может уже есть и PortAudio? Audacity в качестве звукового бэкэнда использует именно его, насколько я в курсе.
Нет. Конечно, никто не мешает вам попробовать портировать его самостоятельно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий