Giter Site home page Giter Site logo

jeremyckahn / farmhand Goto Github PK

View Code? Open in Web Editor NEW
95.0 10.0 24.0 18.14 MB

A resource management game that puts a farm in your hand

Home Page: https://www.farmhand.life

License: GNU General Public License v2.0

HTML 0.48% JavaScript 96.15% Shell 0.02% Sass 3.29% Dockerfile 0.01% TypeScript 0.04%
farming-game react game pwa multiplayer-game trystero

farmhand's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

farmhand's Issues

Minor UI improvements to cow sorting

The first thing I want to do when there's a new little cow baby is hug them. But I have to find them first! If the default sort was by age, ascending, or if the game remembered my last choice, this would save a bit of hassle!

Improve save file names

Have save files grab game day and real date for file name:

"Farmhand Save - Day - .json"

(Delverton)

rainbow cheese

This is the best rainbow cheese in the world, buy now!
Download (2)

Cows are too valuable

Cows are worth too much and wreck the balance of the game. This should be balanced out.

Service-driven market value adjustments

Create a web service that provides a singular, globally-shared record of item value adjustments.

Acceptance criteria:

  • Players can optionally use the service as the basis for their item values adjustments (instead of adjustItemValues)
  • While connected to the service, players' actions affect the value of individual crops
    • For example, selling Carrots would send the value of Carrots and Carrot Seed down, and vice-versa

Loan stats

Record number of times player has gone requested a loan and display it as a stat.

Cows are OP

Rebalance cows to make them produce less milk and fertilizer.

Spam notifs for crows ate crops

Unlike in previous update it should "crows ate your crop" once for all crops ...now it shows the message for all crops ... For example crows ate 11 crops the message is spammed 11 times...

Lotta Saloks

So I was curious how reliable Math.random() * list.length was after four of my 30 cows were named "Salak" and four were named "Sapote" and wrote up this janky script in the console.

a = new Array(100); for (i=0;i<100000;i++) { v = Math.round(Math.random() * (a.length - 1)); a[v] = parseInt(a[v]) + 1 || 0 + 1; }; a.map((value, count) => `${count}:${value}`);

Turns out you get a similar distribution over many iterations, with some numbers appearing less frequently than others, especially on the extremes.

["0:521", "1:1002", "2:1003", "3:939", "4:1069", "5:945", "6:1037", "7:1035", "8:1035", "9:944", "10:943", "11:995", "12:1009", "13:1021", "14:1036", "15:1051", "16:1022", "17:987", "18:959", "19:1003", "20:961", "21:957", "22:957", "23:1053", "24:962", "25:1013", "26:1045", "27:1007", "28:974", "29:1020", "30:977", "31:1004", "32:1057", "33:1016", "34:990", "35:1000", "36:1002", "37:990", "38:1030", "39:1093", "40:1006", "41:1012", "42:1003", "43:1042", "44:1061", "45:1005", "46:1073", "47:965", "48:1020", "49:957", "50:1078", "51:960", "52:1004", "53:1062", "54:957", "55:950", "56:1044", "57:990", "58:1024", "59:1054", "60:976", "61:1020", "62:994", "63:1058", "64:991", "65:1063", "66:1014", "67:1000", "68:984", "69:1043", "70:983", "71:976", "72:1010", "73:1057", "74:1039", "75:1030", "76:1031", "77:1013", "78:1067", "79:984", "80:1010", "81:996", "82:1037", "83:961", "84:1023", "85:1060", "86:988", "87:1065", "88:995", "89:996", "90:1018", "91:1074", "92:957", "93:969", "94:1023", "95:1013", "96:1002", "97:1039", "98:1007", "99:503"]

But what you if you run it twice, and look at the decimal on the float as a source of increased entropy by multiplying by a large power of 10 to turn them into large integers so you can get a modulus? Whoa nelly salak that sounds random!

rand = (min, max) => (Math.floor(Math.pow(10,14)*Math.random()*Math.random())%(max-min+1))+min;
a = new Array(100); for (i=0;i<100000;i++) { v = rand(0, a.length - 1); a[v] = parseInt(a[v]) + 1 || 0 + 1; }; a.map((value, count) => `${count}:${value}`);
["0:1003", "1:1050", "2:1012", "3:1069", "4:969", "5:938", "6:990", "7:1019", "8:1042", "9:970", "10:981", "11:966", "12:961", "13:1026", "14:977", "15:987", "16:1024", "17:981", "18:994", "19:980", "20:986", "21:1016", "22:926", "23:1020", "24:1023", "25:1039", "26:1000", "27:1032", "28:1023", "29:990", "30:977", "31:1004", "32:994", "33:978", "34:1049", "35:936", "36:966", "37:1003", "38:1004", "39:1025", "40:983", "41:960", "42:1025", "43:1036", "44:1031", "45:990", "46:1019", "47:991", "48:954", "49:1021", "50:1000", "51:951", "52:1046", "53:959", "54:1001", "55:1012", "56:994", "57:954", "58:1050", "59:1026", "60:989", "61:933", "62:930", "63:985", "64:1002", "65:1052", "66:1014", "67:1044", "68:1073", "69:982", "70:935", "71:983", "72:1048", "73:1002", "74:980", "75:994", "76:1014", "77:956", "78:980", "79:1033", "80:1055", "81:1008", "82:1042", "83:1070", "84:996", "85:985", "86:1012", "87:1019", "88:976", "89:968", "90:1009", "91:1010", "92:970", "93:1018", "94:1003", "95:997", "96:997", "97:995", "98:1012", "99:996"]

Ahh. That's more like it.

Wiki images

Let's use this closed issue to upload images for the wiki!

To add an image to the wiki, create a new comment here, upload your image to it, submit the comment, and then hotlink to the image URL as necessary from the wiki.

Publish docs

Build JSdoc documentation and publish it along with builds of the game.

Show a message when someone else changes the value of an item

Currently there's a notification that explains how you affected the market, but it's unclear when someone else does. Show a notification after posting daily positions to show how the market has moved since the player's previous day completion.

Rainbow Fertilizer

Produced by male Rainbow Cows, Rainbow Fertilizer persists after harvesting a plot and automatically replants whatever seed was initially planted. Should also apply to Scarecrows.

Improve onboarding experience

See: https://news.ycombinator.com/item?id=26392667

From viklove:

One thing I've seen in open-ended games like this (Rimworld, Crusade Kings) is to just jump into a "tutorial" at first and direct the player into the basic game loop. It feels like you're actually accomplishing something (because you're actually building your first farm), and you also don't feel lost because the game is pointing you to the buttons you need to press in order to achieve your first goal.

So instead of a long-winded introduction about what the objective of the game is, just jump straight in and tell the user "A farm is nothing without crops, purchase some carrot seeds from the store to get started!" or something to that effect.

Additional commentary from me:

It wouldn't be too hard to display those on the Home screen for the player to check off when they first start out (and then hide after completion). And I think the default state for some views could offer more explanation.

Also this Reddit comment from u/NotMyHersheyBar: https://www.reddit.com/r/WebGames/comments/m2tk75/comment/gqmg5aq

Make it easier on mobile to find what every button does and what are the consequences for each action you can take.

All I could figure out at first was to buy the carrots and water them every day, and go to bed at night.

Can't make soup if you're broke

I couldn't afford a carrot seed, but had some carrots. Once I sold a few individual carrots and wasn't entirely broke, I could make soup again!

Screen Shot 2021-03-15 at 9 20 18 PM

machinery

We need machinery to make recipes, like cheese, those machines should be expense to make it more appealing to take out loans (#29).

add .nvmrc

since this project desires a specific version of node to be installed, it would be nice to have an .nvmrc to help out with setup.

Establish versioning system

Define a Semer-based versioning convention, document it, and publish the relevant tags. Tag game data exports with the game version.

Loans from and for Players

make it possible to give out loans to other players, and a rate the loan giver wants, with that new players get money, and rich players get passive income. This could be an addition or replacement of the current Loan system.

The Bread Crisis

the price of Bread (or any other end product) is fixed, i can sell 1 bread for $525, that costs 15 wheat, when wheat is more then $35, then the end product (bread) has less value then its ingredients (wheat).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.