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

    851
  • Joined

  • Last visited

Everything posted by Darkrasp

  1. 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.
  2. 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.
  3. 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.
  4. Good evening, I suppose by now pretty much everyone is up to speed on the latest drama, and I want to clear up a couple things immediately. I can state unequivocally that neither Asura or myself, nor any of the beta team, had any idea about what was happening at Elysium. For myself, I have completely ignored their staff chat for weeks, and concerned myself exclusively with our beta and development of the Benediction emulator. I found out about it because I was hanging out with the team and watching Nogar stream a BWL run when their servers went down. I messaged Asura's cellphone to let him know; he was getting ready for bed at the time. Despite having worked in proximity to the involved personages for years, we did not have any suspicions that this was going on. Frankly I never really cared what was going on at Elysium, so I never asked. I don't know how long it's been happening for, or when it started. Maybe it was irresponsible of us not to pay more attention, but we've had our blinders on and been focused on our own development work - not the day-to-day of the Elysium live realms. As far as development of our emulator goes, we have no intention of stopping, but we do have a number of details to attend to. So, obviously we're disappointed with all this. It was unexpected, to say the least. I'll mention now that for the time being we've pulled our association with the Elysium project, and continue to develop on our own. Furthermore all Elysium staff have been removed from the Beta team, including Crogge. Because Crogge was the systems administrator, this means that we have a lot of administrative issues to work out. We need a new host for our Beta realm, code repository, etc. More importantly, we no longer have a Russian owner to keep the B wolves from the door, so we have to consider our options in terms of hosting and ownership from a legal perspective. Our developers will still be able to work locally, but we will be closing down the official Beta realm, and potentially these forums, until we can sort out a number of ownership questions. Neither Asura nor myself are willing to accept the risk and responsibility of ownership at this time, therefore the possibility is open for another merger/partnership, name change, etc. None of that has been decided, but all options are on the table right now so I'm just putting it out there. I have tomorrow off work, so I will be talking to Asura and the rest of our team members, most of whom have already gone to bed. We'll start banging out a plan of action going forward for our project. We have no intention of letting our work thus far go to waste, but it is important for us to maintain the integrity of our team and our project, and absolutely critical for us to limit our legal liability. We'll let you know when we have more information to share. If the forums are shut down, we will reach out through reddit/Discord with any critical updates.
  5. 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.
  6. 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.
  7. 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.
  8. Figured I would write a quick follow-up considering how much traffic the original is getting.
  9. Go for it, no credit is requested by me. I just wanted to put that out there to hopefully clear up some misinformation.
  10. Just a quick message, we're still working on CF. For both Asura and myself, this is a hobby we have so that we can learn new things. Official realms don't change that, so we're going to keep on keeping on. For me personally, I put nearly 300 days /played into retail vanilla. I've got no interest in going back to playing again - my interest is purely on the development side - so it really doesn't matter to me at all what happens with the official realms. My full time job is a lot of manual labour and I get dumber by the day working there, so learning about code and practicing the logic keeps my brain from rotting away, and that's my primary motivation. Maybe Classic will be exactly what everyone was hoping for, maybe it won't (I'm not convinced that Activision will be able to keep their microtransaction fever out of the end result). They're a huge company who do things to please their shareholders, not to satisfy their customers. I think the direction their games have gone over the last decade makes that pretty self-evident. Either way, unless they completely blow it, it will almost certainly eat up a huge chunk of the Vanilla player base, so we're off the hook on worrying about hosting tens of thousands of players. We can focus on making the realm that we want without bothering about outside pressure. Being relieved of any sense of urgency, we're considering the direction we want to take the project. We're looking at limiting our PTE to Vanilla->TBC->Wrath, period. None of us want to make a career of this, a few years will be more than enough for us. We're also considering overhauling or ditching and rewriting some of the systems that we originally intended to leave intact. One, to improve and update the code, two, because doing so would be a challenge and we'd learn a lot from it. Also with a limit set on how far we intend to go, we can reduce some of the more open-ended systems, and concentrate on making things compatible with all three of those expansions from the very start. So, long story short, we're going to keep working away and doing our thing, our way.
  11. As much as I appreciate the votes of confidence, I lack the talent and ability to consider changing professions to something in IT. I'm a junior-level programmer at best, and no major game studio is looking for someone with my level of expertise and experience. Beyond that, this is a hobby that I do for fun. Having a boss over my shoulder yelling about deadlines doesn't sound fun to me. Plus, relocate to the city with the worst traffic on earth, and give up my free healthcare for a job which might not even pay as well as what I do now? Plus convince my wife to move away from her family? And that's even assuming I got a position, which is an impossibility to begin with. I mean, I hate my job, but at least I'm good at it. I'm getting better at programming, but I'm not at, or near, a level where anyone would be willing to pay me for it.
  12. Good afternoon, I'm off work today so I decided to put this together a bit earlier than usual. I apologize for no post last time, kind of got superceded by all the drama, again. Anyways, been a productive couple weeks. Asura has secured a new repository for the code and has transferred about half of our code to it. He prefers to work on the TBC branch whenever possible and then backport his fixes to Vanilla, and I prefer to do the opposite. It's just a matter of personal preference and which client you prefer, since mechanically there is very little difference between the two. He also fixed unix compatibility for the login, realm and worldservers. Basically this means the core can be compiled both on Windows, where I work, and on unix, where he works. Visual Studio has it's built-in compiler.. err.. wait. For those of you that don't know what I'm talking about, a compiler (I'm simplifying things here) turns written out code into an executable file. There are lots of different compilers, and each one interprets the code a little differently while trying to make it operate as smoothly and efficiently as possible. Because each one interprets the code a little differently, using a different compiler on the same piece of code can generate warnings and errors that another compiler doesn't pick up. We can now compile our code on three different compilers, and the process of resolving those compatibility issues let Asura find and fix dozens of potential problems such as memory leaks or crash loops. Currently Asura is finishing off a rewrite of some of our networking code, which needed some changes, updates and optimizations as it relates to clustering. I've been working on a number of core updates, nothing as major as those tasks, and no huge crashfixes, but a few things which certainly make the server much more playable. I never got around to finishing the Percent Health Aura handler from last time. It's tied into a larger issue with how auras are applied on login, but the drama from last time sidetracked me while I was working on it and after all that was dealt with I didn't feel like getting back into it again. I shelved that for now but I'll get back to it later. One of the things I did get done was adding support for zonewide and worldwide emotes. Cragus was working on the script for Stitches, and he needed to be able to make some yells that could be heard across the zone, but he found that the range of a yell wasn't reaching far enough. Yells are set up to have a maximum range of something like 150 yards, I don't remember the number off the top of my head, it might be more or less than that, but they'll only actually find units on active cells. The map is chopped up into a grid of cells, each being about 70 yards by 70 yards. A cell becomes active when a player, certain kinds of dynamic objects (ie: the Far Sight spell), or an NPC specially flagged to do so enters the cell. An occupied cell will also activate all the adjacent cells, giving you an effective max range of about 140 yards unless there are other people around to activate further cells in the area. We had a function for sending text to a zone, but it was older code from before we implemented localization. I updated that code so that it will now find all players in the zone, pull their client language, and send them the message (say, yell, or emote) in whichever language is proper for their client (we currently support EN, RU, DE, FR and CN). Then I exposed that function so that it can be used from the Lua scripting engine. I only have an English client, so I can't show you the localization working in video, but I can show you the zonewide stuff working. This is a little test script that just causes the yell to happen when you emote at the unit. After this video was done I went back and added another parameter that allows you to send a message to all zones on the continent, which is only useful a couple times really, mostly during the AQ events, one when the Scarab War starts, another when it ends, and one whenever Eranikus is defeated in Moonglade. Still, may as well take care of the functionality while I'm working on it already. Next big job was a rewrite of how graveyards are handled. I may have mentioned this before in a prior update.. I was unable to resolve it then but I've learned a bunch more stuff so I took another crack at it and got it working the way I wanted. Previously we just had some placeholder code that just sent you to the closest graveyard by linear distance. This is obviously problematic because dying close to the edge of a zone could easily send you to the wrong zone. It's also rather inefficient because it would iterate through every graveyard on the continent making range checks to figure out which was the closest. I wiped all that code out, built a database association table that links zones and subzone areas to graveyards, and rewrote the core handling to lookup only the graveyards associated with the region in which you died. Now when you die it only looks for the closest graveyard eligible to you for the zone that you died in. I also built in handling for special circumstances like dying inside a starter zone. Correct handling for graveyards in starter zones is that they cannot be utilized unless you actually die inside that area. If you die in Coldridge Valley (dwarf/gnome starter area) as Alliance, you will be ported to that Graveyard, however if you die even immediately outside the Coldridge area, you cannot use that GY and will instead be ported to Kharanos, even if the Anvilmar GY is closer. There is also handling for a fallback graveyard in the event that something goes terribly wrong and no valid graveyard can be found. Westfall for Alliance, and Crossroads for horde. I made a quick video while working on it to show testers, so you can see most of this functionality at work here. While doing the graveyards, I also revamped instance handling for graveyards. Using a similar method, I expanded the database to link an Alliance and Horde graveyard to each dungeon. Dying in that dungeon just sends you to the correct graveyard for your faction, no range calculations required at all. I did also build in handling which isn't necessary for Vanilla, but is required for TBC for "contested" graveyards. In this case there's a PVP objective in Zangarmarsh where you can capture an additional graveyard at Twin Spires. If you die in a Coilfang Reservoir dungeon while you control that, you get to use that GY, otherwise you have to do a much longer run back. So, I put that handling in as well just so that it's ready to go for TBC. There's still a small bit yet to do involving graveyard hopping, but that'll wait for now. I got bored of graveyards after spending three days solid on them. Third thing I have a video for is a pretty simple thing. The testers explained to me that a common exploit on other private servers is to have a friend kite an innkeeper and abuse that to set your hearthstone in convenient locations, such as just outside an instance portal or whatever. This works because setting a hearthstone actually sets the location based on where your character is at the time, not where the inn is located. I wrote a quick fix such that NPCs cannot be interacted with via the gossip menu while they are in combat. This also applies to vendors, trainers, etc. Alright, that's all the videos I have but not all the fixes. Quick one that lets you loot critters, since some of them are skinnable, and one or two are lootable. A fix to an issue with auras where debuffs that reduce stats were adding them as a buff instead. Certain spells used by NPCs have their effect scale with the level of the NPC.. our calculations for this were incorrect and thanks to some very good research from the beta team, I was able to write a fix for that. I fixed an issue just yesterday with "Chance on Hit" procs being disabled in a few circumstances.. it's kind of an interesting mechanic but I see this post is already a mile long so I'll refrain from another lengthy explanation on that one, suffice to say swapping weapons hand to hand, or unequipping one weapon if you have two of the same thing, doesn't turn your procs off anymore. Last thing was a redo of the "chance to break on damage" code, replacing some old placeholder code that just gave everything a 35% chance to break fear/frost nova/etc. regardless of source or magnitude. I removed that code and replaced it with proper values based on percentage of max hp, which is modified appropriately based on whether the damage is PvP, PvE, direct damage, DoTs, and/or critical strikes. I really must give a lot of credit to our beta team. Scylla, Pvt. 8Ball, Cragus, and coolmodi especially for their help. Some of these guys are far better at programming than I am, so their advice and assistance is invaluable, and others just have an unreal amount of patience for researching mechanics or providing resources. Anyways, we'll finish off with a quick glimpse into the scripting team and see what Nogar is working on today. He's been going through writing quest scripts and also a bunch of RP events in various towns around the world. He's not the only one working, but he's the only one posting videos so this is what you get. He says it's a work in progress still, but it's looking pretty good so far imo. Final bit of minutia, the forums here are likely to go down fairly soon. It hasn't been a huge priority for us to secure new hosting for them but it's creeping up the list. As I mentioned last time, we will make an effort to back up and restore the existing content but no promises. I don't know exactly when it will be, but consider this a final heads up to back up any content you feel worth preserving. That's all for now. My next post will be on Monday November 13th. As always, feel free to leave comments or ask questions below, and thanks again for your continued interest in Crestfall.
  13. Right. I'm thinking of my TBC played time. Vanilla would have been closer to 170. And yeah, that was before I got married, so I was putting in unhealthy hours.
  14. The forum location should be the same, we own the crestfall-gaming domain. What we don't own is the server that it points to right now. When we secure a new host, we have to set up the forums on that host, and then point the domain name to the new location. That can take some time to do, and then to propagate the change through the internet takes a while as well. As far as innkeepers go, tying in areatriggers is just too annoying to do, and it's also inn-specific so wouldn't work for vendors, trainers, armorers etc. I'll stick with what I have now and if I remember, I'll make a small modification so that the same thing happens when a creature is mind controlled. Problem solved.
  15. The state of Crestfall's core which Crogge has access to is not suitable for an open beta, much less immediate launch. We still have a few critical core systems to implement, a large amount of core bugs to resolve, and hundreds of quest scripts to write. Our team is working away diligently, such that even a two-week old core is now behind the current development by over a dozen core patches, a major networking rewrite, and I don't even know how many database updates and scripts. Even so, the core in it's current state isn't ready for showtime yet. It's getting there, but the point is that it can't just be fired up and launched, it will take hundreds if not thousands of hours more work (that's total time, split between all the contributors) before it has the level of polish we demand of ourselves, which is part of the reason we keep expanding our content and database teams, to divide that workload between as many hands as possible. Furthermore, while we are no longer associated with Crogge professionally, it's hard to just turn around and hate someone who you've been working with, and who has been a solid supporter and member of the team, for literally ten years. He made a choice that goes against the principles by which we run this project, and it meant we had to end our professional relationship with him, terminate his access to our assets, and remove him from the Crestfall team. That doesn't mean we have hard feelings towards each other, or that we can't be civil with each other. I trust him not to release anything that he knows we don't want released.
  16. It will be done when it's done. Closing this thread to hopefully discourage further stupidity.
  17. As a matter of principle, we will not accept any donations, from anyone, for any purpose, until the project is made available for the public to utilize. Full stop. The development team is more than capable of covering the costs of development, therefore there is no reason to accept money from outside of the team at this time. Accepting it would unquestionably alter the expectations and opinions that both donators and observers have towards the project in a negative way. We appreciate your enthusiasm towards the project, but if you plan on donating to help cover operational costs, we ask that you wait until the server is made public to do so.
  18. If you're one of a very small number of people, you perhaps have some DMs of Viper and Daemon saying some pretty.. interesting things.. however none of them have to do with corruption, gold selling, or just general dealing in bad faith with players while the servers were operational. As far as I know, both of them kept their noses clean, and their real mistake was thinking they had any kind of leverage or bargaining power when it came to meeting with Activision/Blizzard. Blizz basically pulled the old police con where they send out letters to people with outstanding warrants telling them they've won a free TV, and then just arrest them when they come to pick it up. "Come meet us and talk to us, tell us about your project, then we can get your balls in a vise in person." To the second point, it's unfair to assume unwillingness when there are plenty of other reasonable explanations. Blizzard themselves have struggled to prevent Chinese goldfarming on their retail realms, so the presence of Chinese goldfarmers doesn't necessarily point to complicity in their actions by the staff. It could well be that neither of them had any real idea how to deal with it, or that dealing with it was just a lower priority than improving preformance, or just managing the day-to-day on a heavily overpopulated server. It might be somewhat suspicious, but suspicion isn't enough to convince, much less convict. Personally, I doubt there was any collusion.
  19. I think a few of the posts have generally done a good job of summing things up, but I suppose I'll take a minute to address a few things. First off, neither the partnership nor the merger was my idea. That came down from the admins, along with a lot of other decisions about how things were going to be done. I was tasked with writing up the announcements and presenting it to you all because I'm better at writing announcements than the other guys. I don't know how the initial communications between our respective teams came about. For all I know it had more to do with Crogge and Shenna wanting to hook up than anything else, but to be honest, that's not even relevant. The reason I went along with the decisions without complaint; the reason I defended them, and still defend them; is because I understand the benefits of having someone to hide behind when the lawyers come a-knocking. Maybe Gummy didn't learn his lesson, but we did. Known American, Canadian or even Western European ownership is just asking for legal trouble. Launching only to get shut down by Blizzard shortly afterwards wouldn't help the community any more than it would be good for us. Elysium offered us a name to hide behind that Blizzard couldn't touch, and did so with the promise (which they kept), that we would not have to surrender our code or database assets to them, and could continue to operate autonomously. They even covered the cost of hosting our beta realm and code repositories while we were partnered with them. Those are tangible benefits that, simply put, were worth pissing off some forum members for. As far as declining to engage with the community on the forums, temporarily closing the public discord, etc. Yes, another blow to the community which had developed here. However I would ask that you consider the circumstances at the time those decisions were made. Old posts were being rifled through by reddit trolls, Twinstar cronies, and streamer goons, then being taken out of context or spliced into images designed always to put us in the worst possible light. Just about every comment we made got thrown back in our face in a constant PR war that we didn't start and wanted no part of. We came to the conclusion that the best way to win that game was not to play; that lowering ourselves to the level of retaliation would simply be a waste of our time and effort. We decided that feeding the trolls was a bad move, and so we followed through with not giving them anything to feed on. In short, the community became toxic beyond our willingness to participate in it. I admit that this is partially our fault. Our introductory announcement was premature, and our initial involvement with the community set a standard which we really had neither the experience nor the disposition to maintain indefinitely, especially when that involvement was turned back against us. Our optimism about release timing didn't take into account just how much change there would be to the time our developers could spend day-to-day on the project. We didn't know at the beginning of this year that Asura would be asked to spend over a month out of the country on business trips, for example, or that Rodeg would go on hiatus to focus on his studies. The main reason why we will never commit to a release date until we're certain of it is the foresight that something like this might happen, even if we don't expect that it will. It doesn't affect our commitment to the project, only the amount of time we are able to spend working on it. We're attempting to offset this now by slowly and steadily increasing the number of scripters and database developers to offload a lot of the simpler and less sensitive work from Asura, Niko and myself. If anything the rate of progress is increasing week by week as their aptitude and familiarity with the systems improves. Finally, with regards to finding new hosting, we are investigating a number of options right now. It would be premature to discuss specifics at the moment, but it would be fair to say that whichever course of action we take would both protect our legal interests, and allow us to continue to operate autonomously. We are also not making these investigations any kind of a priority. For now we are content to develop using local realms only, and will make the majority of our inquiries when we get closer to Open Beta and release, as we have no intention of making any moves of that kind anyways until we need to scale up the realms for public use. For those who continue to support us despite all the trials and tribulations of the last year, I am sincerely grateful. I do feel badly that we've let you down so much and so frequently. I do have some capacity for empathy and I never like being the bearer of bad news. I can only hope that this post has clarified some of the rationale behind our decisions, and that you understand that the decisions we made, we made because we believed they were in the best interest of our team and our prospective players. As far as making amends, we're just going to have to keep working and let our project speak for itself at launch. You can decide for yourselves whether or not it was worth the wait. (p.s. There has apparently been some chatter about members of the Crestfall staff "not leaving Elysium" to join LH, and being suspect because they "stayed behind". Several of our staff members, myself included, were brought into Elysium staff channels during the merger. I can assure you that to the best of my knowledge, every CF staff member has since left or been removed from Elysium staff communications and remain exclusively part of the now-independent Crestfall project.) That's as much as I intend to say on the matter. I'm going to close the thread. I sense some escalating tension between forum members and I prefer to avoid further conflict.
  20. I'm utterly boggled by this comment. Normally I'd just eat the criticism and not respond, because as you mentioned, I don't like doing PR work, however this is blatantly untrue. You may have wished or assumed differently, but this has always been a hobby project. Every member of the team here is either a full time student or has full time employment. Crestfall is not, has not been, and will never be the number one priority for any of us. We're serious about launching the server when it's ready, but that doesn't mean we set deadlines or force people to work more than they want to. We made an effort to be more professional in our communications, and that resulted in Asura pretty much going quiet on the forums and reddit while I took over as the face of the project, but we never changed the way we develop and never intended to. Every time I invite someone to the beta team, I tell them up front that we run this on the Fight Club principle that you choose your own level of involvement. Beta testers have been made into scripters or developers because they wanted to contribute more. Hell, I started off as a researcher, not even a tester, and worked my way up to Core dev by virtue of being trustworthy and willing to learn new things. As long as progress is being made toward launching, I'm happy. I'm not checking time cards here, I'm just volunteering what marginal talents I have as I see fit. The people who contribute to this project, Asura, Niko and myself included, do so only as much as we want to. If I feel like taking a week off and painting instead of coding, then I'm going to do that, and I genuinely don't give a crap about "but muh deadlines!!!!". If Niko doesn't want to introduce himself to the community, he's under no obligation to do so. That's his choice. Our most recent update to the test realm, just over a week ago, had over 500 new fixes on it from a half dozen devs. Despite all the mess of the latest scandal, not a single team member, not even a single beta tester, has even expressed concern about the future of the project, much less walked away. This isn't a business, nor will it ever be one, but that doesn't mean that nobody is working or that nothing is getting done. It's just getting done on our timetable, which doesn't have a deadline on it.
  21. Our options for mergers, partnerships and new ownership are still all on the table. We aren't going to make any decisions right now, but rather just keep working on our own for a while and examine our options when we are closer to being ready for Open Beta. We've had a number of groups and individuals reach out to us, all of whom have gotten the same response. As far as financing goes, we can afford to cover all the costs of development prior to an official release announcement. We have not accepted any money from anyone thus far, and we will not do so until we are required to scale up our operations for public use. We intend that our financial situation and gamemaster logs will be very transparent. Regarding the forums, it is an inevitability that they will be shut down and relocated, as they are currently still hosted by Crogge. We are making an effort to archive the content which may or may not be possible to restore on a new host. We'll do our best but no promises.
  22. Good evening, This post should be a quick one, as I suspected it was a bit of a rough go the last couple weeks for me due to work. Late shift eats up pretty much all my free time, plus I had a wedding to attend, among other junk (cough cough D:OS2 cough). Also Asura is away for three weeks, one week on a business trip and then two weeks back in the States visiting family. Even so, I did manage to get a couple things done. I got the mob AI correctly ignoring targets with knockout, sleep, and some stun effects on them. What this means is basically that if a mob gouges your tank, it will turn to the next highest threat person if one is available. Certain stuns work the same way, like Chromaggus' Time Lapse, among others, even though they don't break on damage. I showed a video of that last post but the mob was all twitchy, so if you rewatch that video and ignore the twitching, that's how it works now. With some feedback from the testers we found that mobs were not using their interrupts quite correctly. Basically a mob with a kick, pummel, shield bash etc. ability would hold their interrupt until their target is casting, then immediately attempt to interrupt the spell. However they would ignore other in-range casters and only watch their current target. We made a small change that will allow them to interrupt any nearby valid target that is casting. Now things will be a little bit worse for groups whose healers or casters are poorly positioned, or for tanks who try to kite a mob through a group of players. Thanks to coolmodi for doing that video, btw. We've also got dozens if not hundreds of database fixes spread out across the whole dev and scripting team. All kinds of stuff, again, creature spells, quest scripts, droprates, etc. The biggish news from my perspective is that I got write access to the code repositiory and remote access to the beta realm, so that I can push changes and updates to the repo and beta realm. It's useful since Asura is away on business a lot now, so this way we don't have to go long stretches without updates. I'm still getting the hang of all that but it's fairly straightforward. I've asked all the scripters and the database team to have their patches to me by Thursday with the intention of updating the beta realm on Friday. Once that bit of work is done, we'll also be bringing on yet another scripter, Cragus. I'm thinking we'll add a new scripter every two weeks or so until either we run out of volunteers or we run out of scripts to write. I'm working on a couple other things currently that I hope to have done soon. One is an expansion to the scripting engine so that scripters can force fail a quest. Right now the only way a quest can fail is if it is a timed quest and the timer runs out, but we need to be able to have it fail if, for example, an escort NPC is killed. I wrote that up, it works, but I want Asura to review it before I submit it since I haven't messed with the Lua engine before. Another thing I'm working on is a database change with a new handler for disjunctive quest conditions. For example there is an early Human quest where you have to explore a mine, and there are two different area triggers you can hit that will complete the condition. Right now since both are in the database, it requires you to hit both of them, when it should be just one or the other. So I'm basically considering how to handle the "either this trigger OR that trigger" condition. Got some ideas that I think will work, but I just haven't had time to sit down and code them. The last thing currently in progress is some new handling for auras which modify your health by a percentage. There's some weird math in there, a bunch of stuff doesn't work at all, etc. I've got it mostly working but some weird stuff is happening on login/logout so there's something either missing or out of sequence when characters are being loaded. Again, it's just a matter of finding the time to do it. Once I've applied everyone's patches and updated the beta realm, that's probably my first priority. I don't want to drag this out so I'll leave it there for now. My next blog post will be Monday, October 16th. Talk to you soon, and thanks again for your continued interest in Crestfall.
  23. Edit: The volume levels in the video clips are all over the place. I apologize for that, they were taken as I was working on the mechanics in question, and I wasn't paying attention to the volume. The third one regarding skinning is super loud, so headphone users be forewarned. I'll pay more attention to volume next time. Good afternoon, A busy couple of weeks around here, had some time off so lots of work getting done. We've been expanding our DB team and are happy to welcome Coolmodi as a database dev and scripter. He's already set up and contributing fixes. We've also expanded the beta tester pool again and brought in a few more testers. We're going through a lot of content presently, writing quest scripts, adjusting drop rates, adding in missing quest items, correcting npc abilities, etc. Most of that work is relatively simple database work. Adjusting a spell's implicit target, correcting typos, or handling issues from earlier parses. I'll give a couple examples, with video, even. A spell's implicit target is how the core decides how a spell affects units when it is cast. Obviously a spell is targeted in a specific way, whether it's your current target (Kick), yourself (Frost Armor), all friendlies in an area (Tranquility), or a target destination (Rain of Fire). There are around 50 different ones in vanilla, TBC adds another 20ish. This implicit target is a property of the spell itself, hardcoded into the client dbc files. Part of what the core does is interpret this data and include handlers for each of those target types so that when something wants to target "EFF_TARGET_INVISIBLE_OR_HIDDEN_ENEMIES_AT_LOCATION_RADIUS", it can find the correct units. We run into some problems with this where the implicit targets of a spell don't really mesh with how our handlers work, so we have to override them. This is most commonly an issue on Triggered spells. One we had a problem with was Lash, which is an attack spell used by raptors that hits you for damage and makes you drop your weapon. Blizzard did it a little different than usual, where instead of directly disarming the player by giving Lash a disarm effect targeted at "Current Target", they instead "Trigger" a new spell on the player called Dropped Weapon. This new spell is a debuff that sits on the player that disarms the target, and it's target type is "Self". The issue is that the triggered spell is inheriting the original caster, so the disarm effect is going back on the raptor that cast the spell in the first place. Which doesn't matter that much because they have no weapon anyways, but it's wrong and it looks stupid, so we fix that by overriding the implicit target of the triggered spell from Self to Current. Changing how triggered spells work will break all kinds of stuff, and this only affects a handful of spells, so we just solve it with the override. Another spell that works this way is actually the teleport spells to go up and down from Archmage Xylem's tower in Azshara. The NPCs cast the teleport spells on you when you complete the repeatable quests they offer, but it was behaving very badly, teleporting the NPCs around instead of the player, or having no effect at all, again due to inherited caster GUIDs from the spell trigger. We switch around the implicit targets, and we get a nice clean teleport, like so. Another content issue we frequently see is a loot issue caused by how we parsed quest items. Basically certain quest items aren't dropping because they aren't flagged as quest items and got missed when I did the loot database rebuild. It applies to quests where you have to do things like this: go kill a mob, get a key, open a chest, take an item from the chest, and return the item to a questgiver. In this case, the item you had to return to the questgiver was properly flagged as a quest item, since it is the requirement of the quest, however that key was not flagged, and so was never entered into the table. There aren't too many of these, and a lot of them are already fixed, but it's still something that crops up now and then. There are also a couple of quests with funky prerequisites that got adjusted, like this guy here. Aside from that, scripting of quests, and correction of typos, or adding missing abilities to NPCs. That's all being done database side. Soulson also submitted a huge patch updating patrol route waypoints for hundreds of creatures so that's also getting nicer. Core side, I've written another half dozen patches. First one is implementation of a weighted vertical component to aggro range. Previously we were using the 2D distance formula for calculating aggro range with a line of sight check, meaning you couldn't aggro if you didn't have LoS, but if you were flying over enemies 100 yards above them, they would still aggro on you. Clearly that's wrong. Watched a bunch of retail stuff and I'm pretty satisfied with the current formula, a 3D rangefinder that weights vertical distance more heavily than horizontal, so you should be safe standing on ledges above enemy units. I didn't take video of this one. You'll have to take my word for it. I did a patch that corrected a bug with skinning where it rejected you from skinning anything but a beast. Some dumb hardcoded check, I have no idea why it was there. Now it correctly just checks to see if the creature CAN generate skinning loot, and if it can, it lets you skin it. Now you can skin dragonkin and silithids and whatever else. Hooray! Next up was a quick fix for humanoids that DON'T drop gold. Similar to the last bug, there was a hardcoded thing that was an error prevention mechanism, if a humanoid creature seemed to be "missing" a money entry in the database, it would randomly generate money for it based on level. Unfortunately this meant that humanoids that are not supposed to drop gold, did, because their zero was misinterpreted as "missing data". I got rid of that override and we'll trust the testers to notify us if any humanoids come along that aren't dropping the money they should. Did a quick patch to give testers access to a few more GM commands for quest testing and reviving. I'm waiting for review on a patch that fixes a major issue with the Haste aura. It works fine, just want to make sure I've done it correctly so I'm letting Asura check it out first. Basically for this one, the formula we were using for attack speed increases/decreases was incorrect. If you think of a mob with a 2.0 attack speed, that's one attack per 2000 milliseconds. If they get a 100% slow, their attack timer should change to 4000, and they'll attack half as fast. If they get a 100% haste, their attack timer would go to 1000, and they would attack twice as fast. What was happening instead was that the percentage was being applied as a percentage of the delay.. So basically 100% haste would remove 100% of the delay, mobs would have a 0.0 attack speed, and they'd rip out attacks literally as fast as the core could process it. This was turning Mor'ladim into an absolute wrecking ball when he cast Enraging Memories. It was actually pretty funny to see him instantly destroy anything that got into his melee range, but obviously that had to be fixed. On the other hand, if a mob got an ability that halved it's attack speed, like Scarlet/Crimson paladin-type mobs that cast Divine Shield, their attack speed would go into a divide-by-zero situation and immediately crash the server. So, good job us, we're stupid, but hey, it's fixed now. Didn't take a video of this one either, though maybe I should so you can see how hilarious instagib Mor'Ladim is. Lemme know if you want and I'll attach one later, I'm short on time atm. What I'm working on now is a change to stuns and targeting. If you played retail you'll notice that mobs will tend to ignore targets that are crowd controlled when there are other targets available which are not disabled. This applies to some kinds of crowd control but not all, even some kinds of the same kinds of crowd control. For example, a mob which uses a sleep or a knockout will always turn to a non-disabled target if one is available. However, stuns are 50/50, some do cause the Ignore, and some do not. I got a working implementation of this but it's a bit wonky, the targeting is going strange and the mob is all twitchy, so I'm working on that still. Hopefully I get that done soonish. I'm working the late shift at work the next few days so I won't have a lot of time to do much other than sleep and earn my pay. Beyond that, a few hundred db fixes for loot, creatures, etc. No big stuff there. Pvt.8Ball has been pouring over loot templates to get potion/scroll/gem/bag/lockbox etc. droprates all tidied up, so kudos to him for taking that on. So, progress being made, we're chugging along. Probably going to add another scripter after the next update cycle to continue speeding things up. I gotta go run some errands now so I'm out of here. My next post will be Monday, October 2nd. That's all for now. As always, feel free to ask questions or leave comments below. Talk to you soon, and thanks again for your continued interest in Crestfall.
  24. It stuns you for a couple seconds with like a mana shield visual effect, then warps you up. Same thing on the way down. Afaik that's all the visual you get.