what are the weakness of blitz?

Blitz3D Forums/Blitz3D Beginners Area/what are the weakness of blitz?

matthews_30(Posted 2005) [#1]
i would want to know whta are the weakness of blitz to see how may i improve it with some tool, like SDL or any other.

Thanks,

matt.


puki(Posted 2005) [#2]
Well, you can write an occlusion system for it. A much improved lighting system.

If you get time then shader support would be nice.

Some DX9 features too.

More model format options.


Mustang(Posted 2005) [#3]
DXTC.


Ricky Smith(Posted 2005) [#4]
The person writing the code !


PowerPC603(Posted 2005) [#5]
One weakness is that you cannot use variable-sized arrays inside types.
They must be created by using a constant for their size.

A workaround is creating some sort of linked-list structure, so you can attach one object to a field, and inside that object, there are fields which point to other objects.


Matty(Posted 2005) [#6]
PowerPC603 - you can use banks though in a type which is, as far as I can tell, as good as using arrays. In some ways it is better as you can store data as bytes/shorts/ints/floats within the same bank unlike in an array.


Yeshu777(Posted 2005) [#7]
I use a string - and have used the string to number code in the archives.

The first element of the string tells you how many elements are in the string (array) - just have seperate each by a comma.

Easy enough to append a new value to the end of the string and update the first element.

Not pretty, but works for me.


Rook Zimbabwe(Posted 2005) [#8]
Newbies that won't ask the right question and whine when no one solves the problem for them!


PowerPC603(Posted 2005) [#9]
Matty, can you put handles or memory pointers to type-instances inside a bank?
I haven't worked yet with banks, so I don't know what they are capable off.

I have a TStation type (which is an instance of a spacestation), and it needs to hold pointers or references (or whatever you call them) to other type-instances (TWare objects).
This allows me to define the available wares onboard each station, while each ware can have it's own price at a specific spacestation.
If the station has a pointer (or reference) to a Tware object which defines "Ore" for example, then this station sells Ore for the price that is set within the TWare object.


Who was John Galt?(Posted 2005) [#10]
Handles are just ints you can store them in arrays or banks.


Paolo(Posted 2005) [#11]
I think I vote with Mustang,
>DirectX Texture Compression<

it is just a matter of throwing 3 or 4 512x512 textures on
a complex scenario to see your FPS going down ... apart from that
I love my B3D :)


Ross C(Posted 2005) [#12]
Look in the .b3d updates forum and bump that thread :o) i'm all for it :o) Or a reason why it can't be done.


PowerPC603(Posted 2005) [#13]

Handles are just ints you can store them in arrays or banks.



I thought that handles resemble Ints, but they represent a memory-locaton, rather than a value.
If a handle (to a type-instance) was an Int, why do you have to declare an array with the type of type-instances you want to put into the array?

I just tried to use an integer-array to hold a pointer (or reference or handle) to a type-instance and it failed (illegal type conversion).

I also tried a very small program to use a bank to store a handle, it failed too:

Type test
End Type

firstbank = CreateBank(4)

instance.test = New test

PokeInt firstbank, 0, instance


How can you put a handle (to a type-instance) inside a bank?


Stevie G(Posted 2005) [#14]
The var instance is not an integer obviously?!

Use ..

PokeInt firstbank, 0 , handle( instance )


Graythe(Posted 2005) [#15]
My cribs are purely from a programmers perspective. Fairly trivial also, it has to be said.

There are no UBound or LBound functions in Blitz3D (used to determine the bounds of an array - or at least I can't find 'em!). As all blitz arrays start from zero the lack of LBound should not be a problem! So you have to track upper array bounds by other means. As arrays in blitz are defined globally it is a common technique to popluate element zero with the ubound value when allocating space to the array. Then you may read the limit from the array itself without need for the ubound function

Blitz3D does not allow changes to the values of arguments passed to a function other than by the singular return value or string. That can be a bit of a headache until it becomes ingrained to ones programming methods. Banks are one answer. Instead off passing values, pass offsets within a bank. Then read the contents of the bank within the function and poke the return values back to the stated offsets before leaving the function.

There is no native forcefeedback support for joysticks. Third party support is believed to exist.

Oh, no blur function for images exists.


PowerPC603(Posted 2005) [#16]

As arrays in blitz are defined globally it is a common technique to popluate element zero with the ubound value when allocating space to the array.



This will only help if your array is of type Int.
If you use an array to store type-instances, it fails.

Type test
End Type

Dim array1.test(10) ; Create an array to hold references to instances of type "test"

array1(1) = New test ; Create a new type-instance at index 1
array1(0) = 9 ; Set index 0 to hold the maximum index that can be used with this array

WaitKey()
End


Commonly, I use constants to store the size of arrays.
Or if they need to be redimmed during runtime, I use globals.

You could also use an extra type and make fields to store the maximum indexnumber for each array.
But remember to only create 1 instance of this type.


puki(Posted 2005) [#17]
So, "matthews_30" are you actually improving the functionality of B3D? You started this thread 2 weeks ago, but we've not heard from you since. Are you writing these 'tools' or acquiring them?

ie, if someone had said that B3D does not have a shadow system, are you writing one for B3D or aquiring one (such as "sswifty's") for your own use?


Graythe(Posted 2005) [#18]
Thanks for the types tip PowerPC603. Banks are also handy things too for striping an array. In fact, the more I use 'em the more I like 'em.


matthews_30(Posted 2005) [#19]
my friends and me are looking for the best way to start our project with b3d, but first we need to make a decision on whether to use only b3d or use b3d with additional libraries to improve its performance.

a friend of mine, says he maybe can develop something for b3d if it os required.

matt.


Ricky Smith(Posted 2005) [#20]
Blitz3d is the perfect language for someone who is starting out on a first project. There are no additional libraries that can improve the performance but there are lots of libraries to add additional features e.g physics, real-time shadows etc.

Don't depend on what friends say they can do - make your choice depending on what you can do.