GLBasic forum

Other languages => GLBasic - de => Topic started by: x-tra on 2008-Jun-21

Title: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-21
schaut her, ich hab nicht soviel ahnung, habe mir aber vor einer weile mal das sdk gekauft, kann man da nicht nen wrapper, oder wie das heißt, dafür schreiben?

Code (glbasic) Select
Overview
The Blitz3D SDK allows you to use the highly popular Blitz3D engine with a range of programming languages including C, C++, C#, BlitzMax and PureBasic.

The package includes static libraries and interfaces, a single dynamic library to be shipped with your game and full API documentation.

The Blitz3D SDK has been tested with the following programming environments:

* DevC (includes project template)
* VisualC
* VisualC# (includes .cs interface)
* BlitzMax (includes BlitzMax module)
* PureBasic (includes .pbi prototype file)

However, it should be usable with any programming language capable of linking with static libraries and that supports ints, float and 'c strings'.

Finally, programming a 3D application in C is now as easy as...

#include

#include "../include/blitz3dsdk.h"

void teapot(){
bbGraphics3D(640,480,32,2);

BBMeshModel teapot=bbLoadMesh( "media/teapot/teapot.x" );
BBTexture tex=bbLoadTexture( "media/teapot/castle_env.bmp",128+8 );

bbEntityTexture(teapot,tex,0,0);
bbEntityFX(teapot,1);

BBPivot cam_pivot=bbCreatePivot();
BBCamera camera=bbCreateCamera( cam_pivot );
bbPositionEntity(camera,0,0,-3);

while (!bbKeyHit(1)){
if(bbKeyDown(200)) bbTurnEntity(cam_pivot,3,0,0);
if(bbKeyDown(208)) bbTurnEntity(cam_pivot,-3,0,0);
if(bbKeyDown(203)) bbTurnEntity(cam_pivot,0,3,0);
if(bbKeyDown(205)) bbTurnEntity(cam_pivot,0,-3,0);
bbTurnEntity(teapot,.1,.3,0);
bbUpdateWorld();
bbRenderWorld();
bbFlip();
}
}

int WINAPI WinMain(HINSTANCE hThisInst,HINSTANCE hPrevInst,LPSTR lpszArgs,int nWinMode){
bbBeginBlitz3D();
teapot();
return 0;
}


The Blitz3D SDK ships under the following license:

Blitz3D SDK License.

The Blitz3D SDK is copyright Blitz Research Ltd ("BRL"),
and remains the commercial property of BRL

This license permits the holder the right to redistribute
the b3d.dll runtime library found in the redist folder with
their own applications, provided the application includes
also the following sub-license:

"The file b3d.dll included in this application is copyright
Blitz Research Ltd and may not be redistributed by any means
without the prior permission of Blitz Research Ltd."

All other files included in this archive may not be
redistributed by any means without the permission of BRL.

You are also permitted to create language 'wrappers' for the
Blitz3D SDK, provided such wrappers do not include any files
found in this archive, and in addition include the following
sub-license:

"This product may only be used by licensed owners of the Blitz3D
SDK."

All use of the Blitz3D SDK, b3d.dll or any other BRL product
is entirely at the care of the holder who agrees to indemnify
BRL against any and all consequences (commercial or otherwise)
of using BRL's products or resulting software.

Please see the Blitz3D product page for more general information on the Blitz3D engine.
Title: Re: bb3d sdk wrapper?
Post by: Quentin on 2008-Jun-21
prinzipiell sollte das gehen, sofern du die Lizenz für Blitz3D SDK hast, also nichts für die meisten von uns, wie ich mal annehme  :S

aber warum wilst du auf so vielen Baustellen anfangen? Du bist doch hier eifrig dabei, das ES voranzutreiben. Mach doch erst mal da weiter, dann wirst du den Wrapper für die Blitz3D SDK vermutlich nicht mehr vermissen. Des weiteren scheint es mir auch etwas unsicher, wie es dort überhaupt weitergeht mit Blitz und den diversen Produkten. Bei GL erscheint mir das wesentlich klarer
Title: Re: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-21
war nur so eine idee, weiß ja nicht, ob man sowas

Code (glbasic) Select
#include <windows.h>

#include "blitz3dsdk.h"

extern int WINAPI WinMain(HINSTANCE hThisInst,HINSTANCE hPrevInst,LPSTR lpszArgs,int nWinMode){

bbBeginBlitz3D();

bbGraphics3D(800,600,0,2);

BBLight light=bbCreateLight();
BBCamera camera=bbCreateCamera();
BBMeshModel cube=bbCreateCube();

bbPositionEntity(camera,0,0,-4);

while (!bbKeyHit(1)){
bbTurnEntity(cube,1,2,3);
bbRenderWorld();
bbFlip();
}

bbEndBlitz3D();
return 0;
}


nicht auch einfach inline machen kann!?!

Ich will natürlich, das hauseigene ES.

Gernot könnte ja mal ein Tut machen, wie das ganze drunter funktioniert, da könnte ich auch selber etwas dazu beitragen.

Wie gesagt, ich hätte ja gern eine 1zu1 übersetzung der kompletten befehlssysntax, da würde es in herrschaaren bb user für gernot geben.

solange silby noch rumdümpelt, stehen die chancen dafür nämlich gut.
Title: Re: bb3d sdk wrapper?
Post by: BumbleBee on 2008-Jun-21
Du vermisst B3D schon ziemlich, gelle? ;) Ich glaube auch du solltest jetzt das ES nehmen wie es Gernot gemacht hat. Er will nämlich mal was sehen. Also dann leg los.  :booze:

Ich glaube das gehört hier eh in eine andere Ecke, weil nicht unbedingt GLBasic. =D Bloß wohin? Eine Blitz3D Ecke gibts noch nicht. :P ;)

Cheers
Title: Re: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-21
Nein, BB3D nicht direkt.
Die syntax auf Entities bezogen, aber das bietet z.B. Cobra3D auch, und mit wesentlich mehr Features.

Selbst Blitzmax bietet mit dem minib3d mod diese Funktionalität.

Nun, ich besitze BB3D, BlitzMax, Cobra3D sowie eben auch GLBasic.

BB3D ist nicht zukunftsträchtig, somit steht es ausser Frage.

Nun, Cobra3D hat hammer features, und ist easy to use.

Blitzmax und glb bieten aber multiplattformmöglichkeiten.

GLB hat aber die beste Community, will ich meinen.

Aaaaaber BB3D, Cobra3D und selbst ansatzweise BlitzMax(da mehr funktionalität, dafür etwas gewöhnungsbedürftiger) mit minib3d IST

wesentlich einfacher zu programmieren, was das ganze 3D Zeugs angeht.

Und es geht um Einfachheit, anderenfalls gibt es ja genug andere Sprachen, wie jeder sehen kann.

Um es kurz zu erläutern, es wird definitiv längerfristig max3d rauskommen, oder aber graham entwickelt seinen cobra3d teil als sdk, also .dll, fertig.

dann gibts sprachenunabhängig sozusagen wieder eine engine.

wenn max3d nur ansatzweise an den erfolg von bb3d anknüpft, hat es allein cobra3d schwer.

glb ist relativ wenig bekannt, und wird es ohne dieser einfachheit auch bleiben.

ich habe nur im sinn, einfach programmieren zu können.

okay ich lerne grad c++, aber ich such eben etwas um 3d spiele einfach schreiben zu können.

ich mach gern an dem entity system mit, aaaaaaber, wenn alle befehle da sind, eher mach ich nichts mehr.

mir ist das zu mühseelig, jeden befehl einzeln zu testen.

ich habe gernot 1. die komplette befehlsreferenz von cobra3d geschickt
                      2. eine cobra3d demo geschickt
                      3. die minib3d von blitzmax hat er auch bekommen
                      4. auf blitzforum.de in der hilfe gibts eine mehr als ausreichende dokumentation

GLB gehört gernot, nicht mir, ich hab gebettelt, eine 1zu1 syntaxübernahme des 3D Teils zu machen.
Zum Teil hat er das auch schon prima hinbekommen.

Ich benötige jedoch ein fertiges produkt, daher zum testen bin ich ja gern bereit, wenn alles drin ist.

er müsste nur alle 3D befehle von bb3d übernehmen, oder von der minib3d, und fertig.

ich bekomm es hin, garantiert alle befehle zu testen, und für die hilfe auch gleich beispiele dann zu liefern, aber eben nix

halbfertiges mehr.

ich seh es jetzt bei entitypick.................

es hängt an einem befehl................wenns mehr geben würde, hätte ich noch woanders was zu tun.

keine ahnung, was gernot dazu sagt, aber bb3d und cobra3d haben fast identische befehle, und max3d wird ebenso sein, also...........

soll ers auch so machen, alles andere wäre quatsch........

eine 1zu1 übersetzung, und ich teste und mach und tu, er weiß, dass er sich da auf mich verlassen kann, aber seit 8 monaten geht das ganze schon, mich verläßt die lust, wenn ich doch weiß, dass es alternativen gibt, und andere wissen das auch.

sorry, aber es liegt nun nicht mehr in meiner hand.

wenn ihr kein ES wollt, okay kein problem, dann werd ich definitiv GLB nicht mehr nutzen.


P.S. in der minib3d.bm die ich gernot schickte, werden die funktionen für das ES eigentlich schon auf dem silbertablet präsentiert.........


p.p.s. ich hab ihm jetzt zwischen 50-100 euro geboten für eine komplette übersetzung, mal schauen was er sagt.
Title: Re: bb3d sdk wrapper?
Post by: trucidare on 2008-Jun-21
Na ob Cobra3D wirklich total super duper tolle is glaub ich nich.
Aßerdem hat das ding voll die DIV syntax und die is mies.

Code (glbasic) Select
program
uses cobra3d, keyset

var
   cam, light, light2 : element
   buggy1 : element
   ground : element

begin

   openscreen(800, 600)

   cam = createcamera()
   usecamera(cam)
   positionentity(cam, 0, 15, 50)
   EntitySetAttribute(cam, 'DepthOfView', 1100)
   EntitySetAttribute(cam, 'FocalLength', 120)

   light = createlight(cam)
   light2 = createlight()
   positionentity(light2, 40, 40, 0)

   ground = createshadowplane()
   rotateentity(ground, 90, 0, 0)

   buggy1 = loadmesh('buggy3ds\buggy2.3ds')
   scaleentity(buggy1, 0.1, 0.1, 0.1)

   EntitySetAttribute(ground,'width',700)
   EntitySetAttribute(ground,'height',700)
   EntitySetAttribute(ground,'xtiles',50);
   EntitySetAttribute(ground,'ytiles',50);

   setshadowlight(ground, light2)

   setshadowobject(ground, buggy1)
   setcameratarget(cam, buggy1)

   while not keydown(vk_escape)

      turnentity(buggy1, 0, 0.05, 0)
      flip

   wend

end


Aber was solls ich bleib GLBasic groupie :)
Title: Re: bb3d sdk wrapper?
Post by: BumbleBee on 2008-Jun-21
Quote from: Heiko
  wenn ihr kein ES wollt, okay kein problem, dann werd ich definitiv GLB nicht mehr nutzen.

Du hast doch jetzt eins. :) Jetzt hat Gernot doch schon so viel Zeit und Arbeit da rein gesteckt, da kannst du doch nicht einfach aufhören.  Ich hab auch nicht gesagt, dass ich keins will. Ich brauch's nur nicht so. =D  Gernot will erst sehen, dass die Leute auch was damit machen. Dann macht er's auch umsonst. =D Das Geld nehm halt dann ich. ;)

Cheers
Title: Re: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-21
Ich zeig doch meinen Willen, nur so stückchenweise Befehle testen bringts nicht.

Aber ich will ja nicht so sein, und natürlich schätze ich gernot´s arbeit und die zeit und mühe, die er investiert hat.

Deswegen mache ich gerade eine EntitySystem.chm

mit allen aktuellen befehlen, sowie die, die noch dazu kommen sollten.

denk ma ich bin dann später fertig, da poste ich das dann unten beim ES Thread.

@trucidare : die syntax soll ja so sein.programmier das mal in glb ohne ES nach....

Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-22
Na haben wir den das SDK den auch gekauft?
Ausserdem:

GLBasic erstellt das Fenster mit OpenGL und das B3D-SDK mit DX7....

Also muss du die Main "überschreiben" um an das SDK-Fenster zu kommen.
Ergo-> voll der schwachfug<--- (Geiles Wort oder, hat letztens mein Kumpel zu mir gesagt, und ich hab mich ins Eck legen müssen vor lachen :D )

Grüße aus meiner neuen Wohnung, mit Kinderzimmer  :good:
Title: Re: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-22
jaja, is ja schon gut schranzi   :booze:

und ja, ich habs gekauft, warum frag ich mich nun auch, war halt neu, ein musthave, aber schwachfug eben... (hab auch bm und da fand ich es halt irgendwie sinnvoll eventuell)

na dann herzlichen glückwunsch zur neuen wohnung, ich zieh auch in 2-3 monaten um wegen ausbildung zum assistenten für informatik.

wird aber ne größere wohnung, bin wieder mit meiner ex zusammen, und hey, kannst mir auch gratulieren, nachwuchs is ebenso unterwegs.

bin halt ungeduldig, wa??? :lol:

Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-22
Wie haste den das geschaft mit der Ex ein Kind zu zeugen und dann noch so schnell? Speedy Gonzales du :)
Glückwunsch an euch beide! Freud mich, das du jetzt doch noch ne Arbeit gefunden hast, auchs wenns leuder nicht in Füssen ist  =(
Hey, aber es kommt bestimmt mal ein GLB-Treff, da sieht man sich dann :) Evtl beide mit Kind  :booze:
Title: Re: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-22
na ich hab schon einen 10jährigen sohn, alles bisschen ähm komplizierter bei mir.
aber es wird ja jetzt, na ich hoffe doch mal dass es ein großes glb treffen gibt.
Title: Re: bb3d sdk wrapper?
Post by: Kitty Hello on 2008-Jun-23
Das EntitySystem ist jatzt auf dem Stand, dass es den B3D Umfang hat. Also, das was Du willst. Teilweise hat's schon bisserl mehr.
Die Befehle hab ich alle evtl. anders benannt, weil's mehr Sinn macht - Wenn Du willst, darfst Du die gerne umbenennen, dass sie wie bei B3D heissen. Wenn das besser ist...
Wie gesagt - es ist noch früh, also kannst Du *jetzt* mitwirken, dass es so wird, wie's sein soll. Aber Du musst halt auch helfen. Alleine kann ich das nicht machen. Ich mach gerne neue Befehle, aber einer müsste halt auch mal testen, ob das wie bei B3D funktioniert, oder was ich ändern müsste.

Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-23
Hab mir in der Arbeit heute schon überlegt wie ich schick das Entitysystem testen kann.
Es ist auf ein Breakout hinaus gelaufen, das ich heute anfangen werde, wenn ich dazu komm :)
Muss in der Bude noch einige Sachen erledigen, will Gernot aber auch nicht so in der Luft hängen lassen.
Der Arme werkelt an dem Entitysystem wie ein beklopter, und keiner macht mal was sehenswertes damit  :roll:
Title: Re: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-23
doch doch, mitten drin bin ich.ich versuch alles soweit als möglich mit einer demo zu testen.

und der ganze grafik design kram, mann oh mann.

bissi brauch ich halt noch, weil wenn dann mach ichs richtig....
Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-23
Zeig doch erstmal so irgendwas, nur damit mal was sichtbares da ist !
Title: Re: bb3d sdk wrapper?
Post by: Kitty Hello on 2008-Jun-23
OK, nette Idee (Arkanoid). Danke.

Interessante Idee wäre auch, so ein Spiel, wo man ein Labyrinth hat (einfache Blöcke oder ein .ddd) und dann ein paar Roboter (würfel reicht), die hin/herlaufen und wenn Sie anstoßen umdrehen. Wenn dich so ein Roboter "sieht" (EntityPick), dann hast' verloren.
Ziel ist es die Goldmünze(n) zu finden.

Klar was ich mein?

Pseudocode:
Code (glbasic) Select


level=EntityLoadMesh()
EntitySetGroup(level, 1)

DIM robo[5]
FOR i=0 TO 4
   robo[i]=EntityCreateCube()
   EntityMove(robo[i])
   EntityRotate(robo[i], 0,RND(360),0)
   EntitySetGroup(robo[i], 2)
NEXT


player = EntityCreateSphere()
EntitySetGroup(player, 3)
EntitySetPickable(player) // robo kan player "picken"

main:
// robo's bewegen
FOREACH rob IN robo[]
   EntityMove(rob, 0,0,1)
NEXT
// player bewegen
alt_x = EntityGetX(player)
...
EntityMove(player, KEY()..., 0, KEY()...)

   // kollision: robo/welt
   EntityClearCollisions()
   EntityAddCollision(2,1) // robos mit welt
   EntityAddCollision(3,1) // player mit welt
   EntityAddCollision(3,2) // player mit robos
   EntityUpdateCollisions()
   
// robos umredhen, falls kollision
FOREACH rob IN robo[]
   n = EntityCollisionCount(rob)
   IF n>0 THEN EntityMove(rob, 0,0,-1) // wieder zurück
   EntityRotate(rob, 0,180,0) // umdrehen (evtl. schöner machen)
NEXT


IF EntityCollisionCount(player) // an Wand
EntitySetPosition(player, alt_x, alt_y, alt_z) // nicht in Wand rennen
ENDIF

// kann robo player sehen?
FOREACH rob IN robo[]
pick = EntityPick(rob, 1000)
IF pick>=0 THEN END // spiel aus
NEXT


EntityDrawSystem()
SHOWSCREEN

GOTO main


OK, das ist schon fast das komplette Spiel. Bitte, bitte macht das einer!?
Title: Re: bb3d sdk wrapper?
Post by: x-tra on 2008-Jun-23
okay, bin ja momentan alleinversorger, frau schwanger und sohn auch noch da.

ihr bekommt heute nacht einen weitesgehend spielbaren level.

mit entitypick usw usw.

ich muss noch einkaufen, und bissl was erledigen.

mach heute die nacht durch, und alles für einen kompletten level fertig.

joypad, oder lieber tastatur?

oder beides?

ich zock ja lieber mitm joypad.
Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-23
Taster+Maus , Danke :D
Title: Re: bb3d sdk wrapper?
Post by: BumbleBee on 2008-Jun-23
Quote from: Schranz0r
Hey, aber es kommt bestimmt mal ein GLB-Treff, da sieht man sich dann

Quote from: Heiko
na ich hoffe doch mal dass es ein großes glb treffen gibt.

Hab mich jetzt schon mal für das Treffen hübsch gemacht. ;) Ich war beim Friseur, beim Liften und beim Fettabsaugen. Von mir aus kann's losgehen. :) ;)


Quote from: Heiko
mach heute die nacht durch

Lass dir ruhig Zeit. Ich kann heute Nacht eh nicht so lange aufbleiben. ;)

Cheers
Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-23
 =D Fettabsaugen :D

Köstlich, ich schmeiss mich weg :P
Title: Re: bb3d sdk wrapper?
Post by: tft on 2008-Jun-23
Hallo....

habe hir schon eine weile nichts mer geschrieben. Wie weit ist denn das Entity System? Gibts dafür mitlerweile eine doku?

MfG TFT
Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-23
Ja gibts so weit mit dem in GLBasic internen Helpfile-ersteller:

EntitySystem : http://www.glbasic.com/forum/index.php?topic=1165.0

Helpfile erstellt du mit : Rechtsklick in der IDE -> Werkzeuge -> Hilfe erstellen (in der T3DEntity.gbas)

grüße, schön das du wieder mal da bist tft ;)
Title: Re: bb3d sdk wrapper?
Post by: BumbleBee on 2008-Jun-24
Ja, Spass muß sein.  :booze:

@Heiko
Gibt's den Level schon? Wenn nicht macht's auch nix. Hast ja auch andere Sachen zu erledigen. Ich warte trotzdem. :)

Cheers
Title: Re: bb3d sdk wrapper?
Post by: Schranz0r on 2008-Jun-24
Ja genau her damit du Nachteule :D
Hast echt durch gemacht?