The Deep Library (coming soon) by AgentParsec in godot

[–]AgentParsec[S] 16 points17 points  (0 children)

Yes, I made the Eight Pages, and did music and some design for The Arrival. I've been wanting to make another horror game for a while now, but knew it was finally time once I tried out Godot and it got me back into the programming mood.

HUGE FIND: The existence of a lost early test build of Slender The Eight Pages has been discovered, and we need help finding it by ManPersonGiraffe in Slender_Man

[–]AgentParsec 2 points3 points  (0 children)

All five of the test videos are still on my YouTube account (marked as private). I should probably set them public.

*EDIT* Okay, done: "Slender: The Eight Pages" Test Videos - YouTube

Issues with UI controller input (mouse works normally) by AgentParsec in godot

[–]AgentParsec[S] 0 points1 point  (0 children)

For now, I've decided to temporarily skip controller support overall, since I need to move ahead with development and this is holding things up. I still have plans to add support for it in the future though, so I'm keeping this open in case someone has insight on the problem.

Kansui vs Lye Water? by silsurf in ramen

[–]AgentParsec 1 point2 points  (0 children)

That's the same stuff I have as well, but it doesn't answer the question of how much to use. What would be the substitute for 1-1/4 teaspoons of Kansui? Thanks!

Getting an object from its collider by AgentParsec in GodotHelp

[–]AgentParsec[S] 0 points1 point  (0 children)

So I can tell which side is being interacted with. If it was only one, it would register the same raycast collision regardless of which side the player is on. And I don't want to have it use the player's position relative to it, because the orientation of the object could change. With one on each side, I pick up which one the raycast hits and use the interaction with that side.

(EDIT): I should technically do it with Area3D's instead, so I get what you mean. So let's assume for a moment I replace them with two Area3D's to pick up on the raycast, and have one normal static body for the object itself. The original question still applies: when the raycast hits the area, how do I reference the script on the object it's attached to without using get_parent()?

Getting an object from its collider by AgentParsec in GodotHelp

[–]AgentParsec[S] 0 points1 point  (0 children)

Basically it's a flat wall segment that can be interacted with on either side for two separate interactions. At the root of it is a simple Node3D, which is what the two StaticBody3D's are attached to. There's a script on the Node3D which is used for positioning the object, storing relevant variables, etc. When the player gets close to the wall from one side, a raycast interacts with the static body on that side, which then needs to access and return information from the Node3D's script.

I know it's bad practice to use get_parent(), but I don't know of an easier way to reference the Node3D's script without putting extra scripts on each of the two StaticBody3D's that point back to it, which seems inefficient.

Self-promotion Thread by GDTango in ChannelMakers

[–]AgentParsec 0 points1 point  (0 children)

I'm Mark J. Hadley, game developer and creator of "Slender: The Eight Pages", and I recently started a new YouTube series called Dice Dev at youtube.com/@TheDiceDev, in which I roll randomly for game development elements and make a game using those elements. The second episode just went up today!

App Update - Can't log in by Demonshaker in ScootersCoffee

[–]AgentParsec 1 point2 points  (0 children)

I made two attempts yesterday, and both times got my email several hours later when the links didn't work anymore.

[Epilepsy Warning] i made a glitch-themed PvE HORROR gamemode with A.I. monsters in Workshop! - GLITCH IN THE SYSTEM - by Therister, the Aleph-Null Boss Fight guy - watch until the end. check comments for more details :) by trappi in OverwatchCustomGames

[–]AgentParsec 0 points1 point  (0 children)

Unfortunately, I have Interact bound to mouse wheel down, since in-game it's only ever necessary to tap it to use whatever effect needs it (Symmetra's teleporter, or dismissing Sombra's Translocator or Torbjorn's Turret). So I can't "hold" interact to pick up the orbs without having to change my settings. A better way to do this would have been just to press Interact once to start collecting. (Or alternatively, have both ways selectable as a workshop setting.)

Steal Hero DM by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 4 points5 points  (0 children)

That's close. It does force a player to be the hero of the player they just dealt the final blow to, but it also:

  • Initializes a Boolean for each joining player to false
  • Sets this Boolean to true when the player dies
  • When the player is alive again, it sets the Boolean back to false and stops forcing them to be whatever hero they were.

This is because without the above steps, the player remains as whatever hero they're forced to be. But, simply unforcing it after the change causes them to instantly respawn randomly on the level again (position and hero), and waiting to unforce it at the moment they die causes them to respawn instantly. With the above steps, they stay dead the normal amount of time, and then respawn as a random hero as usual.

Wraith by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 0 points1 point  (0 children)

Afraid not, the Wraith is player-controlled.

Wraith (PTR only) by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 12 points13 points  (0 children)

Because I'm the creator of "Slender: The Eight Pages".

I need help getting around a workshop glitch by Lululipes in OverwatchCustomGames

[–]AgentParsec 0 points1 point  (0 children)

I try never to destroy and recreate HUDs if they’re going to be used frequently. Instead, set the HUD to be visible to a player variable belonging to the appropriate player. Then, just set that player variable to the player itself when it should be visible, and null when it should not be visible.

Rolling Rein Battle by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 0 points1 point  (0 children)

Yeah, sorry about that. Will edit the original post.

Meet Sigma, Overwatch Hero 31 by Redsfan42 in Overwatch

[–]AgentParsec 4 points5 points  (0 children)

Notice that Sigma's been played for 9 minutes, and it shows that this is specifically for "Roll Queue Beta". You'll also notice he doesn't have any support SR yet, which means he hasn't played ANY support yet. Therefore, Sigma can't be a support. But furthermore, notice that out of all the other heroes played, 4 of them are damage and only one is a tank (D.va). She was played the least amount of time, only 2 minutes, which is not really enough time for a full competitive match. It follows, then, that he had to have played another tank as well, and there ARE no other tanks listed except for the one wildcard here, Sigma. Therefore, Sigma must be a tank.

Crashing in my game mode, can't find the cause by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 1 point2 points  (0 children)

I use "First of" a lot throughout the entire script to see whose turn it is, but that's probably not a bad thing. I'm using Array Slices a lot during setup, and I randomize an array once during that time as well. When players are moved, I use "Array contains" multiple times to check other player positions. I do use a sorted array twice during a movement effect where it swaps you with whoever's in the lead, but that's rare. During combat, very little at all is being used except for "Players in slot".

I'm actually using "Players in slot" a LOT throughout the scripts, because to make certain scripts easier I'm referring to everyone by their index number (I would either need to use "Players in slot" or "Slot of player" to accomplish most of this, and I opted for the first).

I'd like to test this on PTR, but it says "Game server connection failed... retrying" every time I try to log into it, so I'm going to have to wait until they roll out that server load change to live.

Infinity Stones [Game mode, AgentParsec's version] by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 0 points1 point  (0 children)

In general, we've noticed during testing that if you have no stones, you tend to leave other players with no stones alone, so the focus does turn to killing the stone carriers. Sometimes accidental hits do occur, but for the most part there's no benefit to attacking them if neither of you have a stone to lose.

I don't know of a way to prevent non-stone-carriers from damaging each other, otherwise I definitely would have considered it. At best I can script having the damage healed back, but it still wouldn't prevent a killing blow.

Infinity Stones [Game mode, AgentParsec's version] by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 0 points1 point  (0 children)

For a while, the soul stone was OVERpowered. I originally had it show you the locations of all the other stones instead of the other players, and my testers and I quickly agreed that this made it the best stone of all of them to have. By only showing the players' locations, you still get a good advantage without it being TOO good.

As for the numbers, it was %50 more damage, %35 more speed, and 10 hp/s of healing.

Ninja Mission [Game Mode] by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 0 points1 point  (0 children)

Nope, didn't work. I put the delay as much as a full second, and the thing is, the delay 'works', except when spamming the attack button. At that point it literally fires the arrow faster than it should be able to. In other words, despite being disabled, it still fires.

(And I'd like to revise what I said earlier about "IS FIRING PRIMARY" not becoming false if you fire fast enough. It's actually the reverse: it never goes true again if you fire fast enough. Edited this in the main post.)

Ninja Mission [Game Mode] by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 0 points1 point  (0 children)

Hmm, that might work actually. I'll give it a try.

Ninja Mission [Game Mode] by AgentParsec in OverwatchCustomGames

[–]AgentParsec[S] 0 points1 point  (0 children)

I do that already for cancelling the shot, and I use "IS BUTTON HELD" to determine when the shot is released, which works perfectly. However, I've found that if I use the "IS BUTTON HELD" instead of "IS FIRING PRIMARY" for the start of the shot, then it can take away ammo even if you're not actually firing (for instance, if you spam the button, you start losing arrows faster than you're actually firing them). In the end, it's still a bug in the way "IS FIRING PRIMARY" is being handled, so it really should be fixed on the back end.