Jump to content

Hare

Game Owner
  • Posts

    339
  • Joined

  • Last visited

  • Days Won

    37

Posts posted by Hare

  1. 6 hours ago, Onyx said:

    Khimeros has the pinta marking, which is a series of 6 markings and you can get either a marking between the parents' marking numbers OR totally random depending on the option you select while breeding.  Not exactly the same but sort of similar idea.  I don't know the exact programming behind it though.  Another thing that I want to have implemented is similar to our dyes system, but instead of the user being allowed to choose where to put the dye, it would be a big marking sheet with say for example, lots of spots all over it and the system would move the sheet around and then mask to the base in a random spot.  This would give a different marking to every offspring that carries that pattern gene, expecially if you layered two different sheets, maybe one with patches and one with spots.

    Are you thinking of something like this? It randomize where the the spots go and creates a clipping mask into the top color layer to reveal another color underneathe. 
    It might be cool to play around with resizing, rotating, etc. too to get all sorts of cool combos. 

    1744885739_ScreenShot2018-11-13at5_07_03AM.png.de2cfe6cc63df2ab4e6e12d59834ce69.png


    Here's an imagemagick code for it:

    //randomize for a 400px pet image
    $x = mt_rand(0,400); 
    $y = mt_rand(0,400);

    $masklayer = new Imagick( $path . "/spots.png" ); //100x100px transparent png
    $whitelayer->compositeImage($masklayer, Imagick::COMPOSITE_DSTOUT, $x, $y);
     

  2. Have you ever used a modulus to create color variations in a breeding feature?
    I came up with this method a while back and have been using it for a few years with Imagick and GD library.

    Let's say we have a pet with different possible spots, stripes, nose markings, and foot markings.
    With a modulus, you can have all four marking types controlled by one INT column (instead of having four different columns).

    There are 5 nose patterns. The files are named: nose0.png, nose1.png, nose2.png, nose3.png, and nose4.png
    There's 6 foot patterns: foot0.png, foot1.png, foot2.png, foot3.png, foot4.png, and foot5.png.
    Same thing with spot and stripe patterns, which have 11 and 13 possible layer files respectively.

    $markingint is the INT data column for each pet that controls their markings. We set this value, then add this code below it:
    $nosepattern = $markingint % 5;
    $footpattern = $markingint % 6; //uses up 2 and 3
    $spotpattern = $markingint % 11;
    $stripepattern = $markingint % 13;

    Note that these are all prime numbers, except 6, but we sactifice 2 and 3 to have 6 foot markings.
    Using all separate prime numbers allows different marking combinations to be possible.
    Anyway...
    The images are layered from your image folder as such (in whatever order you want):
    "/foot" . $footpattern . ".png";
    "/spot" . $spotpattern . ".png";

    "/nose" . $nosepattern . ".png";
    "/stripe" . $stripepattern . ".png";

    So whatever the $markingint is, it'll apply all the different patterns. 
    Let's look at two example pets.
    Pet #1 has $markingint = 87;
    This pet will have nose2.png, foot3.png, spot10.png, and stripe9.png.
    Pet #2 has $markingint = 145;
    Will have nose0.png, foot1.png, spot2.png, and stripe2.png.  
    In practice, breeding these causes each marking to cycle like this: 0.png 1.png 2.png 3.png 4.png 0.png 1.png 2.png 3.png 4.png, I save the art files to have 0.png aand 4.png to look similar so it feels like you get markings that look similar to the parents when breeding. It's trickier to breed for a specific combination, though, especially if you don't understand the math behind the system.

    What do you think? Do you have a better method? 
     

  3. Edit: Never mind, I got them back. I'm not sure how, it might remain a mystery. 

    Original post:

    Spoiler

    Hello!

    I asked about this before and noticed a few other people having trouble. 

    I've been trying to put ads on leporidae.org for a while. The site is verified, the code is in the header, and we turned on anchor ads. I've read every tutorial I could find and I can't figure out why ads don't appear. An ad did appear one time, so I know it worked at least once. It took about 2-3 days for it to appear (as expected) and I was stoked. Wanting to see how the other ads looked on the site, I turned on some of the others. When they appeared though, they were in the way of players, so I turned them back off, leaving the original anchor ad on, but all the ads disappeared. I can't get the anchor ad to come back. 

     

  4. I'm wondering, what are some things you all have added to your games that you are, to this day, really happy with? Things that turned out well?
    Did you expect them to turn out well, or were you less sure at one point? Did you know that the addition would be successful? How was it successful. 

    Here's some of mine, and as examples:
    1. The ability to post as an admin account without having to log into it. Clicking a checkbox is much easier than switching to a staff account.
    2. Month-long holiday activities. Less strain on the server than an event that's a few days long, and players seem to love it. I was really unsure of this because a month seems like a long time, but heck, it works.
    3. Using Imagick/GD library for dynamic animal images. It's so fun to see what the program creates! 

  5. I've been trying to get adsense on my site for years and was inspired to try again after seeing this thread, but have had the same issues of no ads appearing on the site in spite of doing everything right (from what I've read). The site is verified, the code is in the header. Anchor ads appeared for 2 days at one point. Google then suggested adding other ads so I turned some others on to see how it went, but they got in the way of players' activities, so I turned them back off (leaving the anchor ads on) and bam, it's all gone. Been waiting a week and still nothing.  

    Has anyone else had trouble getting ads to appear on their site? I've researched this extensively and am still completely baffled as to why I can't get the anchor ads back. 

  6. 3 hours ago, Matthew said:

    Automated tests are bits of code that you write that you then run before uploading the codebase to your site. In other words, you write the tests in the style of how you expect the code to be, and the tests confirm whether that is actually true or not. For example, below is a piece of code I wrote to check that my emails are being sent out with the correct details. The language is different but the principle is the same.

    
    describe "new_forum_post" do
        let(:mail) { ForumPostNotification.new_forum_post(forum_post(:first), users(:matthew).email) }
    
        it "renders the headers" do
          expect(mail.subject).to eq("A new forum post was made by example!")
          expect(mail.to).to eq(["[email protected]"])
          expect(mail.from).to eq(["[email protected]"])
        end
      
        it "renders the body" do
          expect(mail.body).to include("A new forum post was made!")
    
        it "includes the unsubscribe link" do
          expect(mail.body).to include("https://example.com/notifications/unsubscribe")
        end
      end

    These tests run every time I make a change in the codebase, as well as on upload to GitHub (code storage) and the servers. If any of the tests fail (e.g. perhaps the email no longer includes the unsubscribe link, or maybe the subject has changed), the upload will stop and I need to fix whatever is broken before I can upload again.

    These save you a lot of time and effort over manual testers. Manual testers are important, but it's not realistic to expect people to go and test out every part of the site to make sure nothing has ever broken. :) These automated tests will probably cut down on the number of regressions (where a feature stops working) and bugs you encounter.

    Not sure what language you are using, but there are likely to be things that can do this in PHP for example.

    Thank you! This looks about like what we have. We could add more. =D

  7. Thank you for your responses! Very helpful.

    We don't have any automated tests that I know of (what are these exactly?). We check error logs and test out the features in various different ways before going live. 99% of our bugs are similar to this one:

    For example, our most recent one:  angora rabbits have to be groomed to show, and their groom meter starts to tic once they're born. This is set up so they'll need grooming by the time they're 6 months old (adults). We have a 'low maintenance coat' you can breed for though that makes it take longer for them to get matted. This result in some 3-4 month old angoras being showable (which was reported as bug because in real life they generally don't have a full coat by then).
    We didn't code the shows to just exclude the younger angoras at that age because it would have required a ton of exceptions to list all the angora breeds (and then we're worried we'd forget to update it in the future when we add more angora breeds). So I fixed the bug by not applying the low maintenance coat to animals under 6 months. 

    Would an automated tester be able to help with this? Having a dedicated testing group sounds like a beter way of handling new features than releasing them site-wide, we should implement that and I'm thinking have a longer testing period after coding new things.

  8. What are good methods with which to handle bug reports, and what is a good rate of fixing bugs? 

    We had about 300 bugs reports resolved in the past 2 months, and average of 5 resolves per day. There are usually about 30-50 open reports at any given time.
    The reason there are so many bug reports is because of the rate of development (we release a lot of new features).
    We could reduce the number of reports in the 2 month period by spacing out new things over a greater period of time. That would result in fewer bug reports open at any given time. 

    We're also trying to come up with any improvements we can make to our reporting system. 
    We have a regular bug reports forum with open and resolved topics. A staff or the player who created the topic can open or resolve it if needed (like if a player finds that their bug was fixed without staff help, they can resolve it on their own, if we marked it resolved but it comes up again, they can re-open it). Higher priority bugs are pinned. 
    Then we had a modbox for sensitive things. 

    Sometimes we have bugs that we have trouble figuring out. I hate to say it, but we do have some bugs that have been going on for a month or more and we've yet to figure out how to fix it. What's best to do in these situations? In the past, we've managed to 'finally' fix something after a few months, or recoded the feature around it in a way that removed the bug. 

    Other random questions:
    - When do you shut down a feature?
    - When do you reimburse a player for lost stuff due to a bug?
    - Do you temporarily take and hold things that a player reports as a potential bug until it can be determined whether it was a bug or not?
    - How do you prioritize bugs?
    - How do you communicate with players before, during, and after the bug is fixed?
    - How long is reasonable for players to wait on various types of bugs?
    - What is done about a bug that removes things from a player's account (like money) that they say they need right away?
    - Any other comments or ideas on how to have a good bug report system?

  9. I love the idea of being able to offer low account IDs for game money! I hadn't thought of that at all but it would be fantastic for players that aren't able to buy low ids with credits or USD; definitely going to implement this into V2!

    Another option for this is that you could allow players to buy or sell the USD 'credits' (or whatever currency they pay USD for) to others for game money. Players who don't have USD to spend can buy the currency from others and use them for any of the USD currency features you offer. There will also be players who want to buy the USD currency just so they can sell it to other players for regular game currency. 

    I had also thought of a way to control both population and economic flow by means of the pet store; each player is currently given a specific number of horse credits to buy horses with (each horse costs $2000), but I had thought of making it so players could buy an unlimited number of horses, but for each horse over their purchase limit, the cost for the horses goes up by $500 or so.



    Good idea, I think raising the cost based on number of horses you already have sounds like a good option. I would still set a limit on the horses just to be careful in case you ever need to have limits. Just because it's so much easier to have them in place from the start than to add them in later (at the frustration of players). 

    Overall, I've discovered that it's best to focus more on money sinks first before the game is released or as early as possible so as to make players happy and enjoy your game more. Players will enjoy when you add new ways to earn money, raise earnings, and lower costs or charges being removed, but they won't be as happy about new charges or higher costs. So add all the stuff players won't enjoy before they start playing.

    Of course, make sure the game is fun and don't make costs so high or money so hard to earn that players won't want to give the game a chance, but yeah focus on those money sinks and save the balance for later. After you see how your site plays and the economy is doing in practice, and you get feedback from players about what they think is vs what makes them less inclined to play, you can start removing charges or lowering costs accordingly. 

  10. We plan on having account deletion, too. Just a matter of getting around to the coding.

    Does anyone offer to remove any personal info such as IPs, email, password, etc. or any content the user created such as forum posts, messages, animal names, notes, etc.?
    User created content would not include things like animal genetics, IDs, statistics on their account, settings, etc. The animals they breed belong to the site, for example, but custom signatures or profiles is user-created. Most big commercial sites seem to delete all user created content when an account is deleted. Is it because there's no way for the user to request having their content removed after deleting their account?

  11. Another year, another update. 
    Leporidae has grown bigger and better with many new and polished features. 

    Showing
    Show your rabbits against other players. There are multiple types of shows.
    - Official GSRA shows where rabbits compete for grandchampionships and prizes.
    - Everything Goes Shows, which are similar, but have fewer prizes and fewer rules.
    - Pet Shows where players vote on the winner based on the rabbit's name and image. 
    - Meat Pens, where you enter 3 rabbits together and they are judged on various aspects such as uniformity. 

    473087894_ScreenShot2018-09-14at8_29_42PM.thumb.png.bcf98cec65b41628aa5eb6c0bd02cb93.png

    Breeding
    - Realistic Mendelian genetics. 
    - Hidden modifiers that control color and pattern variation. Millions of possibilities.
    -  Crossbreeding.
    - Breedable stat total and traits. Traits are compared against a breed standard when showing.
    - Different fur types (normal, rex, satin).
    - Fantasy colors and breeds.

    866734922_ScreenShot2018-09-14at8_36_54PM.thumb.png.cb4b760a53c9c6a16323c36a87ca8437.png

    234205597_ScreenShot2018-09-14at8_40_40PM.thumb.png.445f81cc4fe1d94bc82330f7be1de676.png

    Customization
    - Organize and customize the housing for your animals.
    - Customize your avatar. 
    - Profiles, forum signatures, and more.

    building.php?basehex=f2f2f2&btype=418&dobuilding.php?basehex=821b1b&btype=308&do
    avatar.php?gender=female&skin=f2e2dd&eyeavatar.php?gender=genderless&skin=6a5346avatar.php?gender=male&skin=e3c0b3&eyes=

    Breeds & Species
    - 60+ breeds, including all American recognized breeds.
    - Includes unrecognized breeds like Velveteen Lops, Loffelohrs, and Czech Frosties.
    - Alien creatures and fantasy creatures such as Easter Bunnies and Skelebuns.
    - Hares

    rabbit.php?abre=cz&%20%20style=1&%20%20brabbit.php?abre=con&%20%20style=1&%20%20
    rabbit.php?abre=xc&%20%20style=1&%20%20brabbit.php?abre=vl&%20%20style=1&%20%20b
    rabbit.php?abre=ea&%20%20style=1&%20%20brabbit.php?abre=hl&%20%20style=1&%20%20b
    rabbit.php?abre=jw&%20%20style=1&%20%20brabbit.php?abre=li&%20%20style=1&%20%20b

    rabbit.php?abre=lf&%20%20style=1&%20%20brabbit.php?abre=ms&%20%20style=1&%20%20b
    rabbit.php?abre=nd&%20%20style=1&%20%20brabbit.php?abre=px&%20%20style=1&%20%20b




     

     

    • Like 2
  12. An update on this: 

    I got a lot of help and am tremendously grateful for that and for the assistance from my friend. I thought I was not going to be able to keep the site anymore, but he took it off my hands and fixed the issues we were having. We're now back to working on it together.

    It was a culmination of a few larger files and their backups, including an image cache and some other cache files. I've since deleted those, freeing up enough space so we're no longer on the brink of downtime.

    We also reduced the animal limits and it has made a world of difference. 

    • Like 2
  13. I don't think death is too sensitive to have in a game. They've been doing virtual pets dying since tamagotchis. Sometimes emulating real life trauma can help people (and children) to build emotional strength so they can endure a much harsher reality. 

    I would phrase it nicely, though. Like 'x has passed away.' 

    I do think whether to have animals die or not though ultimately depends on your gameplay, features, and demograph. If players are going to be spending all their time with a single animal, such as training and building a bond, death  might end up just being a huge disappointment to players who worked hard with that animal. On the flip side, if the game is more about constantly getting new animals (such as with breeding features), then death can help clear out animals and won't be as much of a bother to players who are always replacing them, anyway. 

    You could also do both. Have animals die under normal circumstances, but have some way (like an item or feature) to immortalize them if the player really wants to keep a particular animal. 

  14. Thank you, Design1online. I couldn't find any logs under etc/apache. There is a logs folder and a 207 mb log file. There's also a cache file that's about 600 mb. The error logs on the site used to have issues with rendering (it used to shoot up 20 mb a day), but I had fixed the error and we no longer have any image errors going into that log (it doesn't grow much). 

    Judda helped me search through our files to find the big ones. Not sure what it is still, but I'm keeping an eye on it to see how it grows. Might be a number of things adding up. 

    I found a new owner to take over the site, since I can't afford it with the space issues it has. He says he'll be able to foot the bill for it from now on, so I'm really relieved. I'd like to still figure out what's going on even though I don't own the site anymore.

  15. 6 minutes ago, judda said:

    Are you on Discord?  It may be easier to discuss there.

    For data types, if you are just doing on/off - TINYINT(1) would work.  Even with multiple options, TINYINT may work better for you.

    https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html

    I'm a little confused about what you are saying.  You say that the database as a whole is 150 MB but for every 5-10k rabbits, it grows 1 GB.  This tells me that the issue isn't with your database but with the actual images that you store for the rabbits?

    Yep I have Discord, Lunar Eclipse#6934
    We need the data to dintinguish between about 100 or less different possibilities (rght now we have allele #0-72).
    We don't store images so I'm rather baffled by that too. 

×
×
  • Create New...