that the client can show them as cubes before they are actually sent\r
or even generated.\r
\r
+SUGG: Erosion simulation at map generation time\r
+ - Simulate water flows, which would carve out dirt fast and\r
+ then turn stone into gravel and sand and relocate it.\r
+ - How about relocating minerals, too? Coal and gold in\r
+ downstream sand and gravel would be kind of cool\r
+ - This would need a better way of handling minerals, mainly\r
+ to have mineral content as a separate field. the first\r
+ parameter field is free for this.\r
+ - Simulate rock falling from cliffs when water has removed\r
+ enough solid rock from the bottom\r
+\r
Gaming ideas:\r
-------------\r
\r
\r
TODO: Better control of draw_control.wanted_max_blocks\r
\r
-TODO: Block mesh generator to tile properly on smooth lighting\r
-\r
TODO: Further investigate the use of GPU lighting in addition to the\r
current one\r
\r
-TODO: Quick drawing of huge distances according to heightmap has to be\r
- tested once again.\r
+TODO: Artificial (night) light could be more yellow colored than sunlight.\r
+ - This is technically doable.\r
+ - Also the actual colors of the textures could be made less colorful\r
+ in the dark but it's a bit more difficult.\r
+\r
+SUGG: Somehow make the night less colorful\r
\r
Configuration:\r
--------------\r
\r
FIXME: When disconnected to the menu, memory is not freed properly\r
\r
+TODO: Investigate how much the mesh generator thread gets used when\r
+ transferring map data\r
+\r
Server:\r
-------\r
\r
\r
FIXME: The new optimized map sending doesn't sometimes send enough blocks\r
from big caves and such\r
-\r
-* Take player's walking direction into account in GetNextBlocks\r
+FIXME: Block send distance configuration does not take effect for some reason\r
\r
TODO: Map saving should be done by EmergeThread\r
\r
+SUGG: Map unloading based on sector reference is not very good, it keeps\r
+ unnecessary stuff in memory. I guess. Investigate this.\r
+\r
+TODO: When block is placed and it has param_type==CPT_FACEDIR_SIMPLE, set\r
+ the direction accordingly.\r
+\r
Environment:\r
------------\r
\r
-TODO: A list of "active blocks" in which stuff happens.\r
+TODO: A list of "active blocks" in which stuff happens. (+=done)\r
+ Add a never-resetted game timer to the server\r
+ Add a timestamp value to blocks\r
+ The simple rule: All blocks near some player are "active"\r
TODO: Mineral and ground material properties\r
- This way mineral ground toughness can be calculated with just\r
some formula, as well as tool strengths\r
+ - There are TODOs in appropriate files: material.h, content_mapnode.h\r
\r
TODO: Flowing water to actually contain flow direction information\r
- There is a space for this - it just has to be implemented.\r
\r
-SUGG: Erosion simulation at map generation time\r
- - Simulate water flows, which would carve out dirt fast and\r
- then turn stone into gravel and sand and relocate it.\r
- - How about relocating minerals, too? Coal and gold in\r
- downstream sand and gravel would be kind of cool\r
- - This would need a better way of handling minerals, mainly\r
- to have mineral content as a separate field. the first\r
- parameter field is free for this.\r
- - Simulate rock falling from cliffs when water has removed\r
- enough solid rock from the bottom\r
-\r
SUGG: Try out the notch way of generating maps, that is, make bunches\r
of low-res 3d noise and interpolate linearly.\r
\r
\r
Misc. stuff:\r
------------\r
-* Move digging property stuff from material.{h,cpp} to mapnode.cpp\r
- - ...Or maybe move content_features to material.{h,cpp}?\r
+- Make sure server handles removing grass when a block is placed (etc)\r
+ - The client should not do it by itself\r
+- Block cube placement around player's head\r
+- Protocol version field\r
+- Consider getting some textures from cisoun's texture pack\r
+ - Ask from Cisoun\r
+- Make sure the fence implementation and data format is good\r
+ - Think about using same bits for material for fences and doors, for\r
+ example\r
+- Finish the ActiveBlockModifier stuff and use it for something\r
+- Move mineral to param2, increment map serialization version, add conversion\r
+\r
+TODO: Add a per-sector database to store surface stuff as simple flags/values\r
+ - Light?\r
+ - A building?\r
+ And at some point make the server send this data to the client too,\r
+ instead of referring to the noise functions\r
+ - Ground height\r
+ - Surface ground type\r
+ - Trees?\r
+\r
+TODO: Restart irrlicht completely when coming back to main menu from game.\r
+ - This gets rid of everything that is stored in irrlicht's caches.\r
+\r
+TODO: Merge bahamada's audio stuff (clean patch available)\r
+\r
+TODO: Merge spongie's chest/furnace direction (by hand)\r
+\r
+TODO: Merge key configuration menu (no clean patch available)\r
\r
Making it more portable:\r
------------------------\r
\r
Stuff to do after release:\r
---------------------------\r
-- Make sure server handles removing grass when a block is placed (etc)\r
- - The client should not do it by itself\r
-- Block cube placement around player's head\r
-- Protocol version field\r
-- Consider getting some textures from cisoun's texture pack\r
- - Ask from Cisoun\r
-- Make sure the fence implementation and data format is good\r
- - Think about using same bits for material for fences and doors, for\r
- example\r
-- Finish the ActiveBlockModifier stuff and use it for something\r
-- Move mineral to param2, increment map serialization version, add conversion\r
+\r
+Doing currently:\r
+----------------\r
+\r
+TODO: Use MapBlock::resetUsageTimer() in appropriate places\r
+ (on client and server)\r
\r
======================================================================\r
\r
// Initialize porting::path_data and porting::path_userdata\r
porting::initializePaths();\r
\r
+ // Create user data directory\r
+ fs::CreateDir(porting::path_userdata);\r
+ \r
// Initialize debug streams\r
#ifdef RUN_IN_PLACE\r
std::string debugfile = DEBUGFILE;\r
\r
DSTACK(__FUNCTION_NAME);\r
\r
- // Create user data directory\r
- fs::CreateDir(porting::path_userdata);\r
- \r
// Init material properties table\r
- initializeMaterialProperties();\r
+ //initializeMaterialProperties();\r
\r
// Debug handler\r
BEGIN_DEBUG_EXCEPTION_HANDLER\r
Preload some textures and stuff\r
*/\r
\r
- init_content_inventory_texture_paths();\r
init_mapnode(); // Second call with g_texturesource set\r
init_mineral();\r
\r