iamallama

Administrators
  • Content count

    1,828
  • Joined

  • Last visited

  • Days Won

    226

iamallama last won the day on March 24

iamallama had the most liked content!

About iamallama

  • Rank
    Developer
  • Birthday November 18

Contact Methods

  • Website URL
    http://wavesoftime.com

Profile Information

  • Gender
    Male
  • Location
    San Diego, CA
  • Interests
    Computers

Recent Profile Visitors

5,238 profile views
  1. iamallama

    Crafting?

    yea, I plan on having it setup where you have to get items from all over and possibly have some items made via combining like A & B = C; A & C = D; C & D = E and E x3 = F...etc and you have the choice of going all over the world to get the base items or you can build them from even more base other items. What I'm not a fan of is that stupid mechanic where as things get further down the chain it ends up taking hours or even days in real life and you can always pay premium currency to make things go faster. I'm also fine with trying to come up with a mechanic like a blacksmith has limited time and everything takes like 1 minute (or a short time) to process. But they can only do one thing at a time. For everyone. So basically to get something crafted, you have to add your stuff to their queue and wait until they get to your item. There even could be some stuff like the busier the smith gets, maybe he gets a few apprentices to help him out. The more apprentices he has the faster he can get through his queue, but he has to charge a little more to pay their wages. There could be multiple smith shops also to combat them being overwhelmed constantly. I'm sure we can come up with something fun eventually, even if it takes a few tries.
  2. iamallama

    Devblog 91: The SW writeup

    I use paypal only because it is easy, popular and accepts pretty much everything. You can pay using a credit card via paypal without needing a paypal account. However that does mean entering your credit card information to paypal. I don't have another 3rd party payment processor available. Maybe in the future when the game is live I will end up finding something that integrates into Unity and can process all sorts of payments through there. But for now, paypal is it.
  3. iamallama

    Artifacts/Extra Equips

    it's funny how time keeps moving like that.
  4. Hey all! Sorry for the delay this month (and last). I've been having some crazy fun at work and home and have been WAY too busy to do much recently. Some stuff got flipped upside down at work and now I apparently am running our entire project. At half staffing too. I'm now the project manager of a pretty large project, so promotion, even though it wasn't in a good way (but I can't talk about that). Needless to say, it's been kind of hectic recently, but things are starting to normalize like they usually do. I have lots of upcoming travel planned and more work than I have time for. And by the time I get home now, I usually don't even want to look at a computer. Supporter Weekend writeup If you don't want to listen to me rant about the issues we had, skip everything after the first sentence or two. As for the game, I didn't really comment much last month, but the supporter weekend happened. I had a bunch of issues for the first day or two, but we still had a decent turnout and stuff was done. Starting out we had an issue with the database. This started because I was missing a column in the production database for something I added like a day before (this is why feature freezes are necessary). And because I wanted to do things as complicated as possible, I thought it would be a good idea to move the player saving-to-database stuff to a background thread. Unity is single threaded and so queries on the main thread will end up blocking it until they are done. No bueno, as could be seen later on (it's coming). The issue here though is that when not using the main thread, Unity doesn't provide any sort of standard logging or error reporting. So I didn't even know that the process saving players was failing as I was getting no error reports. And since the issue wasn't happening on every query, some queries would work, some would fail. This was what caused issues like duplicate attributes or things in inventory disappearing on login (they existed while you were in memory in game, after logout they weren't saved to the database, on next login it didn't find them). So the first fix was to move queries off the background thread into the main thread. This showed there were errors which I was able to fix pretty quickly. However, that introduced issue number two. The queries were slow. Which is exactly why I was using a non-blocking background thread. They were so slow in fact that it would take about 2 seconds to save a single player. And this wasn't because the queries were really that slow, but more that there are quite a lot of queries that need to be run for every single player. Every single slot in your inventory is another row in the database. Every single attribute on your player is another row. Every single item you wear is another row. Every single item in your bank is another row. And there isn't a simple magic bullet fix that can help here. Players simply use a lot of information. The player save process usually runs every 30 seconds. When testing this there were about 12 people online. So the entire game would freeze up running queries for about 20-25 seconds. You could play for 5-10 seconds and then everything freezes again as it kicks off the process again. Usually you would enable transactions which is a way to tell the database "I'm going to make a lot of changes, queue them up in memory and I'll tell you when I'm done so you can save to disk." But the queries already use transactions. Or so I thought. Turns out it wasn't, or really that it was done poorly (my fault). So the first thing I did here was to properly implement transactions. This helped a lot, got the queries down from around two seconds per player to around 300ms (0.3 seconds) per player. Really though, this is still unacceptable. Every 30 seconds the game would freeze for a few seconds and the freeze time would grow pretty steady the more players that were online. Now I could be content with this and just move the few seconds of process back to a background thread, but that wouldn't last for very long before it was an issue again. 100 players online and I would run into the same issue of it taking 30 seconds to save in total and the process kicking off again before the previous one started. So, what's the issue now? Seems as though we are still running WAY too many queries. So let's combine multiple queries into one. So now I went through and combined all the inventory queries into a single query. Now when saving a player, instead of running one query for each player inventory slot, I run one query total that just has all the inventory items. Update the game and that gets the total query time down to around 100ms. Now I can support up to approximately 300 players online using a background thread. But I'm still running around 12 queries per player online. One for each table that makes up the player's data. So what can be done now? Try to combine queries per table across multiple characters. So this was the big update I ended up doing when I had to rewrite most of the player save process. Now it loops over all the players and saves all their data into a massive list, one list for each table. After processing all the players, it chops up that data into massive chunks. Each of these chunks represents all the data for one table across several players. It builds the necessary queries and runs them, saving a hundred or so rows to the database at a time. Now the entire save process for roughly 10 players was taking around 50ms (0.05 seconds). And when a few more players were online, the time to save increased by around 10ms because the number of queries needed didn't really increase by much. So this is where I ended up. After that, I left the player save process in the main thread to monitor it and it never really jumped too high. After that there were a few small issues with the server freezing (seemed to be a memory leak somewhere, I assume it was a change I have made) but a quick reset and it would be online again for a few more hours. Changes After all that, things ran pretty smooth. I hope you all got at least a few minutes to run around and attack things. I created the thread for the "Big list of issues" and got some responses. I have spent what little time I have going through and fixing a few things. Then I was waiting for an update of the framework I use that revamped the skills system to make it more flexible. Now I am working on converting some code over to the new version and trying to change a few things. Next Supporter Weekend I know you all just want to play and I'm trying to open up the game more. There isn't a date set yet, but I am aiming for near the end of March or early April. This will mostly be the same, just more stability and testing changes. I'm not planning on any major features in the near future, just the bug fixes from the recent supporter weekend and maybe some skills as I play around with that. Also, I'll update the roadmap in next month.
  5. iamallama

    Hiring Scripters?

    I'm trying to get it working enough to pay a decent wage for just myself before i even consider paying someone else.
  6. iamallama

    Dev Blog 90- Bugs Bugs Bugs

    My signature has one that doesn't expire.
  7. iamallama

    Alpha, beta or what?

    That's pretty much it. To me, alpha is when new features are added and fleshed out. At this point the servers might not be up much, resets pretty much guaranteed and nothing is really set. Beta is when things are stable and most features are done, but still tweaked. This is when most new content is added, at least up to a point where there is enough to do for a little while. Servers should be online for testers and while closed, account resets should be expected, though less often. Eventually you go open beta which is just before final release. This is now about stressing the servers. They are expected to be up most times and anyone can play. Accounts are not reset unless something game breaking is found, and even then it should just be a rollback. After that you go gold and release.
  8. iamallama

    WoT Dec 30th '17 - Thoughts so far

    Thank you sir. When it was stable it was fun.
  9. iamallama

    Investment

    @bigmama Your new girl.
  10. iamallama

    Investment

    Honestly, not right now. I mean I understand that most companies do have share holders, but I'm personally doing this so I can work on my own stuff full time eventually and this is my baby as of now. Any sort of investment would either have to be large enough that I can take a few months off work to start full time and pay myself a salary or for it to be a smaller amount, it would have to be someone able to offer money and time towards the final product. In both cases, any stake would also end up being small so that I don't feel like I'm doing all the work and getting nothing back (I understand I got money, but this means more than that to me). I'm not looking to become someone else's employee either.
  11. iamallama

    Big list of issues...

    I'm starting this as a single place for all the issues people have been writing down or have had. Things should be pretty stable right now. If there is anything you know of that still needs to be fixed or is bothering you within the game as it stands, please post it here. As I read through the issues, I'm going to update this main topic, coalesce them, maybe make a small response to some and then delete the sub-post to keep the thread clean. This is NOT a discussion thread here so please don't ask questions or make suggestions on features that aren't in game yet as I will just end up deleting the post. Initial Bags disappear too quickly. Get all items from bag button because it is way too clicky The clicks on the items are throttled to prevent spamming the server (it ends up only spamming you instead of sending a network message every click). I found this frustrating too and so I'll increase the click rate. I'm sure there could be some additional balance stuff related to the timing. Ran into an issue with mobs who would not aggro onto me when I used my spell AoE from a distance, they would register that I had attacked them, but would not run towards me even if I was standing just beyond melee range. Monsters get stuck in some attack/idle loop. Need to research why (likely something like missing a return statement in one or the other). Press enter to submit login form. Autotarget range is way too much. There technically is no range limit, but yea, there needs to be one. The range limit is based on what monsters you can see around you due to proximity which is slightly larger than the screen. Issue is that I can really only get distance "as the crow flies" and not pathing distance. So while the tab distance could be shortened up, it doesn't mean that it won't path you half way around the world through a maze to get there. Items don't stack up when you drag and drop from Inventory to Bank. Dark Fatty harder than Fatty but they give the same amount of Exp Balance Save full screen preference because I am always pressing alt+enter. Doesn't save preference. The full screen was added in later from people complaining of it being too small. I need to save several preferences. After you write down a message and press send it via enter key, I should be free to move and not click away to lose chat focus. Yea, the chat focus thing was annoying AF. I need to see if this is something I'm doing (from the framework) or a result of unity's input and fix it. @Hunter Armor says it increases damage when it really increases defense This was just my mistake. I have to type in the text for the tooltip and it was likely just a bad copy/paste. Green Armor can only be equipped as an outfit (probably for testing) Yes, I forgot about this. It was for testing. Outfit armors provide defense They technically can, I just forgot to reset the bonus values when testing outfits. Pets HP get reset to 100 when summoning and re-summoning Evil Fatty is dark and Dark Fatty is evil-colored These are just sloppy recolors and a matter of opinion. I think I originally made a dark/evil golem that had comparable coloring, but renamed them for stones. The Pet (Dark/Evil) Bushys have the description "A Baby Skeleton Pet" The framework pet is a baby skeleton. I just forgot to update it's description. @Archangel Can only have one quest at a time I remember this from before, but forgot about it. For some reason this is something odd in the framework and haven't gone through to fix it. @Yuval2B While moving I can't close my pet, it says the pet is fighting. But actually I'm just moving. I'll check into this I don't know if you already fixed that, but happened to me that I went to the mail thing to send someone a msg and items, I searched his name and then the window stuck and I couldn't close it. I'll add a close (X) button to the search window
  12. iamallama

    WoT Dec 30th '17 - Thoughts so far

    What's really interesting is that there are only like 3 baddies and an additional 3-4 recolors that was just me loading them in PS and adjusting the hue/saturation. This issue has been fixed. In the new map, the navigation layer was on the same layer and z position as the monsters so their hitboxes would randomly layer one above the other. Sometimes your click would hit the map and appear as though you couldn't target. Other times it would hit the mob like it was supposed to. I just forgot that I had to bump the navigation down in the z axis by like 0.1. The whole time there were issues with the database layer in the game. Initially everything was just soooo slow. So I did a complete rewrite of it on Saturday and ironed out bugs through Sunday and Monday. The issue here was that the server will keep everything in memory and then once every 60 seconds or so it saves all the logged in players to the database for persistence. However when this failed once for any reason, essentially nothing would be saved. Cookies have a drop rate of something like 2%. This was on purpose from the last open weekend as it was really the end quest. While it was kind of the last quest here (or hardest), it definitely wasn't the end of the content like before as we had a new map. When I'm playing on this small test map myself, everything works fine as I'm alone. When lots of people are online, it gets a little crazy and short. Fixed. They were copies of the main bushy pet with replaced recolored sprites. I was originally going to make the additional ones enemies and forgot to change the minimap color back. Those will all be replaced by icons at some point. Thanks for letting me know this. I think it is just balance as I likely didn't change the regen rate for each level. I also need to do work on regen to not regen while in combat but wait until after. Eventually there will be more powerful potions. I just didn't take the time to add in all that stuff. The clicks on the items are throttled to prevent spamming the server (it ends up only spamming you instead of sending a network message every click). I found this frustrating too and so I'll increase the click rate. I'm sure there could be some additional balance stuff related to the timing here. I assume this was on the new map and related to the navigation layer indexing. When you click on the bag, it is just the enemy in a "dead" state and just showing a bag icon. It's a test map. I actually didn't change anything on that map from the previous open weekend. So that has existed for a while. I need to research this a little more. It seems as though they get stuck in some attack/idle loop and never really react. As Terr said, you can press tab again and press enter. Unity has some odd things when it comes to their UI. Like an input box has an active state meaning the box is selected, but not editing. And a separate editing state. When the box is selected, pressing enter goes into an editing state and when pressing enter it goes out of editing and back to active. There is a OnEditEnd event, however this fires when you just stop editing, whether that was by pressing tab, clicking outside of the input or pressing enter to end editing. I have to manually detect an enter key press while editing and trigger the login button. This is what I'm doing on the chat box. There technically is no range limit, but yea, there needs to be one. The range limit is based on what monsters you can see around you due to proximity which is slightly larger than the screen. Issue is that I can really only get distance "as the crow flies" and not pathing distance. So while the tab distance could be shortened up, it doesn't mean that it won't path you half way around the world through a maze to get there. Noted. I'll fix this. I think it currently just treats inv to bank as a swap always. However dragging into another slot in bank and you should be able to stack after that. Monsters not selectable answered above. Monsters not attacking answered above. Bags, answered above. I will consider adding a button. I was always against it because I thought it would make botting way too easy. But in reality, it's not hard to have a bot just click the top slot. There will be one eventually. Just not there yet. The pets attack/defend event fires on successful attack/defend for player. As in after a monster attacks you or after you attack a monster. And the attack has to hit successfully first. I'll likely add a "pet attack" skill later on. They were just copies and I only adjusted the health, damage and defense of the copies. I might have changed another setting or two around, but they ahve like the same/similar drops, drop rates and gold. This was just the result of me knocking out that map quickly. Doesn't save preference. The full screen was added in later from people complaining of it being too small. I need to save several preferences. Database wasn't saving properly so it couldn't update to mark you as logged out. Yea, the chat focus thing was annoying AF. I need to see if this is something I'm doing (from the framework) or a result of unity's input and fix it.
  13. It only has the time restriction because it isn't done. Currently there is no extra content that wasn't in the last SW. And tonight I'm going to build a single really large map, drop trees all over, add some monsters (likely just recolors because we don't have many to test with), npcs, drops, etc. So I'll add content, but there won't be lots of stuff like story or real content. It'll all be poor randomly generated and slapped together in one evening as something to give you guys to do for a few days. It won't be until the main engine and mechanics are done that content starts filling in.
  14. All clients have been built with a current version. Expect an additional patch shortly before going live (patch should only be a few kb), but for now you can download and get ready. Windows: unavailable Linux: unavailable OSX: unavailable
  15. iamallama

    Rename Edelstein (or not)

    Different. My choices were Oreville because I love a good pun. And Schmitty, I just laughed at the thought that he could have other stupid family members named like "*itty", Itty Bitty for the smaller blacksmith kind of guy currently named junior, or a twin named Witty that wears a robe and sells skills (Witty got the brains and Schmitty got the brawn) or his twin sister Kitty that is just him, mustache and all, wearing a dress, that sells pets. Or other stupid names like that. The "Itty" family. Though I was kind of surprised that through my random choices that Edelstein actually seems to apply.