what are the weakness of blitz?
Blitz3D Forums/Blitz3D Beginners Area/what are the weakness of blitz?
| ||
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. |
| ||
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. |
| ||
DXTC. |
| ||
The person writing the code ! |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
Newbies that won't ask the right question and whine when no one solves the problem for them! |
| ||
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. |
| ||
Handles are just ints you can store them in arrays or banks. |
| ||
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 :) |
| ||
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. |
| ||
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? |
| ||
The var instance is not an integer obviously?! Use .. PokeInt firstbank, 0 , handle( instance ) |
| ||
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. |
| ||
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. |
| ||
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? |
| ||
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. |
| ||
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. |
| ||
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. |