Welcome
This is my WIP for my DBPRO and Dark GDK resource and software solutions projects
Please find the following content available here and on my website, which I have called Binary Modular.
Latest:
A few new articles have been added, with over 80 articles available.
•
Setting what cameras objects should render on.
•
Exporting Blender Model Files with textures and animations
Previous:
•
DBPRO Core Reference Guide
•
Memblock Reference Guide
•
DBPRO Principles
•
Parsing Data (XSLT) Tutorial
• DBPRO 2D Source Code Template
• DBPRO 3D Source Code Template
• -
Hello World 3d Template Tutorial
• Online DBPRO Code generator:
www.binarymodular.com
•
Other documentation
•
Basic keyboard ASCII codes
•
Basic programming shortcut keys
• Kits
-
Image Code - Basic image management and interface functions
-
Curve Value Code - Curve Value Extras
• Tutorials
-
DBPRO and Visual Basic.NET XML Tutorial
-
Referencing Arrays by Names
• Snippets
-
Smooth movement and value changes, plus extra CurveValue Kit functions
• Game
-
Mathematrix
• Super function
The content supplied is currently geared towards helping new users learn how to get the most out of DBPRO. Advance users may still find some of the content that is ready so far at least interesting to observe, and at most, useful for you general project needs.
The Super Function
The first available feature I am supplying to you is one of my greatest inventions; although it is not quite finished yet, I just couldn’t wait to let you all know about it. I call it the super function; copy and paste the following code into a new DBPRO document and press F5:
function MakeMy_MMORPGameForMe()
print “Yey”
wait 3000
endfunction
Ok, maybe not today, perhaps in the days of teleportation travelcards, Google Universe, Apple iSpaceship, Apple iWife and Microsoft Windows 77.1
Honestly moderators, this thread is no joke; on with the real content currently under development. Please observe, download, use and post any requests, bugs, typo errors or anything else useful.
DBPRO reference guide
I have started to produce what I call a DBPRO reference guide. This is not official but is very much ambitious in attempting to eventually be a primary source for DBPRO help documentation. It currently contains a core section, which explains the core functions in reference format, just like the documentation you get with DBPRO; only; it is more up to date, it often provides more than one example of usage with comments, and because it is stored one place for all, it can be updated easily. It currently provides a means for advanced users to post additional tips per command, per library using a comment submission script. Anyone is welcome to post a tip or suggestion with the reader in mind.
Beginner help
For beginners from the district where I was born, Noobicanus, may I suggest reading the principles section in the documentation supplied by TGC, then work your way through the core reference guide on my website. The information and examples provided there will speed up your learning curve and help you to avoid pitfalls and serious night-time headaches; if only I could have been known these facts sooner. Google and the forums on the TGC website are a great place to search answers to your questions, however, for common issues for new users, you will be told how to avoid general programming problems in the guide so that most of such searches will not be necessary.
Guidence
The reference library is also a guide; it not only tells you how to use a function but it points out tips and common issues. I have also added a personal comment to certain functions to show how I would use a function and where. A beginner note has been added to most functions which briefly discusses the kind of considerations beginners need to head, which advanced users may skip.
Related commands and keywords
It aims to provide links to not only the parent list of commands, but related commands. Eventually, keywords will contain tip text and links to the underlying articles; the scripting for this feature is for the most part complete, I simply need to do some database data entry in order for it to be activated.
Currently, I am working on the formatting of the articles and code snippets. After this, I will be adding a new library of commands, and of course, ongoing proof reading and implementation of your ideas will be a major focus.
Take a visit to the reference guide.
Memblock Reference Guide
[href=http://]View the post[/href]
DBPRO and Visual Basic.NET XML tutorial
I have created a tutorial which describes XML syntax and how to use it in your DBPRO or Visual Basic.NET GDK programs. Whether you are a beginner or advanced programmer, you may find this article to be of some good use.
Feel free to post tips, suggestions and any XML parsing tools you have created for all to use.
Here is a teaser snippet from the article:
This tutorial introduces the extensible markup language, XML, which is frequently used to store, catagorize and transfer data from one application to another, on the same system or over a network. It is generally used to format HTML documents used on websites, XAML documents used to design Windows Presentation Foundation and Silverlight applications as well as for other uses where data needs to be parsed easily, often without much explanation.
This guide will show you how to write XML, it will describe how to use XML with the Dark Basic extension Styx and it will show DGDK users how to save and load .NET class instances in XML file format automatically. The DGDK examples are in Visual Basic.NET, but as you may already know, C++ and C# users can use the same principle.
This guide has been written for beginners who have never worked with XML but do have experience using Dark Basic Professional or Dark GDK...
DBPRO 2D and 3D Templates
I have started to work on two DBPRO templates which aim to create a starting point towards producing typical games and multimedia presentations. None of the supplied source code requires media files or plugins.
At the moment, there is source code for an empty platform game in the 2d template; and an empty flight game in the 3d template; although these games are not fully functional, you can still make use of the code to produce something playable a lot more quickly than starting from scratch; although it is far from what I am aiming for at present.
Just insert your code in functions such as the following:
function On_Begin_Sync()
put your code here
endfunction
function On_Draw_Player( x, y, text$, colour )
put your drawing code here (there is code here already in the 2d template version 0.19 )
endfunction
function On_new_level()
put your code here (there is code here already in the 2d template version 0.19 )
endfunction
function On_Begin_Loop( )
put your code here
endfunction
function On_Hit_Destruction_Block( blockX, blockY, playerId )
put your code here
endfunction
function On_Obstacle_Hit()
put your code here
endfunction
so on and so forth; with over 30 of these kind of events in either template so far.
Furthermore; interface functions are used to allow you to control how internal engine functions work on a per operation basis rather than a per event basis; therefore; functions like the following can be changed and reused; so as long as they return or produce the specified outcome.
function Get_New_Sprite_Id()
`[Put your own code here or use what is supplied]
inc SpriteCount
endfunction SpriteCount
function Position_Object( objectId, levelX, levelY )
`[Put your own code here or use what is supplied]
position object objectId, levelX * blocksize, levelY * blocksize, 0
endfunction
function Get_Player_Move_Right( playerId )
`[Put your own code here or use what is supplied]
if keyboardplayer = playerId
result = rightkey()
else
result = joystick right()
endif
endfunction result
function Get_Player_Move_Left( playerId )
`[Put your own code here or use what is supplied]
if keyboardplayer = playerId
result = Leftkey()
else
result = joystick Left()
endif
endfunction result
function Get_Player_Jump( playerId )
`[Put your own code here or use what is supplied]
if keyboardplayer = playerId
result = spacekey() or upkey()
else
result = joystick fire a()
endif
endfunction result
so on and so forth; with a decent number of interfaces already available and a large number of such functions planned so that people can collaborate with interface functions without having to work on huge parts of the program; thus; one person working on one game, can help another working on another just by sharing their own interface functions. One can also make calls to DBPRO plugin functions, which can be replaced by coders who do not like using the same plugin.
Furthermore; you can currently set constants, globals and extra user defined type entries; by changing values such as the following, you can configure how the engine works without having to mess with any main engine code:
Examples of constants;
DEFAULT_GRAVITY
SYNC_RATE
LEVEL_WIDTH
LEVEL_HEIGHT
FINE_COLLISION_PRECISION
MOD_NAME
CURRENCY_SYMBOL
examples of globals
global TransitionAnimatedSpriteSpeed
global ForeColour
global BackColour
global PlayerCount
examples of types and type arrays
type tBM_FS_Player
Name$
ObjectId
Score
WeaponLimbId
bthisClient as boolean
shootProjectileIndex
motionFlags
motionForce#
motionAcceleration#
motionVariation#
weight#
maxSpeed#
minSpeed#
health#
endtype
type tBM_FS_Collision
ObjectId
LimbId
flags
colliderIndex
endtype
dim _Player( PlayerCount ) as tBM_FS_Player
dim _Object(0) as tBM_FS_Object
dim _Obstacle(0) as tBM_FS_obstacle
dim _Element(0) as tBM_FS_element
dim _Entity(0) as tBM_FS_entity
dim _Projectile(0) as tBM_FS_Projectile
dim _collision(0) as tBM_FS_collision
Furthermore; if you feel confident enough to enter the scary domain of my twisted world of source code; go ahead and edit the main engine code to produce your own modification. Providing you use interface functions supplied, those who become familiar with these templates can quickly grasp your mod; but this is not to say you must share your source code.
Planned features
• Debug functions. These functions will optionally be called before an event or interface function occurs; and will provide a means to pause the program and observe certain variables. I have already implemented these function calls the next update and it seems rather handy to be able to pause, bypass and debug certain events and functions.
• Documentation; I am in the process of creating my resource website, and one of the articles currently being written is documentation for the two templates
• Features and improvements suggested by the users
At this phase, the development has just gone underway, so the code is not fully functional and is far from complete.
At the moment, each template is not quite empty; when you run the source code you will be able to move around and jump in the 2d template; in the 3d template you can only move forwards because I am currently working on movement
Feel free to use bits of the code or all of it for any non-commercial purpose; for any issues or suggestions please contact me or make a forum post.
You can download the source code from here on my website.
Online DBPRO Code Generator
The main page of my website is a site search and a code generator. It is a major work in progress that attempts to produce repetitive code so you do not have to.
Type the following to obtain your code which should appear on the page as you type; consition stretching the output text area to suit your screen.
Please note, that you can suffix a number at the end of each following commands to repeat the same code generation.
dbp op – outputs:
object position x( ), object position y( ), object position z( )
dbp op2 – outputs:
object position x( ), object position y( ), object position z( )
object position x( ), object position y( ), object position z( )
dbp op[N] outputs the same command N amount of times
[The repetition parameter applies to all the following commands aswell]
You can also specify reference name parameters using the following syntax after your command:
For example; the following:
dbp op:a,b,c – outputs:
object position x( a ), object position y( b ), object position z( c )
The following:
dbp op:a – outputs:
object position x( a ), object position y( a ), object position z( a )
dbp op2: a,b,c,d,e,f – outputs:
object position x( a ), object position y( b ), object position z( c )
object position x( e ), object position y( f ), object position z( g )
dbp op3: box,spam,1,2 – outputs:
object position x( box ), object position y(spam), object position z( 1 )
object position x( 2 ), object position y(box), object position z(spam)
object position x( 1 ), object position y( 2 ), object position z( box )
Reference name entries work for other commands too.
There are more commands available, and more commands on their way to be activated.
dbp l – outputs:
sync on : sync rate
do
sync
loop
dbp l:60,print “Hello World” – outputs:
sync on : sync rate 60
do
“Hello World”
sync
loop
dbp i:print – outputs : print 1
dbp i3:print – outputs :
print 1
print 2
print 3
dbp r20:/ – outputs :
////////////////////
dbp r5:print “A”: – outputs :
print “A”:print “A”:print “A”:print “A”:print “A”
dbp r5:print “A”\\n – outputs :
print “A”
print “A”
print “A”
print “A”
print “A”
dbp lp – outputs: limb position x( , ), limb position y( , ), limb position z( , )
dbp pao – outputs: position object id, object position x( ), object position y( ), object position z( )
dbp pal – outputs: position object id, limb position x( , ), limb position y( , ), limb position z( , )
dbp pac – outputs: position object id, camera position x(), camera position y(), camera position z()
dbp paco – outputs:
position object id, camera position x(), camera position y(), camera position z()
set object to camera orientation id;
dbp gp – outputs:
x# = object position x( )
y# = object position y( )
z# = object position z( )
dbp gpa – outputs:
x# = object position x( )
y# = object position y( )
z# = object position z( )
nax# = object angle x( )
nay# = object angle y( )
naz# = object angle z( )
dbp sc – outputs:
screen width() , screen height()
dbp sc:a,b,c,d – outputs:
a screen width() b, c screen width() d
dbp scc – outputs
screen width() / 2, screen height() / 2
dbp scc:* 10, * 20 – outputs
screen width() * 10, screen height() * 20
Progress:
DBPRO Core Reference Guide – 0.1
DBPRO Kits
DBPRO 2D Source Code Template – 0.19
DBPRO 3D Source Code Template – 0.12
DBPRO and Visual Basic.NET XML tutorial - 0.6
Online DBPRO Code generator 0.1
Documentation – 13% complete
= Pending action/feedback
= Currently working on ideas
= Pending an update and upload
= Done