Fracturetrix Game Announcement Video

Advanced game related topics
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

IceSoft wrote: Mon Sep 08, 2025 1:13 pm which part is using PureBasic?
Are you using using an Lightwave3D PB wrapper?
Oh no no... It's all PureBasic running the show. Lightwave rendered the image/animation content PureBasic is using.
User avatar
MikeHart
User
User
Posts: 18
Joined: Sat Sep 02, 2017 7:29 pm
Location: Germany

Re: Fracturetrix Game Announcement Video

Post by MikeHart »

It takes one freakin minute till you reach the menu. Way to long. No game play is shown. How is this surpose to make me want to see more of the game? It is a promotion video for a flashy menu. Even for this it is way to long.
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

(See next post)
Last edited by Carm3D on Wed Sep 10, 2025 12:47 am, edited 1 time in total.
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

MikeHart wrote: Tue Sep 09, 2025 7:46 pm It takes one freakin minute till you reach the menu. Way to long. No game play is shown. How is this surpose to make me want to see more of the game? It is a promotion video for a flashy menu. Even for this it is way to long.
Here you go. https://youtu.be/eabCYXbcJ0A (Unlisted) Press escape at the logo or intro, and double press your menu selection to skip the flashy stuff.
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

My fancy schmancy smooth scrolling system.

Code: Select all

Structure ScrollData
    Active.a
    PosF.f
    Pos.w
    Goal.w
    Adjust.f
    AdjustOld.f
    ChangeLimit.f
EndStructure

Global ScrollProc.ScrollData
Global ScrollY.ScrollData

Procedure ScrollProcNewGoal()
    ScrollProc\Active = 1
    ScrollProc\PosF = ScrollProc\Pos
    ScrollProc\ChangeLimit = 0.0
EndProcedure

Procedure Scroll_Process()
    ScrollProc\Adjust = (ScrollProc\PosF - ScrollProc\Goal) * (0.007 * TimeDelta)
    ScrollProc\ChangeLimit + (0.002 * TimeDelta)
    If ScrollProc\ChangeLimit > 1.0 : ScrollProc\ChangeLimit = 1.0 : EndIf
    ScrollProc\Adjust = ScrollProc\AdjustOld * (1.0 - ScrollProc\ChangeLimit) + ScrollProc\Adjust * ScrollProc\ChangeLimit
    ScrollProc\PosF - ScrollProc\Adjust
    ScrollProc\AdjustOld = ScrollProc\Adjust
    ScrollProc\Pos = ScrollProc\PosF
    If ScrollProc\PosF - ScrollProc\Goal > -0.3 And ScrollProc\PosF - ScrollProc\Goal < 0.3
        ScrollProc\Active = 0
        ScrollProc\Adjust = 0.0
        ScrollProc\AdjustOld = 0.0
    EndIf
EndProcedure

; Set up before entering screen:
    ScrollY\Pos = 150
    ScrollY\PosF = 150.0
    ScrollY\Active = 0
    ScrollProc\Adjust = 0.0
    ScrollProc\AdjustOld = 0.0

; And assign a new goal like so:
ScrollY\Goal = Y_Goal_Value_You_Want
ScrollProc = ScrollY
ScrollProcNewGoal()
ScrollY = ScrollProc
TimeDelta is the ElapsedMillisecond difference from each frame.. This allows the effect to stay constant if the frame rate changes.

Results: https://youtu.be/zT71pif0VtA (unlisted)
Last edited by Carm3D on Fri Sep 12, 2025 4:30 am, edited 1 time in total.
User avatar
idle
Always Here
Always Here
Posts: 5914
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Fracturetrix Game Announcement Video

Post by idle »

scroll looks smooth and I like the fractures, smoke and falling fragments effects.
how have you done that, if you don't mind me asking?
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

idle wrote: Thu Sep 11, 2025 5:31 pmscroll looks smooth and I like the fractures, smoke and falling fragments effects.
how have you done that, if you don't mind me asking?
Thanks! The smoke was made of two small puffs of smoke generated in Storm and rendered in Lightwave. I assembled them into sprite sheets.. Then my code generated a cluster of them playing at slightly different speeds and with rotation. The fragments were also animation from Lightwave.

Code: Select all

(0.007 * TimeDelta)
Alter this number to make the scrolling faster or slower.

If you have other questions let me know. Thanks!
User avatar
idle
Always Here
Always Here
Posts: 5914
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Fracturetrix Game Announcement Video

Post by idle »

Carm3D wrote: Thu Sep 11, 2025 5:42 pm
idle wrote: Thu Sep 11, 2025 5:31 pmscroll looks smooth and I like the fractures, smoke and falling fragments effects.
how have you done that, if you don't mind me asking?
Thanks! The smoke was made of two small puffs of smoke generated in Storm and rendered in Lightwave. I assembled them into sprite sheets.. Then my code generated a cluster of them playing at slightly different speeds and with rotation. The fragments were also animation from Lightwave.

Code: Select all

(0.007 * TimeDelta)
Alter this number to make the scrolling faster or slower.

If you have other questions let me know. Thanks!
It's fairly complex to do in code and I can't really notice that it's been rendered to sprite sheets, well done!
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

idle wrote: Thu Sep 11, 2025 6:23 pm It's fairly complex to do in code and I can't really notice that it's been rendered to sprite sheets, well done!
Well the key is using Structures. If you don't know how structures work, dig into them. Otherwise trying to do effects like this is ridiculously complicated. Again, ask me if you have more questions.
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

Modification to my smooth scrolling routine.. Adding ChangeLimitAdd makes it even more buttery smooth.

Code: Select all

Structure ScrollData
	Active.a
	PosF.f
	Pos.w
	Goal.w
	Adjust.f
	AdjustOld.f
	ChangeLimit.f
	ChLimitAdd.f
EndStructure

Procedure ScrollProcNewGoal()
	ScrollProc\Active = 1
	ScrollProc\PosF = ScrollProc\Pos
	ScrollProc\ChangeLimit = 0.0
	ScrollProc\ChLimitAdd = 0.0005
EndProcedure

Procedure Scroll_Process()
	ScrollProc\Adjust = (ScrollProc\PosF - ScrollProc\Goal) * (0.006 * TimeDelta)
	ScrollProc\ChangeLimit + (ScrollProc\ChLimitAdd * TimeDelta)
	ScrollProc\ChLimitAdd + 0.0004
	If ScrollProc\ChangeLimit > 1.0 : ScrollProc\ChangeLimit = 1.0 : EndIf
	ScrollProc\Adjust = ScrollProc\AdjustOld * (1.0 - ScrollProc\ChangeLimit) + ScrollProc\Adjust * ScrollProc\ChangeLimit
	ScrollProc\PosF - ScrollProc\Adjust
	ScrollProc\AdjustOld = ScrollProc\Adjust
	ScrollProc\Pos = ScrollProc\PosF
	If ScrollProc\PosF - ScrollProc\Goal > -0.3 And ScrollProc\PosF - ScrollProc\Goal < 0.3
		ScrollProc\Active = 0
		ScrollProc\Adjust = 0.0
		ScrollProc\AdjustOld = 0.0
	EndIf
EndProcedure
Last edited by Carm3D on Fri Sep 12, 2025 4:34 am, edited 2 times in total.
User avatar
idle
Always Here
Always Here
Posts: 5914
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Fracturetrix Game Announcement Video

Post by idle »

Carm3D wrote: Fri Sep 12, 2025 1:52 am
idle wrote: Thu Sep 11, 2025 6:23 pm It's fairly complex to do in code and I can't really notice that it's been rendered to sprite sheets, well done!
Well the key is using Structures. If you don't know how structures work, dig into them. Otherwise trying to do effects like this is ridiculously complicated. Again, ask me if you have more questions.
The key was using lightwave more like. The 2D engine doesn't do physics, texture mapping, particle systems or integration for that matter.
I think I know about structures, I've been coding since 1977 :lol:
Carm3D
User
User
Posts: 78
Joined: Mon Feb 17, 2025 10:04 am

Re: Fracturetrix Game Announcement Video

Post by Carm3D »

idle wrote: Fri Sep 12, 2025 4:30 amThe key was using lightwave more like. The 2D engine doesn't do physics, texture mapping, particle systems or integration for that matter.
I think I know about structures, I've been coding since 1977 :lol:
Lightwave and Storm yes... They put a nice polish on it. 8)
Post Reply