Minetest logo

IRC log for #minetest-dev, 2014-03-27

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:39 domtron joined #minetest-dev
00:49 salamanderrake joined #minetest-dev
01:37 OldCoder joined #minetest-dev
01:49 SmugLeaf joined #minetest-dev
01:49 VanessaE joined #minetest-dev
01:49 blaise joined #minetest-dev
01:50 SmugLeaf joined #minetest-dev
03:47 us^0gb joined #minetest-dev
06:05 grrk-bzzt joined #minetest-dev
06:15 damiel joined #minetest-dev
07:00 darkrose joined #minetest-dev
07:02 ImQ009 joined #minetest-dev
07:53 kahrl joined #minetest-dev
08:29 ImQ009 joined #minetest-dev
09:15 darkrose joined #minetest-dev
09:50 rsiska joined #minetest-dev
10:37 proller joined #minetest-dev
10:37 n joined #minetest-dev
11:04 ImQ009 joined #minetest-dev
11:58 Megaf joined #minetest-dev
12:12 tomreyn joined #minetest-dev
12:14 PenguinDad joined #minetest-dev
12:16 Saunterer joined #minetest-dev
12:54 hmmmm joined #minetest-dev
13:12 spillz joined #minetest-dev
13:19 ImQ009 joined #minetest-dev
13:23 spillz Is there any interest in making a c++ api for mods? seems like it would be a reasonably simple thing to do. Instead of an init.lua, there could be a mod.so or mod.dll that gets loaded dynamically on server start. The Code::Blocks IDE has a c++ plugin framework that could serve as a model. With well designed headers the api is self documenting.
13:25 troller too hard for users, but will 10-100x faster
13:29 spillz Not as a replacement just an alternative...
13:30 troller try compile this mod for windows ;_
13:32 spillz No worse than compiling the app itself. (but windows really stinks in this regard)
13:34 troller <10 ppls can compile mt on windows
13:38 spillz really? why is it so hard?
13:39 celeron55 i believe it is not worth the effort
13:39 celeron55 if somebody believes it is, then make it and prove otherwise, but until that this is what i think
13:39 celeron55 there will also be a rather large maintenance overhead
13:39 celeron55 we already have too much to maintain and it slows down development
13:46 spillz Fair enough.  I will give it some more thought ... mostly thinking about performance of map gen stuff, which still seems a little slow even with luajit.
13:52 spillz For the record, boost.extension could probably be used to handle shared lib loading  http://boost-extension.redshoelace.com/docs/boost/extension/boost_extension/tutorials/tutorial02.html
13:53 celeron55 i would suggest people to focus on other things than map generation
13:53 celeron55 it's not really minetest's weak point at the moment
13:54 spillz What is?
13:54 celeron55 almost everything else
13:55 celeron55 seriously; if minetest does something reasonably well, it's map generation
13:55 celeron55 point at any other part of it and it's probably worse than the competition
13:56 spillz The core or the Lua ones?
13:56 celeron55 (altough we don't have rather direct competitors)
13:56 celeron55 mostly referring to the engine side of things
13:56 celeron55 if the engine supports something, the content will be created; it's not really an issue
13:58 proller joined #minetest-dev
13:59 spillz For me, the worst part is the lack of cohesion between the third party mods
13:59 spillz Some people seem intent on just recreating minecraft
13:59 celeron55 it's a problem, yes; the problem of lack of packaging of content into product-like things
14:00 celeron55 if somebody can improve the situation on that, it would be great (and it's not even a technical challenge)
14:01 spillz others just do the usual open source thing of throwing incomplete idea over the wall.
14:01 celeron55 i've experimented a bit on slightly different games that use minetest and will continue on that, but i don't have anything fully-made enough to be worth trying to play
14:02 spillz Maybe having a handful of key game ideas that people can contribute to?
14:02 celeron55 making those involves not using every part of minetest fully and it has to be accepted
14:03 celeron55 this is one of my tests, if someone needs inspiration: https://github.com/celeron55/dungeon
14:03 celeron55 it's a very rough dungeon-only game
14:03 celeron55 which doesn't work as-is anymore because of things, but anyway
14:04 celeron55 (it should work if the correct mods are copied into it)
14:07 spillz interesting. are any of the servers running interesting games? It looks like most are going for more of a second life in a blocky world vibe. (not that I have even played second life)
14:08 spillz my son suggested a cops and robbers game in a living city. I had to explain GTA to him. He was like, we this could be the kid friendly version...
14:08 celeron55 at least they don't differ a lot from it
14:09 spillz *we = well
14:10 celeron55 well if anything is done, it should take some form of advantage of the two things minetest is designed to do: generating worlds easily (because they consist of a simple 3D grid) and modifying worlds (because of the same reason)
14:10 spillz The mods allow story telling right? e.g. If certain events triggered, then other things in the game happen
14:10 celeron55 it doesn't make sense to do anything that doesn't use those features because in those cases using something else is much more beneficial for the end result
14:11 spillz In the GTA style game, he wanted base upgrades instead of clicky building, which could be interesting. Having the city transform as you play...
14:13 celeron55 oh also
14:13 celeron55 i almost forgot the most important feature
14:14 celeron55 which is multiplayer over network
14:14 celeron55 if you don't use that, then you don't use 75% of minetest at all
14:14 celeron55 which again makes it very suboptimal
14:15 spillz The other idea I had was a giant ant colony. (which you could expand to a giant insect world)
14:15 spillz Yes the Multiplayer is very important part and comes almost for free...
14:16 celeron55 one thing that many things would require is some kind of global handling of entities
14:16 celeron55 there should probably be some kind of mode in minetest where it would limit the area of the world to some manageable size, and always load every entity in memory and always run everything instead of keeping the world passive everywhere except around the player
14:17 celeron55 it's rather controversial but would allow a lot of use cases
14:17 celeron55 almost every actual game would need that mode
14:17 proller joined #minetest-dev
14:17 spillz yes, I was wondering about that.
14:17 celeron55 the only thing the infinite mode is useful is those "other life" servers
14:18 celeron55 the issue is, people would probably want very large worlds nevertheless
14:18 celeron55 and then it needs some kind of efficient global handling of entities where not all details are cared of
14:19 celeron55 which likely makes actually implementing content quite cumbersome and bug-prone unless everything is practically the same
14:20 celeron55 if you're brave enough to design (= think of what features are actually needed and what would be unnecessary work and what can actually be afforded and what people actally need) and implement that mode in some way, feel free to
14:23 spillz to a certain extent all you need is a large enough range around the player to be alive, and then as you say some sort of global entity tracking such that even if those entities are in inactive parts of the map, they still respond to game events (e.g. get removed, teleported to new places etc)
14:33 CiaranG So just let the entities decide when they need to be active, and let the rest of the 'infinite' world stay passive.  https://github.com/CiaranG/minetest/commit/f5b73e0baabbfe68bc6a9a52c5221930e4306ed2
14:41 proller joined #minetest-dev
14:41 n joined #minetest-dev
14:50 spillz CiaranG: That looks useful. even without that patch I guess it is possibly to access and modify inactive objects? or do they become completely unloaded if inactive?
14:51 spillz *possibly = possible
14:55 CiaranG Completely unloaded as far as the engine is concerned, but I track them in the mods so they still kind of 'exist'
14:56 CiaranG i.e. they can be re-awakened if necessary
14:56 CiaranG Doesn't really need engine support for that
14:57 CiaranG Although I will probably add it, because it's messy doing it from lua
15:14 grrk-bzzt joined #minetest-dev
15:40 celeron55 16:33:59 < CiaranG> So just let the entities decide when they need to be active, and let the rest of the 'infinite'  world stay passive.
15:40 celeron55 yes, but when to activate them?
15:40 celeron55 if you rely on the player walking past them for activation, it's broken for most use cases
15:41 celeron55 do you poll each entity at world startup? do you store a list of the previously activated ones to be reactivated at world startup?
15:42 CiaranG currently - not all, and yes, respectively
15:42 CiaranG i.e. if they were active when the server shut down, I poll them, otherwise not
15:43 CiaranG and yes, I keep a list of them
15:43 CiaranG Like I said above, it's messy :(
15:43 celeron55 it should definitely be in the engine
15:45 CiaranG I'm sure I'll do that in the end. For now, I just wanted something that worked.
15:45 celeron55 this will actually be useful for my current experimental project too
15:46 celeron55 where is your lua code that you use for re-awakening them?
15:46 CiaranG Only on my machine at the moment
15:46 CiaranG But it just uses that 'forceload' thing
15:46 celeron55 oh, that thing is horrible
15:47 CiaranG I can clean it up and push it somewhere if you like, but there's not much to it
15:47 celeron55 it should be removed for starters
15:48 celeron55 i think that if lua wants to load something without it being "owned" by an entity of some kind, then it must do it in a way that doesn't make the engine save them
15:48 celeron55 because they will just get hopelessly out of sync and nobody will understand what is going on
15:48 CiaranG Exactly
15:49 celeron55 you have my full permission to make every part of that happen
15:49 CiaranG When I want something non-entity-based (like a factory) to stay loaded, I just put an entity there
15:49 CiaranG Which has the added benefit of looking cool. Factory manager pacing around the place looking at the machines all day ;)
15:49 celeron55 (and also, make sure to shout here about your pull requests (applies to anyone though))
15:50 CiaranG Hmm, this idea has already been rejected twice I think. I decided it was a waste of time trying.
15:51 CiaranG If I understand correctly, the forceload 'thing' was done instead of a previous thing similar to my 'autonomous' entities
15:51 CiaranG Because "it's too dangerous" or something
15:51 celeron55 i wasn't overseeing the "forceload thing" at all
15:52 Jordach joined #minetest-dev
15:52 CiaranG Yeah, well I'm only relaying what I was told, I was awol at the time
15:52 celeron55 also, i don't care if it was declined previously; it doesn't matter now
15:53 celeron55 (other than that if it was, it's probably a good idea to look there and see what might have been good and bad about that implementation (if it was implemented))
15:53 CiaranG Well, feel free to have a go with that change of mine in your project. I've been using it for a couple of months, it's very stable
15:57 celeron55 i might attempt extending it with a reasonable saving scheme
15:59 CiaranG That would save me a job ;)
16:00 celeron55 i always hate it when people half-ass some kind of persistent data minetest stores, so i probably should half-ass it myself
16:01 CiaranG The good thing about doing it half-assed first is it gives you a better idea of what's needed when you come to do it properly :)
16:02 celeron55 do something properly? not gonna happen until hmmmm loses his day job
16:03 CiaranG three-quarter-assed then
16:06 Zeitgeist_ joined #minetest-dev
16:06 Zeitgeist_ joined #minetest-dev
16:08 celeron55 when stuff like this is gotten into use, we should make some kind of built-in mod processing time profiling
16:09 celeron55 it should be fairly easy for the relevant case; it's just a matter of measuring how much processing time each type of entity consumes
16:09 CiaranG Something like this: https://forum.minetest.net/viewtopic.php?id=7355 but covering on_step as well
16:09 celeron55 and how much new area it loads
16:10 CiaranG Definitely should be a built-in feature - maybe there wouldn't be so many crappy mods if it was
16:12 celeron55 probably just a sliding window with maximum and average time or so, visible in the profiler screen
16:13 CiaranG I guess it would be nice to see it on screen, but then you have to send it to the client.
16:14 CiaranG Or to all clients, always. Unless you implement additional controls and protocol stuff for it.
16:18 celeron55 well the current profiler shows server information in singleplayer games
16:18 Guest87221 only half of this info useful
16:18 celeron55 and of course you can make it output stuff in the log
16:18 CiaranG Oh, does it?
16:19 celeron55 it's process-global
16:19 * CiaranG starts his first ever single player game
16:20 celeron55 there's not that much in it though, and it only lists totals or averages
16:20 celeron55 (peak values in case of averages would be useful)
16:22 Jordach CiaranG, all the devs should be doing that...
16:25 celeron55 there's for example the average server-side object count, which is already useful in debugging persistent entities
16:25 celeron55 (SEnv: num of objects)
16:30 CiaranG Ok, so it's the same kind of stuff I usually look at via: tail -f debug.txt | grep SEnv
16:30 CiaranG Much nicer to see it in game though, for some reason
16:34 domtron joined #minetest-dev
16:35 celeron55 what the fuck
16:36 celeron55 http://i.imgur.com/wBO6akS.png
16:36 celeron55 this isn't even funny; who broke this?
16:37 celeron55 water does not react to lighting changes when shaders are enabled
16:38 VanessaE looks fine here, c55.
16:38 VanessaE (amazingly...  my GPU has always been touchy with MT's shaders)
16:44 celeron55 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
16:44 celeron55 in other words, the one integrated in mobile haswell i7
16:45 VanessaE that thing has shaders? O_o
16:45 celeron55 what?
16:45 celeron55 this runs even the automatically generated bumpmapping
16:45 celeron55 apparently also it's broken on this:
16:45 celeron55 VGA compatible controller: NVIDIA Corporation GK104GLM [Quadro K3100M] (rev ff)
16:46 VanessaE huh.
16:46 VanessaE ah, I don't have the latest changes in my client, I'm behind a few commits
16:46 celeron55 i'll try a rebuild
16:46 VanessaE since you mentioned the autogen bumpmaps
16:47 celeron55 rebuild doesn't work either
16:47 celeron55 i mean normal maps... oh well, some kind of fancy thing anyway
16:48 celeron55 looks like the commit before those normalmaps works fine
16:48 celeron55 where's RBA when we have to curse at him
16:50 VanessaE heh
16:52 VanessaE left him a message.
16:52 VanessaE you can yell at him later :)
17:06 PenguinDad joined #minetest-dev
17:07 spillz joined #minetest-dev
17:12 BrandonReese joined #minetest-dev
17:15 Calinou joined #minetest-dev
17:17 Garmine joined #minetest-dev
17:32 rubenwardy joined #minetest-dev
17:50 sapier joined #minetest-dev
17:55 sapier I can confirm the water glow bug :-) but it looks somehow nice ;-)
17:56 VanessaE maybe it's just radioactive :P
17:58 sapier 1986 there was some time till russian government did tell about the tschernobyl accident ... last time it's been asia ... VanessaE do you know about some major accident in america this time? ;-)
17:59 smoke_fumus joined #minetest-dev
18:02 VanessaE ok call it Cherenkov radiation then ;)
18:02 sapier when was uranium ore added?
18:03 VanessaE heh, well if you have technic mod ;)
18:03 VanessaE http://en.wikipedia.org/wiki/Cherenkov_radiation
18:03 VanessaE anyway yeah, that'll need fixed, but no idea where RBA's gotten off to.  he works a lot lately
18:04 sapier sam is quite robust considering the amount of radiation necessary to cause that much cherenkov radiation ... I know what it is, it's light emitted on electrons traveling at speed above light speed
18:04 VanessaE nope.avi
18:04 sapier to be exact specific light speed in an arbitrary medium
18:04 VanessaE any charged particle traveling faster than the *phase velocity* of light in the medium
18:04 VanessaE it can never travel faster than light speed regardless of the medium
18:05 celeron55 sam can also take horizontal hits from any speed and lasts multiple seconds submerged in lava
18:05 celeron55 he's a seriously tough guy
18:05 sapier ok ok ... but as alpha radiation won't even pass a piece of paper most of it will be electrons
18:06 sapier VanessaE light speed != light speed in vacuum
18:06 VanessaE sapier:  I said in the medium :P
18:07 sapier yes basicaly same
18:07 VanessaE anyway that's rather off-topic :P
18:07 sapier true unless we wanna add exact physics simulation to minetest ... do we?
18:07 VanessaE no
18:08 VanessaE celeron55: I wonder if the water brightness has anything to do with the restructuring RBA did for this other pull he has
18:08 VanessaE (one sec)
18:08 celeron55 dunno, i'm going to let him figure it out
18:09 VanessaE hm, I guess he didn't issue the new request yet.
18:10 VanessaE he's got a new water shader in the works that looks *really* good
18:10 VanessaE I do know it requires some engine change that just went in with that last shader commit, but that's about all I know of the code-side of it
18:14 VanessaE last update I saw from him was 2 weeks ago, though
18:15 VanessaE something about a rewrite that improves the smoothness of animations
18:15 VanessaE and that it's going "slowly"
18:15 VanessaE (the progress thereof)
18:16 sapier VanessaE did you recently test my android build?
18:16 VanessaE sapier: haven't had a chance.  what's new in it?
18:16 sapier basicaly it's about polishing for merge
18:17 sapier everything found now wont have to be fixed after merge
18:18 VanessaE oh ok
18:24 rubenwardy joined #minetest-dev
18:25 CiaranG Random statistic - 15x less time spent saving the map on my server with leveldb instead of sqlite
18:26 sapier interesting ... seems like we use quite a lot of leveldb's best case scenarios
18:27 celeron55 oh by the way, did someone test the PRAGMA synchronous=OFF feature of sqlite?
18:28 celeron55 i suggested it a long time ago and have no memory of if anyone tried anything
18:29 celeron55 i always see those comparisons as unfair because people aren't using the best settings of sqlite
18:29 celeron55 http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html
18:29 sapier without a defined benchmark testcase comparison is hard, if leveldb is better in one usecase that may not tell about all the others
18:31 CiaranG In this particular case, mostly just nodemeta was changing - I suspect that has a lot to do with it
18:32 celeron55 oh wait
18:32 celeron55 we actually have that flag settable in minetest.conf already
18:32 sapier ciaranG do you think you can create some sort of benchmark with different testcases? Imho adding test and benchmark cases to minetest wouldn't be a bad thing
18:33 celeron55 CiaranG: please set sqlite_synchronous = 0 in configuration and re-test
18:33 celeron55 this will be valuable information
18:37 Guest87221 it will eat less disk, but sometimes 1-5-20... seconds on save
18:38 CiaranG huh
18:38 CiaranG Ok, sqlite is actually very slightly faster than leveldb, with synchronous=0
18:38 CiaranG (disclaimer: in this very limited unscientific test scenario)
18:38 celeron55 lol maybe it should be the default 8)
18:39 * VanessaE wonders who Guest87221 is
18:39 celeron55 VanessaE: he sounds like proller
18:39 celeron55 the default (synchronous=2) is for some batshit insane reliability standards that sqlite is designed for
18:39 celeron55 0 is probably still a bit more reliable in case of power failures than leveldb...
18:40 VanessaE figures. :P
18:40 proller sometimes some blocks can broke
18:41 proller on sky server huge anomaly area
18:41 proller after power loses
18:41 sapier hmm is there a way to automaticaly detect "broken" blocks?
18:43 proller on sky millions blocks of dirt was appear near spawn (most loaded area)
18:44 proller and 16x16x16 cubes of teleporters
18:44 sapier so basically we could only implement some "sanity" check with more or less exact results :-(
18:45 CiaranG synchronous=1 is nearly, but not quite, as slow as synchronous=2 for me (just for the sake of completeness)
18:45 celeron55 sapier: but what would be the use for that?
18:45 celeron55 it's rather obvious to anyone looking if something is broken :P
18:46 CiaranG You might want to restore a backup instead of running with the corrupt map and finding out later
18:47 sapier if we think about exchanging speed for occassional errors some sort of offline error correction could fix the worst issues
18:49 celeron55 proller: how does leveldb behave in power losses?
18:49 celeron55 again there shouldn't really be decisions until someone actually tests things
18:50 proller now nothing broken, nut need to test
18:50 proller ^but
18:51 sapier celeron55 I'm just collecting information without error correction switching to a less reliable option is a very bad idea
18:54 CiaranG Well my server has a UPS, so I've un-migrated, back to sqlite, with synchronous=0
18:55 CiaranG I'll let you know if that ends up being a disaster
19:08 celeron55 random question: what if minetest used Qt
19:09 celeron55 is there opposition for using it for GUI and the basic event loop
19:10 PilzAdam joined #minetest-dev
19:10 celeron55 it does toolkit and OS stuff very well (it's like an another world compared to irrlicht's absolute shit) but it's rather large
19:10 proller +5% harder build under windows
19:10 celeron55 yes; it's not the worst though
19:11 sapier yes but using qt for gui in opengl mode is almost as using gtk and opengk
19:12 sapier if minetest was a original qt application this might me good but transition most likely will be equivalent to a rewrite of minetest
19:13 celeron55 well you can embed irrlicht inside Qt very easily as for what i can tell
19:13 Miner_48er joined #minetest-dev
19:13 celeron55 it's a somewhat weird combination though
19:14 sapier :-) what's qt supposed to do in this case?
19:16 celeron55 well, it's rather random because both of them can do partly the same things
19:16 celeron55 the toolkit thing is obvious though
19:16 sapier we could replace jthread by it
19:16 celeron55 hmm, true
19:17 sapier but we'd have to rewrite whole threading
19:17 sapier I can't see a real problem solved by this solution ;-)
19:17 celeron55 and we could remove cguittfont and gettext (probably), and maybe openal (with qtmultimedia)
19:18 sapier but we'd have to rewrite minetest about every 2 years ... which is about the time qt keeps compatibility
19:19 celeron55 and i think qt embeds sqlite inside itself (actually not sure about this), and JSON (sure)
19:19 sapier imho rewriting minetest as qmine would be way more easy then porting current code to qt
19:20 celeron55 but that would remove some android portability i guess, or maybe not; it gets a bit hard to predict
19:20 celeron55 there's qt for android so it might even be easier than now
19:20 rubenwardy Let's rewrite Minetest into Brainfuck!
19:20 celeron55 sapier: qt keeps a lot of compatibility; where did you take that figure?
19:20 sapier as of now none of your arguments persuades me to support qt rewrite ;-)
19:21 proller jthread can be replaced by c++11
19:21 sapier I used qt 2 3 and 4 ... yes they keep some sort of compatibility but you can't use all the new features
19:21 sapier c++11 threads are no pthread replacement ... whoever told you about this did lie
19:22 sapier especially as jthread isn't threads only but semaphores mutexes and events too
19:23 sapier qt is a all or nothing option it's way to big to use parts of it only so either we redesign and rewrite minetest or we don't use it
19:23 proller http://en.cppreference.com/w/cpp/thread
19:24 sapier semaphores?
19:24 proller 20 lines of code
19:24 sapier nope
19:24 proller http://stackoverflow.com/questions/4792449/c0x-has-no-semaphores-how-to-synchronize-threads
19:25 sapier a semaphore isn't jsn't just a mutex with a variable it's similar but not same
19:26 sapier c++11 contains most of what is necessary but it's not complete
19:28 sapier while I'm eager to use those features too imho we should first fix the bugs then do the maintenance in non buggy areas ;-)
19:30 sapier e.g. that damn mesh generation lag reason
19:37 grrk-bzzt joined #minetest-dev
19:45 rdococ joined #minetest-dev
19:59 werwerwer_ joined #minetest-dev
20:37 proller joined #minetest-dev
20:45 iqualfragile joined #minetest-dev
20:53 kaeza joined #minetest-dev
21:03 kaeza joined #minetest-dev
21:13 rsiska joined #minetest-dev
21:25 iqualfragile_ joined #minetest-dev
21:42 OldCoder joined #minetest-dev
22:02 domtron joined #minetest-dev
22:41 iqualfragile_ celeron55: last time i tried 0ad was unplayable due to not offloading anything and doing everything in the main thread
22:41 iqualfragile_ or at least doing pathfinding in it
22:41 iqualfragile_ soo… yeah, at least you can actually play minetest
22:42 EvergreenTree joined #minetest-dev
23:03 us`0gb joined #minetest-dev
23:48 psedlak joined #minetest-dev
23:59 nyuszika7h joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext