Welcome to Crestfall Gaming

Register now to Crestfall Gaming. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Darkrasp

Developer
  • Content count

    859
  • Joined

  • Last visited

Community Reputation

3682 Excellent

About Darkrasp

  • Rank
    Knight-Lieutenant

Recent Profile Visitors

9013 profile views
  1. First point, we never set a release date. Ever. At any point. So the idea of three release dates is frankly comical. Second point, the only moderation I do on these boards is to delete spam. You're free to post whatever you want (provided it conforms to basic standards of polite discourse), at least until I get bored enough of what you write to consider it spam. All that said, if you really don't believe the project will ever finish, you're free to leave and never come back.
  2. Is what happening? Crestfall? Yeah. Slowly but surely. With the whole classic thing, the sense of urgency is more or less gone. Asura, myself, and the rest of the beta team are still picking away at the project and we still intend to launch when it's finished, but we aren't setting any deadlines for ourselves, and we aren't putting in hours and hours every day anymore. It's well and truly a hobby project that will be ready when it's ready. If you're looking for something to play right now, then I would not advise waiting around for us. I'll be straight. A ton of work has gone into Mangos over the last few years due to the notoriety of Nost and the following phenomena. The level 60 gameplay has gotten to a point where it is pretty well done, certainly playable and close enough to what retail used to be to give a fun and rewarding gameplay experience. Most of the events and content are scripted to a reasonably high standard. Mechanically it's pretty sound, and increased computing power can compensate for at least some of the inherent instability and sloppy code that kind of defines Mangos. Yeah, it's a bit of a backhanded way to say it, but what I'm getting at is that Mangos has gotten to a point where it is actually pretty good for endgame content. If all you care about is level 60, you can pretty safely just go there now. We are taking the time to dig back and correct everything. Mangos uses kinds of flawed formulae that work fine at level 60 but not during the levelling process. As an example, the formulas for intellect to spell crit used literally everywhere else are wrong. The only servers that properly calculate spell crit from intellect at levels below 60 are retail and Crestfall. Same with health gain, stat gain, mana gain, attack power from strength and/or agility, etc. etc. Similarly we are working on multiple-client compatibility so that we can run the same emulator for Vanilla, TBC, and Wrath.. a task that is far beyond the scope of what any Mangos realm is going to do. That's all before you even mention real, actual clustering. Of course, most people only care about level 60, and they can just run separate realms for each expansion and skip all that trouble, and so on, and so on, but that's not the way we want to do it. We are intentionally doing it the hard way because... well, because we can. It's a challenge, and that's what makes it fun for us. We have built an entirely new engine for lua, an entirely new system for scripting via the database, entirely new creature AI, overhauled miles and miles of old trash code and dragged it into current code standards. We don't have to try to out-compute the inefficiencies of the code because it is incredibly lean and clean. It's. Just. Not. Finished. Yet. and a task like this takes a lot of time for a small team to achieve. We're not daunted by it, we've just gotten realistic about the fact that while this is rewarding to work on, it's not our whole lives, and it isn't ever going to be. It's not the top priority thing for either of us, so rather than give up everything and quit, or give up everything else and ruin our lives to ensure a quick release, we're just striking the middle path and balancing working on CF with having actual fun lives involving more than visual studio. So yeah, CF is still a thing, and it's still being worked on. That said, if you prefer to play elsewhere rather than wait for us, it's not going to hurt my feelings any. We put as much time into the project as we feel like, and no amount of outside pressure is going to change that.
  3. Am I supposed to respond to this? Alright, I'll bite. Crogge never asked for permission to make the post, and I don't care either way that he did. It looks to me like it was copy/pasted from Elysium and he just changed the name to Crestfall. Probably thought it would be nice to share the application with the community, but didn't want to write a whole new post for it. If you're worried about it having a virus or something, it's open source. Check the code and build it yourself if you want. Or not. Whatever. /Shrug.
  4. Note: Crogge isn't actually an admin of the Crestfall project. He does still maintain the forums for us though because he's a good guy and neither Asura or myself wants to do it.
  5. The plan for the project is Vanilla, TBC and Wrath. Cataclysm is a possibility, the structures are almost identical to Wrath, so it would be very little additional work to go to 4.x if we are already doing 3.x. Beyond Cataclysm, however, there are a lot of major changes to how the emulator would have to function. That's just too big an investment in time and effort to really consider - at least for the time being.
  6. We're still working. Just not posting updates anymore. Plan is for PTE from Vanilla-Wrath. No launch date has been announced.
  7. Hey all, First off, I want to apologize for missing a couple updates. Honestly, I just haven't felt like writing out long posts. I think going forward I'm going to drop the biweekly blog and just post when we have something useful or important to share. So they'll be more sporadic but we'll pack more content into them when they come. Anyways, both Asura and myself have been on a bit of a break over the holidays but we're back to work now. I just spent a couple hours merging all my recent work into the new repository, and I'm settling back in on a few of the larger problems I started a while ago but didn't finish. Asura has been working on some new networking code and revamping the instance server code. I think he also mentioned adding another batch of lua commands to the scripting system as well. Hopefully that means we'll be getting to work on scripting for instances soon-ish. In any case, we're still kicking. When we have some news we find noteworthy, we'll share.
  8. Good evening, What with it being the holiday season, I've been taking care of a bunch of stuff for my family (I do all the Christmas shopping/wrapping/decorating for my parents since my father is disabled) and enjoying some time off from work. Haven't spent much time coding, and therefore haven't gotten much done, nothing noteworthy anyways, so I'm going to skip this blog post and resume in a couple weeks. The next regular post would be on Christmas day, so I think we'll skip that one as well, and resume updates on Monday, January 1st. I expect we'll have some more progress to report by then. As a side note, I have spoken to Asura and he says he expects to be able to get back to some semblance of regular contributing in a couple weeks. We'll probably do some sort of official post to recognize the holidays, but depending on what you're celebrating you may already be in the middle of it. Whatever your practice, I hope you have a great holiday season and a safe and happy New Year. Talk to you soon, and thanks again for your continued interest in Crestfall.
  9. I did consider using a velocity to plot the destination point, which isn't that tough considering mob running speed is almost always 7.5, and player run speed is almost always 7.0. Obviously that will change if you are hasted and/or slowed, or swimming, or backpedaling, etc. Some mobs are also particularly fast or slow. You could just use the default values, or implement handling to get the dynamic run speed at the time from the unit and use that. However.. What I found was that in most cases we were talking about 30-40 yards as the maximum distance between players and mobs. Mob aggro range maxes out at 45 yards unless there are special circumstances (there's a boss in ZF, for example, that is aggro'd by an area trigger). The longest range player abilities you can aggro with are 41 yards. Typical aggro range for mobs is about 20 yards. If the mob is only looking at where you are going to be in 0.5 seconds, then it's not heading to a point far enough away from you to effectively cut the corner. That point is always going to be 3.5 yards or less ahead of you, which is within melee range and won't produce a good result. Multiplying that by some "additional coefficient" is effectively what I'm doing, I'm just basing it on the distance between the units instead of using move velocities, which I feel would be a waste of processor time considering the relatively short distances involved. The visual difference between the two methods is negligible, and I already have all the information I need for the task available in that scope. It's a fair point though. If I can get this working the way I want it to, making that change wouldn't be difficult, it's just a question of how it preforms when you have a few hundred mobs, or a few thousand, all doing that simultaneously.
  10. Good evening, Time for another quick update about what's going on over the last two weeks. I wrote a couple small patches to fix the gold generation formula based on some research by coolmodi, and wrote a fix for mobs so they are able to use spells with a rage or energy cost. Without Asura around I've been attempting to tackle a larger issue plaguing pretty much every private server, and it's taking me a long time and I'm finding it very frustrating. Typically it's a couple hours of work followed by a ragequit and then two days of Minecraft or Starcraft or anything-other-than-Warcraft. Many people have noticed and brought up how mobs chase players on private realms versus how they do it on retail. Players and testers have noted time and again about mobs not "cutting the corner" to path towards you in the shortest time possible. This is because mob chase movement generation uses a pathfinding formula where they plot a path to where the player currently is, all the time. In effect, they are creating a pathway to a point, and that point is the player's location. While this is going on, the mob is checking the range to the target, and once it gets within it's melee range, it stops moving and begins attacking. That all sounds good, and it works, more or less, but it's not perfect. If you jump on retail, or even watch retail videos, you can see that if you try to move side-to-side, the mob doesn't actually path directly towards you, it paths to where it thinks you are going, so that it gets the inside track and a shorter path to interception. As far as I know, there aren't any private servers that have implemented this mechanic. Working with Soulson and a couple of the other testers, I tried out a couple ways of doing this, and I think I've hit on one that is efficient enough, but I'm having some issues with it still. I'll get to that in a bit, first an explanation of how it works. Every unit (that's a mob or player) has a property called "Movement Flags". It's just a number, but you can break that number down and see how exactly a unit is moving at any given time. The movement flags look like this: So if I'm playing and pushing W and E, I'm moving forward and right, so my character would have moveflag 0x09, that's the sum of Forward and Strafe Right. There are obviously lots of other movement flags, but for our purposes here the only ones that matter are forward, backward, strafe left and strafe right. At any time, for any unit, we can find out it's current move flags and also it's orientation. That's all we need to make this work. Players in WoW only really have 8-directional movement (yeah, flying/underwater is different, just bear with me). You can adjust your orientation so that you can head in any direction, but at the end of the day you still just have Forward, Backwards, Right, Left, Forward+Right, Forward+Left, Backward+Right, Backward+Left. Your direction of movement can always be considered in those terms. WoW is annoying and uses radians for angle instead of degrees. I understand that there are valid reasons to do this but I personally hate radians so I'm going to express things in degrees for the purposes of this post. Whichever direction you are facing at any given time is your orientation. Your direction of movement is going to be your orientation plus some angle based on the direction you are heading in. If you are facing 0 degrees and pressing strafe right, then your direction of movement is 90 degrees. If you are facing 0 degrees and pressing backpedal, your direction of movement is 180 degrees. If you are facing 30 degrees and pressing forward and strafe right together, then your direction of movement is 75 degrees. Hopefully that makes sense. If not, I don't know. Read it again. Point is that with orientation and move flags, we can draw a line along the player's direction of travel. My initial idea was to have this line, and then have the mob find the closest point at which it would intersect that line and move to THAT point instead of the player's location. However, that just doesn't work nice. It's math intensive to calculate tons of intersection points and compare them to find the closest, and with hundreds of mobs walking around simultaneously, I just wasn't sure how that would work out. Also the math gets complicated and I'm not as quick as I used to be, so I scrapped that. I knew how to generate the line of direction, and I knew that I wanted the mob to move to a point on that line. The only question is, how far along the line? I settled for a simple solution of just making it based on how far away the mob was from the player at the time. This number gets updated whenever the creature's AI updates, which is about twice per second. I started off with basically the distance between the player and mob divided by two. Ie.. If the mob is 30 yards away and you're moving right, the mob will path to a point 15 yards to your right, along the line you are travelling on. That number is easy to adjust if necessary in order to make it look and feel right, but you get the idea. The mob isn't chasing you, it's predicting you and cutting the corner. I threw in a range check so that the mob will just go back to purely chasing you if the distance between you is very short, this prevents any weirdness from happening if players move back and forth very quickly when the mob gets close. Fired up the server, and... it didn't work. This is where I've been kinda stuck for the last week or so. The math works. I bypassed the code that generates the chase waypoint and implemented all my solutions, threw in some debugging and everything. I can see that the mob knows where the player is, and I can see that it's generating a new waypoint. Even does the height check properly so that it doesn't clip through the floor weirdly. The trouble is that when I try it in the game, even though the console is telling me that we're sending the mob to location B, it's still just heading straight for the player. This is one of the programming moments where you go "This should work, but it doesn't work and I don't know why." Pretty frustrating. I've got a couple ideas though. I think that either the movement generator is spitting out something I don't want, or else there's another movement generator also running that is overriding this one. I'm not using the chase movement generator for this at all, just forcing the waypoint, but it's possible that the chase generator is being called from somewhere else and overriding what I'm telling it to do. I'm having trouble debugging that.. The movement generator we have right now was ported in from Trinity, I think. At least it was originally and then Asura changed a bunch of stuff. It's highly abstracted and has zero documentation, so figuring out what things do is very slow going and testing me to the limits of my comprehension. Anyways, like I said, the reason I do this is for the challenge, and I certainly found one here. That's what I've been picking away at, and it's what I'll continue to pick away at. Hopefully by my next blog post I'll have some good news to report on that front. Alright, that's all for now. My next blog post will be on December 11th. As always, feel free to leave comments or ask questions below. Talk to you soon, and thanks again for your continued interest in Crestfall.
  11. Before I ban you for trolling, just curious what your definition of "lost" is? I assume that you mean "the highest population wins and everyone else loses". In case you haven't read almost any of my updates, I don't care what the population of Crestfall ends up being. I'm doing this for the challenge of creating the emulator, not so I can make money. Make your next post a good one, it'll be your last.
  12. Good evening, Well, who saw all that coming? Not me. I would have thought Blizzard would sooner commit sudoku than re-release Vanilla, but there you go. In any case, the last couple weeks haven't amounted to much from work for us. More or less due to a combination of intrigue and conversation regarding retail, general laziness, and a vicious throat cold. Super annoying because I just got over another one a few weeks ago and now I'm sick again. I'm not chronically ill or anything, this is just from my IRL job, I have a lot of contact with the public and they're super gross. Some jackass was super sick and wouldn't cancel his appointment, just had to deal with his coughing and choking breath over my shoulder while I was working for an hour. So I got whatever he had and it's bloody awful. Anyways, I want to keep this short because like I said, I didn't spend a whole lot of time coding and don't have any significant progress to talk about. Instead I'll just cover the state of the project at present. First of all, Asura hasn't quit. He is taking a bit of time off for IRL stuff. Business, family, job, etc. I still talk to him all the time despite his absence from the project and he does pop into our discord most days to check in. His announcement on discord was abrupt and unclear, so I thought that was worth clarifying. No, he hasn't left Crestfall. He has, however, handed over leadership of the project to me, at least for the time being. I've more or less been running the day-to-day for a while since he's been so busy with work recently, this is just making things official. That said, there are a number of things that need doing which I'm not equipped or educated enough to do, so I'm waiting on him to get back from his business trip to take care of a few bits of minutia before we get proper back to work. In the meantime, we've expanded our team again and brought on Brumla to work on the database. I have the intention to bring on a couple more people as database/scripters over the next couple days (finally got a few days off work). Right now Asura plans to return and as such I have not brought on any new core developers. It is his wish not to bring in anyone else yet, and despite my new position I am going to honor his wishes. Should he change his mind and actually leave the project, or have a change of heart about opening up core access to more people, then I will be bringing on additional developers who can help me bring the project to a successful release, there is enough interest from trusted people with the required skills to fill any void. One way or another, this is getting done. I know this has been a rather short and probably disappointing update, but my throat is killing me right now so I'm going to keep it short. In summary, CF continues. Asura plans to return when his IRL situation is sorted out, and even if he doesn't, there are several other people ready, willing and able to step in. I've got a bunch of time off over the next two weeks so I expect the next update to be a little more substantial. Sorry for not having anything really interesting to show you this time. That's all for now. My next post will be on Monday, November 27th. Talk to you soon, and thanks again for your continued interest in Crestfall.
  13. Figured I would write a quick follow-up considering how much traffic the original is getting.
  14. Go for it, no credit is requested by me. I just wanted to put that out there to hopefully clear up some misinformation.
  15. I don't have a retail account anymore, haven't since '09. Can't post this on the retail forums, but for what it's worth, just in case anyone from there sees it, here's my two cents on the whole thing. Feel free to repost anywhere you like, no credit requested.