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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2013, 08:51   #151
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

Ошибки я уже исправил, к примеру, Accessы на выходе, улучшил магазин, сделал настройки, сегодня днем буду уменьшать нагрузку на процессор, увеличивать FPS. Но предметы и квесты все таки сделаю, раз начал.
ruN00b вне форума Ответить с цитированием
Старый 02.06.2013, 00:19   #152
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

ruN00b, у тебя до сих пор отрисовывает Canvas.Draw, или уже иначе?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 02.06.2013, 15:05   #153
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

Нет, до сих пор Canvas.Draw, но, если дадите исходник отрисовки 2D текстур на джеле с комментариями, буду признателен.
ruN00b вне форума Ответить с цитированием
Старый 02.06.2013, 16:21   #154
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от ruN00b Посмотреть сообщение
Нет, до сих пор Canvas.Draw, но, если дадите исходник отрисовки 2D текстур на джеле с комментариями, буду признателен.
Я спросил с определённой целью. Раз до сих пор Canvas.Draw, то не имеет никакого значения какова аппаратная мощность видеокарты, хоть GeForce GTX 650 Ti, хоть Intel X3100. Отрисовка выполняется средствами библиотеки GDI, которая никакого отношения к аппаратным средствам видиокарт не имеет. Это банальное копирование участка памяти в страницу экрана. Аппаратка будет задействована с библиотеками OpenGL или DirectX.

Попробуй откомпилировать код игры и поставить метку на строчке с выводом изображения Canvas.Draw. В редакторе кода слева синие кружки напротив каждой строки, кликай по ним, будет красная метка остановки кода. Запускай проект из под Delphi. Как дойдет до метки, программа остановится, активируй поле кода и жми построчный переход по кодам F7, т.е. ты будешь "нырять" во все процедуры и функции которые проделываются в Canvas.Draw прежде чем изображение будет отрисовано. Ужаснись через какие перлы тебя пропустит универсальная его структура. Нажимать придётся раз 100. Этот код по-определению не может быть быстрым. В конце концов ты выйдешь на одну из команд GDI, называемую StretchBlt - это то же самое, что и BitBlt, только с дополнительным кодом масштабирования. Собственно обе команды ведут в один и тот же монолит ассемблерного кода, в разные его участки. StretchBlt, при равных размерах области отрисовки и масштабирования (без маштабирования) выполнит код BitBlt.

Я кидал тебе пример смены изображений, ...в этой теме даже вроде (гляну после того как напишу это сообщение). Как пользоваться прямым BitBlt там есть. А на счёт отрисовки в этот буфер, перед тем как BitBlt выведет изображение на экран, нужно посмотреть как на текущий момент это осуществляется.

...нашёл. Это в теме "Как вы относитесь к созданию игр на Delphi?": http://www.programmersforum.ru/showp...postcount=1207

Подсчёт кадров тоже штука тонкая. Преобразование в строку IntToStr и строковые операции String типа тащат за собой те же перлы, причём через Caption формы. Поставь так же точку останова и посмотри.

Считать FPS не нужно, смотри по загрузке CPU. Таймер ты выставил и при видимой плавности движения, без рывков, число кадров будет равным 1000 / интервал.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 02.06.2013 в 16:35.
Beermonza вне форума Ответить с цитированием
Старый 02.06.2013, 17:35   #155
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

https://www.google.ru/search?client=...hannel=suggest
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.06.2013, 18:40   #156
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
а насчет несворачивания, если вы имели ввиду невозможность закрытия, то ошибаетесь, а если именно свернуть, то я это специально сделал, чтоб игра не лагала.
Я весьма требовательные игры могу сворачивать и разворачивать, поверьте, не лагает.
Цитата:
Второе не понял, можете пояснить?
Картинка куда-то исчезла.
В общем, гг может находится на 1-2 клетки ниже чем моб, и при это спокойно атаковать его.
Цитата:
Вычисление FPS не может быть ошибочным, т.к. оно вшито в процедуру отображения кадра.
Мне кажется пока вы вычисляете FPS, вы уменьшаете его, ибо его вычисление тоже куча операций. Т.е. оно не идеально.
Цитата:
Регистрация, да, я хочу сделать игру многопользовательской, и давно спросил о сокетах, но никто не ответил
А почему именно на сокетах?
Кстати, в сети куча примеров по работе с ними.
Kix.IV вне форума Ответить с цитированием
Старый 02.06.2013, 22:31   #157
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

Пепел Феникса, сколько же вы времени потратили!
Я просил исходник с комментами, а гуглом, спасибо, пользоваться и сам умею.
Beermonza, это сколько де воемени надо потратить, просматривая каждый останов! Хотя, у меня его завались, так что попробую узнать, что лагает.
Кстати, инфо об отрисовке: она жрет всего 4 кадра! Узнал, закомментировав все, кроме отображения количества кадров. А значит, придется искать еще и за отрисовкой лаги.
Kix.IV, на одну выше или ниже может быть, я так сделал для мечей, а для посохов забыл убрать.
Вычисление FPS я описал здесь, и оно не такое сложное: есть секундный счетчик, обнуляющий значение и записывающий это значение в переменную fps, значение которой мы и видим на экране. А при каждом вызове процедуры WorldRefresh (отрисовки) это значение увеличивается на 1.
Сокеты - самая популярная для меня вещь, ее и прошу.
А насчет сворачивания, похоже, эта игра более требовательна.
ruN00b вне форума Ответить с цитированием
Старый 02.06.2013, 22:53   #158
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от ruN00b Посмотреть сообщение
Пепел Феникса, сколько же вы времени потратили!
Я просил исходник с комментами, а гуглом, спасибо, пользоваться и сам умею.
Beermonza, это сколько де воемени надо потратить, просматривая каждый останов! Хотя, у меня его завались, так что попробую узнать, что лагает.
Кстати, инфо об отрисовке: она жрет всего 4 кадра! Узнал, закомментировав все, кроме отображения количества кадров. А значит, придется искать еще и за отрисовкой лаги.
Kix.IV, на одну выше или ниже может быть, я так сделал для мечей, а для посохов забыл убрать.
Вычисление FPS я описал здесь, и оно не такое сложное: есть секундный счетчик, обнуляющий значение и записывающий это значение в переменную fps, значение которой мы и видим на экране. А при каждом вызове процедуры WorldRefresh (отрисовки) это значение увеличивается на 1.
Сокеты - самая популярная для меня вещь, ее и прошу.
А насчет сворачивания, похоже, эта игра более требовательна.
а зачем мне переписывать то что есть на других сайтах?
http://www.opengl.org.ru/books/open_gl/chapter5.4.html

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

хватит просить готовые коды.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.06.2013, 00:20   #159
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от ruN00b Посмотреть сообщение
Сокеты - самая популярная для меня вещь, ее и прошу.
В меню над страницей форума есть "Блог программистов", ищи статью "Создание клиент-сервера".
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 04.06.2013, 08:28   #160
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

Может, мне поступить так? Клиент дает серверу события вроде нажатия клавиши на клавиатуре, координаты мышки, нажаты ли левая и правая кнопка мыши, а сервер дает готовую картинку. Не будет лагать, если сервер мощный и быстрый?
ruN00b вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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