Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / [DBP and GDK] Resources, tutorials, beginners guides, templates and tools

Author
Message
Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Jun 2011 13:16 Edited at: 12th Oct 2011 16:05


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:




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.



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

Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 27th Jun 2011 02:52 Edited at: 4th Jul 2011 00:20
Updates:

When updating old template code please backup your work, then create a new project and copy and paste your custom code into the new event and interface functions.

3D Template 0.12


Tutorials:
Hello world in the 3D Template - 03/07/2011
Referencing array elements by name - 27/06/2011

seppgirty
FPSC Developer
13
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 1st Jul 2011 01:34
wow man, alot of good stuff here. keep up the good work

gamer, lover, filmmaker
Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 4th Jul 2011 00:12 Edited at: 4th Jul 2011 00:16
Hi Seppgirty.

Funny videos.

I hate QuickTime; hang Apple, no just kidding.

Thanks for your interest. It will certainly be a busy year for me and this project; let's hope I live to see the end of it, before the end comes; end of the world...

seppgirty
FPSC Developer
13
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 4th Jul 2011 20:31
just hang in there chris. you seem to be doing a good job. i'm just trying to keep up with all that you have written so far

p.s

thanks for watching some of my videos some videos are in quick time some in wmv and some are flash(stored on youtube) just depends on which computer the films are cut on

gamer, lover, filmmaker
baxslash
Valued Member
Bronze Codemaster
16
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 5th Jul 2011 12:41
I haven't looked in detail but this looks like some great information you are providing.

I would post a link on the newcomers board, if you keep it up you might get a sticky thread

Nice work!

Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Jul 2011 04:25
Thanks Baxslash. Sorry for my late reply, and I know you are on holiday at the moment.

Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Jul 2011 04:31
Update

New content has been uploaded since my last reply here.

The content includes image management source code, ASCII code reference, a simple 3D Game Template tutorial, newcomers Top 10 resource guide, shortcut keys for new comers and more...



Next, more source code and documentation dealing with sprites, 3D objects and Visual Basic for GDK.

Dark Dragon
15
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 1st Aug 2011 03:28
You are pure awsomesause. I love you. In the manliest way a man can love another man, that is,lol. Wish this was around couple years ago..... Lookin in it now, i never ever touched a 'core' Tutorial before! Great info. Simply great stuff. I mean most of it i already know, but reviewing is golden.

Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 4th Aug 2011 00:49 Edited at: 4th Aug 2011 00:50
Thanks DD

I also wish this stuff was around a couple years ago, it would have saved me a lot of time. You tend to get trigger happy whilst diving head first into the deep end of games development when you first download DBP; you then try to make your first game in one hour, and then one year later and you then decide to start to read the manual! Well that is an exaggeration, but there are many lessons to learn from this forum and from what I have spoken about in my articles.

Trenton
11
Years of Service
User Offline
Joined: 29th Jul 2011
Location: Fresno, CA
Posted: 4th Aug 2011 01:02
This is very nice. This should be a sticky topic in the DBP section.

TK-Games
Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 5th Sep 2011 22:06
The memblock reference guide has been opened for public access. If you are new to memblocks or have not been able to grasp the feature, check out the guide.



Chris Tate
DBPro Master
14
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Oct 2011 16:00
A few new articles have been added, with over 80 articles available.

Setting what cameras objects should render on.

http://www.binarymodular.com/main/articles.php?article_id=95


Exporting Blender Model Files with textures and animations

Lastly, Converting text file formats (such as .x, .lua, .xml or .ini) to another using XSLT, which was created a while ago but I did not get around to updating this thread.

Login to post a reply

Server time is: 2023-01-29 06:31:42
Your offset time is: 2023-01-29 06:31:42