(Redirected from Todo)
Last updated 2014-02-13
- Falling down damage sometimes doesn't work. (When player hits edge of a block)
- Some lines around selected cube are invisible (inside terrain)
- Stairs half block - fix building, fix jump and make movement fluid (fixed in diggerstolemybike repository, but that fix broke normal jumping)
- m.UpdateBlockTypes() function loads Client's default blocks (breaks season changes with custom server textures)
- Player model textfiles are not being read from server always (only when forced to be loaded directly after joining)
- System.Collections.Generic.KeyNotFoundException on DrawPlayers(..)
- Occurs with monsters enabled
- Maybe also: http://manicdigger.sourceforge.net/forum/viewtopic.php?f=9&t=1922
- Disabling monsters fixes it.
- It's possible to glitch trough walls by walking into the side of a block
Used mouse wheel to switch block type and it got stuck looping through them all very quickly
- Seems to occur when wheel is turned more than 1 tic per frame
- Rotating the wheel the other way at a high speed stops it and once more will have it looping the otherway
- Clicking the mouse wheel on a block type would select said block but was still stuck in the loop.
- Pressed ESC. Continued to loop even with menu open
- Rotating wheel 1 way would slow it down the other couldn't tell if it sped it up or not. still in the loop...
- Seems to move at about 1 selection a frame
- Seemed to slightly slow down my frame rate
- Possible Solution ?
- It may be caused by using deprecated OpenTK mouse wheel function. AFAIR there is a compiler warning about it.
- Block health.
- Hearing footsteps of other players - client side.
- Draw block damage. Multitexturing?
- Surround all modding events with try catch.
- Server creation GUI
- Tools (Shovel, Pickaxe, etc...)
- Monsters (including Modding API functions)
- Draw rotating 3D items on ground when dropped
- Animated blocks
- Animated skysphere
- Weather effects (rain, snow)
- Particles (block hit/break, accessible for Mods)
- Bottom layer of the map should be indestructible rock to prevent getting stuck at bottom
- One step installer.
- Direct download button on the main web page.
- Fix rail sides (crop, not resize) <- slopped rail is higher than 1 block, and can't tile textures.
- Add slope blocks to make MD look more natural.
- Crop halfblock textures instead of resizing.
- Possibility to place vertical halfblocks to make e.g. thin walls.
- Lower player height in first person camera
- Players invisible under water bug (?, hard to fix)
- Fix flicker when being on water-air border
Infinite map height
- There are multiple Chunk[,,] arrays. In 2d it's just (8192/16 * 8192/16 * 128/16)=512*512*8 32bit pointers=8 megabytes. But in 3d it's too much (512 megabytes).
- Need better data structure. Maybe replace with Dictionary (10x slower than array), or use big chunks (4x4x4 chunk containers with normal chunks or just null for most of the map - 64x saving)
- bool[, ,] DirtyChunks.small
- int[, ,] TerrainRenderer.batchedchunks
- Chunk[, ,] ServerMap.chunks
- Chunk[, ,] InfiniteMap.chunks
- Shadows don't work on infinite height.
- Shadows need to be rewritten anyway. They should just apply to 1-2 chunks down.
- Fix water first
- Signing nightly versions with private key.
- What to do with files that are removed in next version?
- What to do with files changed by players (texture packs, mods)?
- Find a ready solution.
- Armor, helmet, gloves, boots - OnItemWear()
- Refactoring: remove code for items bigger than 1x1
- Revert to behavior of 2011-07-14.
- Server should send chunks in <= distance, not full 256x256x128 area.
- Instead of Remap() always add and delete chunks one by one. DirtyChunks class.
- Fix current area remap on fog 32.
Client RAM usage
- Use a finite map and if player walks too far from center, stop game and remap all chunks in ITerrainRenderer and IMapStorage.
- This way client RAM usage can be easily kept constant, there are no memory leaks.
- With exception of Remap() times, world is finite on client.
Multiple game modes
- Allow to share mods between games without duplicating files.
Modding API functions
- Class GameDataMonsters as a separate mod instead of part of GameData.cs in source
Crafting table mod
- Requires dialog API functions.
- Crops grow faster when near water
- Crops grow faster on dirtforfarming
- Some plants should grow only in a certain season
- Cows place fertilizer block randomly. it turns nearest 3x3 DirtForFarming into DirtForFarmingFertilized
- Shovel rightclick turns dirt into dirtforfarming.
- Crops can only be gathered with scythe.
- Crops0 have to be found in wild
Flowing water mod
- See Fluids.cs Mod. Needs performance improvements.
- There is already code for spreading water. Add analogous code for removing water if water source is removed.
- Fix water drawing in TerrainChunkRenderer.
Save player position mod
- When rejoining server, player should be spawned at the place where he left.
- Store web address of .ogg file inside and play it on client.
- Requires .ogg streaming (not just play(byte)).
- Fog of war
- Store explored area in item metadata.
Cross Platform compatibility
Mono on Linux - fps spikes
- Every 1 second.
- Texture upload is slow. FPS counter (F7 key) is updated every 1 second, so it causes lag
- Workaround: Don't use FPS counter.
Mono on Linux - no sound
- Sound doesn't work.
- FIX: Use a version compiled on linux
- Fixed on Ubuntu, but the fix probably did break on other distributions.
Linux and FreeBSD - mouse cursor is visible
- Mouse cursor doesn't hide.
- http://www.opentk.com/node/1560 - "Currently, the only way to do this is to set System.Windows.Forms.Cursor.Current to an empty cursor (Cursor.Hide() is not supported on Mono)."
- Refactoring: Extract BlockRenderer classes from TerrainChunkRenderer?
- Refactoring: Extract one main cube vertices/indices list. Remove duplicate lists.
- Refactoring: Extract guistate classes.
- Refactoring: Remove all dead code (commented out code too).
GPU: Backface culling - one display list for each block side in chunk
- MeshBatcher: Add BlockSide direction to Add(). Check direction in Draw().
- TerrainRenderer: ?
- TerrainChunkRenderer: ?
- Make sure Server.Process() never takes more than a few miliseconds.
- Server: Document exactly which chunks are loaded for each player.
- Client: Keep in memory only those chunks that are within view range. Swap chunks that are away to disk database (same as server does).
- Client, Server: Do not store empty chunks in memory. (1/2 of map - all chunks above ground).
- Client: When storing shadows level (0-15), pack two blocks into one byte.
Select texture filtering
- Select texture filtering (disable mipmaps), inside game. Many people see wrong textures with white lines on block edges. (60 minutes when just changing current ingame options menu)
- Sometimes player isn't respawned when switching team. Does this bug still happen? Yes.
- Player position (standing, crouching, lying). How to draw model?
- Ability to shoot through blocks with draw type "transparent" (Leaves, Fences, Windows etc.).
- Team members all spawn one upon the other (same spawn point). Maybe vary spawn point between team a bit so they spawn side by side and not in each other.
- Gunshot detection both clientside and serverside. Rewind time serverside.
- Player dies too when teamkilling a player.
- Spawn protection?
- Create (MD) groups inside mod instead of rigid color team.
- Non-rigid blue and green team.
- Allows to define any parties e.g. Cowboys vs. Bandits, Axis vs. Allied, Zombies vs. Humans or whatever..
- Dead players can follow players until respawn.
- /load command
- Break down of buildings when connection to ground is being cut.
- Similar to AoS.
- Blocks fall down to ground like sand / gravel.
- Team Deathmatch
- Capture the flag
- One flag CTF
- Last Man Standing
- Weapon balancing
- Slowly regenerating power level bar for placing MedicalKit and AmmoPack.
- Weapon Types:
- Explosion should kill other players too.
- Move parameters to BlockType.
- Keeping grenade for few seconds in hand. Throw only when depressing mouse button.
- Damage to blocks.
- Rocket - draw flying rocket, range damage, sound, rocket jump, destroying blocks.
- Stationary machine gun
- Poisonous gas
- Replace weapon textures:
- Someday replace bitmaps with 3d models
- Visualization of bullets:
- Muzzle flash
Suggestion / Ideas
Any additional ideas and suggestions from community.
- Speed: 1.5x
- Health: 90%
- Armor: 50%
- Smoke grenade (?)
- Good for stealing flag at CTF mode due to fast movement capabilities.
- Speed: 1x
- Health: 130%
- Armor: 80%
- Medic Kit
- Revive syringe / defibrillator
- Can revive dead players (while they wait for respwan).
- Can distribute medic kits and heal injured players.
- Speed: 0.8x
- Health: 100%
- Armor: 150%
- Flammable fluid.
- Speed: 1x
- Health: 100%
- Armor: 100%
- Submachine gun
- Armor: 60%
- Sniper rifle
- Heavy machine gun
- Armor: 150%
- Rocket launcher
- Speed: 1x
- Health: 100%
- Armor: 100%
- Poisonous gas / chemical weapons
- Gas mask
- Poison gas attacks
- Speed: ?
- Health: ?
- Armor: ?
- TNT (time fuse, remote-controlled)
- Land mines
- Has heavy explosives.
- Can defuse explosives.
- Good for tactics e.g. can blow up bridges / positions.
- Gives ammo.
- Can call air strikes.
- Jetpack ?
- Silenced guns.
- Can disguise. Moves silently.
- Draw impact sprite when bullet hits a block (analogous to player hit blood).
- Vary impact sprites between block types (draw other sprite on hitting water and glass).
- Alternative to cracks?