|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.05.2013, 15:16 | #11 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Со шрифтами та же картина. Чтобы не убивать время я просто использовал готовые наработки, поскольку вывод символов тоже по собственноручной технологии. Попробуйте поискать в Интернете скрины альфа-версий известных вам игр, и если заметите расхождение с финальными, то это и есть то, о чем я говорю Применительно к автору темы. Его проект непомерно жрёт ресурсы (60-70% CPU Intel Core 2 Duo 1.8 GHz) при этом практически ничего не выполняя сложного. Мой проект имея 5 слоёв и текстуры не в пример большего размера забирает только 10-14% CPU. Нужно смотреть код отрисовки. ruN00b, можете показать кусок кода на отрисовку? ...есть реальный шанс получить помощь.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 08.05.2013 в 15:52. |
|
08.05.2013, 15:36 | #12 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
судя по 99% загрузке процессора, у него на while true отрисовка...
|
08.05.2013, 15:50 | #13 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Просто использован Canvas на вывод мелких кусочков на экран, причём каждый такт заново, даже если изменений в фоне нет. Это неправильно. Пусть покажет код отрисовки.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
08.05.2013, 18:17 | #14 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
Beermonza, а у вас OpenGL ?
|
08.05.2013, 22:24 | #15 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Нет. Участок оперативной памяти под видеобуфер, отрисовка игрового кадра с помощью ассемблерных вставок, использующих MMX и SSE регистры процессора, и вывод в форму одной функцией BitBlt из библиотеки GDI (MS Windows) через контекст.
Можно и блитингом легко снизить загрузку CPU.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
09.05.2013, 10:56 | #16 |
Участник клуба
Регистрация: 11.08.2012
Сообщений: 1,226
|
Beermonza, в вашем проекте вся нагрузка идёт на CPU? Видяха вообще не используется? Или я чего-то не понял?
|
09.05.2013, 12:23 | #17 |
Почетный нуб
Форумчанин
Регистрация: 07.05.2013
Сообщений: 155
|
Kix.IV, Debug сменил на Release, теперь весит 3 мб экзешник.
ROD, резкую прокрутку постараюсь убрать. Картинки точно увеличу, их размер меня тоже немного напрягает. Насчет полноэкранности и GUI, в исправленной версии уже добавил. Локации сделал наспех, поэтому они такие скучные, постараюсь их сделать лучше. Тайлики также поменяю. Насчет совершенных действий, эта идея мне понравилась. Названия предметов менять по падежам будет не сложно, ведь я уже сделал, чтобы префиксы у предметов (типа Магический, Легендарный) менялись по родам. Beermonza, как я уже выше сказал, интерфейс уже добавил в исправленной версии. Идея о блоке мне по душе, наверное, добавлю как нибудь. Сценарий в игре добавлять не буду, пока не начну работу над квестами. xrob, за исходник спасибо, пока посмотреть не могу, сижу на iPad'е, а на компе инета нет. While true не использую, использую таймеры. Хотелось бы поблагодарить этих форумчан за то, что откликнулись и помогли. Поправленную версию постараюсь выложить к сегодняшнему дню. Последний раз редактировалось ruN00b; 09.05.2013 в 15:23. |
09.05.2013, 12:40 | #18 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
К стати, хочу заметить, что просчитывать "мир" и вообще все поведение игры желательно отдельно от отрисовки. Например у вас один цикл (или таймер) опрашивает клавиатуру 10 раз в секунду (это например!), рассчитывает движения, атаки и т.п., а второй цикл (или таймер) периодически отрисовывает мир. (разумеется циклы должны быть в разных потоках)
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
09.05.2013, 15:22 | #19 |
Почетный нуб
Форумчанин
Регистрация: 07.05.2013
Сообщений: 155
|
Если вы это мне, то я так и делаю.
|
09.05.2013, 16:18 | #20 | |||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Цитата:
В 2D играх при известном интервале анимации (число кадров в секунду всегда известно) нет смысла выводить на экран одно и то же изображение, если ни один из объектов не изменил свой кадр. Кадры изменяются только по прошествии просчёта модели мира и, следовательно, вывод кадра в форму нужно производить в самом конце просчета модели, т.е. в том же игровом таймере в конце его кода. Если вы перегрузите процесс вычислениями, то игрок максимум что увидит - это подтормаживание игры, при этом не потеряет контроль над ней. Если отображение выведено в отдельный поток и производится по собственному таймеру, то при перегрузке сцены игрок будет видеть "урывки" действий других персонажей, даже не замечая атаки и пропуская урон, это так называемая - дискретизация. Для однопользовательской 2D игры дискретизация считается дурным тоном. Совершенно другое дело если у вас on-line 2D, где сервер "живет своей жизнью" и проблемы тормозности клиентских приложений даже не рассматриваются, т.е. при нормальной работе приложения не учитывается процент загаженности стэка сторонними программами в системе пользователя, которые и дают подтормаживание клиента игры. 3D и видеокарта, работающая на производительность FPS тут никаким боком, поэтому не рассматриваем.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi RPG | ruN00b | Мультимедиа в Delphi | 1 | 07.05.2013 09:40 |
RPG-SpaceInvaders | revaldo666 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 9 | 08.02.2012 18:04 |
Delphi-клиент для Online RPG "Dragon Knight" | apromix | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 0 | 23.05.2009 12:48 |
3D-RPG | Кронос | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 25 | 12.05.2007 11:21 |