Light the City!
Create an energy company that can provide the electricity to light up the bustling city.
Made for Incremental Game Jam 2.
Status | Released |
Platforms | HTML5 |
Rating | Rated 4.0 out of 5 stars (31 total ratings) |
Author | Semenar |
Genre | Strategy |
Tags | Idle, Incremental |
Code license | GNU General Public License v3.0 (GPL) |
Average session | A few hours |
Languages | English |
Inputs | Mouse, Touchscreen |
Comments
Log in with itch.io to leave a comment.
How can you tell if a trade is unprofitable?
im in class and still playing this game =]
anyone got a complete save for this?
Yes
can you send it?
send how and where?
no idea :)
"Export Game"
where do you buy the water dams?
...
@semenar: Are you still working on or updating this game?
Coming back to it after some hardware changes... The display is really messed up on non-Hi-Res screens. I have the page zoomed out to only 50% of the original size and it still cannot display the entire game on-screen. I have to scroll both horizontally and vertically, as well as work around some of the absolute placement of some buttons (such as import/export/reset). Not to mention, being zoomed out makes the font very hard to read.
No, sorry, I'm not supporting this game currently.
I think I made a fixed layout for this, so the game page is at least 1440 pixels wide or so. This might be the problem if you screen has less than that, yes. Unfortunately, there is no easy fix for this problem.
It's impossible to finish the game with such a high storage cost.
It should be possible. The storage limit applies only to energy.
The ship requires 1.21 e8 energy. It's simply impossible to buy so many storage items. I played for a week and I am at 8.63 e 6, less than 10%. With all upgrades and researches bought.
Did you try to assign Engineers to your storage buildings?
Woah!!! Thanks, I didn't even know it could be done
This is just an opinion, You should lower the cost of the storage.
IMHO, buying resources by engineers should have the highest priority (higher than sending energy to the city and higher than filling energy storage). That would prevent blackouts that can be fixed only with the player's intervention.
As it is now, when your power plants stop working, the crank sends all energy to the city instead of working on restarting power plants. That means you can't sell energy, and without money, engineers won't buy anything.
Buying is actually the highest priority; it is just that selling is the lowest one, so that you would see the energy capped instead of hovering somewhere lower.
Well, when I returned to the game after a few hours of absence, money was at zero, all my power plants were disabled and my population was plummeting.
I don't remember if the energy was capped; even if it was, it didn't help because you still have to manually sell it to get money. Considering that you need money to buy resources, the real buying priority is always below the priority of selling. If you can't sell, you can't buy.
My point is that with this being an idle game, there is an expectation that when you return to it after some time you'll have more resources to buy upgrades. It's strange for an idle game to punish for idling with the loss of progress.
Actually, it is an incremental game. While many incremental games are idle games, not all are.
But anyhow, I already figured out how to fix the issue you encountered: Lower the rate you are sending to the other city to about half of your average production (actual production--so if the crank is the only one producing, only calculate half of that; do not include production for power plants that are not producing due to no fuel). Once you start storing the unsold/unsent energy, it will fill your storage and kick start the selling again (make sure you have an engineer assigned to sell, though!) And then stick to that... Figure out how much energy you produce *on average since it fluctuates*, and set your "send rate" lower than that. That way, a part of your production always gets sold off to pay for buying.
Worse case scenario is if it tanked to zero while you were away--just set your send rate to zero. It will fill your storage (from the hand crank, at least) and start selling the excess. Once it starts selling, it will also start buying and bringing the other power plants back online. Then you can slowly start raising the send amount again.
Just remember not to send or store all your production--you will always want to ensure a portion is being sold off to pay for fuel buying. I've had good results with treating my main production as if it were 15% less for main power plants, and only about half for alternative power sources which can drop to zero production at times. That way, it send the remainder in to storage and sells off the excess after storage is full. (My storage levels were under 10 storage facilities for a long time to encourage hem to fill quickly and start selling. Only recently have I increased it in order to meet the end game target levels.)
I tried to export my save, but clicking export doesn't auto-copy to clipboard, and I can't actually get any of the text to highlight to copy it.
Which browser are you using? That should help to investigate the problem.
Firefox 86.01
Thanks, fixed.
Ugh, I really want to like this game but watching my population tank because uranium spiked to 50k and I can't afford to keep my plants running is beyond frustrating. The stock market aspect isn't fun. At all.
Wow, I cleared 100k in price for it. I guess I'm just not supposed to use uranium.
I've often felt similar frustrations, due to the stock market aspect being pretty much random. What I did was make sure I had a diverse range of power generation and always expect each to be only profitably operational about half the time--and set my energy supply to about half my maximum possible output. Then just check in on it once in awhile to make any tweaks needed--sometimes the prices can stay high (or low) for a long time, while others, they fluctuate high-low-high-low almost constantly.
I also kept at least two engineers researching alternate energy sources that were not affected by the market random craziness. Unfortunately, the alternate sources are all natural sources, which means they're effected by natural random craziness instead of the market! But on the plus side, you do not need to worry about financing and buying operational supplies for them; You only have to worry about natural deficiencies. (I'd post more about that, but I don't want to give away mid-to-late game spoilers..)
Just keep in mind that you do not *always* need to be producing the maximum energy output. In fact, I suspect that it's programmed such that demand *always* outpaces supply. Focus instead on keeping your own output stable, even if it's not enough for demand--the city folks may not be happy without full power, but they'll cope.
A couple of QOLs
The "Game by...." info in the bottom left corner sometimes (especially out of full screen mode) covers up things you might want to click for now that's my nuclear stuff
Engineers aren't particularly smart, it'd be nice if they were able to purchase a store of consumables to ride out price peaks. Quantity to buy = profit/price * need, this means if the price is low and you get 2$ of electricity for each 1$ of coal and you use 20 units of coal per second your engineers would buy 40 units of coal, as the price per unit goes up the amount of surplus they buy goes down and if the price goes too high you don't end up with an instant crash of electric and population. Would be happy if that was a research.
Stock market manipulation, it's clear that over time the cost of materials goes up, I think I've seen that it's related to the total amount you've purchased, could you also link it to time? a big purchase a long time ago should have less impact on cost of materials than a small purchase a few seconds ago... You could simulate a coal supply rather than arbitrary prices, long term coal producers would know to produce around the same amount of coal as is used too much and the price crashes too little and no-one can afford to buy it and make a profit, so have the amount mined fluctuate around the rate the player uses (from 50% to 150%) perhaps smoothed so if you double coal usage coal supply speed doesn't double instantly and then use this hidden supply variable to set the price, the more supply is available the cheaper the resource, players could then manipulate the market to a degree making for some more active play fun, for realism iron cost could depend on coal supply since smelting, and uranium and oil mining speed could similarly be dependant on coal and iron supply, and electricity cost/availability as they're resources used in building the supply line
Thanks for the comments!
The "Game by..." info shouldn't cover stuff; if it does, the layout broke. I will look into it.
The idea about engineer improvement is nice, thanks! Might include it in future.
Stock market manipulation is already a research, but maybe some added complexity won't be bad. Thanks for the ideas!
Regarding the layout issue: I have the same issue in my game when not in full screen. I have to switch to full screen to see everything without overlaps. (Ever program with Tk? Even though it's layout engine works hard to avoid this kind of issue, it's not an easy problem to detect or correct..)
That info thing only happens on the Power and Alternat Tabs, I think it's cause the power station stuff isn't scaling... I have to scroll to see it all.
And I get that theres's a research but as far as I can tell that's not a way to "actively" play the game, that's a click the button and done... my suggestion was that the player could manipulate the stock market through their actions within that section of the game, or ignore it if it doesn't interest them. I think I may have also worked out how to implement it in sudo code:
//HR = HiddenResource
HRAmmount += HRSpeed
HRSpeed += HRAcceleration/10 * PlayerUsageHR
If HRSpeed < 0.5 * PlayerUsage then HRSpeed = 0.5 * PlayerUsageHR
If HRSpeed > 1.5 * PlayerUsage then HRSpeed = 1.5 * PlayerUsageHR
//HRSpeed is capped between 0.5 and 1.5x Player Usage
HRAcceleration += Random(-1,1)
If HRAmmount < -1 then HRAcceleration += log(abs(HRAmmount))/3
If HRAmmount > 1 then HRAcceleration -= log(abs(HRAmmount))/3
//HRAcceleration gets a random flux and a Bias to Accelerate to HRAmmount to 0, uncapped to allow long-term consequences (but could be capped by multiplying by 0.9999 for example gently bringing the acceleration closer to 0). This would be the place where you can slow or speed one resource based on another having a shortage, so:
//if CoalAmmount < -1 then IronAcceleration -= log(abs(CoalAmmount))/10
//allowing the iron price to react to the coal price but requiring time for the effect to come into play rather than instantly
HRActualPrice = HRBasePrice / (( HRSpeed / PlayerUsageHR ) + random(-0.25,0.25)
If HRAmmount < -1 then HRActualPrice *= (2 ^ log(abs(HRAmmount)))
If HRAmmount > 1 then HRActualPrice /= (2 ^ log(abs(HRAmmount)))
//This is how you could turn an amount of resource into a price, the base price gets modified by speed, if the production of a resource is slow then the price should go higher and vice versa, with some wiggle room for tick to tick price fluctuation when resource speed is pegged to max or min (which will be most of the time). And then this price is affected by the stockpile, for every order of magnitude increase in the stockpile the price halves, if there's a "negative stockpile" the price doubles for every order of magnitude. This is also where you can make one price a factor for another
//IronActualPrice += CoalActualPrice/100
//UraniumActualPrice += ElectricityActualPrice * 100
//Allowing for more instant buying of one thing affecting the price of another.
All in all, this keeps the near-term fluctuations, but would allow for the long-term price to be directly manipulated by player actions, and make for all sorts of different strategies.
There's quite a few algorithms out there for economic simulations like that, ranging from simple "the more you buy, the more it cost; the more you sell, the less it costs" to complex ones that modify based on any number of point-in-time history elements, with older history items having progressively less of an impact until they simply disappear. I think for a game like this, the economy portion of it is not a major game component, so a simpler approach should be suitable: If the player buys, that would drive the price up. There is no selling done of anything but energy to counter that, though.
A little more information on what the numbers mean would be helpful. I assume the production rates next to power plants are per power plant? What about storage: What does storage levels affect? Since auto-sell does not start unless storage is at full capacity, I do not see any reason to have much storage nor reason to invest in storage enhancing techs as it only means it takes that much longer to fill up and start auto-selling. What about auto-buy: It seems to only buy when stock is zero, and only buy enough for one "tick" of production. So it's not as useful either; I am better off stocking up when prices are low instead of letting auto-buy use up all my capital buying when prices are high.
From a design perspective, having such things in the game only make sense if they provide some kind of need, worth, and/or value--otherwise there is no incentive for people to play the game or utilize the ... "feature" ... while playing.
Your assumptions are correct. The storage is not that much helpful, that is true; but you might like to have an energy buffer when you unlock alternate energy sources, or to have more time until filling up to operate manual selling. The auto-buy is not as effective as a human, exactly (making it stock up would probably require some heavy logic and be not clear for players anyway); but it still gets the job done.
There are some elements in this game that are not strictly needed for the optimal playthrough, but they still usually have some kind of situation where they are helpful.
I do not see the need for (much) logic, only math. Total power generated multiplied by selling price of power for the total revenues. Divide that by the resources consumed in producing that power, and you have the "break even" point (no profit or loss) for the resource price. If you subtract the current market price from that, you will get net profit (a positive result) or loss (a negative result). You already have the the capability (I think?) there in the button for engineers to only buy when profitable... The only logic needed may be how *much* to buy. But you could work that in to the game: Start with buying exactly one second worth of full production. Then you can add upgrades and research to buy more at a time. It will not "stock up" at the base rate since production is using it right away, but as you upgrade/research increasing the buy amount, the overall effect will be that it will buy extra when the price is profitable--Effectively "stocking up". And giving players incentives and reasons to pursue those upgrades/research paths.
This way of stocking would not help much, it would just replace continuous purchases with repeatable bulk ones, and that won't give a discount since the bulk buys happen on timer and not when the price is at the lowest. Alternately, if it buys even when there are supplies, people would have difficulties with autobuyers wasting money on oversupplying.
That's why I said that an effective auto-buy algorithm is complicated: you need to determine that the current price is low enough in a sense that the chances of it becoming even lower are slim, and you need to somehow pick an amount to buy that is obvious to players and won't screw them over even if they had other plans for the money they stocked up.
If you let the player decide what price is low enough, then it's not too much of an issue whether it's effective or not. When you have enough supplies, you can set the stockpile auto-buy price to zero.
In-game information to the floors and ceilings of the prices would be nice, too.
My main thought is not about stocking up so much, anyhow. It's about using and managing resources--not always optimally, but at least not at a consistently wasteful rate. I think you are seeing this as trying to achieve the impossible: Trying to predict the market, and waiting for the right time to act. I am not suggesting that; I am only suggesting that when buying clearly is at a loss, it doesn't buy. If it costs X to supply a generator, but the market price is currently X+100, it should not buy, as it is losing that extra 100 for nothing. That's usually what wastes my money, not oversupply. I calculated the break even point for my current game, and as long as the market price is at or below that point, I go ahead and buy, even if the market price is not at the lowest. I am not trying to "get rich" off rock bottom buying, I'm trying to avoid not spending more resourecs than necessary: Avoiding that X+100 scenario.
There's no need (and as you said, it's not just complicated, but actually impossible) to create a predictive algorithm to buy at the lowest point in the market. I.E., I am not concerned with trying to determine if there's a chance the market will be even lower the next "tick"; It might be. It might not be. That is a random probability. On the other hand, if at this point in time, the market price is that "X+100", there is no probability at all that you will buy at a loss--it is a 100% certainty that I wish to avoid.
In math terms, let's say at time T, the market is at X+5. Buying would be at a loss. So skip buying. At T+1, the market drops to X-10. If you buy a small amount, say S+1 (S for supply)--enough to supply this tick and the next, then no matter if the next tick the price goes up or down, you'll have the supply to cover it. Then at T+2, the price drops even lower to X-50. So again, buy S+1. Notice I am still only buying an extra +1? That is because I'm not trying to predict; I'm only trying to buy when it's not at a loss, which *might* end up stockpiling (in this case, it would now have +2 stockpiled; +1 from the previous, and +1 from this). But let's say the *player* decides to manually buy an extra +10, that would increase the stockpile to +12. But that is under the power of the player, not an algorithm.
Another way of putting it, is that if you are going to have any kind of auto-feature to make decisions fr the player, you can at least make it not make clearly bad decisions. You are correct that trying to make the best decision is complicated or not possible, but you can determine if a decision is certainly a bad one--and avoid it.
It actually already has a toggle to not buy if unprofitable, unlocked by one of the early techs.
what do the blue bordered chips do?
You are probably referring to Electronics. They don't generate power, but they are used for the construction of advanced buildings.
FYI getting 10 oil power plants breaks the window size on my 1080 screen, forcing scroll bars to show up and things to get scrunched together.
Cool idea, but the random market meaning you can have the game grind to a halt and lose progress feels really, really bad. Like "put the game down and never play it again" bad. I'm not sure I even know of any other idle/incremental where you can make negative progress due to random chance.
The stock market is essentially random. Each resource has a base price (it is 10k for nuclear - skims at the edge of profitability when you first unlock it without engineers assigned), which is then multiplied based on how much you bought (for nuclear, this dependency is really weak, like power 0.1 or so), and the price drifts around that.
It is definitely possible that the price would be too high at some times.
very fun little incremental, hard to believe you fit this much detail into a game jam game
Nuclear power is very rarely worth it. The material is usually more expensive than the power produced.
Ex. Right now 2,100 power / 0.3 material * $3/power = $21,000/ material. It rarely ever goes below $30,000
Edit: It is now profitable to use but it takes a considerable amount of time from when you get it to when it is usable.
I got the research for Water Dam to auto-turn on with an engineer and it doesn't do anything. I've tried turning the dam on and it will produce power that's not needed, and I've tried turning the dam off and it wont toggle back on when power is needed. Is there somewhere else I'm supposed to put the engineer?
Water Dam with the engineer on it, if turned on, would always produce the average amount of power.
It has no way of knowing that the power is not needed - maybe you are selling everything.
Does Autosell work? My engineer never sells power :-(
Nevermind, I think he only sells when I'm maxed out.
Yes, this is indeed the case. He sells any overflow energy you produce with 100% efficiency.
prices aren't well balanced, it's possible to soft lock progression if the prices rises higher than your productive capacity
That's true, it is possible to get prices too high that only Crank is profitable. If you end up in this situation, the 600 science upgrade was added to help you to get out of it; with this upgrade, your lasting effect on market prices is divided roughly by 6 every hour, so you are not locked for a very long time.
Semenar, great job!
Ну и для русскоязычных: Игруля затягивает, хотя не все аспекты ясны с первого раза.
Главное, помните - engineers lives matters!
Нет, ну серьёзно, это самое выгодное вложение, не считая, конечно, великолепного и всемогущего гаечного ключа.
Cool game! But had to stop because my coal price keeps rising, it's past $140 now! Pretty hard to make any money.
Yes, it becomes hard after a while - move to the oil ASAP!
just came back to no money and coal price above
340 380 430500:(Thanks for the reminder, would fix it soon.
UPD: added cost hardcaps, average Coal price should no longer stray above 300.