From 8ae74932c0f63ab234966dd86bbd1b18a27f2112 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 9 Dec 2017 16:00:36 -0500 Subject: [PATCH] Dumped plans into TODO.md, minor edits to README --- README.MD | 7 +-- TODO.md | 63 ++++++++++++++++--- android/AndroidManifest.xml | 4 +- core/src/io/anuke/mindustry/ai/Pathfind.java | 4 +- .../blocks/types/distribution/Conveyor.java | 6 +- 5 files changed, 62 insertions(+), 22 deletions(-) diff --git a/README.MD b/README.MD index 2fbb1348c3..5e872f782a 100644 --- a/README.MD +++ b/README.MD @@ -1,10 +1,9 @@ -# Mindustry -![](http://i.imgur.com/oogScJR.png) +![](https://imgur.com/6QSa0kP) ### Create resources, move 'em around, fuel your turrets, and blast the bad guys away with your ship! -This game is a pixelated sandbox tower defense game made using [LibGDX](https://libgdx.badlogicgames.com/) originally for the [GDL Metal Monstrosity Jam](https://itch.io/jam/gdl---metal-monstrosity-jam). Ever since it won the Jam, it has been in active development, with a beta 3.0 version now released for Desktop platforms. +A pixelated sandbox tower defense game made using [LibGDX](https://libgdx.badlogicgames.com/) originally for the [GDL Metal Monstrosity Jam](https://itch.io/jam/gdl---metal-monstrosity-jam). Ever since it won the Jam, it has been in active development, with a beta 3.0 version now released for Desktop platforms. -You can play the game on these platforms: +# Downloads: diff --git a/TODO.md b/TODO.md index 3de4bef063..0aee70a123 100644 --- a/TODO.md +++ b/TODO.md @@ -1,11 +1,54 @@ -### Important -1. Add an improved conveyor belt drawing (creation/design) system -2. Add localization support, storing game text in JSON files instead of within code. This is in response to a couple of translation requests from Omicron Translation Group on the Itch.io page. I [l5474] *might* be able to do it... eventually. -3. Fix some AI going to the wall, as mentioned in #5 -4. Add configurable autosave feature -### Optional/Low Priority -1. Make minimap ~~or aux. tile loader for whole-map view~~ -2. Add in more teleporter colors maybe, and make a new teleporter color picker ui/tooltip. Very low priority -3. Maybe make enemies manually spawnable in Sandbox Mode -4. Maybe assign a key to make Mecha move faster +### 3.0 Release +- New tutorial with the power blocks. +- New SFX for specific blocks, especially turrets +- Block drawing layers. Refactor/remove `Block#drawOver()`, add `Layer` enum. Should fix 'glitchy' lasers and conveyor clipping. +- Balance nuclear reactor, improve effectiveness. Currently underpowered. +- Make generation frame independant. +- Investigate issue #5 (enemies stuck in blocks) +- Faster mech movement, possibly with a "boost" key +- Balance enemy difficulty + +### 3.x Planned +- New save system: toggleable autosave, named slots, less clunky save UI +- Teleporter UI changes, more colors (?) +- New building tools: selection-delete, hold to place blocks in a line, one-tap delete mode (mobile). New 'tool' menu (desktop). +- Refactor `Renderer`, remove code for rendering platform-specific placement and move to 2 different classes +- New map format system. Each new version is a different class, convert between different versions. +- Underground conduits +- Minimap +- More indicators for when the core is damaged and/or under attack + + +### 4.0 Planned +- Multiplayer framework, possibly implementation +- New look to blocks, make them less 'blocky' + +### Misc +- Localization support. Change all in-game strings to localized strings. Check compatibility with GWT and Android libraries. + +### Possible Additions +- Mech body upgrades +- Uranium extractor / uranium->iron converter +- Laser enemies +- Flying enemies that move in formation and spawn from different locations +- Fusion reactor +- Point defense turrets that take down projectiles +- Turrets fueled by lava +- Gas transporation and use +- Better enemy effects and looks +- Homing missile enemies and turrets +- Reflective shield blocks +- Tech tree with bonuses to production or turrets +- Spawn points changed into enemy bases with hostile turrets +- Unit production + +### Optmiziation +- Look into uses for `IntMap` +- Spread updating over multiple frames for large groups of specific tile entities (?) +- Optimize enemy + bullet code and check quadtree leaf parameters +- Check for unnecessary use of `Timers#get()` +- Optimize generator laser distribution, especially finding targets +- Optimize UI +- Check memory usage and GC, profile + diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index dd4fe7f27e..2fa7952442 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="20" + android:versionName="3.04b" > diff --git a/core/src/io/anuke/mindustry/ai/Pathfind.java b/core/src/io/anuke/mindustry/ai/Pathfind.java index 54b580f459..76d27d05ec 100644 --- a/core/src/io/anuke/mindustry/ai/Pathfind.java +++ b/core/src/io/anuke/mindustry/ai/Pathfind.java @@ -15,7 +15,7 @@ import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Tmp; public class Pathfind{ - private static final long ms = 1000000; + private static final long ms = 1000000 * 3; MHueristic heuristic = new MHueristic(); PassTileGraph graph = new PassTileGraph(); @@ -100,7 +100,7 @@ public class Pathfind{ public void update(){ for(SpawnPoint point : Vars.control.getSpawnPoints()){ if(!point.request.pathFound){ - if(point.finder.search(point.request, ms * 2)){ + if(point.finder.search(point.request, ms)){ smoother.smoothPath(point.path); point.pathTiles = point.path.nodes.toArray(Tile.class); point.tempTiles = point.path.nodes.toArray(Tile.class); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java index ce29b5b283..62d14d2e85 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java @@ -5,9 +5,7 @@ import static io.anuke.mindustry.Vars.tilesize; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.util.AbstractList; -import java.util.Collections; -import java.util.List; +import java.util.*; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.IntArray; @@ -201,7 +199,7 @@ public class Conveyor extends Block{ } }; - Collections.sort(wrapper, Conveyor::compareItems); + Collections.sort(wrapper, new Comparator(){public int compare(Object a, Object b){ return compareItems((Integer)a, (Integer)b); }}); } private static int compareItems(int a, int b){