nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 09:07



Reply to topic  [ 17 posts ]  Go to page 1, 2  Next
Electronic game console 
Author Message
Junior

Joined: 26 Dec 2012 05:33
Posts: 8
Location: 134.17.123.181
Reply with quote
Привет. Вот более менее доделал свою электронную игру типа GAMEBOY .
микроконтроллер pic16f876 +lcd nokia 3310, схема и проект прилагаются.

Image

Image

программа заняла все 8 кб памяти программ.

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


В игре есть возможность создать разнообразные уровни- под землей, под водой,в замке,
в пустыне, в пещере ,на облаках итд. есть всякие островки летающие ,
батуты, стреляющие как в марио пушки, потайные комнаты ,блоки ,которые можно разрушать
подложив бомбу..... реализован горизонтальный и псевдовертикальный
скроллинг карты при игре. Игра сделана по типу DUCK TALES - восьмибитной игры на денди.


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

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

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

фпс около 20 кадров в секунду при 10 мгц кварце.

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

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

в процессе написания игры пришлось много изучить , проще говоря если бы писал на си , то в 3 раза быстрее получилось бы,
но игра стала бы в 3 раза медленнее и постребовалось бы в 5 раз больше места при компиляции в файл прошивки ...



корпус пока на скорую руку...
Скоро в планах портировать игру на большой дисплей 128*64 виндстар или мэлт...


ссылка на весь архив с видео и проектом (35 мб)
http://yadi.sk/d/NZbaqwha1NkIz

ссылка на ютуб (кстати там еще есть старые видеоролики ) http://youtu.be/sj_GjShbDi0

ссылка на проект в протеусе
http://yadi.sk/d/gsMg5FSC1NkJ7


26 Dec 2012 05:42
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
прикольно :)


08 Jan 2013 04:58
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitshan_m wrote:
я выжал все что можно из этого микроконтроллера. если бы у него было больше озу (а есть около 300 регистров) то игра сильно изменилась бы,
...

Ну а что мешает ещё внешнюю память прицепить, вот как я делал?

Image

У тебя, я вижу, свободные ноги для этого остались, а их более чем достаточно...

Я надеюсь, ты спрайтами всё это делал? Тогда видеопамять большой быть не должна.
300 регистров тебе по идее должно хватить хранить коды спрайов хотя бы в двойном
буфере...
А сами спрайты из внешней памяти выкачивать.

Но автору конечно же виднее по месту. А проект Протеуса ты выложил что-ли?
А то я потыкался по твоим ссылкам и не нашел как-то... :(



PS. А вобще, мне кажется, в самом PIC-e должен быть интерпретатор псевдо-кода игры,
а сами коды игры должны считываться из внешней памяти.
Так по крайней мере сделана серия моих любимых играшек - https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D1%80%D1%80%D0%B8_%D0%9B%D0%B0%D1%84%D0%B5%D1%80.
Да и Шаос, похоже, такую же идею в своих баталиях роботов реализовал...


PPS. Проект нашел... спасибо! Немножко странный этот Яндекс.Диск...
А я думаю - чего проект такой большой ~ 36MБайт... :o А ты там и видео вложил...
:-?

_________________
iLavr


08 Jan 2013 05:28
Profile
Junior

Joined: 26 Dec 2012 05:33
Posts: 8
Location: 134.17.123.181
Reply with quote
Post 
чтобы правильно накладывать героя и врагов на фон,нужен видеобуфер 500 байт. а так как их нет, то приходится все накладывать онлайн друг на друга, в итоге квадратики затирают квадратики...

делать озу на внешней памяти (даже по spi)- вылазит тормозами. чтобы держались нормальлные фпс нужно спрайты тягать с пзу - так быстреее а не с внешней спи озу. - если с внешней то фпс ощутимо падает..

я мк занимаюсь толко год, но ооочень упорно ( вопросами касающимися игры) .

это некомерческий проект , он даже никому особо не интересен... его могут оценить только те кому в детстве не хватило гэмбоя ... ;-)

что порадовало, так это интерес к ней моей 5 летней дочки, сегодня она с интересом в нее играла, хотя я отключил пока всех врагов...

ааа, вы их же еще не видели сами.. скоро выложу версию видео с присутствием разных врагов....

а потом переведу на дисплей glcd 128*64.. будет круть! ;-)

спасибо а отзывы,

ps/ а дочке заказал ritmix rzx -20 на будущий день рождения, чтобы не слепилась на моем nokia 3310 дисплее , ;-)


17 Jan 2013 15:07
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Прикольно получилось

P.S. Прицепил фотку и схему в самый первый пост

_________________
:dj: https://mastodon.social/@Shaos


17 Jan 2013 16:58
Profile WWW
Junior

Joined: 26 Dec 2012 05:33
Posts: 8
Location: 134.17.123.181
Reply with quote
Post 
спасибо!!!!!!!!!!!!!!, а то я пытался фотки приделать - не получилось.

это демо левел, пока предметы и враги не расставлены, но будет очень интересно, жаль рано вложил, потом видео будеет не таким интересным

Image


18 Jan 2013 11:52
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
А под Протезусом у тебя модель Нокиа-3310 быстро отрабатывает?
На каком железе проект гонял?

Я к тому что может с экрана захват сделать? Видео темноватое у тебя, на мой взгляд...

_________________
iLavr


18 Jan 2013 15:03
Profile
Junior

Joined: 26 Dec 2012 05:33
Posts: 8
Location: 134.17.123.181
Reply with quote
Post 
почему то опять картинка не вставилась...

в протеусе летает, ну может процентов на 10 медленнее

снимал на камеру ,свет плохо падал,уж извините,следующее видео лучше постараюсь


комп простой атлон 2 ядра по 2900 ггц, карта 256 видео, 2 гига озу


на работе слабый комп старый 1400 гц озу 512 , так слайдшоу если честно а не эмуляция...


19 Jan 2013 01:04
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
vitshan_m wrote:
почему то опять картинка не вставилась...


и не вставится - у твоих линков окончание не картиночное (.jpg должно быть или там .gif)

кроме того в форум картиной не желательной вставлять изображения шире 640 пикселов (в соответствии с последними веяниями можно до 800)

вставил твою картинку левела как кликабельную

P.S. много времени ушло на разработку уровня? ;)

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2013 09:29
Profile WWW
Junior

Joined: 26 Dec 2012 05:33
Posts: 8
Location: 134.17.123.181
Reply with quote
Post 
время-нет нет много, основной набросок в программе-пару часов, в свое удовольствие и в зависимости от вдохновения, а какие то доделки потом в течении нескольких дней.

даже используя такое ограниченное количество тайлов( а 8*8 чернобелых много тайлов не напридумаешь) и то можно забабахать большой интересный уровень,

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

вот архив программы для создания карт , раньше я тайлы расставлял в экселе заодно присваивая ячейкам соответствующее число-номер тайла и получал массив который и прошивал на микруху памяти ,

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

вот этот парень делает похожую гаму
http://www.polesite.ru/?p=2116

вот программа с моей картой в корневой папке
http://yadi.sk/d/IpP8YJC21yqcg


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


19 Jan 2013 12:08
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Вытащил картинку с тайлами:

Image

Интересно, что твоя графика удивительным образом подходит под мой nedoPC SDK где тоже двухцветные тайлы 8x8 плюс Си-подобный язык программирования, т.е. теоретически можно твою игрушку портануть на Спринтер, Спектрум, Орион и Специалист (РК-86 не считаем - там голимый текст). Ну и все будущие nedo-компы, которые я добавлю, если время будет. ;)

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2013 15:39
Profile WWW
Junior

Joined: 26 Dec 2012 05:33
Posts: 8
Location: 134.17.123.181
Reply with quote
Post 
тайлы если честно 9 пикселей по горизонтали, чтобы скомпенсировать столбцеобразный размер пикселя в дисплее нокиа, чтобы на экране получился квадратный пиксель на экране , а то 8*8 вытянутый по вертикали получится.

насчет портации, то ее легче по новому набрать, тем более если на си подобном языке. стремясь ужать код ,ускорить игру и преодолеть нехватку озу приходилось так сказать мудрить с кодом ( все на ассемблере).

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

спасибо за отзыв :no:


20 Jan 2013 05:42
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Понятно - а как ты задавал что некоторые тайлы анимированные и как указывал где игрок может пройти, а где нет - на чём может стоять, а на чём нет?

P.S. А я для рисования двухцветных тайлов 8x8 обычно своей программой SCRED пользуюсь:

http://www.nedopc.org/nedopc/zx/soft_r.shtml

_________________
:dj: https://mastodon.social/@Shaos


20 Jan 2013 10:53
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
vitshan_m wrote:
это демо левел, пока предметы и враги не расставлены, но будет очень интересно...

Image

Очень напомнило мне дремучие времена Jet-Set Willy... :wink: Врочем, квесты в чем-то
все похожи друг на друга...

_________________
iLavr


20 Jan 2013 11:47
Profile
Junior

Joined: 26 Dec 2012 05:33
Posts: 8
Location: 134.17.123.181
Reply with quote
Post 
рисуя экран ,игра опрашивает массив карты . в зависимсти от номера полученного спрайта игра переходит к процедуре обработки данного номера

спрайта.

если это номер допустим 45 то игра рисует лесенку и проверяет на совпадение координат с героем и опрашивает кнопки вверх вниз-
результат -ползем по лестнице или нет.

если спрайт номер допустим 50- пики -то прога проверяет тоже чтои с лестницей и убивает героя

если спрайт номер допустим 10 - кирпич, то игра рисует кирпич

если спрайт номер допустим 60 то игра рисует пламя огня, спрайт огня имеет 2 кадра, номер кадра чередуется постоянно в иге от 1 до 4 с

постоянным интервалом. поэтому все спрайты с кадрами- меняются синхронно.

если это монета то проверяем определенный массив-флагов, , брали ли мы эту монету или нет - и если не брали- то рисем ее, если уже взяли - то

нет.

ну и так пока весь экран не нарисуем и дальше по кругу.




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

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

движемся вправо то каждый цикл проверяется спрайт карты правее игрока, и если его номер( порядковый в таблице спрайтов) будет от 0 до 100 то

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


писать игры - мое хобби с детсва,+ паять всякие приемнички итд.. год назад эти два хобби,уже поднадоевшие получили второе рождение и соединились вместе, когда попался на глаза микроконтроллер в инете. С этими мк можно сделать все что угодно!!! я думаю что нашел свое хобби до старости ;-) абы время хватало...


21 Jan 2013 03:08
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 17 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.