Суббота, 03 Декабря 2022, 02:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » -Mikle- [196]
Результаты поиска
-Mikle-Дата: Пятница, 13 Апреля 2012, 13:35 | Сообщение # 121 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
PBPROG, похоже, что в PB массивах поменяны местами строки и столбцы, задай так:
Code
Map.l(767, 1023)

И во всех обращениях к массиву поменяй местами x и y.
trew, хорошо бы тоже сделать визуализацию, чтобы убедиться, что код правильно работает.
Quote
Ну вот , а то часто видел реплики в сети, что VB6 тормоз. Вот прямое доказательство обратного!

Факт. Сколько видел таких тестов, доказывающих тормознутость VB6, везде либо полная безсмыслица, либо навязывание чуждого для VB6 стиля программирования.


Сообщение отредактировал -Mikle- - Пятница, 13 Апреля 2012, 13:38
-Mikle-Дата: Пятница, 13 Апреля 2012, 12:01 | Сообщение # 122 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Да, я ставлю такие же оптимизации.
Проверил на Athlon64 3800+, VB6 довольно сильно вырвался вперёд:
vb6 - 0.0505
pb -0.0594
На интеле примерно такие результаты, как у тебя.
Табличку сделаю, только мне нужен EXE с QPC на PB.


Сообщение отредактировал -Mikle- - Пятница, 13 Апреля 2012, 12:02
-Mikle-Дата: Пятница, 13 Апреля 2012, 10:02 | Сообщение # 123 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Quote
после твоего поста запустил твой EXE, результаты

Почему тогда твои результаты на VB6 в 10 раз хуже моих?
На PB и FB примерно совпадают.
-Mikle-Дата: Пятница, 13 Апреля 2012, 09:05 | Сообщение # 124 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Ты в VB6 из среды запускал? Запускай EXE, желательно мой (или сам включи все оптимизации).
И от PB и FB хотелось бы EXE-шники, потестить на разных компах.
И GetTickCount очень неточен, чем не устроил QPC?
Ну и синтаксис у PB wacko , впервые вижу. Я так понял "\", этот аналог сишного "->"? Но почему тогда
Code
vP\x = *vPos\x + *vDir\x

а не
Code
*vP\x = *vPos\x + *vDir\x

?


Сообщение отредактировал -Mikle- - Пятница, 13 Апреля 2012, 09:13
-Mikle-Дата: Четверг, 12 Апреля 2012, 23:06 | Сообщение # 125 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
Сделал тест отдельной темой. Получилось, конечно, побольше 20-ти строк, но не так уж и много, тем более, что там простые действия, после копипаста и править почти ничего не понадобится.
-Mikle-Дата: Четверг, 12 Апреля 2012, 23:03 | Сообщение # 126 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Какой код в играх "съедает" основное время процессора? Рендер? Нет, рендерит видеокарта. Это физика либо логика ИИ.
При этом большей частью производятся простые действия (сложение, умножение, деление, сравнение) над игровыми данными.
А сами данные - это, как правило Single и Long, в "чистом" виде, в виде структур и массивов. При большом количестве игровых объектов, с ними работают через Quad или OcTree, это позволяет быстро отсеивать те объекты, которые обрабатывать не нужно (например, они находятся заведомо далеко). Обход Quad и Oc деревьев осуществляют, как правило, с помощью рекурсии.
Исходя из этого для измерения производительности для игр хорошо подходит тест - рисование простого фрактала, это те же самые действия, тоже рекурсия, такие же данные.
Вот проект на Visual Basic 6:
FrVB6
Его можно перевести полностью, а можно только это:

Измерять желательно чем-то более точным, чем GetTickCounter, отлично подходит QueryPerformanceCounter.
Результаты замеров:


Сообщение отредактировал -Mikle- - Воскресенье, 15 Апреля 2012, 09:58
-Mikle-Дата: Четверг, 12 Апреля 2012, 16:43 | Сообщение # 127 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
PBPROG, там GoSub... ужас. На VB6 это не оптимизируется. Тест действительно древний и не очень корректен. Я не хочу никого заставлять применять нетипичные для языка приёмы.
trew,
Quote
Я надеюсь там не на три листа(A4) писанины

Нет, строк 20 будет.
-Mikle-Дата: Четверг, 12 Апреля 2012, 16:36 | Сообщение # 128 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
Сегодня до полуночи выложу.
-Mikle-Дата: Четверг, 12 Апреля 2012, 16:20 | Сообщение # 129 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
К слову, о быстродействии. Опять вижу рекомендацию узкие места прописывать на "вставьте своё", когда-то мне советовали при программировании на VB6 узкие места выделять в DLL на PowerBasic (тот самый jungle советовал). Наконец, я провёл тест - и выяснил, что VB6 быстрее. Я не хочу спорить о преимуществах ООП или указателей, как программировать - это дело вкуса. Я не спорю, что VB6 - только под Винду. Я не вижу практического смысла в программе, выводящей собственный листинг.
Я хочу только выяснить, есть ли бейсик быстрее. Есть желающие присоединиться? Могу предложить простой тест, типично игровые вычисления, никакой привязки к ООП, ещё каким-нибудь особенностям.
-Mikle-Дата: Вторник, 13 Марта 2012, 20:25 | Сообщение # 130 | Тема: Вода и волны от предмета
Изобретатель велосипедов
Сейчас нет на сайте
Это не просто 2D, это хейтмэп - карта высот для 3D воды.
-Mikle-Дата: Вторник, 13 Марта 2012, 20:08 | Сообщение # 131 | Тема: Вода и волны от предмета
Изобретатель велосипедов
Сейчас нет на сайте
Интерактивные волны на VB6:
Waves
ЛКМ пускает волну, ПКМ включает дождь.


Сообщение отредактировал -Mikle- - Вторник, 13 Марта 2012, 20:10
-Mikle-Дата: Пятница, 09 Марта 2012, 13:10 | Сообщение # 132 | Тема: Передвижение машины
Изобретатель велосипедов
Сейчас нет на сайте
Quote (clidi)
CarX и CarY это центральная точка машины?

Да, точнее - центр тяжести.
Quote (clidi)
И как я понял у вашей машины 2 точки?

Это середина переднего и заднего бамперов, величины вспомогательные, если рендерить спрайт, то достаточно центральной точки и угла поворота Alpha (в радианах).
Это:
Code
x = (x - Int(x)) * Me.ScaleWidth   
y = (1 - y + Int(y)) * Me.ScaleHeight

Сделано, чтобы машина, выезжая за край, появлялась с другой стороны.
Quote (clidi)
Вместо this->getAngle() вставить alpha или как?

Скорее вместо этого:
((90+this->getAngle())*(PI/180.0f))


Сообщение отредактировал -Mikle- - Пятница, 09 Марта 2012, 16:05
-Mikle-Дата: Четверг, 08 Марта 2012, 09:59 | Сообщение # 133 | Тема: Передвижение машины
Изобретатель велосипедов
Сейчас нет на сайте
Quote (clidi)
как исправить так, чтоб скорость постоянно была положительной?

Скорость - это вектор, он не может быть положительным или отрицательным. Если имеется ввиду та_циферка_что_на_спидометре, то это модуль проекции скорости на вектор, направленный вдоль корпуса машины.
В моём 2D примере это модуль величины SpY после перевода величин в локальную систему координат автомобиля.
-Mikle-Дата: Вторник, 06 Марта 2012, 14:53 | Сообщение # 134 | Тема: Передвижение машины
Изобретатель велосипедов
Сейчас нет на сайте
clidi, вот простой пример автофизики на Visual Basic 6 с исходником:
ss2d
Управление:
a, z - сменить передачу
стрелка вверх - газ
стрелка вниз - тормоз
Вот, если надо, в 3D:
ss3d
но этот не запустится в Win Vista и новее, или нужно добавить и зарегистрировать dx8vb.dll.


Сообщение отредактировал -Mikle- - Вторник, 06 Марта 2012, 14:54
-Mikle-Дата: Среда, 25 Января 2012, 14:47 | Сообщение # 135 | Тема: SR2D, Софтверный движок для работы с 2D графикой. Релиз.
Изобретатель велосипедов
Сейчас нет на сайте
Давно занимаюсь разработкой софтверного движка 2D графики для VB6.

SR2D предназначен для использования при создании оконных 2D приложений. На настоящий момент SR2D состоит из модуля modSR2D, класса SR2D_Sprite и DLL - SR2D.dll. Класс SR2D_Sprite предназначен для хранения двумерного изображения с альфа каналом, различных его преобразований и отображения на форму или любой контрол, обладающий hDC.
Для использования необходимо подключить к проекту указанные модуль и класс, а DLL разместить в папке проекта. Движок не использует для работы никаких API, кроме SetDiBitsToDevice, используемой для вывода изображения на экран и нескольких ф-ций GDI+ для чтения и сохранения файлов.
SR2D.dll на 10% написана на C++ и на 90% на ассемблере с активным применением MMX. Это - набор API-подобных stdcall ф-ций.

Движок свободен для некоммерческого и коммерческого использования. Единственное условие - не переименовывать SR2D.dll.
То, что движок "для VB6" - не критично, модуль modSR2D и класс SR2D_Sprite фактически являются портом SR2D.dll для VB6, для использования SR2D с любым языком достаточно перевести порт.

Я только что зарелизил версию 3.1 SR2D, тут несколько небольших примеров:
SR2D_3_1
287 кБ.

Пока полноценного ReadMe нет, но можно смотреть старый ReadMe, от версии 2.0, изменения вполне логичны и понятны без доп. описания, тут движок, ReadMe и несколько примеров для версии 2.0:
SR2D_2_0
400 кБ.

Что нового по сравнению с версией 2.0:
1. Добавился оператор OpBlend (интерполяция источника и приёмника).
2. Теперь использовать маску можно не только с любым оператором, но и с MulAddS2X, ClearBuffer, MoveBit, MoveByte, DrawDPBM, DrawEBM.
3. В DrawDPBM добавился точечный источник света.
4. Загрузка из файла средствами GDI+, соответственно поддержка .bmp, .jpg, .png и т. д. форматов.
5. Сохранение в .bmp, .jpg, .png с альфаканалом (кроме .jpg) и без него.
6. При загрузке можно задавать трансформации - масштабирование (с фильтрацией), поворот, отражение.
7. Появился поворот спрайта на произвольный угол, в том числе с АА.
8. ColorKey теперь задаётся не только при загрузке, но и через метод AddColorKey. "Add" потому, что таких ключей можно задавать сколько угодно, все указанные цвета станут прозрачными.
9. Новый метод MaskInterSector позволяет находить площадь пересечения масок. Удобно применять для коллизий, задавая в качестве маски альфаканал.

Примеры готовых игр, на старой версии:
BriX
58 кБ.

FlyGame
74 кБ.
(блиц игра, написана за 4 часа)

Добавлено (04.11.2011, 14:09)
---------------------------------------------
Сделал пример рисования кистью и некоторых других технологий, применимых в графических редакторах:
Paint
и пример анимации:
Anim

Добавлено (24.11.2011, 10:16)
---------------------------------------------
Скринсейвер, фигуры Лиссажу в 3D:
Stars
Выключение по движению мышки я убрал специально.
Управление:
Space - смена рисунка.
Escape - выход.

Добавлено (25.01.2012, 14:47)
---------------------------------------------
Портировал третью версию SR2D на C# и vb.net.
Пример пока один - DPBM:
SR2D_CS
SR2D_NET


Сообщение отредактировал -Mikle- - Суббота, 04 Февраля 2012, 17:50
-Mikle-Дата: Пятница, 20 Января 2012, 10:53 | Сообщение # 136 | Тема: Управление роботом. Миниконкурс.
Изобретатель велосипедов
Сейчас нет на сайте
Quote
А когда будут подводится результаты конкурса?
Ведь конкурс объявлен, а потом все заброшено!

Мне как-то неудобно себя победителем объявлять :), да и конкурс из тех, которые можно не заканчивать.
У тебя, кстати, второе место, даже если учитывать многочисленные работы на GameDev.ru.
Моя DLL, кстати, тоже на бейсике, только это VB6.
-Mikle-Дата: Среда, 04 Января 2012, 22:15 | Сообщение # 137 | Тема: Управление роботом. Миниконкурс.
Изобретатель велосипедов
Сейчас нет на сайте
PBPROG, ты чуть раньше успел переступить порог 50000.
Но рекорд теперь мой - 53053:
http://www.gamedev.ru/files/?id=74548
-Mikle-Дата: Среда, 04 Января 2012, 11:07 | Сообщение # 138 | Тема: Управление роботом. Миниконкурс.
Изобретатель велосипедов
Сейчас нет на сайте
PBPROG, залей на нормальный хостинг, например:
http://www.188.ru/
http://narod.yandex.ru/
А то ждёшь минуту, смотришь рекламу, закрываешь попап окна - а потом видишь капчу, которую не можешь прочесть.
На GameDev, вроде как, побили порог 50к.
-Mikle-Дата: Понедельник, 02 Января 2012, 19:05 | Сообщение # 139 | Тема: Управление роботом. Миниконкурс.
Изобретатель велосипедов
Сейчас нет на сайте
Предлагаю приз - тому, кто до 23-59-59 6.01.2012 покажет РАБОТОСПОСОБНУЮ dll с лучшим результатом, каждый участник этого обсуждения плюсует в репу. dll со стороны не в счёт.
-Mikle-Дата: Понедельник, 02 Января 2012, 17:48 | Сообщение # 140 | Тема: Управление роботом. Миниконкурс.
Изобретатель велосипедов
Сейчас нет на сайте
Quote (Apati)
вот этот запустится?

Да, работает - 16846.
Quote (WTALKER)
посмотри у меня красивей

Оригинально выглядит, не подумал бы, что так можно двигаться. 12700.
На GameDev Zefick сделал 35553:
http://dl.dropbox.com/u/54090777/robot_35553.dll
Quote (WTALKER)
Я так понял можно анализировать данные: Pos,Spd,Frc ?

Конечно можно, для того они и даны.


Сообщение отредактировал -Mikle- - Понедельник, 02 Января 2012, 17:49
Форум игроделов » Записи участника » -Mikle- [196]
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг