Jump to content

Rick

Members
  • Posts

    7,936
  • Joined

  • Last visited

Everything posted by Rick

  1. You'd have to cast it to your specific component.
  2. Rick

    Preparing C++ Projects

    See now I'm going to have to replace my goblin or I'll be seen as ripping off Darkness Awaits
  3. I hate that almost every game I install from steam installs the runtimes via installer. It takes an extra 5+ mins to dl/install those damn things and why does every game need to do so. Drives me nuts .
  4. @Metatron I just include the redistrib DLL's in the same directory as the exe. It's like 3 dll's. Maybe someone could explain the downside to doing it this way but it seems far easier, faster, and less intrusive to the user.
  5. Oh nvm, was mixed up on what param he was using that value for.
  6. Yeah you can do what you want, but your script has to follow the LE Lua script template to work. Look at the firepit entity script and you should see it creating emitters and sound objects. You'd want the same thing but using LoadModel() it would seem.
  7. In this specific case I think DrawText() takes an int, but I get what you were trying to show. Just don't want to confuse him if he tries that and nothing happens because it truncates the value to an int, which it's doing right now for him anyway
  8. I have to imagine it's something to do with the setup you guys have. I have never had this error other than not having the scripts folder in the same dir as the running exe. I'm pretty sure I also never use RegisterAbstractPath() function as it must default to the exe dir and subdirs if you don't call it.
  9. Just for another test, have you tried using abstract paths to see if it works? I understand what you are saying, but it's another option to at least test and see if the results are as you would expect.
  10. What I did (in the past) with this is to show the mesh before picking, then hide it right after and it'll never be seen but do it's job. It doesn't take a whole iteration for the show to take hold or anything.
  11. Oh ok yeah if he means upgrades, that's on the to do list
  12. @Red - I agree with mobile/LE3. I think the only way a game like this could be successful is if it's on mobile platforms on lower end specs. - What do you mean by change the wizard when not attacking? This isn't anything I've thought of so curious as to what/why your thoughts are with this idea. My thought process is currently in other tower defense games where you can't change towers, but can sell and replace towers. Or maybe I'm not understanding what you mean. - Currently the wizards can't get hurt, but that's a good idea. I think I have a new enemy type in mind that could harm the wizards. Will play around with the idea to see how it plays. - The 3D art is mostly dexsoft & a game creator pack as I suck at all art so can't take any credit there @ChrisMAN I think I need to make the orcs stronger then because aoe towers should really only be useful vs the goblin masses that come at the player
  13. What if you make an eye in the background where that 5 star circle thing you have is the pupil? The eye should be sort of faint and blend in slightly so people start chatting about how they think that's an eye. That'll add a little human element to it.
  14. @tj thanks for checking it out. Please do pick on it, I like to hear feedback good or bad. It's the only way I grow and learn from this kind of stuff . @Furbolg, there might be 3 reasons for that. Sometimes their cooldown on their attack might be up (mostly fire this happens to), sometimes the enemy might be in the far "lane" and they can't reach it, and sometimes while they start to play the attack animation on a special frame of that animation is when a check is done to see if they are still in range and they "misfire". I should probably just change that and if they are in range at the time of starting the attack animation, they will always follow through with attacking that enemy no matter what. @Red np. looking forward to hearing your thoughts on it.
  15. Thanks to those who have tested to this point. I'm glad to hear nobody had issues running it. I'm going to take this feedback and tweak the game. Being a 1 man show in a game I sometimes have a hard time stepping out of my own idea of what the game is. It's great to get other ideas. @Gandi Yeah to get the 2Dish look I use a pretty low camera zoom value and so I move the camera way out to get enough screen space to do anything and I'm guessing the camera being that far out maybe messes with the shadows. I might have to just scale my assets to be smaller so the camera can be closer with the same zoom value. I like the wizard attack idea also. I start a timer when someone is in range, but instead I'll change that to see if the attack is on CD and if not instantly attack, and use the timer for the CD instead. I also like the idea of sinking the road down some. I'll give that a try. Nice suggestions! I want to keep evolving the idea and make a finished game. This is just the gameplay part and I need to add around it a little story and a way to play more levels, but just wanted to get a feel for the gameplay from people and possibly tweak it some before moving onto those parts of the game. @Josh & Pixel I'll play around with the idea of letting the player place a wizard anywhere near the road, with maybe a required distance between wizards so they aren't stacking up on each other. Will have to think about the best way to implement something like this. I do like giving the player more options and letting them feel more in control instead of just watching. Thanks for the input. @shadmar Thanks for testing! @Chris Get back to work! I need to add a sell option for a wizard so you can re-assign, but this topic you speak of is one of balance that I'm still playing around with. My hope was, which failed it seems , to require frost wizards to slow really high hp enemies (orcs at this point) and to join them with shadow wizards because their DOT's stack or fire wizards because they do the most damage. So the frost wizard would slow the enemy allowing other wizards to beat on them. A fire wizard alone attacks to slow and a shadow wizard needs to get multiple DOT's to really do enough damage. That is the goal anyway. I think at this point it's about tweaking the wizard damage/speed vs enemy hp. The arcane wizards (which seems you enjoyed (as do I) were meant to be required to handle the fast dense goblin waves that come at you. @cassius Thanks for testing! I do have plans for wizard upgrades while the game is going to make it more interactive while the waves are coming. Something like increasing the speed of attack, or % more dmg, or wider area for arcane mage. Each wizard type will get a couple different upgrade directions.
  16. https://dl.dropbox.c...zardDefense.rar 1 level of a Tower defense game I'm working on. With this test release I want to: 1) Make sure it's working on other PC's (as I only have 1 capable of running LE and it's my dev machine). If not, what error, and what are your specs please. 2) Get negative feedback on the game so far. 3) Get positive feedback on the game so far. If you want to play around with the waves, modify Assets/WaveData/Tower001.xml. You should be able to see how it works. If you want to play around with the enemy stats (some aren't relevant yet/if ever) you can modify Data.db3 which is a sqlite db (so you'll need a sqlite db editor). If you put an entry in the enemy table, and put your enemy model in the game folder, you should actually be able to load your own enemies if you also add their name to Tower001.xml file in a wave. I haven't tested this but should work. It won't preload the model right now so you'll probably get a lag when that enemy shows up for the first time. Thanks Rick
  17. Yeah good call, but I'm just confused as to why he's confused about the function.
  18. hmm I guess we might be confused with the parts you are confused with. cycles through every entity is just that. every LE entity that's loaded will be iterated over. AABB is in AABB means just what it says. You define an AABB and if any entities lies inside the AABB you defined then the callback function will be called. The callback is a C function (should be in the documentation on the signature) that the engine will call when the AABB of an entity being iterated lies within the AABB you defined. The Pi stuff was pretty incomplete and there would be a ton of things I'd want to do with them, but going to wait and do them with LE3. You can do whatever you like with them, that's why I put them out there
  19. It cycles through every entity and if any of their AABB is in the AABB you pass to that function, the callback will be called passing in that entity.
  20. You could just check if the camera position is inside the teleporter AABB each frame. I think you can get the AABB of all models from Lua. So then just do a check of x,y,z values between the 2 to see if the camera position is inside the teleporter bbox. Does the camera even have a bbox? Even if you make up a bbox of the camera, just check the x,y,z values to see if they are all inside the x,y,z values of the teleporter.
  21. The only thing I think you need to know about blending is that 1 will play the animation in full strength and 0 won't show the animation being played at all (even if you call Animate()). When you change animations from say idle to walk you don't want to fully just switch from idle to walk because it'll be choppy and look bad, instead you want to smoothly blend from idle to walk. The way you do this is by slowly decreasing the blend of idle from 1 to 0, and increasing the blend value of walk from 0 to 1. You need to call Animate() on both in the same frame to get this effect. This is why each animation needs it's own blend variable. It could also store it's own blend speed if you want to increase/decrease the blending of each animation at different rates. I'm not sure if you are using Josh's examples of animation but normally I, and some others I know, increase the frames ourselves with a timer. Just some pseudo type ideas void PlayAnimation(ActorAnimations anim, string animName) { // check to see if animName is already active and if so bail out of this function because we don't want to activate it twice // find the current active animation in anim and set it's blendMode value to BLEND_OUT, this active value should be true already // set it's currentFrame to startFrame, possibly some other init's // find the animName animation in anim and set it's blendMode value to BLEND_IN, and active to true selectedAnimation.lastTime = AppTime(); } void UpdateAnimation(ActorAnimations anim) { // loop through all animations of this actor foreach(a in anim) { // when we switch animations both will be active, until the blend out one is finished, then we'll set it's active to false if(a.active) { if(a.blendMode == BLEND_OUT) { // use a timer to increase a.blend value over multiple frames until it's >= 1 if(a.blend >= 1) a.blendMode = BLEND_NOTHING; } if(a.blendMode == BLEND_OUT) { // use a timer to decrease a.blend value over multiple frames until it's <= 0 // once we are fully blended out, deactivate this animation if(a.blend <= 0) a.active = false; // just resetting this variable, not 100% needed, but cleaner if(a.blend <= 0) a.blendMode = BLEND_NOTHING; } // animate if(AppTime() - a.lastTime > a.animationSpeed) { a.lastTime = AppTime(); a.frame++; if(a.frame > a.lastFrame) if(a.loop) a.frame = a.startFrame; else // maybe fire a callback function or something so we can handle 1 time animations and what to change to after it's finished } // something like this, can't remember param order Animate(a.model, a.frame, a.blend); } } }
  22. cassius with C you'll want to store an array of a structure that holds the animations of that character because it'll have more than 1 animation to it. Then you can have normal functions like: UpdateAnimations(characterStruct char); Where you process the animations of the character you pass into it. The thing you'll want to do is actually loop through every active animation each cycle. You do this because of blending. You'll most likely only have at most 2 active at a time (unless you are trying to do split animations) and mostly only 1 active. I say this because when you are blending between 2 animations they'll both be active and you'll call Animate() on both but they'll have different blend values. One will be blending in the other out. So you'll need a blend value for each animation and an active flag for each animation.
  23. I say someone make a closeup of a hanging bulb like the one above that has a chain on it to turn it off/on, and a creepy demon like looking hand grabbing the chain to turn it off! If I could draw that's what I would do
  24. I wish it was OO out of the box instead of what you have to do to get it to act OO. Other than that I like it.
  25. It is with with XNA. @OP You can use C# currently with LE.
×
×
  • Create New...