Page 1 of 7

Heliothryx (игра на конкурс) - игра выпущена

Posted: Thu Dec 04, 2014 11:00 pm
by ALPINE
Конкурсная версия игры готова.

Image

Ссылка на последний билд: Heliothryx
Также игра лежит в ISO: KolibriOS Downloads

Примечания к выпуску конкурсной версии:
  • Все ресурсы (текстуры, звуки, музыка, и даже шрифты) генерируются процедурно
  • Как результат предыдущего пункта - игра занимает менее 15 килобайт, что соответствует духу проекта KolibriOS
  • Не смотря на маленький объём бинарника, игра разворачивается в несколько мегабайт в ОЗУ и ввиду особенностей реализации графического движка требует не самого слабого процессора, что не очень соответствует духу проекта KolibriOS :), но для графической игры такого рода, сотканной меньше чем за месяц, думаю, это простительно
  • В исходниках игры предусмотрена специальная утилита, конвертирующая текст в формат, используемый в игре, а так же инструкция её использованию. Это сделано для удобства локализации на другие языки.
  • Ну и напослоедок: названием так никто и не поинтересовался, а зря, оно выбрано не случайно :) ru.wikipedia.org/wiki/Heliothryx
О том, какие знания и навыки были получены в результате моего знакомства с KolibriOS и участия в данном конкурсе, напишу отдельно, уже в январе. Всех с наступающим!

- - - - - - - - - - - -

С чего всё начиналось (для архива):

Всё управление с клавиатуры. Прошу проверить, всё ли у вас работает. Особенно интересует звук: у меня в Virtualbox он запаздывает (уже исправил: драйвер ALSA и контроллер Intel HD audio), в Qemu звук вообще не завёлся (не разбирался, почему). Напишите, на чём запускали вы.

Планируется что-то типа олдскульного скролл-шутера. Из отличительных особенностей игры:
- все ресурсы (текстуры, звуки, и даже шрифты) генерируются процедурно;
- как следствие, игра достаточно мелкая, в текущем виде запускаемый бинарник весит 22 килобайта. И это для графической игры. Итоговая версия вряд ли перешагнёт отметку в 32 кб;
- игра не требует libc, поэтому может запуститься даже на минимальном 1.44 Мб образе KolibriOS.

Вопросы по конкурсу:
1) Где-то есть тема с обсуждением конкурса, куда надо подать заявку на участие и т.п.? Я не нашёл.
2) Yogev Ezra сообщил, что для заливки исходников на SVN требуется аккаунт. Наверное, пора мне его у вас попросить :)
3) Разработку следует вести в ветке /programs/games/<название_игры>, верно?
4) Про исходники: я их конечно открою под свободной лицензией, но пока конкурс не завершён, есть вероятность, что сопернички сопрут кусок движка, форкнут его и будут со мной конкурировать моими же наработками, что меня не устраивает. Жюри подобное поведение будет отслеживать? Не хочется в последний день загружать, вдруг что пойдёт не так.
5) Для звука используется библиотека /contrib/sdk/sources/sound/, я не разобрался (если честнее - не стал разбираться), компилируется ли она куда-то и надо ли с ней линковаться, поэтому тупо скопировал исходники в папку со своей игрой и собираю всё там. Это допустимо? Или надо сделать как-то иначе? В doom, я смотрю, только header-файл sound.h лежит в папке с игрой...

Скриншотики:

Image
Image

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Thu Dec 04, 2014 11:12 pm
by hidnplayr
Nice demo.
Works perfectly here on virtualbox.
No delay on sounds is noticed (I'm using "intel HD audio" emulated card)

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Thu Dec 04, 2014 11:27 pm
by ALPINE
No delay on sounds is noticed (I'm using "intel HD audio" emulated card)
Thanks for testing!

I switched virtualbox audio to "Intel HD audio", it had no effect, but then I switched audiodriver from pulse to ALSA (I'm running Linux) and now delay is gone. Great. I tried Intel HD Audio before and I tried ALSA before but I never tried both in same time :)

BTW, are you using auto-translator to understand russian language? I'm not sure if I should translate my posts to English or not.

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Fri Dec 05, 2014 12:20 am
by Mario_r4
.

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Fri Dec 05, 2014 1:44 am
by ALPINE
Очень много FPU.
Еще не оптимизировал. Но чую, что меньше не станет, т.к. там там смешивание текстур каждый кадр.
Однако игра кушает от 1,5 до 3 Мб в зависимости от множителя масштаба.
Будет жрать ещё больше, когда я нагенерирую ещё текстур, звуков и может даже музончик :) Вообще я привык на оперативке не экономить. Так что пара десятков мегабайт для этой игры, думаю, будет сожрана.

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Fri Dec 05, 2014 1:52 am
by Mario_r4
.

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Fri Dec 05, 2014 2:08 am
by ALPINE
Это те, что легендарный ККригер сделали? Мне до них далековато :) На GameDev.ru в прошлом году проводился конкурс 64к-игр, там я, собственно, впервые начал изучать эту тему и написал зачаток генератора текстур и звуков. Но своим результатом остался недоволен. Многое не удалось (в том числе не сумел) реализовать, да и игры не получилось, только технодемка.

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

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Fri Dec 05, 2014 2:27 am
by pascualle
ALPINE,
позволь засвидетельствовать свое почтение!
я таки не ошибся, когда решил чтить данное сообщество своим скромным присутствием, здесь ходят очень интересные люди.
будет интересно посмотреть исходники, как я понимаю, они на си,
спасибо за труд!

Помогите новичку

Posted: Mon Dec 08, 2014 1:03 pm
by ALPINE
Три мелких вопроса по организации файлов проекта (скоро буду заливать проект на SVN, не хочу ничего сломать).

На данный момент дерево файлов моего проекта выглядят примерно так:
Spoiler:

Code: Select all

Содержимое /programs/games/helio/

./readme.utf8.txt <--------------------- ? (1)
./start.asm
./kolibri.ld
./Tupfile.lua
./use_gcc.lua  <-------------------- ? (2)

./game/
./game/rsgamemenu.h
./game/rsgamemenu.c
./game/rsgame.h
./game/rsgame.c
./game/rsmain.h
./game/rsmain.c
./game/rsgamedraw.h
./game/rsgamedraw.c
./game/rskos.h
./game/rskos.c
./game/rsgametext.h
./game/rsgametext.c
./game/rs/
./game/rs/rsplatform_kos.c
./game/rs/rsmicrolibc.c
./game/rs/rsplatform.h
./game/rs/rsmx.c
./game/rs/rsmx.h
./game/rs/rsbits.h
./game/rs/rsmicrolibc.h
./game/rs/rsdebug.h

./system/
./system/boolean.h
./system/sound.h
./system/console.c
./system/kolibri.c
./system/kolibri.h

./sound/
./sound/sndgetpos.asm   <-------------------- ? (3)
./sound/sndgetsize.asm
./sound/sndgetvol.asm
./sound/sndout.asm
./sound/wavhdr.asm
./sound/sndsetpan.asm
./sound/sndsetfmt.asm
./sound/sndsetvol.asm
./sound/sndtime.asm
./sound/init.asm
./sound/snd.inc
./sound/sndgetfmt.asm
./sound/sndgetpan.asm
./sound/sndsetmvol.asm
./sound/sndsetpos.asm
./sound/sndgetmvol.asm
./sound/stopbuf.asm
./sound/setbuf.asm
./sound/proc32.inc
./sound/sndreset.asm
Три вопроса.

1) Readme-файл в UTF-8 - ок? или предпочтительна какая-нибудь там cp866, которую я часто вижу?

2) Проект собираю командой tup в папке с проектом. Поэтому use_gcc.lua лежит здесь. Это, наверное, непорядок? Но tup не может тащить его из родительской "../.." папки, как же тогда мне отлаживать проект, или я что-то делаю не так?

3) Файлы звуковой библиотеки тупо скопированы из SDK. Это нормально или нет? Они ведь (точно такие же) лежат в папке /contrib/sdk/sources/sound/src и наверное тоже компилируются при общей сборке, но подцепить я их не могу по той же причине - tup из папки с проектом не может цеплять содержимое родительских папок.

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Mon Dec 08, 2014 2:34 pm
by yogev_ezra
Прошу прощения за задержку с ответом.
ALPINE wrote:1) Где-то есть тема с обсуждением конкурса, куда надо подать заявку на участие и т.п.? Я не нашёл.
На форуме темы (пока что) нет. Есть правила конкурса на Хабре: http://habrahabr.ru/company/kolibrios/blog/243081/
Но, если участники хотят, то я могу создать тему и на форуме (скопировать правила с Хабра).

Для официального участия в конкурсе, готовую игру нужно загрузить на SVN. Аккаунт можно попросить у XVilka, CleverMouse или у меня. На форуме по желанию (необязательно) можно выкладывать тестовые версии, для тестирования пользователями и багрепортов. Для этого каждый участник создаёт свою собственную тему со своей игрой в разделе "Игры", что ты и сделал уже.
ALPINE wrote:2) Yogev Ezra сообщил, что для заливки исходников на SVN требуется аккаунт. Наверное, пора мне его у вас попросить :)
Верно. Если ты ещё ни у кого не попросил, можешь послать мне в личку username/password, которые ты хочешь, и я тебе создам аккаунт.
ALPINE wrote:3) Разработку следует вести в ветке /programs/games/<название_игры>, верно?
Да, верно.
ALPINE wrote:4) Про исходники: я их конечно открою под свободной лицензией, но пока конкурс не завершён, есть вероятность, что сопернички сопрут кусок движка, форкнут его и будут со мной конкурировать моими же наработками, что меня не устраивает. Жюри подобное поведение будет отслеживать? Не хочется в последний день загружать, вдруг что пойдёт не так.
Mario_r4 wrote:Серьезно? Да, ладно?
The attachment helio-techdemo.txt is no longer available
Уже своровал и использую, аж с 20.11.2014. :wink:
Как видно, шутка Mario_r4 с дизассемблированием бинарника оказалась удачной - уже целых 25 скачиваний :-) А по существу - это очень маловероятно, что кто-то украдёт твой код до окончания конкурса. Разбираться в чужом коде порой труднее, чем написать свой собственный. Две основные причины, по которым мы просим исходники:
  • Проект KolibriOS является open-source, и мы хотим, чтобы он оставался таким и дальше
  • Чтобы была возможность пофиксить твой код, если из-за какого-то изменения в ядре или драйверах он перестанет работать (ну или просто, если кто-то баг найдёт)
Другие разработчики смогут использовать твой код для изучения и самообучения, но никак не для плагиата. Именно поэтому в правилах я явно запретил портирование чужой игры - только написание новой или портирование своей собственной существующей. Таким образом, возможность плагиата сильно снижается. Но в любом случае, для твоего успокоения, я обещаю тебе, что лично проверю исходники всех участников на явный плагиат.
ALPINE wrote:5) Для звука используется библиотека /contrib/sdk/sources/sound/, я не разобрался (если честнее - не стал разбираться), компилируется ли она куда-то и надо ли с ней линковаться, поэтому тупо скопировал исходники в папку со своей игрой и собираю всё там. Это допустимо? Или надо сделать как-то иначе? В doom, я смотрю, только header-файл sound.h лежит в папке с игрой...
Просьба сделать так же, как в DOOM, чтобы не создавать копии одного и того же кода в разных местах. Тогда, если кто-то что-то исправит в звуковой библиотеке, ему не придётся исправлять отдельно и в твоей игре. За помощью, как это сделать, можно обратиться к CleverMouse.
ALPINE wrote:Скриншотики:
Скриншотики зачётные, но мне почему-то больше понравился шрифт на скриншоте, который ты выложил на вашем форуме :-)

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Mon Dec 08, 2014 3:33 pm
by ALPINE
Ой, мои три вопроса переместили в эту тему что ли? Или это я их сам сюда разместил?
Если ты ещё ни у кого не попросил, можешь послать мне в личку username/password, которые ты хочешь, и я тебе создам аккаунт.
Я уже написал в личку CleverMouse, думаю, дождусь её ответа. уже получил реквизиты аккаунта.
Две основные причины, по которым мы просим исходники
Мне не жалко показать исходники, я даже хочу их выложить под лицензией zlib, чтобы любой желающий мог их использовать даже в закрытых проектах, если найдёт в коде что-то полезное. Вопрос был исключительно про конкурс и про соперничество. Ок, тогда не беспокоюсь.
Просьба сделать так же, как в DOOM
Ок, но возникает проблема с компиляцией, если вызывать команду tup прямо из папки с проектом.
За помощью, как это сделать, можно обратиться к CleverMouse.
Прям в личку что ли? Я думаю, решение данного вопроса будет интересно не только мне одному, может, лучше обсуждение на форуме сделать?
но мне почему-то больше понравился шрифт на скриншоте, который ты выложил на вашем форуме
Да, что-то в нём есть, но изначально всё было настроено не под такой стиль, поэтому многие буквы выглядят слишком покоцанными. Но я попробую и такой вариант шрифта куда-нибудь ввернуть.

Спасибо за ответы.

Re: Помогите новичку

Posted: Mon Dec 08, 2014 3:53 pm
by CleverMouse
ALPINE wrote:Три вопроса.

1) Readme-файл в UTF-8 - ок? или предпочтительна какая-нибудь там cp866, которую я часто вижу?

2) Проект собираю командой tup в папке с проектом. Поэтому use_gcc.lua лежит здесь. Это, наверное, непорядок? Но tup не может тащить его из родительской "../.." папки, как же тогда мне отлаживать проект, или я что-то делаю не так?

3) Файлы звуковой библиотеки тупо скопированы из SDK. Это нормально или нет? Они ведь (точно такие же) лежат в папке /contrib/sdk/sources/sound/src и наверное тоже компилируются при общей сборке, но подцепить я их не могу по той же причине - tup из папки с проектом не может цеплять содержимое родительских папок.
1) Нормально.
2)3) Пункт A2 в http://websvn.kolibrios.org/filedetails ... Fbuild.txt. В локальной копии файлы use_gcc.lua и use_sound.lua действительно придётся скопировать, но заливать в репозиторий эту копию не нужно. Чтобы всё это работало как надо, в tup.config локальной копии, который тоже в репозиторий заливать не нужно, надо указать CONFIG_HELPERDIR=., а в Tupfile.lua делать примерно так:

Code: Select all

if tup.getconfig("NO_GCC") ~= "" then return end
if tup.getconfig("HELPERDIR") == ""
then
  if tup.getconfig("NO_FASM") ~= "" then return end -- required for sound compilation
  HELPERDIR = "../.." -- или где там папка с Tupfile.lua, должно указывать на programs
end
tup.include(HELPERDIR .. "/use_gcc.lua")
tup.include(HELPERDIR .. "/use_sound.lua")
В use_sound.lua нужно скорректировать первую строчку, чтобы она указывала куда-нибудь, где есть include/* и src/sound.lib. Последнюю можно собрать отдельно или скачать из http://builds.kolibrios.org/eng/data/pr ... sound/src/.

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Mon Dec 08, 2014 4:21 pm
by ALPINE
Шикарненько, всё ясно, спасибо. Сейчас займусь этими исправлениями, как только сделаю - залью на SVN. Аккаунт получил.

:)

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Mon Dec 08, 2014 9:46 pm
by ALPINE
Залил. Я смотрю, оно уже мгновенно скомпилилось:
http://builds.kolibrios.org/eng/data/pr ... eliothryx/
Загрузил бинарник, вроде работает. Он размером кстати не 20, а всего 10 кб! Какое-то сжатие применяется? (а, погодите, это наверное из-за библиотеки звука?)

А образы собираются когда? Хочется скачать ночную сборку, чтобы убедиться, что всё уж точно сработало как надо :)

Ещё вопрос про меню: я смотрю, там игры упорядочены не по алфавиту, мне куда впихиваться, в конец или куда попало? Пока не добавляю свой пункт меню, т.к. игра на стадии технодемки, но скоро будет уже играбельная альфа-версия, поэтому спрашиваю уже сейчас.

Re: Heliothryx (игра на конкурс) - технодемка, протестите?

Posted: Mon Dec 08, 2014 10:06 pm
by CleverMouse
В автосборке включено сжатие kpack. В build.txt описано, где взять упаковщик и как настроить упаковку в локальной сборке, tup.config. По умолчанию - без дополнительной настройки - вызов kpack отключён, потому что "взять kpack" - плюс одно действие, без которого при разработке вполне можно обойтись.

Образы собираются, когда есть, что собирать. Список того, что входит в образ, находится в data/Tupfile.lua, и это отнюдь не всё, что есть на svn и что собирается автосборкой.