PC-01 Lviv

It is currently 09 May 2024, 19:59

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 215 posts ]  Go to page Previous 16 7 8 9 1015 Next
Author Message
PostPosted: 05 Sep 2013, 08:49 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
А можешь ссылку дать куда надо ткнуться, чтобы понять как это делать т. е. через Directx
набери в гугле или яндексе delphi dirextx ... двумя словами не расскажешь :roll:

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


Last edited by MARAT_BEST on 13 Sep 2013, 07:57, edited 1 time in total.

Top
   
PostPosted: 09 Sep 2013, 07:22 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Я все-таки вынес посты САСа в отдельную тему. Надеюсь, смысл исходной темы не слишком пострадал. А быть может, даже прояснился. :D

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 09 Sep 2013, 07:36 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Сейчас вся эмуляция выведена на таймер, стандартный , который глючит и очень зависит от ресурсов машины, по этому подумываю про Directx
Есть альтернативный вариант, популярный в игроделе, - SDL. Вот что пишут в Вики:
Quote:
Simple DirectMedia Layer (SDL) — это свободная кроссплатформенная мультимедийная библиотека, реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ. Данная библиотека активно используется при написании кроссплатформенных мультимедийных программ (в основном игр).

Официально поддерживаются операционные системы: Linux, Microsoft Windows, Mac OS X, iOS и Android[2].

SDL API доступны для языков: C, C++, C#, VB.NET, D, Ada, Vala, Eiffel, Haskell, Erlang, Euphoria, Java, Lisp, Lua, ML, Pascal, Perl, PHP, Pike, Python и Ruby.
Я традиционно радею за кроссплатформенность, поскольку с iOS и Android у нас дело швах.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 09 Sep 2013, 13:02 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Quote:
Есть альтернативный вариант
А где Делфи в списке?


Top
   
PostPosted: 10 Sep 2013, 01:04 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
А где Делфи в списке?
У нас в клубе Гугле.
Есть такая штука Project JEDI - библиотека по расширению возможностей Delphi. В рамках этого проекта запилили JEDI-SDL:
Quote:
Этот проект призван облегчить разработку игр и др. графических приложений на Object Pascal Эта разработка может быть применена в Delphi, Kylix, Free Pascal, Gnu Pascal и TMT Pascal.
В комплекте к JEDI-SDL идет даже олдскульная игрушка для демонстрации возможностей, подробнее об этом деле на сайте JEDI-SDL : Pascal headers for SDL. Проект вполне живой, последний апдейт был в мае этого года. Хотя у меня сложилось впечатление, что Дельфи не самый популярный язык для игродела (говорю по результатам гугления). Но кое-какая активность в Сети все-таки отслеживается, так что помощь есть где искать.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 10 Sep 2013, 04:00 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
Quote:
Сейчас вся эмуляция выведена на таймер, стандартный , который глючит и очень зависит от ресурсов машины, по этому подумываю про Directx
Есть альтернативный вариант, популярный в игроделе, - SDL. Вот что пишут в Вики:
Quote:
Simple DirectMedia Layer (SDL) — это свободная кроссплатформенная мультимедийная библиотека, реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ. Данная библиотека активно используется при написании кроссплатформенных мультимедийных программ (в основном игр).

Официально поддерживаются операционные системы: Linux, Microsoft Windows, Mac OS X, iOS и Android[2].

SDL API доступны для языков: C, C++, C#, VB.NET, D, Ada, Vala, Eiffel, Haskell, Erlang, Euphoria, Java, Lisp, Lua, ML, Pascal, Perl, PHP, Pike, Python и Ruby.
Я традиционно радею за кроссплатформенность, поскольку с iOS и Android у нас дело швах.
использовал я как то SDL для Windows Mobile, скорость тогда не очень понравилась... вообще все таки склоняюсь больше к DirectX, без всяких сторонних приблуд .....
скоро выходит delphi XE5 , там вроде есть поддержка iOs и Android, попробую там что нибудь скомпилить , а потом Directx буду домучивать. Еще есть Lazarus .... кстати я с него версию эмулятора пробовал делать на WindowsMobile, там тоже обещают поддержку Android.


Top
   
PostPosted: 10 Sep 2013, 07:00 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Еще есть Lazarus ....
Я сходил на сайт Lazarus, с удивлением обнаружил, что там предлагают использовать фрипаскаль для разработки веб-приложений. Это меня натолкнуло на такую мысль: здорово было бы добавить в эмулятор поддержку глобальной таблицы рекордов. Теперь разъясню. При запуске игрушки эмулятор сначала делает обращение к веб-сервису, откуда получает инфу по игре (таблицу рекордов, адреса ячеек памяти, где хранится счет, условия опознания ситуации окончания игры, правила подсчета некоего всепланетного рейтинга игроков ПК-01, к примеру), после чего происходит запуск игрушки. Когда партия окончена, на тот же веб-сервис уходит инфа о результатах. Пока вижу в этом предложении одну трудность - идентификация клиентcких запросов веб-сервисом, чтобы избежать накруток и мухлеваний. Откровенно говоря, ничего серьезного в этой проблеме нет, но надо будет повозиться. К примеру, при запросе инфы об игре клиент получает токен (тот же SHA1 от логина/пароля) с ограниченным сроком годности, который после добавляет к каждому запросу. Тут надо подумать над сокрытием урла, куда клиент будет стучаться, чтобы избежать ддоса, но это тоже решаемо.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 10 Sep 2013, 12:51 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Ну, веб-реквест можно и из под Бейсика, наверное, запустить. Поддержать на сайте тоже не самая большая проблема. А вот насчет секьюрности, тут главная проблема даже не в сокрытии, и прочей лабудой с пересылкой данных. Любой пользователь себе может подправить в эумле пару ячеек памяти, и получить 100500 очков. Впринципе, он это может легко сделать и сейчас. Бороться с таким проявлением жульничества крайне трудно. Скорее всего, единственный 100% выход - это вынос логики эмулятора на сервер. Но у меня нет такого сервака, чтобы его так нагрузить.


Top
   
PostPosted: 10 Sep 2013, 21:03 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
использовал я как то SDL для Windows Mobile, скорость тогда не очень понравилась...
Насколько я уразумел, SDL это тонкая прослойка прежде всего над OpenGL и DirectX, так что вряд ли там тонны кода. Возможно, причина тормозов была в слабом железе? Или старой версии? Как трактовать слова "скорость тогда не очень понравилась"?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 11 Sep 2013, 03:30 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
Quote:
использовал я как то SDL для Windows Mobile, скорость тогда не очень понравилась...
Насколько я уразумел, SDL это тонкая прослойка прежде всего над OpenGL и DirectX, так что вряд ли там тонны кода. Возможно, причина тормозов была в слабом железе? Или старой версии? Как трактовать слова "скорость тогда не очень понравилась"?
Я так понимаю SDL это отличное и от OpenGL и от DirectX, причем вроде как OpenGL планировали использовать. Просто пробовал через чистый Api и SDL скорость была одинаковая, вобщем ни какой аппаратной поддержки.


Top
   
PostPosted: 11 Sep 2013, 03:46 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Я так понимаю SDL это отличное и от OpenGL и от DirectX, причем вроде как OpenGL планировали использовать. Просто пробовал через чистый Api и SDL скорость была одинаковая, вобщем ни какой аппаратной поддержки.
Хм, но Вики рисуют такое:
Image
Источник

Вроде бы какбэ декоратор получается...

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 11 Sep 2013, 03:49 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
...Это меня натолкнуло на такую мысль: здорово было бы добавить в эмулятор поддержку глобальной таблицы рекордов....
Это все реализуемо, и я об этом давно уже подумывал , но именно вот это
Quote:
...Поддержать на сайте тоже не самая большая проблема. А вот насчет секьюрности, тут главная проблема даже не в сокрытии, и прочей лабудой с пересылкой данных. Любой пользователь себе может подправить в эумле пару ячеек памяти, и получить 100500 очков. Впринципе, он это может легко сделать и сейчас. Бороться с таким проявлением жульничества крайне трудно. Скорее всего, единственный 100% выход - это вынос логики эмулятора на сервер. Но у меня нет такого сервака, чтобы его так нагрузить.
и лишает всего кайфа


Top
   
PostPosted: 11 Sep 2013, 03:51 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
Quote:
Я так понимаю SDL это отличное и от OpenGL и от DirectX, причем вроде как OpenGL планировали использовать. Просто пробовал через чистый Api и SDL скорость была одинаковая, вобщем ни какой аппаратной поддержки.
Источник

Вроде бы какбэ декоратор получается...
Quote:
Если вы когда-нибудь пытались программировать графику в операционной системе DOS, то наверно знаете, что большая часть кода - это низкоуровневая работа с портами ввода-вывода, прерываниями и т.п. С одной стороны это интересно, но в то же время такая работа очень сложна и код получается абсолютно непереносимый на другие платформы. В нормальных ОС непосредственный доступ к регистрам железа крайне ограничен или невозможен. Работа осуществляется посредством драйверов. Работа с драйвером все еще сложна, особенно для начинающих. По этой причине появляются библиотеки, которые являются прослойкой между вашей программой и драйверами устройств. Такие библиотеки значительно облегчают жизнь и позволяют писать простой код. Но библиотека библиотеке рознь. И так, разрешите представить - Simple DirectMedia Layer.
Иначе - SDL. Библиотека предоставляет доступ к видео и аудио оборудованию вашего компьютера, а также к устройствам ввода, таким как мышь, клавиатура и джойстик. Эту библиотеку используют в самых различных программах, начиная от MPEG-проигрывателей и заканчивая эмуляторами. Но по большей части SDL используется для создания игр. Например таких как Tribes и Civilization: Call to Power. Вот скриншоты:

SDL по своим возможностям очень напоминает Microsoft DirectX API. Но поддерживает большое число операционных систем (то есть ваши программы будут работать в нескольких операционных системах) и имеет интерфейс с многими языками программирования. Библиотека написана на Си (хотя прекрасно работает с С++), но поддерживает очень много других языков, даже такие как Perl, Python и PHP! Поддерживаемые операционные системы: Linux, BeOS, MacOS, Solaris, FreeBSD, IRIX, Win32. Распространяется библиотека по лицензии GNU Lesser General Public License version 2. Это означает, что вы можете без проблем создавать коммерческие программы.
SDL создал замечательный человек Sam Lantinga, который работает в компании Blizzard Entertainment и работал в компании Loki Entertainment Software ведущим программистом. История SDL начинается с времен, когда Сэм работал над программой эмулятором Макинтош для Windows. Он заметил, что многие куски кода без проблем могут работать в Linux. И он решил создать небольшую библиотеку, чтобы ей могли воспользоваться другие программисты. В октябре 1997 был выпущен релиз библиотеки с версией 0.3, а позже эту библиотеку во всю использовала компания Loki Software для портирования игр под Linux.
Как говорит Сэм, сравнивать SDL и DirectX все равно что сравнивать апельсин и яблоко. Единственное сходство в том, что это фрукты. SDL предоставляет значительно более простой API, чем DirectX. SDL изначально создана для 2D-графики и не имеет непосредственно функций для 3D-графики, но прекрасно дружит с OpenGL. Для поддержки сетевых функций можно использовать библиотеку SDL_net.
Конечно, выбор библиотеки для своего проекта - личное дело каждого, но все-таки SDL является бесспорным лидером для создания игр или мультимедиа-программ. Если вы не хотите использовать SDL для своей игры, то все равно рекомендую ознакомиться с приемами работы с библиотекой, чтобы повысить уровень своего образования.
Видимо это все таки свое , низкоуровневое , просто есть возможность под разные системы использовать их " прокладки" :D


Top
   
PostPosted: 13 Sep 2013, 08:00 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Очередная версия !!! :D

1. Кучу багов убрал
2. MRU лист сделал
3. Ассемблер прибабахал
4.Добавил настройки
(отключать звук при запуске)
Запуск программы Basic автоматом


Attachments:
LVOVulator.rar [554.82 KiB]
Downloaded 332 times
Top
   
PostPosted: 13 Sep 2013, 09:02 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Очередная версия !!! :D
Бегло посмотрел под wine, сразу же поймал баг. После запуска звук в эмуляторе отключен, я нажимаю пиктограмму с динамиком, звук включается, после я повторно нажимаю для отключения, а эмулятор в ответ падает. В консоль выпадает такое сообщение:
Code:
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:seh:setup_exception_record stack overflow 1920 bytes in thread 0024 eip 7ef6532a esp 00ba0bb0 stack 0xba0000-0xba1000-0xca0000
Segmentation fault
Настоящая проблема в том, что этот баг не всегда воспроизводится... Трудно даже понять, куда копать, чтобы его забороть. Все-таки это wine.

Остальное по мелочи:
1) Пиктограмма включения виртуальной клавиатуры ее включает, но не выключает.
2) Непонятно, что с джойстиком, как он должен работать.
3) При попытке видеозаписи выдает сообщение, что "No compressor for cvid available", хотя раньше все работало без проблем (вроде бы, если я не путаю с mess).
4) Скриншоты по-прежнему в .jpg, хотя Антон обращал внимание, что для ПК-01 лучше всего .png/.gif, иначе заметны искажения картинки.
5) В ассемблере есть пункт меню Setup, но что он делает непонятно. Просто красуется?

Это все, что бросилось в глаза при беглом просмотре.

Напоследок рацпредложение. Предлагаю в название выкладываемых архивов добавлять текущую версию продукта. Насколько я понял, в "About" она фигурирует, значит учет версий идет. Сейчас это версия 0.97.

p.s.
И кракозябры...

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 215 posts ]  Go to page Previous 16 7 8 9 1015 Next

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 4 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:
cron
Powered by phpBB® Forum Software © phpBB Limited