Anuken / Mindustry

The automation tower defense RTS
https://mindustrygame.github.io
GNU General Public License v3.0
22.81k stars 2.99k forks source link

Suggestions, Ideas & Feature Requests #545

Closed Arkanic closed 5 years ago

Arkanic commented 5 years ago

i've noticed a sudden influx of ideas, and just to clean things up, please comment them here.

Arkanic commented 5 years ago

Just thinking about some stuff here...

I have noticed that there is a support mech (the Tau) but what about some kind of defense mech? something like an aegis with a "Shield project" ability (Player hits key/double taps, shield similar to the force projector appears, effectively temporarily shielding the surrounding area (assuming the player gets locked in place). On second thought, the Fortress mech could play this role, (it may make it to OP tho) seeing as it would fit with the Mech's description.

Totally didn't get the idea from the SW battlefront 2 personal shield

NOTE: i just ctrl+C +V'd it here bc there are too many issues on ideas at the moment.

Anuken commented 5 years ago

Moving older issues here.

Luxray5474:

What if there was an option that toggles the camera between following the unit like normal and the camera controlling the unit like in mobile? That would be useful for quickly glancing at a particular area in advance before a slow ground mech reaches it.

Arkanic commented 5 years ago

Olo123pl:

I think about the slag and mass driver and invented a weapon that would shoot like a catapult and create a temporary slosh of slag on the path

Arkanic commented 5 years ago

xslendix:

Here are some stuff that i wanna see in mindustry (please read it took me a lomg time to make):

  • Material counter

    • When clicked, a GUI will appear where it allows you to set how many materials you want, what type of material you want, the operation (<, >, =<, =>, ==).
    • If the condition is met, the materials are sent forward and the rest are either checked again or sent on the side (option in the GUI).
    • The delay between checks is a minimum of 1 material(s) per second and the maximum of like idk 10 maybe?
    • Creates power when condition is met (needs to be powered, can act like a power node i guess)
    • This sounds like a bad idea but at least try it. Would make us able to create advanced stuff
  • LEDs. Yes.

    • The color can be chosen from a GUI
    • Will lit up if has power
    • Brightness is determined by the amount of power it receives
  • Material blocker

    • It can be powered (toggle or minecraft door mode, this can be changed from a GUI) or toggled by a player.
  • Electricity power level changer (change the name is more or less like a resistor)

    • When fed power, the nearest node will get that power that has been received reduced my an amount set in a GUI
  • Inverters

    • Kinda like redstone torches in mintcraft is fed power, it outputs no power, it gets no power, emits a small amount of power.
  • Power amplifier

    • Has GUI to have a slider to change hoe much to amplify the power
    • Has 1 input: power
    • Has 1 output: power (but wait that isnt possible to code, right? WRONG! The power amplifier can be 2x2 tile big, each tile having separate connections)
  • There are too many GUIs i know
  • I should probably sleep now
  • Help

Here are some minor changes I would make to the game:

  • The energy light beams must be at least a little bit transparent (Because LEDs)
  • Be able to get an exact amount of items out of player's inventory.
Yc7521 commented 5 years ago

translation: /core/assets/bundles/bundle_zh_CN.properties: 936

- 终级水泵。速度是机械泵的三倍。是唯一能够回收熔岩的泵。
+ 终级水泵。速度是机械泵的三倍。

/core/assets/bundles/bundle_zh_TW.properties: 936

- 終極泵。輸出速度是機械泵的三倍並且是唯一能夠抽熔岩的泵。
+ 終極泵。輸出速度是機械泵的三倍。

"回收熔岩" means output slag

skybldev commented 5 years ago

I am so with the material counter, material blocker and the power level changer. I think that the second one will make research and testing way easier; it would have been nice to have that a long time ago.

skybldev commented 5 years ago

So I've just played b82 after many many finishing projects and all and here is my list of suggestions so far (will update):

What I love so far:

UI:

  1. The start screen is gorgeous, only thing is that the gray color when you hover over a selection is very bland, if there is a blur effect possible, that would be work wonders. I suggest the theme yellow, transparent, with a blur effect.

mindout

  1. That gray outline on every UI element in game is a little weird and TBH that yellow one was much much better.
  2. The gray outline around the turrets are perfect but tbh it should be consistent with the mechs and enemies. It is debatable but an outline could look nice around the mechs and enemies.
  3. The defense icon looks like a fox (aww) but not "defense" enough.
  4. The "link" cursor looks just a liiiiitle off...
Arkanic commented 5 years ago

@Luxray5474 Anuken has really made an excellent game, hasn't he?

macimas commented 5 years ago

Ofc he has.

Angramme commented 5 years ago

I think a vote system would really help the game. I see it working like: someone types "/vote surrender" or "/vote kick player" in chat, then a box pops up on the left of the screen with the action, and you have to choose yes or no. However if someone types for example "/vote map" there are multiple options to choose from like the names of the maps... I know from experience that it takes time to implement such feature, but IMHO it would really help the experience

Arkanic commented 5 years ago

@Angramme that's a good idea

Angramme commented 5 years ago

@Arkanic thanks :)

ataricom commented 5 years ago

Here's a wish list of things I'd love to see in the game.

I'm honestly amazed at how GOOD this game is!

skybldev commented 5 years ago

Switches for quick enabling/disabling power or a more refined power node connection interface.

Definitely.

Using slag to "fuel" thermal generators.

But would that just be counterproductive and OP? You melt the scrap to make slag, then you use it for thermal generation. Energy in, energy out. That means you have a very unlimited source of fuel that can be exploited from enemies, though I might be wrong about that.

Fog of war for unexplored areas.

The fog of war thing was scrapped a while back. I don't know exactly why, but I think you can look back in the Discord or something.

Arkanic commented 5 years ago

@Luxray5474 i agree that we shouldn't create any "infinite energy" things I should probably join the discord

Spicy0903 commented 5 years ago

@Angramme I know that that was a mod for mindustry.kr on 3.5 its still their i think

Arkanic commented 5 years ago

@Spicy0903 the whole concept of fog of war was ditched a while ago, i think.

Spicy0903 commented 5 years ago

@Arkanic i think you mentioned the wrong person

TheChosenEvilOne commented 5 years ago

@Angramme I made a server sided mod for exactly this in 3.5, called votemod (very original name I know)

Arkanic commented 5 years ago

@Spicy0903 no

Spicy0903 commented 5 years ago

oh ok because i never mentioned fog of war i was talking about vote mod

Arkanic commented 5 years ago

@Spicy0903 oops i was talking to the wrong person

Angramme commented 5 years ago

@TheChosenEvilOne cool! thanks! I don't run my own server but it will be surely useful for others. Meaby try to make a pull request to the server code? It should be a default feature at least IMHO

AgentAppl commented 5 years ago

I think it would be nice to have a tab you can open where you can see how much energy you’re producing, how much you’re using, and how many items of each material you are receiving a second, primarily the energy because I have problems sometimes seeing if I am making enough energy for everything to work. The item part would just be a bonus.

Arkanic commented 5 years ago

@AgentAppl that's be useful, but you may need a tab for every different network. other than that i think it'll be pretty easy to implement. :D

mmm4m5m commented 5 years ago

Hi :) I play with 10" tablet. Probably it is a bit harder with phones and smaller displays.

1) Sometimes I do mistake and I get 2 resources together on the same conveyor. Fixing the problem is not easy and takes a lot of time. I would like if game completely reject mixing the resources by default and resources just stop like it is a dead end. Instead there could be new structure/building for that - conveyor mixer / conveyor funnel / conveyor mixing funnel.

2) When I build conveyors, before confirming the action ("check" button), the game accept the first conveyor that I placed. In case of left/right turns, it will be more easy if game override the previous conveyor and accept the last placed conveyor.

3) My "graphics" settings are low - 5 FPS, Display Effects NO, Pixelate YES. I still feel like there are too many details. Even with maximal zoom out. I would like more settings and more simplified graphics. Pixelate it more. One map square could be displayed with 1 color, (like it is 1 pixel). Or display one map square with 4 colors, (like it is 4 pixels, 2x2). Allow lower FPS, like FPS 1.

4) Swipe minimap will change minimap zoom. Tap minimap will show bigger minimap. Swipe the big-minimap will change minimap zoom. I would like if tap minimap move the view, move the map to that point. Swipe the big-minimap is enough for minimap zoom. Therefore swipe the minimap could move the whole view.

5) Generally, I feel it is hard to zoom in/out, scroll the map and look around my base (the core). Zooming in and out is not smooth. I would like overlay buttons for zoom in and zoom out.

6) I would like to watch the enemies but my main worker / main ship will follow me everywhere and will shoot the enemies. I would like toolbar button: "attack / stay away"

7) Sometimes my defense is fully build and I just wait to collect more resources. I would like toolbar button: "Fast Forward", "Fast speed", "x1 / x2 / x4 / x8". Also it will safe phone/table battery life.

8) The "close up" toolbar button (up arrow / ^) will hide both - next wave with the timer and the toolbox with all structures/buildings. I would like if I always see the timer for the next wave.

9) This is a minor note. It was a little hard for me to understand how to build and use bridge, how to use generator and power nodes. I did not read the help. it is not 100% intuitive. But it is not hard, it is 95% intuitive.

10) Very annoying functionality. Click any building/structure and place it on the map. Again click the same structure/building. Now it works like "cancel" button. You may have prepared to build many structures/buildings and all will be canceled without clicking the cancel button. This functionality looks wrong.

11) Annoying functionality. Tap and drag a group of structures/buildings (prepared for build, before confirmation) will move the whole group. Very often I just want to scroll the map.

I hope my explanation is good. Thanks! Nice game!

Daniel-Chin commented 5 years ago

@mmm4m5m Nice thoughts!

(6) makes a lot of sense.

Although, personally I disagree with (1). Designing conveyer bell systems and make sure nothing gets mixed is half the fun. It's like solving puzzles. However, if a considerable portion of the players do not like this puzzle, I would recommend an "assistance mode" in gameplay settings that locks conveyer belts to single items. (Maybe that will be computationally slow, but there may be an algo for that.)

For (7), Game designers should also be very careful with fast-forwarding time. The risk is that the player may choose to do the less fun thing to get more resources. "given the opportunity players will optimize the fun out of a game." Ask yourself: is it more fun to (A) watch accelerated waves fall under your defense, or (B) spend time improving your production while you know the time you spend is concurrent with defending enemies so the time is not wasted? In other words, I feel "not being able to fast-forward" gives me an excuse ("there's time anyway") to keep optimizing my production to higher and higher levels.

(8) makes a lot of sense. How to design the UI so you can choose whether to hide "next wave" is the big challenge.
Feel free to let me know what you think!
Nice suggestions!

Daniel-Chin commented 5 years ago

@ataricom

With the exception of thorium I think every material should be obtainable in every map, either through direct mining or combination. If you have access to oil and have silicon in your inventory then you can make just about anything, but you're stuck if you don't have silicon.

For me, it was kinda fun to go past wave 15 and re-launch into a no-silicon map with silicon launched with me. The same thing goes for titanium. To get Titanium from Scrape, you need Titanium in your inventory. If a map has scrape but no Titanium, "play past wave 15 and bring your Titanium to the map" is quite fun. It offers a reason to re-launch with cuestomized starting resources.

timo commented 5 years ago

Please put more details about blocks in the core database; especially the materials needed to build something is an unfortunate omission

Quiark commented 5 years ago

It would be great to have right-angle conveyor belt routing around buildings rather than straight(-ish) line through buildings which is useless most of the time...

timo commented 5 years ago

i'd like there to be a faster-to-navigate block selection menu; maybe a nested radial menu that pops up when you hold a button would be good

Arkanic commented 5 years ago

@timo adding more descriptions seems to be my sole purpose on this repo, is there any particular descriptions you want?

timo commented 5 years ago

@Arkanic really just having the same information that's available in game with the "?" button would be great in the core database. for example, if i want to figure out exactly how much of what material i'll have to launch with to build a certain starting building.

milochristiansen commented 5 years ago

Currently construction drones are of limited use at best, it would be really nice if they could replace stuff that was destroyed automatically. This would give them a purpose, make them something well worth building.

Basically the intended use would be fixing minor battle damage, such as random destroyed conveyors when an aircraft manages the sneak through. Could be balanced by making them build quite slowly when not working on something placed directly by the player.

Vortetty commented 5 years ago

just an idea here, but you have added a server plugin api, could you possibly add a client modding api, that will disable mods and reload assets upon joining a server allowing modding to become easier, and prevent it from breaking servers. this would also allow people to use custom textures, etc. this level of customization might bring more attention to the game, bring more players, and possibly more revenue/help with programming

Edit, i just found the moddable version so i guess i am asking for that functionality to be added to the standard game with support for new assets

zmxefy commented 5 years ago

如果能有新的专门针对防空的大型炮塔

Vortetty commented 5 years ago

如果能有新的专门针对防空的大型炮塔 Translation: If there are new large turrets dedicated to air defense

Hodhandr commented 5 years ago

When configuring loadout, you can use the buttons to add or subtract 50 of a resource at a time. That works fine for bring a couple hundred of a resource, but becomes really annoying when I want to bring 1000+ of several resources.

Being able to either manually write in a number or use a modifier (shift, control) to add more at a time (for example, 500, 10x as much) should alleviate this.

Arkanic commented 5 years ago

@Hodhandr yes, this is a bit of a problem sometimes

Tazshelby2016 commented 5 years ago

581. Additionally, the ability to ignore certain teams and the ability to build off of other's structures need to be added. Things that would result from this include:

max8rr8 commented 5 years ago

664

Java require compilation, js not. Yes, it is a lot of work, but it will be very useful, if using mods we will be able to create blocks, mechanism, game mechanics it will give infinity features. If we will use it everywhere (server, client) it will be easier. Also I think we need to reopen it because it is large theme.

Vortetty commented 5 years ago

664

Java require compilation, js not. Yes, it is a lot of work, but it will be very useful, if using mods we will be able to create blocks, mechanism, game mechanics it will give infinity features. If we will use it everywhere (server, client) it will be easier. Also I think we need to reopen it because it is large theme.

actually, creating new things with java is already very easy, you just have to define the block and the parameters. you just need basic java knowledge, a java api would be nice though.

adding new game mechanics would require entirely new stuff to be added, past the scope of a javascript api, javascript may end up more complicated in that scenario and seeing as javascript is similar to java, the slowdown for the engine to compile js to java would not be worth it.

max8rr8 commented 5 years ago

Ok, I am talking about plugins for every platform, it also will be good to create mode storage where you can easily install plugins

milochristiansen commented 5 years ago

javascript is similar to java

Whoa there. They look superficially similar, but the two languages could not be more different if they tried. You don't "compile js to java" either.

Anyway, you can't wave a magic wand and suddenly have a working mod API that allows some kind of game extending plugins that allow you to add new game mechanics. Every single thing you want to be able to do with scripts needs special code written to provide an interface for the script to do that thing. Basically, if the game was not designed from the beginning to be scripted, adding it later is a nightmare.

max8rr8 commented 5 years ago

Mindustry has already plugins api, but they runs only on server, and there are no method for easily install them

mmis1000 commented 5 years ago

Can we probably separate the run wave permission from admin permission?

The sandbox mode isn't very useful in server without admin permission because only admin can start a new wave(I checked the code and found that they are bound altogether under a isAdmin() check).

It would be great if there is a option to simply allow anyone to run new wave without giving them permission to kick/ban/...etc others.

And if I want to make it myself and PR, what files may I probably need to change?

Anuken commented 5 years ago

@mmis1000

I don't see an easy way to implement permissions like that. You would either need to implement a fine-grained customizable permission system for players, or add a new "wave runner" player data flag, which would result in a lot of copy pasted and redundant code (not something I would accept). Keep in mind that it would need support for:

I honestly don't see why you would want some un-trusted individual to schedule waves for sandbox. If you just want to play sandbox and test enemies sometimes, why not edit the map rules to have infrequent spawns instead?

nashiradeer commented 5 years ago

Please add SRV Support in the game to work with domains without need a port

SuberFu commented 5 years ago

The goal of this suggestion is to implement a more dynamic enemy for attack type map without having to get a complex AI to build a base.

The basic gist is to create a new enemy only buildings called "Grey Goo" and "Grey Goo Pod". "Grey Goo Pod" essentially acts as enemy's base while "Grey Goo" acts a bit like creeps (think StarCraft Zerg creeps). "Grey Goo" is walkable (essentially like conveyor in path-ing), provides a small amount of energy, acts like a global storage vault and have a decent amount of health, very slowly heal over time, and inflict small damage to any player units on it or right next to it (including player building). "Grey Goo" not connected to "Grey Goo Pod" will slowly "die" over time.

Enemy waves now split up into phases. Phase 1: Dormant - Nothing happens. Phase 2: Spread - Each "Grey Goo" block has a chance to spawn another grey goo block next to it periodically over the Spread phase. Phase 3: Build - the AI will randomly build building on grey goo blocks. With below logic Defense buildings: preferentially near the "front line" (where Grey Goo have room to spread to but have not yet), with limit on how close together the defensive buildings are (AI won't spawn tight clusters of defensive buildings). "Grey Goo" will slowly supply defensive buildings. Unit Spawn Building: the AI will spawn these buildings away from the "front line", with requirement that AI can only spawn 1 building per X amount of Grey Goo tiles available. These building will slowly spawn enemies that attack your base. Phase 4: Assault: The "Grey Goo Pod" will spawn an attack wave, The strength of the wave is dependent on the scaled roughly as followed. (Wave #) / sqrt(Grey Goo tiles). The idea is that the Grey Goo Pod grows strength over time, but when it's spread out, it expends energy to maintain the Grey Goo and launch a strong wave. However, as you push back the Grey Goo toward the pod, the assault wave grows stronger.

The idea being that it's a more of less mindless enemy that slowly encroach on your base, and with attack wave growing stronger as you fight your way back against it.

Arkanic commented 5 years ago

interesting