Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2013, 15:16   #11
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от xrob Посмотреть сообщение
Кстати, Beermonza, я охренел с вашей графики!
По-ходу игра лучше многих других не любительских проектов...
Но что-то, знаете-ли, глаза режет...
Какая-то маленькая деталь, которая привязывает игру к категории самоделок...
У вас проработаны картинки, предметы, фоны менюшек все в одном таком древнем стиле,
а вот текст - новенький! =) четкие, ровные, сочные, яркие буковки... особенно циферки.
Вот это и напрягает. как-то это выбивается из общего контекста...
А еще - стык домов и земли. Четкая граница, бросается в глаза, что дом сверху наложен, а не стоит на земле,
вот был бы какой-нибудь плавный переход, как, например трава-песок, или песок-вода - смотрелось бы реалистичнее.
Спасибо. Это всего лишь альфа-версия, я отметил выше, поэтому там много чего можно сделать ...чтобы дома реалистично стояли на грунте нужно потратить на моделирование от двух недель до месяца, дополняя деталями стандартные коробки.

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

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

Применительно к автору темы. Его проект непомерно жрёт ресурсы (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.
Beermonza вне форума Ответить с цитированием
Старый 08.05.2013, 15:36   #12
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

судя по 99% загрузке процессора, у него на while true отрисовка...
xrob вне форума Ответить с цитированием
Старый 08.05.2013, 15:50   #13
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от xrob Посмотреть сообщение
судя по 99% загрузке процессора, у него на while true отрисовка...
Просто использован Canvas на вывод мелких кусочков на экран, причём каждый такт заново, даже если изменений в фоне нет. Это неправильно. Пусть покажет код отрисовки.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 08.05.2013, 18:17   #14
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

Beermonza, а у вас OpenGL ?
xrob вне форума Ответить с цитированием
Старый 08.05.2013, 22:24   #15
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от xrob Посмотреть сообщение
Beermonza, а у вас OpenGL ?
Нет. Участок оперативной памяти под видеобуфер, отрисовка игрового кадра с помощью ассемблерных вставок, использующих MMX и SSE регистры процессора, и вывод в форму одной функцией BitBlt из библиотеки GDI (MS Windows) через контекст.

Можно и блитингом легко снизить загрузку CPU.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 09.05.2013, 10:56   #16
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Beermonza, в вашем проекте вся нагрузка идёт на CPU? Видяха вообще не используется? Или я чего-то не понял?
Kix.IV вне форума Ответить с цитированием
Старый 09.05.2013, 12:23   #17
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

Kix.IV, Debug сменил на Release, теперь весит 3 мб экзешник.

ROD, резкую прокрутку постараюсь убрать. Картинки точно увеличу, их размер меня тоже немного напрягает. Насчет полноэкранности и GUI, в исправленной версии уже добавил.
Локации сделал наспех, поэтому они такие скучные, постараюсь их сделать лучше. Тайлики также поменяю.
Насчет совершенных действий, эта идея мне понравилась.
Названия предметов менять по падежам будет не сложно, ведь я уже сделал, чтобы префиксы у предметов (типа Магический, Легендарный) менялись по родам.

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

xrob, за исходник спасибо, пока посмотреть не могу, сижу на iPad'е, а на компе инета нет. While true не использую, использую таймеры.

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

Последний раз редактировалось ruN00b; 09.05.2013 в 15:23.
ruN00b вне форума Ответить с цитированием
Старый 09.05.2013, 12:40   #18
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от ruN00b Посмотреть сообщение
xrob, за исходник спасибо, пока посмотреть не могу, сижу на iPad'е, а на компе инета нет. While true не использую, использую таймеры.
К стати, хочу заметить, что просчитывать "мир" и вообще все поведение игры желательно отдельно от отрисовки. Например у вас один цикл (или таймер) опрашивает клавиатуру 10 раз в секунду (это например!), рассчитывает движения, атаки и т.п., а второй цикл (или таймер) периодически отрисовывает мир. (разумеется циклы должны быть в разных потоках)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 09.05.2013, 15:22   #19
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

Если вы это мне, то я так и делаю.
ruN00b вне форума Ответить с цитированием
Старый 09.05.2013, 16:18   #20
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Kix.IV
Beermonza, в вашем проекте вся нагрузка идёт на CPU? Видяха вообще не используется? Или я чего-то не понял?
"Ресурсная молотилка" видокарты не используется. Нацел на видеокарты с размером памяти 8М (собственной), ...это 50% ноутбуков, с видяхой типа X3100. Работает быстрее OpenGL в моей спецификации имея при этом огромные ресурсы оперативной памяти (текстуры с анимацией весят очень много).

Цитата:
Сообщение от ruN00b
Цитата:
Сообщение от ROD
К стати, хочу заметить, что просчитывать "мир" и вообще все поведение игры желательно отдельно от отрисовки. Например у вас один цикл (или таймер) опрашивает клавиатуру 10 раз в секунду (это например!), рассчитывает движения, атаки и т.п., а второй цикл (или таймер) периодически отрисовывает мир. (разумеется циклы должны быть в разных потоках)
Если вы это мне, то я так и делаю.
Этот подход неверный для 2D игр. Он и является причиной мерцания и подёргивания изображения. В чем проблемы? ...очень просто всё. Если есть отдельный таймер на отображение буфера в форму и он отвязан от игрового таймера, то картинка выводится "невпопад", невзирая на то, готов кадр или ещё не успел отрисоваться в буфер. Мы видим иногда "прошлый" буфер подряд несколько раз или отсутствие изображения, поскольку таймер "схватил" момент когда буфер был очищен и на него только начали отрисовываться объекты. Т.е. задержка отрисовки в буфер может сильно портить картинку.

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

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

Совершенно другое дело если у вас on-line 2D, где сервер "живет своей жизнью" и проблемы тормозности клиентских приложений даже не рассматриваются, т.е. при нормальной работе приложения не учитывается процент загаженности стэка сторонними программами в системе пользователя, которые и дают подтормаживание клиента игры.

3D и видеокарта, работающая на производительность FPS тут никаким боком, поэтому не рассматриваем.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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