Forums Logo

Здравствуйте Гость ( Вход | Регистрация )

 
Reply to this topicStart new topicStart Poll

Каскадный · [ Стандартный ] · Линейный

> Реактивное введение в программирование под GBA

aa-dav
post Четверг, 20 апреля 2017, 10:47
Отправлено #1


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Столкнувшись сам несколько дней назад с отсутствием русских вменяемых введений в предмет на днях решил создать некую очень короткую и сжатую, но по возможности достаточно полную для начала программирования реальной игры вводную в программирование под GBA.
Начал делать это тут: http://antistupd.livejournal.com/842.html

При этом цель не состоит в обучении программированию - напротив, целевая аудитория уже должно хорошо знать C/C++ и представлять себе архитектуру компьютера, что такое память, указатели в неё, зачем нужен volatile и т.п.

Два вопроса:
- нужно ли? есть ли еще интересующиеся темой?
- (потому что возможно, что) есть ли уже проделанная такая же работа? (сам не нашёл)
User is offlinePM
Go to the top of the page
+Quote Post
MoonTurtle
post Четверг, 20 апреля 2017, 11:12
Отправлено #2


Безумец
*****

Группа: Пользователи
Сообщений: 826
Регистрация: 05 янв. 2013
Из: Minsk
Пользователь №: 46 701





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

А вообще как хош так и раби и дэвай что хош, только бы прикалывало.

Сообщение отредактировал MoonTurtle - Четверг, 20 апреля 2017, 11:14
User is offlinePM
Go to the top of the page
+Quote Post
aa-dav
post Четверг, 20 апреля 2017, 11:39
Отправлено #3


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (MoonTurtle @ Четверг, 20 апреля 2017, 11:12)

Писать игру на си , сейчас так делают? вроде не тренд.


Я там во введении сразу же и написал, что GBA обладает интересным соотношением в архитектуре.
ЦП мейнстримовый 32-битный ARM, поэтому свободно можно писать код на C/C++ и не парится - компилятор обычный GCC, никаких заморочек нет, связанных с необходимостью шпарить на ассемблере или прикладывать бит к биту как на микроконтроллерах или тех же 16-битках.
Но при этом он обладает всеми характерными особенностями аппаратуры 16-битных консолей - особенно это касается программирования видеоадаптера, сами выполняемые действия, спрайты, фоновые задники и регистры их сдвига - всё это ровно то, чем занимались бессчисленные геймдевелоперы на широчайшем классе консолей былых лет, от NES и выше.

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

Почти все мощные игры пишутся на C++ сейчас. Наиболее часто распространён подход, когда ядро движка на нём написано для дого чтобы давить самый мощный графон, в то же время присутствует скриптовый или околоскриптовый интерфейс для логики, аддонов и в целом ускорения разработки.
User is offlinePM
Go to the top of the page
+Quote Post
DUX
post Четверг, 20 апреля 2017, 11:59
Отправлено #4


уже пятый год сижу
*****

Группа: Пользователи
Сообщений: 578
Регистрация: 06 нояб. 2012
Из: Стольный град Москов
Пользователь №: 46 279





QUOTE (aa-dav @ Четверг, 20 апреля 2017, 11:39)

Я там во введении сразу же и написал, что GBA обладает интересным соотношением в архитектуре.
ЦП мейнстримовый 32-битный ARM, поэтому свободно можно писать код на C/C++ и не парится - компилятор обычный GCC, никаких заморочек нет, связанных с необходимостью шпарить на ассемблере или прикладывать бит к биту как на микроконтроллерах или тех же 16-битках.
Но при этом он обладает всеми характерными особенностями аппаратуры 16-битных консолей - особенно это касается программирования видеоадаптера, сами выполняемые действия, спрайты, фоновые задники и регистры их сдвига - всё это ровно то, чем занимались бессчисленные геймдевелоперы на широчайшем классе консолей былых лет, от NES и выше.

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

Почти все мощные игры пишутся на C++ сейчас. Наиболее часто распространён подход, когда ядро движка на нём написано для дого чтобы давить самый мощный графон, в то же время присутствует скриптовый или околоскриптовый интерфейс для логики, аддонов и в целом ускорения разработки.
*

Ну, если наклепаете контр, кастельваний и марио

Добавлено спустя 50 секунд:
Хочу Контру Operation C на 2 игрока

Сообщение отредактировал DUX - Четверг, 20 апреля 2017, 12:00
User is offlinePM
Go to the top of the page
+Quote Post
MoonTurtle
post Четверг, 20 апреля 2017, 12:01
Отправлено #5


Безумец
*****

Группа: Пользователи
Сообщений: 826
Регистрация: 05 янв. 2013
Из: Minsk
Пользователь №: 46 701





QUOTE (aa-dav @ Четверг, 20 апреля 2017, 11:39)

Я там во введении сразу же и написал, что GBA обладает интересным соотношением в архитектуре.
ЦП мейнстримовый 32-битный ARM, поэтому свободно можно писать код на C/C++ и не парится - компилятор обычный GCC, никаких заморочек нет, связанных с необходимостью шпарить на ассемблере или прикладывать бит к биту как на микроконтроллерах или тех же 16-битках.
Но при этом он обладает всеми характерными особенностями аппаратуры 16-битных консолей - особенно это касается программирования видеоадаптера, сами выполняемые действия, спрайты, фоновые задники и регистры их сдвига - всё это ровно то, чем занимались бессчисленные геймдевелоперы на широчайшем классе консолей былых лет, от NES и выше.

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

Почти все мощные игры пишутся на C++ сейчас. Наиболее часто распространён подход, когда ядро движка на нём написано для дого чтобы давить самый мощный графон, в то же время присутствует скриптовый или околоскриптовый интерфейс для логики, аддонов и в целом ускорения разработки.
*
[/quote

не в этом дело, то что арм и так понятно.

ты будеш писать и скрипты и движок. ихмо зачем изобретать велосидед, я про движок, если игра не в стиле атари то будет сложно и долго добиться норм эффекта.
Возьми к примеру в сравнение фьюжн, гэйммэйкер, юнити или рпг мэйкер на худой конец. Там можно сконцентрироваться на игре а не движке...
Есть еще прикольная тема pico8.


Платформа не популярна.
я не говорю что си плох, просто с нуля писать игры на нем не эффективно.
User is offlinePM
Go to the top of the page
+Quote Post
aa-dav
post Вторник, 23 мая 2017, 08:54
Отправлено #6


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 20 апр. 2017
Пользователь №: 58 717





А у кого-нибудь тут есть возможность заливать на какой-нибудь Flash-картридж образы *.gba и запускать их на настоящем аппаратном (не эмуляторе) Game Boy Advance?
Просто накопилось несколько тестовых примеров уроков (уже написал 6 частей по ссылке в первом сообщении) и хотелось бы проверить хотя бы дистанционно насколько они адекватно ведут себя на настоящем железе. На эмуляторе конечно же проверено - на нём всё нормально. Спрайтики всякие вращаются да фоны летают, типа такого.
User is offlinePM
Go to the top of the page
+Quote Post
Boris
post Вторник, 23 мая 2017, 11:09
Отправлено #7


Uphold the law
Group Icon

Группа: Модераторы
Сообщений: 886
Регистрация: 07 авг. 2006
Из: Bulltown
Пользователь №: 17 455





Тема интересная, спасибо! Надо срочно купить флэху, с удовольствием буду тестировать ваши разработки. На чем пишете то?
User is offlinePM
Go to the top of the page
+Quote Post
dimm0505
post Вторник, 23 мая 2017, 12:59
Отправлено #8


Console Addict
Group Icon

Группа: Модераторы
Сообщений: 5 918
Регистрация: 21 янв. 2007
Из: Петропавловск-Камчатский
Пользователь №: 20 637





QUOTE (MoonTurtle @ Четверг, 20 апреля 2017, 21:01)

Платформа не популярна.
я не говорю что си плох, просто с нуля писать игры на нем не эффективно.
*

А что из высокоуровневых языков может быть более эффективным чем С для GBA? =))) Платформа очень интересна с точки зрения первого опыта, имеет крайне низкий порог вхождения, создано несколько (!) IDE для разработки. Сцена и форум еще живы:
http://gbadev.org/

QUOTE (aa-dav @ Вторник, 23 мая 2017, 17:54)

А у кого-нибудь тут есть возможность заливать на какой-нибудь Flash-картридж образы *.gba и запускать их на настоящем аппаратном (не эмуляторе) Game Boy Advance?
Просто накопилось несколько тестовых примеров уроков (уже написал 6 частей по ссылке в первом сообщении) и хотелось бы проверить хотя бы дистанционно насколько они адекватно ведут себя на настоящем железе. На эмуляторе конечно же проверено - на нём всё нормально. Спрайтики всякие вращаются да фоны летают, типа такого.
*

Лет 10 назад пробовал кодить в Visual HAM-е, очень мошная вещь была, можете попробовать, здесь есть версия 2.7:
https://www.zophar.net/utilities/gbadev/ham.html
А вообще самая последняя версия ХАМа была 2.80 вроде бы.
Насчет теста твоих прог. Есть GBA SP и Gameboy Micro, где то флэшкарик EZ-Flash IV валяется. Есть еще EZFlash V для NDS, на ней тоже можно попробовать. Так что при случае могу проверить твои "примеры". Только давай в формате *.gba.


--------------------
GBA/DS/3DS/WiiU/PSP/PS2/PS4/XB360/XBO
User is offlinePM
Go to the top of the page
+Quote Post
aa-dav
post Вторник, 23 мая 2017, 14:38
Отправлено #9


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Сейчас запаковал текущее состояние проекта так сказать, и с исходниками и вместе с уже собранными образами GBA сюда: http://www.gamedev.ru/files/?id=125957
Там помимо прочего есть файл "Описания примеров.txt" и в нём написано какой пример как должен себя вести и на какие кнопки реагировать.
Буду признателен за отчёт о полевых испытаниях на реальном железе.

Я лично делаю даже не в средах компиляции, а прямо в командной строке и FAR-е фигачу, но это мой бзик. Поэтому там инструкции как завести с *.bat-файла (даже не make, а тупо батник, т.к. некогда даже на это заморачиваться).
Использую GNU C/C++ (под Windows) сборку под GBA.
В первых уроках использовал древнюю как окаменелое гэ мамонта Dev Kit Advance (2003 год сборки), но с 6-ой (и на пока последней) части перешёл на свежий и пахнущий розами Dev Kit Pro - там тоже всё есть как установить и через те же *.bat файлы компилировать.

Наверное будет составлять определенную проблему то, что я как раз без всяких сред и IDE фигачу - для новичков не очень удобно.
User is offlinePM
Go to the top of the page
+Quote Post
dimm0505
post Вторник, 23 мая 2017, 14:46
Отправлено #10


Console Addict
Group Icon

Группа: Модераторы
Сообщений: 5 918
Регистрация: 21 янв. 2007
Из: Петропавловск-Камчатский
Пользователь №: 20 637





Качнул, попробую в ближайшие 2-3 дня "на риале".


--------------------
GBA/DS/3DS/WiiU/PSP/PS2/PS4/XB360/XBO
User is offlinePM
Go to the top of the page
+Quote Post
dimm0505
post Вчера, 12:42
Отправлено #11


Console Addict
Group Icon

Группа: Модераторы
Сообщений: 5 918
Регистрация: 21 янв. 2007
Из: Петропавловск-Камчатский
Пользователь №: 20 637





Запускается все, но вот только что там должно быть - непонятно.
5_scroll_bg.gba вроде что-то толковое, управляется стрелками и тп.
А там где спрайты мне кажется, что они некорректно отображаются (как будто они из точек состоят). Мне кажется спрайты там другие должны быть. Как будто какие-то тайминги некорректные. Было бы неплохо, чтобы ты по каждой проге дал краткое описание (что она должна делать) и скрин из эмуля (как это должно все выглядеть по твоей задумке). Ну а так все запустилось на реальном GBA SP =))


--------------------
GBA/DS/3DS/WiiU/PSP/PS2/PS4/XB360/XBO
User is offlinePM
Go to the top of the page
+Quote Post
aa-dav
post Вчера, 13:31
Отправлено #12


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Спасибо большое! Да, похоже что всё верно работает. Описание что там и как должно работать словами содержится в текстовой файле "Описание примеров.txt", там написано примерно что должно быть на экране и на какие кнопки и как оно должно реагировать по каждому из примеров.

Спрайты и фоны действительно "никакие" по одной простой причине - это примеры и чтобы максимально их упростить всё необходимое содержится прямо в коде программы, что исключает сложные битмапы и красивые рисунки.
User is offlinePM
Go to the top of the page
+Quote Post
dimm0505
post Вчера, 13:36
Отправлено #13


Console Addict
Group Icon

Группа: Модераторы
Сообщений: 5 918
Регистрация: 21 янв. 2007
Из: Петропавловск-Камчатский
Пользователь №: 20 637





QUOTE (aa-dav @ Среда, 24 мая 2017, 22:31)

Спасибо большое! Да, похоже что всё верно работает. Описание что там и как должно работать словами содержится в текстовой файле "Описание примеров.txt", там написано примерно что должно быть на экране и на какие кнопки и как оно должно реагировать по каждому из примеров.

Спрайты и фоны действительно "никакие" по одной простой причине - это примеры и чтобы максимально их упростить всё необходимое содержится прямо в коде программы, что исключает сложные битмапы и красивые рисунки.
*

Ну тогда поздравляю, все запустилось, правда я забыл по запарке 8_intrs.gba запустить =))


--------------------
GBA/DS/3DS/WiiU/PSP/PS2/PS4/XB360/XBO
User is offlinePM
Go to the top of the page
+Quote Post
aa-dav
post Вчера, 13:44
Отправлено #14


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Ну отлично. Большое спасибо! Просьба еще, если уже этого не делали, потом как будет время - прочитать всё таки "Описание примеров.txt" по каждому примеру и сверить реакцию на кнопки с тем что там написано. Написать, если где-то будут отличия.
Номера перед примерами это названия глав из ссылки в первопосте. Таким образом каждый пример рассматривает по очереди те или иные аспекты железа - фоны обычные, спрайты, спрайты вращающиеся, фоны вращающиеся, таймеры, прерывания, и т.п. Сейчас осталось изучить и написать на русском у себя про генерацию звука и в общем то этот цикл обучалок будет завершен. Единственное что не смогу охватить наверное важного для создания игры - это перезаписываемая память в катридже для сохранений. А так вроде всё что нужно для какой нибудь зельды охвачено. Очень забавная действительно система с нижайшим порогом вхождения, основное описание "API" на 200 строк всего лишь С-кода. smile.gif
User is offlinePM
Go to the top of the page
+Quote Post
Gashik
post Вчера, 20:58
Отправлено #15


Eat me, drink me...
Group Icon

Группа: Профи
Сообщений: 2 264
Регистрация: 24 нояб. 2003
Из: Москва
Пользователь №: 6 234





С сохранением ничего сложного. Была библиотека, которая создавала файл srm заданного объема и сохраняла значение любых заданных переменных. Две строчки текста, если правильно помню.
Прикольное ты дело затеял smile.gif я пробовал когда-то в HAM, все получилось без опыта программирования.
User is offlinePM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
 

Упрощённая версия Сейчас: Чт., 25 мая. 2017, 02:12
Skin Designed (c) by Rooq.net, All Rights Reserved.