Skip to content

nuclear-unicorn/kittensgame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crowdin

README

Contents

General Information

Setup

Prereq

Installation

To install the prereqs

npm install --global yarn
yarn install

To run the local developer server

yarn start

To run the tests

yarn test

IDE setup

You can use any IDE of your choosing, but if you want to speed up things, vscode is recommended. kg-workspace.code-workspace contains a pre-configured project with a set of useful extensions.

Update launch.json to point to your browser binary (/usr/bin/chromium by default). Use F5 / Run to attach IDE debugger to your browser instance.

Contribution

Rules

  1. No meanies and baddies
  2. No bureocracy

Repo access

As a general rule, all changes should go through the PR. If you have a write access, you can submit small changes directly without approval. Major changes are still advised to be pushed through PR.

Please run all major UI changes through Blood first.

No ES6, please

The KG ecosystem must support about 20.000 different Android devices, iOS, and various OS and browser versions dating from 1980, including Chrome/FF/IE/Edge/webkit of all possible releases.

We support IE6. We support browsers that do not know how to work with local storage or web workers. I'm not sure, but it might actually work on Netscape, Links or Mosaic.

Please, no ()=>{}, const, require, webpackers, etc.

Roadmap

Contribution Guidelines

  • Brave souls that try to change formatting will be fed to wolfs.
  • THERE IS NO UNUSED CODE in this repo.
  • If you found some confusing place and wasted more than few hours here, please document it for your fellow devs.

General Design Principles

  • It's better to reuse existing buildings and resources than to introduce new ones.
  • Active gameplay should be encouraged when possible, but it should not be an absolute requirement to play.
  • Every problem or bottleneck should be addressed in multiple ways, e.g. Tradepost to reduce fur consumption AND Hunting upgrade to get better yield.
  • Every solution to a problem should create a new problem.
  • Design things to be difficult initially, and address them with upgrades later.
    • For god's sake, never, ever nerf anything!!
  • Consider how things will scale at later stages. You have a rare resource that costs 1 million unobtainium? Someone will be able to farm trillions of them.
  • Try to introduce some variety to the mechanics, but stay within the established rule system.
    • For example, hunting requires catpower, grants you various resources, and has a chance to give you something rare.
    • Similarly, trade requires catpower, grants you various resources, and has a chance to give you something rare.
      • Our players are really comfortable with the trade mechanic because it uses familiar terms they know already.
  • Don't use percent reduction effects. For every problem they may solve, a trillion new issues will appear.
  • Don't use price reduction effects. (If you do, be extremely careful.)

Consistency

  • With code formatting, it's nice to have, but it's not critical.

Themes

In a grim and dark future of catkind, no one can hear you scream.

  • Good: mythical monsters, elder artifacts, arcane technologies, lost civilizations
  • Bad: elves, fairies, robots, owls

Translation and Localization

https://crowdin.com/project/kittensgame

  • Please use the link above for all the localization changes.

  • Please use $I(<string_id>) instead of hardcoded strings.

  • i18n/en.json is a master file that contains all the keys for the game. When adding new locale string, please add a key and a value to en.json

    • You are not required to provide translation for new string to other languages.
  • i18n/*.json are legacy translation files and should not be changed.

  • i18n/crowdin/*json are autogenerated by crowdin and should not be changed directly in the codebase. They have higher priority over i18n/_.json

Links