Jump to content

Rick

Members
  • Posts

    7,936
  • Joined

  • Last visited

Posts posted by Rick

  1. Show me more of that script. I assume a little further down it's calling enemy:Hurt()? Does it have the player somewhere (the owner of this gun).  After calling enemy.Hurt() is where I would check the health of the enemy and if zero add one to the kill counter on the player as that's the point as to where you've killed an enemy and I assume the player is the thing that holds the kills variable?

  2. Normally if you want to show the health like this you do it on every pick like you are. If you want to shoot it you do another pick inside a mouse down (assuming left click mouse down shoots) to check what you shot and apply dmg to that thing.

  3. 2 hours ago, Lethal Raptor Games said:

    How does one cheat in a game?  If you protect your files and don't provide a console and don't make cheat codes... how can it be done?

    Given this is a post about multiplayer the cheating would be on the network commands they can send or suppress if they are the host of the game (for games that have no central server). 

    • Like 1
  4. 6 hours ago, Josh said:

    Couldn't you just tell the client "a grenade is exploding" and let it decide whether that incurs damage or not, and send that result to the host?

    In most all multiplayer games you can't let the clients decide anything as important as to incur damage or not or how much. That game would run rampant with cheating. This is why peer to peer networking with no server works in only certain types of games. Most games don't work well with that model.

  5. Yeah, it usually takes a few reads to figure out. :)

     

    The thing with LE is that you can't really do a client/server architecture since you need the gfx in LE to be initialized and servers generally don't have that. LE really needs the physics simulation to be separate from the renderer for client/server to really work. So it's basically peer to peer for networking in LE otherwise it's a lot of work as you'd need to run Newton library separately on the server.

  6. What does SetBool() do? It seems odd to me that you'd pass multiple 2 values, a string and a number to something called SetBool().

     

    • SetBool(string name, boolean value)

     

    Your second value should be a true/false not a number. Maybe you're looking for SetInt() (if that exists)

     

     

    [EDIT]

    Looks like there is a SetFloat() that you may be looking for.

    • Sad 1
  7. myPanel:SetBool("radius",9") -- Not Workd.
    myButton:SetBool("radus,9)  -- Yes Work.

     

    Look at the syntax you have there. You'll always need matching double quotes. Your first one you have a double quote at the end of the 9 but no matching one for that. Your second one you only have 1 double quote.

    • Haha 1
  8. Notice how the function has --in at the end. That tell the editor it can be called. When --in functions exist with parameters you need a function that has --args and returns a value (I believe is the name) and then that'll show up and you can drag that function to the dot that should show up in the flowgraph on the line of the ReceiveHealth() function. So dots show up on that line and they act as argument placeholders (1 for each argument). When you drag a --args function to that line, that function will be called and the returning value will act as the argument value.

    • Thanks 1
  9. I would assume with root motion speed the engine would be setting speed of movement using animation speed? Therefore I would think we would also be able to make that link ourselves? There just must be a formula to get the speed based on animation data.

  10. I suppose one puts the speed in the hands of the programmer and the other the animator. As a programmer I'd want control of the speed but if I had an animator on the team I'd be fine with them having control as it's something I wouldn't have to worry about then because matching up movement speed an animation speed can be tricky sometimes.

  11. Motivation usually fades when you have to start doing to "boring" stuff (whatever is boring to you). I found it also faded when you had to really nail down some mechanic that wasn't well defined. I often felt like if I made the wrong choice it would ruin the game so you make no choice at all, which doesn't even give the chance for the game to be ruined because it never gets made.

    I think the fear with making simple games is that even a simple game will have aspects that are difficult and you put all that effort into a game that in the end isn't that fun. There used to be a good and simple game here like Furious Frank or something. It was well done and simple. When you played it you were like oh cool...for about 5 mins. Then you never played it again. That person I'm sure did put a fair amount of effort into but the question is what did they get in return?

    A game like that Furious Frank is something I've thought about creating again. I tried to recreate something like that before Pissed off Pete, but scope creep kept coming into play because I knew Furious Frank was fairly boring after a very short amount and though, why make a boring game? If I only added this and this and this it'll be fun, but then you never finish it because all of those things were harder to do and added time and weren't really fleshed out well.

    • Like 1
  12. 17 minutes ago, Lethal Raptor Games said:

    I've been using SetUserData() previously but I need more than one object assigned to an entity.

    Then you should be able to make the user data that you set a list of objects that you can add/remove from.

  13. To me it's more about the convenience and perceived expense. If I can pay $20/mo to play top end games all the time and cancel at any time then that's a good deal considering a top end gfx card costs around $300+. I mean if I can play in a browser on a chromebook what cost me $200 total then I call that a win!

  14. When dealing with crouching it has to do with the character controller. In your screenshot we can't see your character controller as you don't have physics debugging enabled. If you are able walk under that ceiling you have, then crouching is working. Crouching in SetInput() has nothing to do with your character model itself. If you want your character to appear crouching then you'll have to manually play that animation on your character model to get that.

    • Like 1
    • Upvote 1
  15. 22 hours ago, gamecreator said:

    It doesn't need to be everyone.  I'm sure they've crunched the numbers of how many people have a good enough bandwidth, how many locations across the U.S. or world they would need to set up (so that latency is minimized), how many people would actually pay for the service to cover their expenses, etc. etc.  Not to say that they can't be wrong and it fails anyway but it's safe to say they have the numbers.

    It used to be that people doubted things like Netflix would work out because people didn't have the bandwidth for that either.  And it became immensely successful.  Similar with YouTube 1080p (and 60fps and 4K) streaming, Twitch, etc.  The world is rapidly changing for the better in this respect and it's not gonna slow down.  More and more people will try to make dramatic things work that we couldn't have imagined even just a few years ago.

    It is my belief that stream playing games is the future and will be here in the next 10 years as a good quality (things are still shaky right now) at min. However watching video is completely different than what this is. The input lag has been the main issue with this stuff. Having enough bandwidth to send the result frames to a person was only a matter of time in speed/bandwidth which was inevitable as things are always getting faster. Not experiencing input lag, especially for fast twitch online games, can be a challenge since your input has to take an extra few hops now. Before it was from your PC to the game server. Now it's your PC to the cloud streaming your game, to the game server. In this model it would make sense if the game servers were actually in the same datacenter as the cloud streaming your game to make that step as fast as possible but this would be a lot of coordination with game devs and leave out the little guys game trying to compete in this space most likely.

  16. function UpdatePlayer()
    
    
    end

    This is a global function and once defined you can call it from any script in your app. The other one's scope is on that entity only. So you'd first need a reference to that entities script (like entity1.script:UpdatePlayer()) to be able to call it. Note that inside UpdatePlayer() you can't use the normal self.entity because inside that script it doesn't know anything about that. So global functions work on global data or data you pass into it from a parameter (in this case you have no parameter).

    • Upvote 1
×
×
  • Create New...