Sir LoLz's Recent Forum Activity

  • I am using the 3d object plugin and had to disable webGPU in order to stay on the latest beta of C3. But color change effects don't work now. I tried in both Chrome and Firefox but the effect is still not visible. Any advice? Chrome gives this error

    GL_INVALID_OPERATION: Vertex buffer is not big enough for the draw call.
    
  • Hello.

    in my MP game peers sometimes freeze. what's weird is their mouse inputs still work and sprites still animate. But the 3d camera freezes and does not render. they keyboard does not work either.

    runtime.js:1 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'GetInstances')
     at C3.Runtime._FlushInstancesPendingDestroyForObjectClass (runtime.js:1:31558)
     at C3.Runtime._FlushInstancesPendingDestroy (runtime.js:1:30994)
     at C3.Runtime.FlushPendingInstances (runtime.js:1:30501)
     at C3.Runtime.Step_BeforePreTick (runtime.js:1:39373)
     at C3.Runtime.Tick (runtime.js:1:38000)
     at normal (runtime.js:1:3193)

    Update:

    This seems to happen when projectiles are destroyed. projectiles right now are synced between peers. So when the host destroys them something must be happening on the peer side?

  • I am adding multiplayer and am using the real time example project as a guide. However while it's mostly smooth peers still get a jitter when they stop moving as they align with the host. peer inputs follow the example and are a bit variable only updated on network updates. So I am not sure what is going on. I have included a stripped down project if anyone would be able to help.

    Function that sets the input

    * On function 'setInputState' (copy picked)
    ----+ Keyboard: W is down
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,0,1)
    
    ----+ System: Else
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,0,0)
    
    ----+ Keyboard: S is down
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,1,1)
    
    ----+ System: Else
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,1,0)
    
    ----+ Keyboard: A is down
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,3,1)
    
    ----+ System: Else
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,3,0)
    
    ----+ Keyboard: D is down
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,4,1)
    
    ----+ System: Else
    -----> playerRep: Set INPUT_booleans to setbit(Self.INPUT_booleans,4,0)
    
     // Looking angle is copied to our player. 
    ----+ (no conditions)
    -----> playerRep: Set lookingAngleX to myDesiredAngle
    

    Function that applies the inputs (Taken from the Ghost Capture example)

    * On function 'apply inputs' (copy picked)
     // apply movement
     | Local number moveSpeed‎ = 1
     // Whether or not the player is trying to move left.
     | Local number MoveLeft‎ = 0
     // Whether or not the player is trying to move right.
     | Local number MoveRight‎ = 0
     // Whether or not the player is trying to move up.
     | Local number MoveUp‎ = 0
     // Whether or not the player is trying to move down.
     | Local number MoveDown‎ = 0
     // Reset all movement variables back to zero.
    ----+ (no conditions)
    -----> System: Set MoveLeft to 0
    -----> System: Set MoveRight to 0
    -----> System: Set MoveUp to 0
    -----> System: Set MoveDown to 0
    
     // If the player is pressing A, set the move left variable to one.
    ----+ System: getbit(playerRep.INPUT_booleans,0) = 1
    -----> System: Set MoveUp to 1
    
     // If the player is pressing D, set the move right variable to one.
    ----+ System: getbit(playerRep.INPUT_booleans,1) = 1
    -----> System: Set MoveDown to 1
    
     // If the player is pressing W, set the move up variable to one.
    ----+ System: getbit(playerRep.INPUT_booleans,3) = 1
    -----> System: Set MoveLeft to 1
    
     // If the player is pressing S, set the move down variable to one.
    ----+ System: getbit(playerRep.INPUT_booleans,4) = 1
    -----> System: Set MoveRight to 1
    
     // To which direction the player is trying to move to horizontally.
     | Local number HorizontalAxis‎ = 0
     // To which direction the player is trying to move to vertically.
     | Local number VerticalAxis‎ = 0
     // A general angle based on both horizontal and vertical axis.
     | Local number AxisAngle‎ = 0
     // Calculate the general direction at which the player is trying to move to.
    ----+ System: Every tick
    -----> System: Set HorizontalAxis to MoveRight - MoveLeft
    -----> System: Set VerticalAxis to MoveDown - MoveUp
    -----> System: Set AxisAngle to angle(0, 0, HorizontalAxis, VerticalAxis)
    
     // The final angle of motion for the player.
     | Local number MovementAngle‎ = 0
     // If the player is trying to move to any direction and the game status is set to "Playing", calculate the player's movement angle.
    ----+ System: HorizontalAxis <> 0 | VerticalAxis <> 0
    -----> System: Set MovementAngle to playerRep.LookingAngleX + AxisAngle + 90
     // I tried to move by whole steps instead of allowing delta time to influence the movement. that did not resolve the issue 
    --------+ (no conditions)
    ---------> playerRep: Set X to Self.X + cos(MovementAngle) × moveSpeed
    ---------> [DISABLED] playerRep: Set X to Self.X + cos(MovementAngle) × moveSpeed × 60 × dt
    ------------+ playerRep: Is overlapping wallObject
    ----------------+ System: While
    ----------------+ playerRep: Is overlapping wallObject
    -----------------> playerRep: Set X to Self.X + cos(MovementAngle + 180) × 0.1
    
     // I tried to move by whole steps instead of allowing delta time to influence the movement. that did not resolve the issue 
    --------+ (no conditions)
    ---------> playerRep: Set Y to Self.Y + sin(MovementAngle) × moveSpeed
    ---------> [DISABLED] playerRep: Set Y to Self.Y + sin(MovementAngle) × moveSpeed × 60 × dt
    ------------+ playerRep: Is overlapping wallObject
    ----------------+ System: While
    ----------------+ playerRep: Is overlapping wallObject
    -----------------> playerRep: Set Y to Self.Y + sin(MovementAngle + 180) × 0.1
    

    Host group

    + playerRep: peerID ≠ myPeerID
    + System: For each playerRep
    -> playerRep: Set lookingAngleX to Multiplayer.PeerState(playerRep.peerid, "inputLookX")
    -> playerRep: Set INPUT_booleans to Multiplayer.PeerState(playerRep.peerid, "inputBool")
    -> Functions: Call apply inputs
    
    + playerRep: peerID = myPeerID
    -> Functions: Call setInputState
    -> Functions: Call apply inputs
    

    Peer group

    + Multiplayer: On client update
    + playerRep: peerID = myPeerID
    -> Functions: Call setInputState
    -> Multiplayer: Set client input state "inputBool" to value playerRep.INPUT_booleans
    -> Multiplayer: Set client input state "inputLookX" to value playerRep.lookingAngleX
    
    + playerRep: peerID = myPeerID
    -> Functions: Call apply inputs
    
  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I am getting an error that the project file cannot be opened. I get this error from the console.

    main.js:29 [Project] Exception opening: TypeError: Cannot read properties of null (reading 'sid')
     at projectResources.js:1:494563
     at Array.find (<anonymous>)
     at t.vC (projectResources.js:1:494543)
     at t.vC (projectResources.js:1:452875)
     at t.pKs (projectResources.js:1:714292)
     at t.FZs (projectResources.js:1:766662)
     at async t.DZs (projectResources.js:1:766141)
     at async window.UCn.nIn (main.js:29:1229990)
    

    sid looks like it relates to a link. so a link must be broken. But I can't tell what sid it is referring to. when I search the project file I don't find a null

  • Hello.

    Instead of making peer objects as they join. Their ID is added to a list that the host keeps besides other information regarding the player. (their team, chosen vehicle. ect)

    when the round starts all players go to the loadout and then the host makes the vehicle for each peer.

    however peers seem to get the wrong vehicle. on their end they get the wrong peerID when the object is made. As if they get it backwards. As you can see from the photo the peers on the left see the same tank on the blue square as belonging to the same peer. but the host sees it belonging to the other.

    update:

    it seems to be related to initial objects. I removed all instances of the tank from the layout and now peers always see the correct peerID. Before when there was one on the layout but it was destroyed on entering it seemed to cause peers to see the wrong ID when an object was made.

    Tagged:

  • You do not have permission to view this post

    • Post link icon

    Some of my effects have broken. They show up in the installed plugins window but I cant add them to my project. listed is Glitch, But other effects do not show either.

    I don't mean to cause trouble. But considering I payed for both the editor and effects I don't like they are conflicting with each other. These may get updated in the next stable release sure. But not all addons are so lucky.

  • The whole point of an orthographic view is the distance from the camera doesn't affect the size. You could try scaling the layer/layout instead.

    That does not fix my issue it seems. Also the orthographic view does not fit the preview window despite being on letterbox scale. I get the point is that distance does not affect the size and that is the desired result. so that objects maybe behind a wall on the corner won't be obscured by it's relative perspective. But not being able to choose the orthographic scale limits it's usefulness.

    Blender has a orthographic scale option in it's camera settings. could something like that be added to the 3d camera object?

  • Done.

  • I am using the raycast behavior on a canvas to create custom shapes based on collisions. But when I use the Fill Polygon command (blue) it renders in a glitchy fashion. yet the Draw Polygon Outline (red) works as intended.

    Subscribe to Construct videos now

    Link to the project folder

    https://drive.google.com/file/d/17F7y-pLOX73_4ne47KxPWc695odBgkxl/view?usp=sharing

  • I want the 3d camera to be able to zoom in and out. but it's always stuck at the same distance. I have tried changing the fov and the canvas size. but neither produce the effect.

  • Sir LoLz Try different versions from recent comments in this post.

    For example:

    https://www.construct.net/en/forum/construct-2/addons-29/behavior-easystar-js-96215/page-12#forumPost1091235

    thanks. that fixed it

Sir LoLz's avatar

Sir LoLz

Online Now

Member since 1 Oct, 2014
Last online 21 Jul, 2025

Twitter
Sir LoLz has 58 followers

Trophy Case

  • 10-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Popular Game One of your games has over 1,000 players
  • Famous Game One of your games has over 10,000 players
  • Viral Game One of your games has over 100,000 players
  • Regular Visitor Visited Construct.net 7 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

17/44
How to earn trophies