You can utilise vector and matrix manipulation via the 3D Maths commands and many other advanced features that are there if you need them.ĭarkBASIC Professional will grow with you as you learn new development skills and extend your 3D knowledge, so you can unlock the benefits of the more advanced areas of the language. There are an increased range of Data Types, a far more advanced 3D Engine with low level access to Object data. But you also get the lower-level control and extras you would expect from a Professional language. “Professional” to us means that you get all of the benefits of the original DarkBASIC language, so you can write games with ease.
Not when it comes to DarkBASIC Professional.
Produces 100% machine code INTEGRATED DEBUGGERĭoes “Professional” Mean Harder To Learn? Binary Space Partitioning (BSP)ĭLLs containing FORMATTED FUNCTIONS can be dropped into the plug-ins directory, after which they become commands within the language All components are modular for safe and stable upgrading
FeaturesĪll games created with DarkBASIC Professional are License and Royalty free.Īll games can be distributed as a stand alone executable. The illustration above shows 6 different DarkBASIC Professional shaders in action. For example, through vertex shading you can create true-to-life dimples or wrinkles that appear when a character smiles or you can ripple shockwaves through a land matrix. Vertex Shaders are used to breathe life and personality into characters and environments. Pixel Shaders are used to alter lighting and surface effects that replace artificial, computerized looks with materials and surfaces that mimic reality.
You have full and direct control of these awesome hardware effects from within DarkBASIC Professional. You can implement all of this generically and specify the broad and narrow resolutions polymorphically, or provide a hook if you're working in a lower level language.NVIDIA and ATI’s powerful new graphics cards have inspired us to support both Pixel and Vertex shaders. In 3d this is the realm of GJK distance algs and other neato algorithms that we all love so much! And this information will be fed into whatever physics engine you got planned. Penetration depth, volume encompassed, etc. The goal of this phase is to determine the collision result. Now that you've determined that two or more objects are worth comparing, you step into your fine tuned section. And for 2d intersection, you can even use high powered video cards to do a lot of the work! This uses bounding volumes such as cylinders or elipses (whichever approximates the shape of your sprites the best) to determine whether or not objects are worth comparing in more detail. Or you could use a BSP tree, using lines as the seperator function. You can use an orthogonal grid system and slice your world up into a 2d grid. If you do a collision check against every 2d sprite in your world against everything else, you'll have a slow slow program! You need to prioritize. Implementation of a collision detection system is a complicated matter, but you want to consider three points. You would simple divide the world into sectors, then only check for collision between objects in the same sectors.įor more resources, you can go to sourceforge and search for the Bullet dynamics engine which is an open source collision detection and physics engine, or you could check out which has plenty of resources on copious game development topics.
With large amounts of entities to test for collisions you may want to check into an octree. Or in other words, make each entity in the world a box, then check if each of the axises of the box are colliding with other entities. The short version is to use bounding boxes. Also remember when instituting a collision detection system, to take into account any physics you may want to implement in the game (needed for most descent 3d games) in order to enhance the reality of it. The methods you use will be slightly altered if depending on if your using a 2d or 3d environment. There are a plethora of ways to detect collision detection.