forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Blitz3d C++ или обычный Basic? (http://forum.boolean.name/showthread.php?t=8151)

Aceton 05.04.2009 19:08

Blitz3d C++ или обычный Basic?
 
Вложений: 1
Ну собственоо дошел в познании блица до момента когда надо делать гуи,тени и прочее....

Ну и тут провели тесты - скажем каждый кадр выводить 1000 слов "Hello world" за кадр - 9 фпс+народ подсказал что блиц сдк кривой

Вопрос такой - что лучше юзать Blitz3d C++ или обычный Basic?

В данный момент юзаю Блиц сдк на С++

Написал вот это :
-управление:перемещение мышки+ЛКМ+пробел

-=Jack=- 05.04.2009 19:15

Ответ: Blitz3d C++ или обычный Basic?
 
Обычный блиц пашед быстрее. А подключая его к другому языку ты расширяешь возможности(хотя их можно расширить и созданием либ).

HolyDel 05.04.2009 19:23

Ответ: Blitz3d C++ или обычный Basic?
 
Обычный блиц пашет медленнее. Но к нему можно подрубить внешние либы, которые позволяют как расширить его функционал, так и ускорить некоторые узкие места (система частиц, вывод текста, 2д графика)

Aceton 05.04.2009 19:24

я читал гдето что ядро блица написано как раз на С++, но СДКшка это не оригинальное ядро))) вц потому и глючит

ну тогда по сути можно подрубить эти же либы и к СДК и будет работать еще быстрее чем Блиц бесик+либы

ffinder 05.04.2009 20:57

Ответ: Blitz3d C++ или обычный Basic?
 
для GUI я написал свою либу, и свой рендер текста (битмап), производительность нормальная. т.е. на "обычном Блице" тоже можно писать.

пруфлинк: http://www.fortsgame.ho.ua/blitz/111...1111111111.zip

Aceton 05.04.2009 21:00

Ответ: Blitz3d C++ или обычный Basic?
 
да уж, сеня курил ОГРА - движок прикольный , тока вскрыл мне мозг )))

даж не знаю))) над напрячься и его изучить или мучаться на блице все прикручивать

HolyDel 05.04.2009 21:13

Ответ: Blitz3d C++ или обычный Basic?
 
ffinder, у тебя там как вывод текста устроен? по букве, по слову, по фразе или весь экран сразу?
Надо сказать что работает ну очень шустро.

Данил 05.04.2009 21:27

Ответ: Blitz3d C++ или обычный Basic?
 
ыы, размер файла 666 кб

Aceton 05.04.2009 22:22

Ответ: Blitz3d C++ или обычный Basic?
 
при изучении огра нашел оч важную штуку! огр может отказаться работать на старых видюхах или сильно их грузить! там вроди оптимально выше жифорса 5600.

пришел к выводу - что буду юзать всетаки блиц!
Так как я пишу на С++, то надо просто найти сдк этих либ или конвертнуть их в исходник и напрямую включить в проект! Накрайняк буду вызывать из библиотек - но это будет криво и немного тормозно.

Можно сказать как будто я открыл Америку для себя прям)))

Вообщем блиц THE best

P.S. Кто видел исходники FastImage FastText etc оставьте линк

-=Jack=- 05.04.2009 23:23

Ответ: Blitz3d C++ или обычный Basic?
 
>Обычный блиц пашет медленнее.
Разве? Вроде много раз видел, как утверждали обратное...
>исходники FastImage FastText etc
размечтался...

HolyDel 05.04.2009 23:26

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Разве? Вроде много раз видел, как утверждали обратное...
ну, я имею ввиду обычный блиц без дополнительных библиотек. даже если считать что рантаймы работают одинаково, остается еще скрипт-машина, которая ну никак не может соперничать с C++ в плане производительности.

ffinder 05.04.2009 23:30

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102892)
ffinder, у тебя там как вывод текста устроен? по букве, по слову, по фразе или весь экран сразу?
Надо сказать что работает ну очень шустро.

весь GUI генерится каждый кадр в один surface. одна текстура на гуевый скин и шрифты (типа атлас). чего ж ему медленно работать?
а вобще я рад, что ты оценил;)

ffinder 05.04.2009 23:33

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102907)
ну, я имею ввиду обычный блиц без дополнительных библиотек. даже если считать что рантаймы работают одинаково, остается еще скрипт-машина, которая ну никак не может соперничать с C++ в плане производительности.

ИМХО нет в Блице никакой скрипт-машины. компиляция с тривиального языка (Блиц бейсик проще даже чем plain C) и последующая линковка объектника в exe содержащий движок.

ABTOMAT 05.04.2009 23:38

Ответ: Blitz3d C++ или обычный Basic?
 
чито-то мне тоже так кажется что всё компилируется в исполняемый код

HolyDel 06.04.2009 00:55

Ответ: Blitz3d C++ или обычный Basic?
 
сравните

Код:

Dim a(1000)
For i = 1 To 1000000
a(i Mod 1000) = i/1000
Next

и
Код:

int a[1000];
for(int i=0;i<1000000;++i)
a[i%1000] = i/1000;

что будет быстрее, а почему? если компилируется в одинаковый исполняемый код?
со скрип тамшиной я наверное погорячился, но исполняемый код генерируемый блицом несколько медленнее аналогичного кода генерируемого компилятором плюсов.

blitz дает 43 фпс
C++ дает 800 фпс.

ABTOMAT 06.04.2009 01:07

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102920)
сравните

Код:

Dim a(1000)
For i = 1 To 1000000
a(i Mod 1000) = i/1000
Next

и
Код:

int a[1000];
for(int i=0;i<1000000;++i)
a[i%1000] = i/1000;

что будет быстрее, а почему? если компилируется в одинаковый исполняемый код?
со скрип тамшиной я наверное погорячился, но исполняемый код генерируемый блицом несколько медленнее аналогичного кода генерируемого компилятором плюсов.

blitz дает 43 фпс
C++ дает 800 фпс.

Ладно, мы поняли

Блиц отстой,
Бэйсик - параша,
Сяхе - хой,
Россия наша!

Venom2 06.04.2009 04:01

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102920)
сравните

Код:

Dim a(1000)
For i = 1 To 1000000
a(i Mod 1000) = i/1000
Next

и
Код:

int a[1000];
for(int i=0;i<1000000;++i)
a[i%1000] = i/1000;

что будет быстрее, а почему? если компилируется в одинаковый исполняемый код?
со скрип тамшиной я наверное погорячился, но исполняемый код генерируемый блицом несколько медленнее аналогичного кода генерируемого компилятором плюсов.

blitz дает 43 фпс
C++ дает 800 фпс.

Компилятор блица не оптимизирующий, отключи оптимизацию у сишного компилятора и получишь практически одинаковый генерируемый код:
Блиц:
Код:

;For i = 1 To 1000000
00D9009A: 30304439303039    mov [ebp-04h], 00000001h
00D900A1: 3030443930        jmp 00D900E6h
;x = i / 1000
00D900A6: 303044            mov eax, [ebp-04h]
00D900A9: 3030443930        mov ecx, 000003E8h
00D900AE: 30                cdq
00D900AF: 3030              idiv ecx
;y = i Mod 1000
00D900B1: 303044            mov [ebp-08h], eax
00D900B4: 303044393030      sub esp, 00000008h
00D900BA: 303044            mov ebx, [ebp-04h]
00D900BD: 303044            mov [esp], ebx
00D900C0: 3030443930304330  mov [esp+04h], 000003E8h
00D900C8: 3030              mov eax, ebx
00D900CA: 3030443930        call 00946C20h
;a(y) = x
00D900CF: 3030              mov ebx, eax
00D900D1: 303044            mov eax, [ebp-08h]
00D900D4: 303044            shl ebx, 02h
00D900D7: 303044393030      add ebx, [00D9010Ch]
00D900DD: 3030              mov [ebx], eax
;Next
00D900DF: 30304439303044    add [ebp-04h], 00000001h
00D900E6: 30304439303045    cmp [ebp-04h], 000F4240h
00D900ED: 303044393030      jle 00D900A6h

VS9 без оптимизаций:
Код:

;for(int i=0;i<1000000;++i)
00005c745fc00000000  mov DWORD PTR _i$2529[ebp], 0
0000ceb09            jmp SHORT $LN3@main
                      $LN2@main:
0000e8b45fc          mov eax, DWORD PTR _i$2529[ebp]
0001183c001          add eax, 1
000148945fc          mov DWORD PTR _i$2529[ebp], eax
                      $LN3@main:
00017817dfc40420f00  cmp DWORD PTR _i$2529[ebp], 000f4240H
0001e7d21            jge SHORT $LN4@main
;x = i / 1000;
000208b45fc          mov eax, DWORD PTR _i$2529[ebp]
0002399              cdq
00024b9e8030000      mov ecx, 000003e8H
00029f7f9            idiv ecx
y = i % 1000
0002b8bc8            mov ecx, eax
0002d8b45fc          mov eax, DWORD PTR _i$2529[ebp]
0003099              cdq
00031bee8030000      mov esi, 000003e8H
00036f7fe            idiv esi
;a[y] = x
00038890c9500000000  mov DWORD PTR ?a@@3PAHA[edx*4], ecx
;}
0003febcd            jmp SHORT $LN2@main
                      $LN4@main:

ЗЫ
И кстати да, то что в блице нет никакой скрипт-машины еще на старом форуме выяснили.

Ну и еще блиц страдает тем что большинство мат. операций вынесено в функции и их код не инлайнится.

HolyDel 06.04.2009 04:06

Ответ: Blitz3d C++ или обычный Basic?
 
а нафига мне VS9 без оптимизации если я могу использовать VS9 с оптимизацией?

кстати, как ты получил ASM листинг блица?

Venom2 06.04.2009 04:15

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102934)
а нафига мне VS9 без оптимизации если я могу использовать VS9 с оптимизацией?

Можешь, но это я к тому что твое сравнение некорректно.
Цитата:

Сообщение от HolyDel (Сообщение 102934)
кстати, как ты получил ASM листинг блица?

Дизассемблировал

HolyDel 06.04.2009 04:45

Ответ: Blitz3d C++ или обычный Basic?
 
а как корректно? обрубить половину возможностей сишного компилятора?

это все равно что сравнивать самолет и машину по скорости, но сказать чтобы самолет от земли не отрывался, а то нечестно, машина то на земле.

Venom2 06.04.2009 05:09

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102936)
а как корректно? обрубить половину возможностей сишного компилятора?

это все равно что сравнивать самолет и машину по скорости, но сказать чтобы самолет от земли не отрывался, а то нечестно, машина то на земле.

:) У этих компиляторов разные весовые категории, сравнивать не имеет смысла, и так понятно что мс компилятор лучше за счет оптимизатора.

FDsagizi 06.04.2009 09:21

Ответ: Blitz3d C++ или обычный Basic?
 
Т.к. блиц изночально был сделан под свой язык, и он достаточно стар и не развиваеться на с++ юзать блиц глупо!

на с++ есть куча других более вменяемых двигов.

Aceton 06.04.2009 10:33

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102920)
blitz дает 43 фпс
C++ дает 800 фпс.

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

ч.т.д.?:crazy:


Цитата:

Сообщение от FDsagizi (Сообщение 102944)
Т.к. блиц изночально был сделан под свой язык, и он достаточно стар и не развиваеться на с++ юзать блиц глупо!

на с++ есть куча других более вменяемых двигов.

а помоему не глупо, зато можно его выжать на полную +ОПП на С++ удобнее чем код блица обычный с кучей функций

jimon 06.04.2009 11:17

Ответ: Blitz3d C++ или обычный Basic?
 
Aceton
ты можешь наконец-то отличить движок от языка ?
"движок" blitz3d sdk так сказать используется в языке blitz3d
потому скорость работы движка что в blitz3d что в C++ ОДИНАКОВАЯ
а вот скорость выполнения твоего кода - разная

Aceton 06.04.2009 12:26

Ответ: Blitz3d C++ или обычный Basic?
 
jimon не цепляйся к словам, ясень пень подразумевается скорость выполнения кода! -> :wallbash: ты меня совсем в грязь втаптываеш такими фразами
Цитата:

Сообщение от jimon (Сообщение 102951)
Aceton
ты можешь наконец-то отличить движок от языка ?

:wallbash:

h1dd3n 06.04.2009 13:55

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от Aceton (Сообщение 102948)
...
а помоему не глупо, зато можно его выжать на полную +ОПП на С++ удобнее чем код блица обычный с кучей функций

Это то понятно... а другие движки попробывать не хочешь?

ffinder 06.04.2009 14:36

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от Aceton (Сообщение 102948)
да по большему счету сдк в итоге быстрее выйдет в разы, таких отличающихся по производительности мест полно
ч.т.д.?:crazy:
а помоему не глупо, зато можно его выжать на полную +ОПП на С++ удобнее чем код блица обычный с кучей функций

если нужно быстрее в разы - надо забыть про Блиц.
у Блица всего два сильных момента:
1. все "просто работает"
2. DX7
они же и отрицательные
1. если "просто не работает" то к Блицу прикрутить иногда становится в разы сложнее чем написать с нуля.
2. DX7

ЗЫ: С++,С++,С++ - запарил уже... на что у тебя скорости не хватает может покажешь?

Aceton 06.04.2009 14:55

Ответ: Blitz3d C++ или обычный Basic?
 
Почему С++? - я не хочу писать на обычном бесике
Про производительность - это просто рассуждения

h1dd3n 06.04.2009 15:05

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от Aceton (Сообщение 102961)
я не хочу писать на обычном бесике

Почему? Изза того что C++ это "круто" и "мощно"? Типа "бейсик это хрень устаревшая"? Мне кажется сначала надо изучить более простой язык и сделать на нем что нибудь законченное, а потом уже лезть в C++, имхо.

Aceton 06.04.2009 15:52

Ответ: Blitz3d C++ или обычный Basic?
 
зачем мне тратить время на *бесик* , если можно сразу делать все С++

И не надо смотреть на меня как на человека, который програмит 1й день.

Конечно С++ это круто и мощно! Тут даже спорить не о чем!



Уже давно смотрю в сторону огра, в нем нет таких проблем.
НО как уже писал выше Огр не тянет на видяхах ниже жифорса 5600, или работает на них неадекватно.

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

h1dd3n 06.04.2009 16:42

Ответ: Blitz3d C++ или обычный Basic?
 
Я кстати не хотел сказать что C++ это нифига не круто и не мощно, но сам подумай надо ли тебе это? И кстати я тебя уверяю все сидят и читают эту темы и знают ВСЕ ответы на твои вопросы, хотя на C++ не пишут... Это я к тому что может тебе все таки попробовать сначала на blitz3d покодить? тогда 99% вопросов отпадет =)

Aceton 06.04.2009 16:50

Ответ: Blitz3d C++ или обычный Basic?
 
неспорю что отпадет))) пробовал я на простом блице кодить ...

вопрос в том - почему все юзают простой? Нахожу только 1н ответ - для простого библиотек больше.

h1dd3n 06.04.2009 17:39

Ответ: Blitz3d C++ или обычный Basic?
 
o_o Просто все кто юзают блиц юзают его же компилятор, ибо блиц - простота, а простота = бейсик... А те кто кодит на C++ не юзат блиц - есть куда более современные и к тому же бесплатные движки, например огр, но про него ты и сам знаешь +)
(кстати насчет старых карт, я в екатеринбурге живу и не знаю ни одного человека у которого карточка ниже 6600, даже домохозякам 7600 ставят 8600 иногда)
P.S. те кто кодит на C++ ешё и свои движки умудряются писать =)

falcon 06.04.2009 17:48

Ответ: Blitz3d C++ или обычный Basic?
 
вообще мне кажется что весь подход относительно спора очень не правильный (нееекидайте помидоры!)

спорить о том что лучше С++ или Делфя или Блиц\Blitz SDK не правильно лиш по тому что все это лишь инструменты.
выбор зависит от поставленной задачи.
если тебе надо сделать небольшую но красивую и надежную казуалочку (с несложной логикой) то блиц + библиотеки (на мой скромный взгляд) самая замечательная вещь!

BlitzMAX на мой (все так же скромный ) взгляд тоже очень интересный инструмент, я бы использовал его для гораздо более серьезных проектов (казуальный или нет не имеет смысла... ради саморазвития пишу изометрическую РПГ в стили диаблы xd)

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

но разрабатывать такой проект на огре (с++) было бы гораздо удобнее(я не сказал легче)).
для игры типа "вопрос-ответ" можно использовать какой нибудь Pascal\qbasic.

все перечисленное всего лиш инструменты (языки, движки, софт...)
и не надо спорить что лучше.
такой спор может быть сродни подобного:
что круче - самолет или машина если надо СХОДИТЬ в соседний киоск за газетой?

Aceton 06.04.2009 18:08

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от falcon (Сообщение 102978)
в
но писать на том же б3д рпг было бы извращением.


это почему

falcon 06.04.2009 18:15

Ответ: Blitz3d C++ или обычный Basic?
 
Aceton
если ты задаеш этот вопрос то думаю опыта у тебя еще не так много.(только не восприми в обиду)

если хочешь узнать ответ - возми стандартый B3d и попробуй
просто попробуй :)

ABTOMAT 06.04.2009 18:27

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

но писать на том же б3д рпг было бы извращением.
Я извращенець :crazy: Сейчас буду пошлости говорить :rolleyes:

falcon 06.04.2009 18:38

Ответ: Blitz3d C++ или обычный Basic?
 
ABTOMAT
дык и я им был :)
но тебя понять то можно ты начал на б3д... ща бросать как то не оч

HolyDel 06.04.2009 19:45

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

да по большему счету сдк в итоге быстрее выйдет в разы, таких отличающихся по производительности мест полно
на самом деле есть одна тонкость. В РАЗЫ быстрее будет лишь просчет логики. Скорость рендера останется той-же, а если еще учесть что и без либ - то она будет еще ниже. К примеру у меня просчет логики занимал обычно 10-30% от всего времени. Т.е. ни об каком "в разы" для конечного приожения говорить смысла нет.

Лично я не вижу никакого смысла использовать blitz3d sdk под С++. (разве если только кому синтаксис с++ больше блицового нравится)
ООП? если так дорого ООП то зачем юзать чисто процедурный двиг?

Aceton 06.04.2009 21:13

Ответ: Blitz3d C++ или обычный Basic?
 
HolyDel мне тут выдвинули , что на б3д геморойно рпг сделать

G.A.D 06.04.2009 21:55

Ответ: Blitz3d C++ или обычный Basic?
 
всё реально сделать главное не лениться и знать толк в любом языке программирования,будь то с++,бейзик,или дельфи

falcon 06.04.2009 22:11

Ответ: Blitz3d C++ или обычный Basic?
 
Aceton
путаеш не реально с "геморойно"

HolyDel 07.04.2009 09:31

Ответ: Blitz3d C++ или обычный Basic?
 
я думаю РПГ-мейкер это единственное, на чем РПГ будет делать не геморойно. более того, С++ + blitz sdk имеют куда больше общего с блицом, чем, например blitz + xors.

Harter 09.04.2009 14:50

Ответ: Blitz3d C++ или обычный Basic?
 
>исходники FastImage FastText etc
На PureBasic'е есть...

>всё реально сделать главное не лениться и знать толк в любом языке программирования,будь то с++,бейзик,или дельфи

поправочка: главное лениться, т.к. лень - двигатель прогресса.
Единственное, надо что бы энтузиазм(или какой либо стимул работать) был выше лени.
Ибо:
Программист - тварь ленивая, но хитрая.

А то что, "лень двигатель прогресса" я на сообственной практике убеждался не мало раз...

Как заметил Олег, геморойно делать РПГ в любом случае, поетому вопрос стоит в производительности, рациональности, эффективности и т.д.

Aceton 09.04.2009 15:43

Ответ: Blitz3d C++ или обычный Basic?
 
P.S. ->05.04 курю огра ->09.04 докурился до уровня,до которого дошел в блице -> думаю перейти на огра


оказалось огр проще(хотя при 1м взгляде на движок кажется обратное!) и шире чем блиц ))

HolyDel 09.04.2009 15:46

Ответ: Blitz3d C++ или обычный Basic?
 
а как же насчет слабых видюх? ты вроде говорил что у огра проблемы с этим?

Aceton 09.04.2009 16:13

Ответ: Blitz3d C++ или обычный Basic?
 
Требования
Nvidia Geforce 2, 3, 4, fx, 6xxx, 7xxx, 8xxx
Ati Radeon 7xxx, 8xxx, 9xxx, Xxxx, X1xxx
intel SiS

были ложные данные

h1dd3n 09.04.2009 17:14

Ответ: Blitz3d C++ или обычный Basic?
 
o0 требования совсем не факт что двиг будет адекватно работать на разных видяхах (я имею ввиду что одна и та же программа может по разному работать на nvidia и ati'шных картах)... Хотя огр с исходниками и комьюнити у него очень очень большое так что если будет баг то мне кажется его сразу поправят =)


Часовой пояс GMT +4, время: 21:30.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot