Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(+2)

I agree. This game is nice.

I guess that you are a blitz software user(from your name). By the way, I read a discussion about a new version of Blitz3d. 
https://www.syntaxbomb.com/others/blast3d/

(+1)

๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘

(+1)

Sure. Many people of the Blitz community should be waiting for news of Blast3D because another project Blitz3D NG failed.

(+1)

Hello,  sorry disturb you.

I set up a jam recently.  If you(or  jfkEO1010) are interested in the jam, you(or  jfkEO1010) are very welcome to join it. Thanks!https://itch.io/jam/jam-for-all-basic-dialects-2

You're not disturbing. I shall see whether I'll have the time and opportunity to join the jam, but I would like to.

(+1)

Hello, very welcome!!!

(+1)

Happy New Year jfkEO! ๐ŸŽ‰

The same to you! Thanks. BTW I can't get the ray intersect triangle function to work (works sometimes), any Idea? I'm using the rit() function by elias_t, a mod of the original by sswift who converted it from a Tomas Moller Here's the original, but I'd rather find an other one than to fix this, I tried for hours. So, just if you have a working, reliable RIT() function somewhere.

;-------------------------------------------------------------------------
;A function that finds out if a line segment and a triangle intersect
;and calculates the intersection point in the array picked(2)
;where picked(0)=pickedx,..1=y,..2=z

;

;This actually the function posted by sswift and originally made by Tomas Moller.

;Only here we get also the intersection point !

;

;mod by elias_t

;

;-------------------------------------------------------------------------

;stores the picked location

;Dim picked#(2)

Function rit(Px#,Py#,Pz#, Dx#,Dy#,Dz#, V0x#,V0y#,V0z#, V1x#,V1y#,V1z#, V2x#,V2y#,V2z#, Extend_To_Infinity=1, Cull_Backfaces=0)

;-

E1x# = V2x# - V0x#

E1y# = V2y# - V0y#

E1z# = V2z# - V0z#

;-

E2x# = V1x# - V0x#

E2y# = V1y# - V0y#

E2z# = V1z# - V0z#

; Hxyz = Crossproduct(Dxyz, E2xyz)

Hx# = (Dy# * E2z#) - (E2y# * Dz#)

Hy# = (Dz# * E2x#) - (E2z# * Dx#)

Hz# = (Dx# * E2y#) - (E2x# * Dy#)

; Calculate the dot product of the above vector and the vector between point 0 and point 2.

A# = (E1x# * Hx#) + (E1y# * Hy#) + (E1z# * Hz#)

;cull

If (Cull_Backfaces = 1) And (A# >= 0) Then Return 0

;parralel

If (A# > -0.00001) And (A# < 0.00001) Then Return 0

;Inverse Determinant

F# = 1.0 / A#

;-

Sx# = Px# - V0x#

Sy# = Py# - V0y#

Sz# = Pz# - V0z#

; U# = F# * (DotProduct(Sxyz, Hxyz))

U# = F# * ((Sx# * Hx#) + (Sy# * Hy#) + (Sz# * Hz#))

;check u

If (U# < 0.0) Or (U# > 1.0) Return 0

; Qxyz = CrossProduct(Sxyz, E1xyz)

Qx# = (Sy# * E1z#) - (E1y# * Sz#)

Qy# = (Sz# * E1x#) - (E1z# * Sx#)

Qz# = (Sx# * E1y#) - (E1x# * Sy#)

; V# = F# * DotProduct(Dxyz, Qxyz)

V# = F# * ((Dx# * Qx#) + (Dy# * Qy#) + (Dz# * Qz#))

;check v

If (V# < 0.0) Or ((U# + V#) > 1.0) Return 0

T# = F#*((E2x#*Qx#)+(E2y#*Qy#)+(E2z#*Qz#)) 

; If T#<0 Return 0; orig

If T#<=0 Return 0

If Extend_To_Infinity=0 And T#>1 Return 0

pickU=U

pickV=V

;-------------------------------------------------

;Calculate intersection point

nx#=(E1y*E2z)-(E1z*E2y)

ny#=(E1z*E2x)-(E1x*E2z)

nz#=(E1x*E2y)-(E1y*E2x)

d# = -  nx*V0x - ny*V0y - nz*V0z 

denom# = nx*Dx + ny*Dy + nz*Dz

mu# = - (d + nx*Px + ny*Py + nz*Pz) / denom

picked(0) = Px + mu * DX

picked(1) = Py + mu * Dy

picked(2) = Pz + mu * Dz

;-------------------------------------------------

;intersects

Return 1

End Function

(+1)

I see and you're in luck! I just found and posted here which might be older than that code.. it's from Blitztastic. 

not sure though if it's more reliable, but worth a try.

Thanks a lot! Tho "example code below... function has not been heavily tested as yet" seems to be the predominant term, where-ever I look. Will try it out. You know, one of those days... things don't work, so you start rewriting the underlying layers... at some point you then have to rewrite the OS or something. So I had this idea to use copperlicht as a renderer, but failed to implement collision cam vs mesh in code, so after many hours I thought it's easier to implement collision by my own, which was where the non-working RIT function came into play.

At some point I intended to write my own, to invent the mother of all RITs (slight megalomania phase): if watched from 3 sides, the ray must intersect with some of the edges on all 3 views, or alternatively have both, start end end ray point inside the 2D view triangle. I had a working 2D line-intersect-line code, so I needed a 2D point in triangle code, which again duckduckgo hid any good info from me, so I brainstormed and realized: if the point is inside, then all 3 lines from the point to the 3 corners of the triangle will NOT intersect with any of the triangle edges. Otherwise the point is outside (ignore intersection when intersection point is equal triangle corner). Long story short, nice theory, isn't it? However, it just didn't work for some mysterious reason. The ghost of Elvis in the CPU or something. So after countless hours I run coppercube, used it to convert my mesh to a ccb webgl level, with collision preset, et voila! I got collision now. Still, I'd love to be able to do that in copperlicht.js without coppercube as a converter, but the docs they ehrm - feature an underpressure effect.

That said, one day somebody like me or you, should really look into developing a converter for something like Blitz3DLite to WebGL, be it copperlicht, babylon or one of the few others. Cause I have yet to find a system with a learning curve so NOT steep and prototyping speed so fast as Blitz3D. (That is, under normal circumstances AKA "Elvis left the CPU"-state)

(1 edit)

Sure thing. I see,  perhaps you can submit a request to the author, he might be open to feature suggestions and other issues.

I agree and I'm also pretty sure you'll come up something better with this RIT dilemma eventually.. if not soon. cheers.

Same here, but it's going to be a busy first quarter jumpstarting with all blitz + other personal stuff and so we shall see..

Happy New Year ๐ŸŽ‰

(1 edit) (+1)

No problem.
Good luck in 2022!!!!!