summaryrefslogtreecommitdiff
path: root/src/server.cpp
Commit message (Expand)AuthorAge
* Fixed objects being sometimes not able to be stored statically in a block whe...Perttu Ahola2011-07-01
* map unloading is now a whole lot betterPerttu Ahola2011-06-27
* fixed block unloading from memory (a better fix coming next)Perttu Ahola2011-06-26
* Added CPT_FACEDIR_SIMPLE calculation, finally, as figured out by spongiePerttu Ahola2011-06-26
* reorganized a lot of stuff and modified mapgen and objects slightly while doi...Perttu Ahola2011-06-26
* added and commented out some debug outputPerttu Ahola2011-06-26
* even more code refactoringPerttu Ahola2011-06-26
* moved map generator to separate source filesPerttu Ahola2011-06-25
* mapgen stuffPerttu Ahola2011-06-25
* New map generator added (and SQLite, messed up the commits at that time...) (...Perttu Ahola2011-06-25
* Changed MapBlockObjects to be never written anymore. Incremented version number.Perttu Ahola2011-06-18
* Created and moved stuff to content_nodemeta.{h,cpp}Perttu Ahola2011-06-18
* Moved some mapnode content stuff from mapnode.{h,cpp} and digging property st...Perttu Ahola2011-06-17
* made server to send map seed for testingPerttu Ahola2011-06-05
* removed a debug print that would flood a lot in some kind of a timeoutPerttu Ahola2011-06-02
* Fixed the password crash on WindowsPerttu Ahola2011-06-02
* Reduced server CPU usage on NodeMetadata step()s. Also furnace now cooks whil...Perttu Ahola2011-05-31
* Updated licenses of CiaranG's contributions to be in line with the new contri...celeron552011-05-31
* auth stuff is now saved only when modifiedPerttu Ahola2011-05-31
* removed some debug printsPerttu Ahola2011-05-31
* Reduced the CPU usage of the sent block selector algorithmPerttu Ahola2011-05-31
* hopefully fixed the privilege problemsPerttu Ahola2011-05-29
* player passwords and privileges in world/auth.txtPerttu Ahola2011-05-29
* Merged CiaranG's fence and fixed two thingsPerttu Ahola2011-05-24
|\
| * Added fences (but still needs an icon or something to display in inventory)Ciaran Gultnieks2011-05-24
| * Added 'shout' player privilegeCiaran Gultnieks2011-05-23
| * Allow default privileges for new players to be set in the server configCiaran Gultnieks2011-05-22
|/
* Added the ability to change your password (via pause menu)Ciaran Gultnieks2011-05-22
* Preliminary "active block" stuff + set up test code to grow grass.Perttu Ahola2011-05-22
* Passwords - a few corrections to the previous commitCiaran Gultnieks2011-05-20
* Passwords - password entry at main menu, stored and checked by serverCiaran Gultnieks2011-05-20
* Restored the auto-admin powers of the local user (via name= in the config)Ciaran Gultnieks2011-05-16
* Fixed two compiler warningsPerttu Ahola2011-05-16
* Server commands without classesCiaran Gultnieks2011-05-16
* Better synchronisation of build/mine attempts when the player isn't allowed toCiaran Gultnieks2011-05-16
* Improved server commands and added player permissions.Ciaran Gultnieks2011-05-16
* Added glass, with rendering and furnace support.Ciaran Gultnieks2011-05-09
* random comment updatesPerttu Ahola2011-04-30
* Maybe fixed the flood of "WARNING: StaticObjectList::remove(): id=13 not foun...Perttu Ahola2011-04-29
* tested out and commented out some new stuff for the terrain generator, to be ...Perttu Ahola2011-04-26
* Optimized map saving and sending (server-side)Perttu Ahola2011-04-26
* Added /#time <int> command to server for changing the time of dayPerttu Ahola2011-04-25
* fix to the previous commitPerttu Ahola2011-04-25
* server to print version in chatPerttu Ahola2011-04-25
* Updated to-do list and added the give_initial_stuff setting for testingPerttu Ahola2011-04-22
* Some work-in-progress in hp and mobs and a frightening amount of random fixes.Perttu Ahola2011-04-21
* item drop multiplication fixPerttu Ahola2011-04-19
* fixingPerttu Ahola2011-04-12
* Fixed some problems with crafting and inventoryPerttu Ahola2011-04-11
* fixed warnings reported by cppcheckPerttu Ahola2011-04-11
directions and then only those drawn that need to be SUGG: Background music based on cellular automata? http://www.earslap.com/projectslab/otomata SUGG: Simple light color information to air SUGG: Server-side objects could be moved based on nodes to enable very lightweight operation and simple AI - Not practical; client would still need to show smooth movement. SUGG: Make a system for pregenerating quick information for mapblocks, so that the client can show them as cubes before they are actually sent or even generated. SUGG: Erosion simulation at map generation time - This might be plausible if larger areas of map were pregenerated without lighting (which is slow) - Simulate water flows, which would carve out dirt fast and then turn stone into gravel and sand and relocate it. - How about relocating minerals, too? Coal and gold in downstream sand and gravel would be kind of cool - This would need a better way of handling minerals, mainly to have mineral content as a separate field. the first parameter field is free for this. - Simulate rock falling from cliffs when water has removed enough solid rock from the bottom SUGG: For non-mapgen FarMesh: Add a per-sector database to store surface stuff as simple flags/values - Light? - A building? And at some point make the server send this data to the client too, instead of referring to the noise functions - Ground height - Surface ground type - Trees? Gaming ideas: ------------- - Aim for something like controlling a single dwarf in Dwarf Fortress - The player could go faster by a crafting a boat, or riding an animal - Random NPC traders. what else? Game content: ------------- - When furnace is destroyed, move items to player's inventory - Add lots of stuff - Glass blocks - Growing grass, decaying leaves - This can be done in the active blocks I guess. - Lots of stuff can be done in the active blocks. - Uh, is there an active block list somewhere? I think not. Add it. - Breaking weak structures - This can probably be accomplished in the same way as grass - Player health points - When player dies, throw items on map (needs better item-on-map implementation) - Cobble to get mossy if near water - More slots in furnace source list, so that multiple ingredients are possible. - Keys to chests? - The Treasure Guard; a big monster with a hammer - The hammer does great damage, shakes the ground and removes a block - You can drop on top of it, and have some time to attack there before he shakes you off - Maybe the difficulty could come from monsters getting tougher in far-away places, and the player starting to need something from there when time goes by. - The player would have some of that stuff at the beginning, and would need new supplies of it when it runs out - A bomb - A spread-items-on-map routine for the bomb, and for dying players - Fighting: - Proper sword swing simulation - Player should get damage from colliding to a wall at high speed Documentation: -------------- Build system / running: ----------------------- Networking and serialization: ----------------------------- SUGG: Fix address to be ipv6 compatible User Interface: --------------- Graphics: --------- SUGG: Combine MapBlock's face caches to so big pieces that VBO can be used - That is >500 vertices - This is not easy; all the MapBlocks close to the player would still need to be drawn separately and combining the blocks would have to happen in a background thread SUGG: Make fetching sector's blocks more efficient when rendering sectors that have very large amounts of blocks (on client) - Is this necessary at all? SUGG: Draw cubes in inventory directly with 3D drawing commands, so that animating them is easier. SUGG: Option for enabling proper alpha channel for textures TODO: Flowing water animation TODO: A setting for enabling bilinear filtering for textures TODO: Better control of draw_control.wanted_max_blocks TODO: Further investigate the use of GPU lighting in addition to the current one TODO: Artificial (night) light could be more yellow colored than sunlight. - This is technically doable. - Also the actual colors of the textures could be made less colorful in the dark but it's a bit more difficult. SUGG: Somehow make the night less colorful TODO: Occlusion culling - At the same time, move some of the renderMap() block choosing code to the same place as where the new culling happens. - Shoot some rays per frame and when ready, make a new list of blocks for usage of renderMap and give it a new pointer to it. Configuration: -------------- Client: ------- TODO: Untie client network operations from framerate - Needs some input queues or something - This won't give much performance boost because calculating block meshes takes so long SUGG: Make morning and evening transition more smooth and maybe shorter TODO: Don't update all meshes always on single node changes, but check which ones should be updated - implement Map::updateNodeMeshes() and the usage of it - It will give almost always a 4x boost in mesh update performance. - A weapon engine - Tool/weapon visualization FIXME: When disconnected to the menu, memory is not freed properly TODO: Investigate how much the mesh generator thread gets used when transferring map data Server: ------- SUGG: Make an option to the server to disable building and digging near the starting position FIXME: Server sometimes goes into some infinite PeerNotFoundException loop * Fix the problem with the server constantly saving one or a few blocks? List the first saved block, maybe it explains. - It is probably caused by oscillating water - TODO: Investigate if this still happens (this is a very old one) * Make a small history check to transformLiquids to detect and log continuous oscillations, in such detail that they can be fixed. FIXME: The new optimized map sending doesn't sometimes send enough blocks from big caves and such FIXME: Block send distance configuration does not take effect for some reason Environment: ------------ TODO: Add proper hooks to when adding and removing active blocks TODO: Finish the ActiveBlockModifier stuff and use it for something Objects: -------- TODO: Get rid of MapBlockObjects and use only ActiveObjects - Skipping the MapBlockObject data is nasty - there is no "total length" stored; have to make a SkipMBOs function which contains enough of the current code to skip them properly. SUGG: MovingObject::move and Player::move are basically the same. combine them. - NOTE: This is a bit tricky because player has the sneaking ability - NOTE: Player::move is more up-to-date. - NOTE: There is a simple move implementation now in collision.{h,cpp} - NOTE: MovingObject will be deleted (MapBlockObject) TODO: Add a long step function to objects that is called with the time difference when block activates Map: ---- TODO: Flowing water to actually contain flow direction information - There is a space for this - it just has to be implemented. TODO: Consider smoothening cave floors after generating them TODO: Fix make_tree, make_* to use seed-position-consistent pseudorandom - delta also Misc. stuff: ------------ TODO: Make sure server handles removing grass when a block is placed (etc) - The client should not do it by itself - NOTE: I think nobody does it currently... TODO: Block cube placement around player's head TODO: Protocol version field TODO: Think about using same bits for material for fences and doors, for example SUGG: Restart irrlicht completely when coming back to main menu from game. - This gets rid of everything that is stored in irrlicht's caches. - This might be needed for texture pack selection in menu TODO: Merge bahamada's audio stuff (clean patch available) Making it more portable: ------------------------ Stuff to do before release: --------------------------- Fixes to the current release: ----------------------------- Stuff to do after release: --------------------------- Doing currently: ---------------- ====================================================================== */