Code Monkey home page Code Monkey logo

trueexponential's Introduction

TrueExponential

The game

The first clicker/idle/incremental game featuring exponential progress!

Click the button to generate cash, buy upgrades to boost your multiplier and let exponential growth do the rest.

Check the changelog for a full list of changes and updates.

Motivation

There seems to be a common misconception between incremental game players about what exponential growth is. Many players, and even some developers, have labeled "exponential growth" what really is polynomial growth (even if it is a higher degree than 2).

I made a little demo showcasing how fast exponential growth is, and after popular demand, I decided to develop it as a fully fledged game.

Technology

The game is developed in Javascript (Angular.js) and uses decimal.js to break free of the 1e308 limit of regular JS numbers. Still, the maximum number provided by decimal.js dwarfs in the scale of exponential growth, and libraries that provided even bigger numbers are always welcome.

License

TrueExponential, an exponential incremental experiment.

Copyright (C) 2015 Andrés Garcia Garcia (angarg12)

This project is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Derivative works should include attribution to the original author. The original author does not endorse or promote derivative works, unless explicit consent is given.

trueexponential's People

Contributors

angarg12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

trueexponential's Issues

Player data is accessed before it is loaded

index.html tries to access player data before it has been loaded. This raises the following exceptions.

Error: $scope.player is undefined
$scope.currencyValue@TrueExponential/js/exponential.js:35:4
hb.prototype.functionCall/<@TrueExponential/js/angular.min.js:198:422
h/<@TrueExponential/js/angular.min.js:108:158
Pe/this.$get</l.prototype.$digest@TrueExponential/js/angular.min.js:123:308
Pe/this.$get</l.prototype.$apply@TrueExponential/js/angular.min.js:126:360
sc/d/<@TrueExponential/js/angular.min.js:17:446
e@TrueExponential/js/angular.min.js:37:94
sc/d@TrueExponential/js/angular.min.js:17:367
sc@TrueExponential/js/angular.min.js:18:153
Jd@TrueExponential/js/angular.min.js:16:483
@TrueExponential/js/angular.min.js:249:412
a@TrueExponential/js/angular.min.js:164:354
lf/c@TrueExponential/js/angular.min.js:32:358

The error disappears automatically when the data is loaded.

Check prestige function

Prestige function seems to have a alert message left from testing.

Also, prestige should ask the user for a confirmation before the reset.

Error number undefined

The game sometimes throws the following error:

"Error: number is undefined
prettifyNumber@http://angarg12.github.io/TrueExponential/js/exponential.js:150:1
$scope.trustedPrettifyNumber@http://angarg12.github.io/TrueExponential/js/exponential.js:37:28
hb.prototype.functionCall/<@http://angarg12.github.io/TrueExponential/js/angular.min.js:198:422
h/<@http://angarg12.github.io/TrueExponential/js/angular.min.js:108:158
Pe/this.$get</l.prototype.$digest@http://angarg12.github.io/TrueExponential/js/angular.min.js:123:308
Pe/this.$get</l.prototype.$apply@http://angarg12.github.io/TrueExponential/js/angular.min.js:126:360
e/O.$$intervalId<@http://angarg12.github.io/TrueExponential/js/angular.min.js:91:71
prestige@http://angarg12.github.io/TrueExponential/js/exponential.js:133:4
hb.prototype.functionCall/<@http://angarg12.github.io/TrueExponential/js/angular.min.js:198:422
Cc[c]</<.compile/</</f@http://angarg12.github.io/TrueExponential/js/angular.min.js:227:394
Pe/this.$get</l.prototype.$eval@http://angarg12.github.io/TrueExponential/js/angular.min.js:126:80
Pe/this.$get</l.prototype.$apply@http://angarg12.github.io/TrueExponential/js/angular.min.js:126:305
Cc[c]</<.compile/</<@http://angarg12.github.io/TrueExponential/js/angular.min.js:227:444
lf/c@http://angarg12.github.io/TrueExponential/js/angular.min.js:32:358
"

Seems to occur when the prettify function is called before the game is fully loaded. It also self-corrects and don't produce further problems. Most likely related to #1.

Times don't display correctly if they have the same value

If two sprints are finished exactly with the same time, the following error appears.

"Error: [ngRepeat:dupes] http://errors.angularjs.org/1.3.8/ngRepeat/dupes?p0=sprint%20in%20player.sprintTimes&p1=number%3A0&p2=0
T/<@file:///C:/Eclipse/workspace/TrueExponential/js/angular.min.js:6:416
ne</<.compile/</<@file:///C:/Eclipse/workspace/TrueExponential/js/angular.min.js:234:379
Pe/this.$get</l.prototype.$watchCollection/<@file:///C:/Eclipse/workspace/TrueExponential/js/angular.min.js:122:361
Pe/this.$get</l.prototype.$digest@file:///C:/Eclipse/workspace/TrueExponential/js/angular.min.js:123:443
Pe/this.$get</l.prototype.$apply@file:///C:/Eclipse/workspace/TrueExponential/js/angular.min.js:126:360
e/O.$$intervalId<@file:///C:/Eclipse/workspace/TrueExponential/js/angular.min.js:91:71
"

Balance Problem

Hi there. I like the game, but I think there are some balance issues that need to be addressed. Essentially, the upgrades become less than useful too early into the "proof." See my math here

Update version checking for v0.8

Versioning of saved games was not updated to the latest versions. This cause issues since the savegames are not retrocompatible.

Calculate cash earned via time elapsed

The interval functions seems to only be invoked when the tab of the game is active. This has the drawback that the game doesn't progress if the game is alt-tabbed. Instead of blindly relying on interval, making use of time elapsed will help to circumvent this limitation.

Can we haz dark mode pls

I think dark mode would be a cool feature to add, though I'm not sure how easy that would be.

Cash multiplication is not performed correctly

The cash is not multiplied correctly on each update.

Proof can be found when multiplier is 0. Instead of converting all cash to 0, it falls down slowly.

This seems to be a long-standing error.

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.