Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - r0ber7

Pages: [1] 2 3
Does anyone know what this is? And why it is preventing me from compiling for Mac? I tried downloading the from both the v15 and v16 urls, but both give me this error.  :(

Running Windows 10.

Code: GLBasic [Select]
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: table of contents for archive: /cygdrive/Q/Compiler/platform/Mac/lib/libGLBasicMac.a is out of date; rerun ranlib(1) (can't load from it)
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: table of contents for archive: /cygdrive/Q/Compiler/platform/Mac/OSX/Lib/libSDL_mixer.a is out of date; rerun ranlib(1) (can't load from it)
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: table of contents for archive: /cygdrive/Q/Compiler/platform/Mac/OSX/Lib/libSDLmain.a is out of date; rerun ranlib(1) (can't load from it)
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: table of contents for archive: /cygdrive/Q/Compiler/platform/Mac/lib/libCxImageMac.a is out of date; rerun ranlib(1) (can't load from it)
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: table of contents for archive: /cygdrive/Q/Compiler/platform/Mac/OSX/Lib/libstdc++-static.a is out of date; rerun ranlib(1) (can't load from it)
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: table of contents for archive: /cygdrive/Q/Compiler/platform/Mac/OSX/Lib/libstdc++.a is out of date; rerun ranlib(1) (can't load from it)
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: table of contents for archive: /cygdrive/Q/Compiler/platform/Mac/OSX/Lib/libgcc.a is out of date; rerun ranlib(1) (can't load from it)
collect2: ld returned 1 exit status

GLBasic - en / NETWEBGET and HTTPS
« on: 2019-Jan-06 »
I want to do a NETWEBGET$ to my server. I have tried changing the port to 443, but nothing is coming through. Does NETWEBGET$ allow HTTPS connections? Is there another command in GLBASIC which allows me to communicate with a server using HTTPS?

Before, using a http server and the same code, I had no problems. I hope I do not have to downgrade my server.  :|

I'm trying to run a Mac build of my game. The compiler throws this error:

Code: GLBasic [Select]
/cygdrive/q/Compiler/platform/Mac/Bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: can't locate framework for: -framework OpenGL
collect2: ld returned 1 exit status
*** FATAL ERROR - Please post this output in the forum[/td]

Where is it looking for the framework? Any ideas on how to solve this?

GLBasic - en / Windows 7 or 10?
« on: 2018-Jul-27 »
Hi again,

I'm currently looking into getting a Windows dual-boot running on my Macbook, so I can develop in GLBasic 15 in a more convenient way. I'm currently using CrossOver to run GLBasic, and while it works fine, it does not allow me to use the debugger. So I decided to install a Windows version just to run GLBasic.

Now, I have two versions available to me: Windows 7, and Windows 10. Which one would be better to run GLBasic v15? I don't care about anything else, I just want to develop and compile my game on it. What are your thoughts?

Thanks!  <3

GLBasic - en / Day/night cycle using shaders?
« on: 2017-Mar-24 »

Question: could I use X_LOADSHADER to load a shader that would change over time, giving a day/night cycle effect? I've tried setting up shaders before but didn't get them working correctly. I saw Hemlos knows a lot about it. Just wondering if it's worth the effort.

Code: GLBasic [Select]
 > open ~/RWI/
LSOpenURLsWithRole() failed with error -10810 for the file /Users/r0ber7/RWI/

This is from the Mac commandline. I have compiled this:

Code: GLBasic [Select]
// Auf Back-Buffer schreiben / Write to back buffer
PRINT "Hello GLBasic World !", 0, 100;
// Back Buffer anzeigen      / Show back buffer
// Auf Maustaste warten      / Wait for mousekey

I had hoped upgrading to El Capitan would save this problem, but it hasn't. Any ideas on how to tackle this?


GLBasic - en / Debugging, how to?
« on: 2015-Jan-08 »
Alright. I have this huge project of a game I'm working on, you may remember it. ;-)

So I know that somewhere along the line during the playing of a level, things get slowed down. If I leave a level playing for 15 minutes I see a drop in framerate. This leads me to conclude that somewhere, an array is not being cleaned up, or what I don't know.

All I know is, the memory usage grows and grows. In GLBasic IDE, how would I go about debugging this? I have never really used the debugging tools, only the DEBUG command. What is this continue, next step, etc. about? Can it help me find out what is causing the memory growth?

I'm on a gigantic bug hunt which started a month ago. Any help will be greatly appreciated. :)

Hi. I have a question regarding types and references. Suppose I have a type:

Code: GLBasic [Select]
TYPE example

Then I create an instance of it:

Code: GLBasic [Select]
LOCAL instance AS example
instance.var1 = 1
instance.var2 = "testing dum dee dum"

Now here's my problem. Suppose I want a copy of this instance. If I do this:

Code: GLBasic [Select]
LOCAL instance2 AS example
instance2 = instance

This will be the same reference, and as soon as I remove instance from memory, accessing instance2 will give me an uncaught reference error.
So, the only way I figured out I can create a copy is by doing this:

Code: GLBasic [Select]
LOCAL instance2 AS example
instance2.var1 = instance.var1
instance2.var2 = instance.var2

But, for larger types, this way of cloning an instance can get very laborious very quickly. Is there a cleaner way to create clones of objects?
I want to know this because I have set up enemy spawn points in my game, so a clean cloning of enemy data would save me some time. :-)

Off Topic / I started a minecraft server
« on: 2013-Dec-23 »
Hey guys,

I started a vanilla Minecraft server (1.7). Here is our map:

The server address is:

We're just getting started, so the world is completely new.

3 CPUs (Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz)

I want to expand the RAM and CPU but the VPS costs money, so that's for the future.
If you want to play, leave your username here and I will put you on the whitelist. :)

Happy holidays to all!

Off Topic / NPC behaviour & AI
« on: 2013-Nov-03 »
Hey there.

During my browsing I found this article on implementing realistic behaviour of game characters.

It seems interesting for game development, so I thought I'd post it here. It'd be especially useful for top-down style games, but can also be adapted to other styles with some modifications in logic.

2D-snippets / Rope physics
« on: 2013-Oct-22 »
In an attempt to create more interesting enemies for my game, I decided to figure out how ropes work. Not only could I use that code to, well, hang ropes around the place, I could also make snakes move around. It would also make creating endbosses more interesting and less time-consuming.

Anyway, here's the code. You can download the entire project as a zip file from here.

Code: GLBasic [Select]
// --------------------------------- //
// Project: Ropes
// Start: Tuesday, October 22, 2013
// IDE Version: 10.283
// Robert van Engelen

GLOBAL rope AS p_rope
GLOBAL mx, my, b1, b2

MOUSESTATE mx, my, b1, b2
rope.init( 20, mx, my)

        MOUSESTATE mx, my, b1, b2 mx, my)

TYPE p_rope

str1_x[]        // points
vec_x1          // vectors
at_x1           // points to attach both sides of rope to
segments_n = 10
gravity = 0.0

txt$            // text to print

FUNCTION init : n1, px, py, grav1=1.7, attach_x1=0, attach_y1=0, attach_x2=0, attach_y2=0

self.segments_n = n1
self.gravity = grav1

LOCAL n = self.segments_n

DIM self.str1_x[n+1]
DIM self.str1_y[n+1]
DIM self.str2_x[n+1]
DIM self.str2_y[n+1]

// initialize points
FOR i=0 TO n-1
        self.str1_x[i] = px
        self.str1_y[i] = py
        //INC self.str1_x[i], 0
        INC self.str1_y[i], i*1

self.at_x1 = attach_x1
self.at_y1 = attach_y1
self.at_x2 = attach_x2
self.at_y2 = attach_y2


FUNCTION play : px, py

LOCAL i, n=self.segments_n, normal_length = 3
LOCAL vec_x1, vec_x2, vec_y1, vec_y2, mag1, mag2, ext1, ext2, xv, yv

// set the new top x and y
self.str1_x[0] = px
self.str1_y[0] = py

FOR i=0 TO n-1

STDOUT "I: "+i+"\n"

IF i > 0
        vec_x1 = self.str1_x[i-1] - self.str1_x[i]
        vec_y1 = self.str1_y[i-1] - self.str1_y[i]
        mag1 = SQR( POW(vec_x1, 2) + POW(vec_y1, 2) ) // get the length between two points
        ext1 = mag1 - normal_length
        STDOUT "ext1: "+ext1+" = "+mag1+"-"+normal_length+"\n"

vec_x2 = self.str2_x[i+1] - self.str2_x[i]
vec_y2 = self.str2_y[i+1] - self.str2_y[i]
mag2 = SQR( POW(vec_x2, 2) + POW(vec_y2, 2) ) // get the length between two points
ext2 = mag2 - normal_length

STDOUT "ext2: "+ext2+" = "+mag2+"-"+normal_length+"\n"

//          xv = (X_Vector1 / Magnitude1 * Extension1) + (X_Vector2 / Magnitude2 * Extension2)
//          yv = (Y_Vector1 / Magnitude1 * Extension1) + (Y_Vector2 / Magnitude2 * Extension2) + Gravity

xv = ( vec_x1 / mag1 * ext1 ) + ( vec_x2 / mag2 * ext2 )
yv = ( vec_y1 / mag1 * ext1 ) + ( vec_y2 / mag2 * ext2 ) + self.gravity

IF vec_x1 = 0 //OR vec_x2 = 0
        xv = 0
IF vec_y1 = 0 OR vec_y2 = 0
        yv = 0

STDOUT "xv: "+xv+"=("+vec_x1+"/"+mag1+"*"+ext1+"), yv:"+yv+"\n"

self.str2_x[i] = self.str1_x[i] + ( xv*0.5 )
self.str2_y[i] = self.str1_y[i] + ( yv*0.5 )


FOR i=0 TO n-1
        self.str1_x[i] = self.str2_x[i]
        self.str1_y[i] = self.str2_y[i]

self.str1_x[n-1] = self.str1_x[n-2]
self.str1_y[n-1] = self.str1_y[n-2]


// draw stuff

LOCAL n=self.segments_n


FOR i=0 TO n-2
        DRAWRECT self.str1_x[i]+96, self.str1_y[i], 8, 8, RGB(255,0,0)
        DRAWRECT self.str2_x[i]+98, self.str2_y[i], 4, 4, RGB(255,255,0)





I was thinking: could you use INLINE C++ to control the OpenGL shaders?
I found some code:

Could that be of any use? I'm not very good in C++ (yet).

While coding my physics engine, I found I needed an algorithm to calculate the closest distance between two lines. After some searching I found this, which I've converted into GLBasic.

This code will work in 2D and 3D. For 2D calculations, just enter zero for all z values. :)

Code: GLBasic [Select]

TYPE point
TYPE geo_line

TYPE geometry

//* Original C++ Copyright Notice
//* ===================
//* Copyright 2001, softSurfer (
//* this code may be freely used AND modified FOR any purpose
//* providing that this copyright notice is included with it.
//* SoftSurfer makes no warranty FOR this code, AND cannot be held
//* liable FOR any real OR imagined damage resulting from its use.
//* Users of this code must verify correctness FOR their application.
FUNCTION norm : c1 AS point

        LOCAL nrm = SQR(dot(c1, c1))
        //console.out("geometry.norm> "+nrm+"\n")
    RETURN nrm


FUNCTION dot : c1 AS point, c2 AS point

        LOCAL dp = (c1.x * c2.x + c1.y * c2.y + c1.z * c2.z)
        //console.out("> "+dp+"\n")
    RETURN dp

FUNCTION linesegments_shortest_distance : line1 AS geo_line, line2 AS geo_line

    LOCAL EPS = 0.00000001
    LOCAL delta21 AS point
    delta21.x = line1.x2 - line1.x1
    delta21.y = line1.y2 - line1.y1
    delta21.x = line1.z2 - line1.z1
    LOCAL delta41 AS point
    delta41.x = line2.x2 - line2.x1
    delta41.y = line2.y2 - line2.y1
    delta41.z = line2.z2 - line2.z1
    LOCAL delta13 AS point
    delta13.x = line1.x1 - line2.x1
    delta13.y = line1.y1 - line2.y1
    delta13.z = line1.z1 - line2.z1
    LOCAL a = dot(delta21, delta21)
    LOCAL b = dot(delta21, delta41)
    LOCAL c = dot(delta41, delta41)
    LOCAL d = dot(delta21, delta13)
    LOCAL e = dot(delta41, delta13)
    LOCAL D = a * c - b * b
     LOCAL sc, sN, sD = D
     LOCAL tc, tN, tD = D
    IF D < EPS
        sN = 0.0
        sD = 1.0
        tN = e
        tD = c
        sN = (b * e - c * d)
        tN = (a * e - b * d)
        IF sN < 0.0
            sN = 0.0
            tN = e
            tD = c
        ELSEIF sN > sD
            sN = sD
            tN = e + b
            tD = c
    IF tN < 0.0
        tN = 0.0
        IF -d < 0.0
            sN = 0.0
        ELSEIF -d > a
            sN = sD
            sN = -d
            sD = a
    ELSEIF tN > tD
        tN = tD
        IF (-d + b) < 0.0
            sN = 0
        ELSEIF (-d + b) > a
            sN = sD
            sN = (-d + b)
            sD = a
    IF ABS(sN) < EPS
        sc = 0.0
        sc = sN / sD
    IF ABS(tN) < EPS
         tc = 0.0
        tc = tN / tD
    LOCAL dP AS point
    dP.x = delta13.x + (sc * delta21.x) - (tc * delta41.x)
    dP.y = delta13.y + (sc * delta21.y) - (tc * delta41.y)
    dP.z = delta13.z + (sc * delta21.z) - (tc * delta41.z)
        // shortest distance between two line segments
        LOCAL sdist = SQR(dot(dP, dP))
        //console.out("geometry.linesegments_shortest_distance> "+sdist+"\n")
    RETURN sdist

I've built my own script to compile on Linux. Some time ago I switched from Ubuntu to Sabayon (a Gentoo flavour). When I try to run my compilation script, it throws a bunch of errors relating to g++. After some digging I think it's because the g++ version on my system differs from the one used by GLBasic to compile. So, which version do I need? Knowing this would save me a lot of compilation time.

Pages: [1] 2 3