Time |
Nick |
Message |
00:01 |
|
ircSparky joined #minetest-dev |
00:11 |
|
ircSparky_ joined #minetest-dev |
00:16 |
paramat |
i forgot to say, i could not merge #5234 , did not apply. sofar |
00:16 |
ShadowBot |
https://github.com/minetest/minetest/issues/5234 -- Re-add Droid Sans as fallback font (Reverts part of eb490) by sofar |
00:17 |
sofar |
yeah, that's git for ya |
00:17 |
sofar |
I'll do it myself later tonight |
00:17 |
paramat |
i was using 'git am' |
00:17 |
paramat |
ok |
00:17 |
sofar |
yup, git am b0rks on that one |
00:47 |
|
DonBatman joined #minetest-dev |
01:12 |
|
ircSparky_ joined #minetest-dev |
01:52 |
sofar |
how do I measure mapgen time performance wise? |
01:52 |
sofar |
is there such a way? |
01:54 |
VanessaE |
dtime? |
01:54 |
VanessaE |
in register-on-generated |
01:54 |
VanessaE |
probably isn't accurate enough though |
01:54 |
VanessaE |
but that's what I use in biome_lib to split-up the mapgen stuff into small steps |
02:37 |
|
paramat joined #minetest-dev |
02:39 |
paramat |
sofar in a mapgen uncomment these lines https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L233 https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L275 https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L31 |
02:41 |
paramat |
note that doesn't include liquid update and light calculation, so i like to move the second line to after those |
03:41 |
|
kaeza joined #minetest-dev |
03:51 |
|
deepbook5broo joined #minetest-dev |
03:51 |
|
deepbook5broo left #minetest-dev |
04:05 |
sofar |
maybe I just want something that generates a known amount of mapchunks (large number) and times it |
04:21 |
|
Hunterz joined #minetest-dev |
05:58 |
|
xerox123 joined #minetest-dev |
06:01 |
|
Hunterz joined #minetest-dev |
06:50 |
|
Player_2 joined #minetest-dev |
07:07 |
|
xerox123 joined #minetest-dev |
08:09 |
|
red-001 joined #minetest-dev |
08:18 |
|
Darcidride joined #minetest-dev |
08:56 |
|
Gael-de-Sailly joined #minetest-dev |
09:21 |
kaeza |
lol running luacheck on builtin |
09:21 |
|
nerzhul joined #minetest-dev |
09:22 |
kaeza |
even disabling "safe" warnings (whitespace/shadowing/unused stuff), it's like 5 pages of warnings |
09:22 |
kaeza |
it wants to dump everything in _G |
09:26 |
|
blaze joined #minetest-dev |
09:27 |
nore |
kaeza: well, you should tell it about the known globals (core, ItemStack, etc.) |
09:27 |
kaeza |
already did :P |
09:27 |
nore |
hmm |
09:28 |
nore |
what it is complaining about then? |
09:28 |
kaeza |
https://gist.github.com/kaeza/8c6bbda05ed1d19234874fe69656bdca |
09:29 |
kaeza |
most of those look fairly safe |
09:30 |
nore |
ow |
09:30 |
nore |
yeah, would be good to fix that one way or the other though |
09:31 |
kaeza |
and that one's not including builtin/mainmenu |
09:32 |
kaeza |
I can go through the code and clean up stuff, but is it worth the effort? |
09:33 |
kaeza |
i.e. anybody except me and maybe ShadowNinja cares? |
09:34 |
nore |
I think it's worth it |
09:37 |
|
Darcidride joined #minetest-dev |
10:18 |
exio4 |
builtin/game/item.lua:193:1: inconsistent indentation (SPACE followed by TAB) |
10:21 |
* kaeza |
hugs exio4 |
10:21 |
kaeza |
okay, I have a few questions |
10:22 |
kaeza |
first, is basic_dump meant to be global? doesn't look so, looks like it is a helper for dump and dump2 |
10:22 |
kaeza |
and second, why is mainmenu-only code in builtin/common ? O.o |
10:57 |
kaeza |
#5253 |
10:57 |
ShadowBot |
https://github.com/minetest/minetest/issues/5253 -- [WIP] Run builtin through LuaCheck and fix warnings. by kaeza |
11:05 |
|
proller joined #minetest-dev |
11:06 |
|
DonBatman joined #minetest-dev |
11:08 |
|
TheReaperKing2 joined #minetest-dev |
11:08 |
|
kilbith joined #minetest-dev |
11:12 |
|
proller joined #minetest-dev |
11:19 |
|
red-002 joined #minetest-dev |
11:19 |
|
red-002 joined #minetest-dev |
11:20 |
red-002 |
#5252 |
11:20 |
ShadowBot |
https://github.com/minetest/minetest/issues/5252 -- Add support for the new arguments of `request_shutdown` to the `/shutdown` chatcommand. by red-001 |
11:38 |
|
Fixer joined #minetest-dev |
11:40 |
|
crazyR joined #minetest-dev |
11:48 |
|
shymega joined #minetest-dev |
12:23 |
|
xerox123 joined #minetest-dev |
12:26 |
|
Fixer joined #minetest-dev |
12:44 |
|
betterthanyou711 joined #minetest-dev |
12:48 |
|
betterthanyou711 joined #minetest-dev |
12:49 |
|
betterthanyou711 joined #minetest-dev |
12:49 |
|
betterthanyou711 joined #minetest-dev |
12:52 |
|
betterthanyou711 joined #minetest-dev |
13:09 |
|
xerox123 joined #minetest-dev |
13:14 |
|
burli joined #minetest-dev |
13:19 |
|
glut32 joined #minetest-dev |
14:11 |
|
ircSparky joined #minetest-dev |
14:14 |
|
Hunterz joined #minetest-dev |
14:24 |
red-002 |
Did I misunderstand #244 or are players floating in mid-air after they die a feature not a bug? |
14:24 |
ShadowBot |
https://github.com/minetest/minetest/issues/244 -- Strange effects with dead players |
14:26 |
|
lisac joined #minetest-dev |
14:45 |
VanessaE |
Interesting effect I never noticed before: if I happen to be "just standing there" after signing on, and the more distant parts of the map haven't loaded because they're too far, eventually they do start to load as night falls. |
14:45 |
VanessaE |
(even if it's been several minutes since I signed on) |
14:47 |
|
Taose joined #minetest-dev |
14:47 |
|
Taose left #minetest-dev |
15:06 |
Zeno` |
VanessaE, what are you smoking and can I have some? |
15:06 |
VanessaE |
I'm serious. |
15:06 |
VanessaE |
and if I had it, I'd share ;) |
15:06 |
Zeno` |
lol |
15:06 |
|
rubenwardy joined #minetest-dev |
15:10 |
|
garywhite joined #minetest-dev |
15:12 |
|
octacian joined #minetest-dev |
15:12 |
|
octacian joined #minetest-dev |
15:13 |
VanessaE |
on another note, is there a "sane" way to scan a world, from outside of Minetest, for bad/corrupt blocks? |
15:15 |
sfan5 |
VanessaE: i guess my mapblock-parse.py script should returns errors if you have a corrupt block |
15:16 |
sfan5 |
i would require you to invoke it <number of mapblocks> times though |
15:17 |
VanessaE |
just curious. rogier5's minetestmapper returns tons of "incorrect header check, corrupt?" errors, but in-world everything's normal. |
15:18 |
VanessaE |
figured a mass check-for-errors, like a map-level fsck, might be a good idea |
15:18 |
VanessaE |
(if such a thing existed) |
15:19 |
sfan5 |
>Sorry, forked repositories are not currently searchable. |
15:19 |
sfan5 |
for fucks sake github |
15:20 |
VanessaE |
wayt |
15:20 |
VanessaE |
wat |
15:20 |
sfan5 |
this incorrect header msg doesn't seem to be part of rogiers code |
15:20 |
sfan5 |
most likely returned by zlib |
15:21 |
VanessaE |
ah, could mne |
15:21 |
VanessaE |
be* |
15:21 |
sfan5 |
are you running -dev? |
15:21 |
VanessaE |
lemme check that even have zlib installed |
15:21 |
sfan5 |
if so then minetestmapper needs changes to function correctly |
15:21 |
sfan5 |
you do |
15:21 |
VanessaE |
you mean -dev as in minetest engine? yes. |
15:22 |
|
diemartin joined #minetest-dev |
15:22 |
sfan5 |
yes i meant that |
15:23 |
VanessaE |
which of us gets to file an issue against his repo? :) |
15:23 |
sfan5 |
not me |
15:23 |
VanessaE |
(I'd just use upstream, but the leaflet mapper needs a couple of features only rogier5's fork has, I guess) |
15:24 |
sfan5 |
which ones? |
15:24 |
VanessaE |
that's just it, I don't remember for sure |
15:24 |
VanessaE |
est31 would know |
15:25 |
VanessaE |
what sort of changes does it need? I'll mention this in the bug report. |
15:25 |
sfan5 |
$mapperpath ${MAPPERPARAMS} -i ${MAPDIR} --geometry ${posx},${posy}+${tilesize}+${tilesize} -o ${tiledir}/20/map_${x}_${y}.png |
15:26 |
sfan5 |
i don't see anything |
15:26 |
VanessaE |
http://daconcepts.com/vanessa/hobbies/minetest/Server-scripts/update-server-maps-leaftest.sh |
15:27 |
|
est31 joined #minetest-dev |
15:28 |
VanessaE |
ah there's the man of the hour now :) |
15:29 |
sfan5 |
i still don't see anything incompatible |
15:29 |
VanessaE |
est31: why did I need rogier5's mapper for leaflet? |
15:32 |
sfan5 |
also your script is copying colors.txt needlessy |
15:32 |
VanessaE |
oh? |
15:32 |
red-002 |
#5255 |
15:32 |
ShadowBot |
https://github.com/minetest/minetest/issues/5255 -- Add option to also check the center to `find_node_near` by red-001 |
15:33 |
sfan5 |
VanessaE: it does $ cp /home/vanessa/www/vanessa/hobbies/minetest/colors.txt $workdir/leaftest but then passes the original colors path to mapper.sh |
15:33 |
VanessaE |
oh heh |
15:33 |
VanessaE |
good catch |
15:34 |
VanessaE |
can you give me a brief description of the "changes" the mapper would need, and maybe the commit that made it necessary? I'd like to include those in this bug report. |
15:35 |
sfan5 |
https://github.com/minetest/minetest/commit/f17c9c45dc30a388675d46418d278a4a029206e2 -->>https://github.com/minetest/minetestmapper/commit/21444d00c35dc6896ffc27af7da38d8a296178fd |
15:37 |
VanessaE |
thanks |
15:40 |
VanessaE |
https://github.com/Rogier-5/minetest-mapper-cpp/issues/19 |
15:42 |
VanessaE |
still racking my brain trying to remember why rogier5's mapper was needed for leaftest *pokes est31 again :) * |
15:42 |
Fixer |
more about stutter/jitter, I loaded up old minetest files from 0.2.2011 era |
15:42 |
Fixer |
Minetest 0.2.20110618_0 does not have visible stutter at all on my PC, yet 0.2.20110704_0 version does |
15:43 |
VanessaE |
Fixer: did you control for things like CPU spikes outside of minetest, e.g. from a browser or screen update elsewhere? |
15:44 |
Fixer |
VanessaE: cpu was quit, i played those some time, I'm pretty sure about this, stutter was visible in 20110704_0 |
15:44 |
Fixer |
quite |
15:45 |
|
paramat joined #minetest-dev |
15:45 |
VanessaE |
Fixer: ok. |
15:56 |
|
Taoki joined #minetest-dev |
16:00 |
|
Gael-de-Sailly joined #minetest-dev |
16:04 |
Fixer |
i'm looking at this part right now: https://github.com/minetest/minetest/commit/02006a95402c41833779e3825c44b39d600e566b |
16:04 |
Fixer |
dat sleep |
16:04 |
Fixer |
wanna try it on newest to slow down it |
16:10 |
rubenwardy |
set it to 1000 |
16:10 |
rubenwardy |
wait, is that ms or s? |
16:10 |
rubenwardy |
ms surely |
16:11 |
rubenwardy |
oh, misread, I'm an idiot |
16:11 |
Fixer |
ms |
16:12 |
Fixer |
want to experiment slightly |
16:13 |
paramat |
maybe you could bisect to find the commit that causes jitter |
16:13 |
Fixer |
i doubt I will compile 2011 build succesfully today with mingw64 |
16:14 |
Fixer |
and I think I put sleep in a wrong place %) but thats ok, will try more |
16:16 |
nore |
Fixer: just decide it is bisect good if it doesn't compile, and then see if the commit you get is the first that compiles or if it causes jitter |
16:19 |
Fixer |
I was looking at this part https://github.com/minetest/minetest/commits/81535f6277b66c869cda7125b2aeaf99e8078b92/src/client.cpp (since Jun18 and up) |
16:19 |
celeron55 |
Fixer: you don't need to experiment with that because we all already know your jitter solely depends on the number of mapblock meshes being updated per frame |
16:19 |
Fixer |
celeron55: exactly |
16:19 |
celeron55 |
and increasing that sleep obviously slows down the updates |
16:24 |
red-002 |
updated #5255 it should be more readable now |
16:24 |
ShadowBot |
https://github.com/minetest/minetest/issues/5255 -- Add option to also check the center to `find_node_near` by red-001 |
16:34 |
Fixer |
and indeed, sleep(50ms) eliminated the stutter |
16:34 |
Fixer |
totally |
16:35 |
VanessaE |
I'm curious why a sleep is even needed in the first place |
16:35 |
VanessaE |
shouldn't meshes be sent in a separate thread as fast as possible? |
16:36 |
Fixer |
http://pastebin.com/raw/D44biexY |
16:36 |
VanessaE |
oh. they are. :) |
16:37 |
VanessaE |
(still doesn't explain why a sleep is used. thread priority problems maybe?) |
16:37 |
Fixer |
VanessaE: it was used like this in mid of 2011 and then refactored to current look I think |
16:41 |
Fixer |
https://i.imgur.com/qWEoGdH.png |
16:42 |
VanessaE |
you really wanna see stutter, load HDX256 and go over to VE-S around the spawn |
16:42 |
VanessaE |
you'll see pauses as long as a couple of seconds. |
16:43 |
Fixer |
now, lets speed it up to 25ms |
16:43 |
Fixer |
or 20... |
16:47 |
Fixer |
sl20 here i go |
16:48 |
Fixer |
very good |
16:48 |
Fixer |
acceptable |
16:49 |
sfan5 |
the correct way to solve this is probably to add a setting |
16:51 |
Fixer |
lazy chunk load enabled by default with some pretty good sleep value |
16:52 |
Fixer |
i see some rare bump of draw time to 0.05 rarely from different source, apart from that it is damn smooth in huge jungle |
16:52 |
Fixer |
lets try 10 ms |
16:53 |
VanessaE |
Fixer: please go try VE-S with HDX256 |
16:53 |
VanessaE |
I'm curious how it performs |
16:54 |
Fixer |
VanessaE: i got that 0.7 sec freeze in loop_other, even with default textures, hard to imagine HDX256, i can join to see it, but with HDX128 |
16:55 |
VanessaE |
that's fine |
16:55 |
Fixer |
VanessaE: on default minetest, have not tested with sleep |
16:55 |
red-002 |
#5254 doesn't really seem like something that should be on a bug tracker |
16:55 |
ShadowBot |
https://github.com/minetest/minetest/issues/5254 -- This code should fill a mapchunk |
16:56 |
paramat |
looking |
16:56 |
paramat |
is there a disadvantage to increasing that sleep time slightly, finding a good balance? |
16:57 |
Fixer |
paramat: decreasing sleep time will increase stutter, and vice versa (versa?) |
16:57 |
paramat |
5254 is code error, will reply |
16:57 |
Fixer |
currently trying 10ms |
16:58 |
nore |
hmm, I think either a setting or a way to automagically adapt the sleep time would be the correct solutions |
16:58 |
|
Warr1024 joined #minetest-dev |
17:00 |
Fixer |
hmmm, 10ms is close to edge of my liking |
17:00 |
Fixer |
feels somewhat agreesive at 10ms, still pretty smooth |
17:01 |
VanessaE |
Fixer: aggressive? |
17:01 |
VanessaE |
surely no stutter is the ideal? |
17:01 |
Fixer |
VanessaE: somewhat more jitter at 10 ms |
17:01 |
VanessaE |
oh |
17:02 |
Fixer |
VanessaE: like this part: https://i.imgur.com/AmQfEyl.png it is not critical |
17:02 |
Fixer |
0.037 |
17:02 |
Fixer |
avg is ~0.01 |
17:02 |
Fixer |
but even 10ms is quite good |
17:02 |
Fixer |
as compromise between speed and jitter |
17:03 |
Fixer |
hmmm, i feel like 15 ms sleep test is needed |
17:04 |
Fixer |
10 ms sometimes gives some jitter I dislike (like shallow fps drop from 100 to 70fps) |
17:04 |
Fixer |
and back to 100 |
17:05 |
Fixer |
VanessaE: i will join your server with sleep 15 |
17:05 |
VanessaE |
ok |
17:05 |
Fixer |
dreambuilder survival |
17:05 |
VanessaE |
yeah |
17:05 |
VanessaE |
at the spawn is the worst of course |
17:07 |
sfan5 |
is this trampoline thing a feature? https://a.uguu.se/N2SgPMiYWgbE.mp4 |
17:07 |
Fixer |
yes, 10ms is harsh, preferring 15ms |
17:07 |
paramat |
i notice it's worse over dense forest than empty terrain, i guess because the meshes are more complex |
17:08 |
Fixer |
paramat: yes, but sleep eliminates even that |
17:08 |
Fixer |
it is very weak after that |
17:08 |
Fixer |
like you loose 1-2 fps at most with sleep 50ms |
17:08 |
Fixer |
when it is 100fps |
17:08 |
paramat |
that would be worth it for me |
17:09 |
paramat |
jitter is really bad recently, hmmmm noticed too |
17:09 |
paramat |
the denser, taller forests of mgv7 probably make it worse |
17:10 |
paramat |
plus all those snow nodeboxes on pines |
17:10 |
Fixer |
sweet spot near sleep 15-20ms on my PC |
17:10 |
|
nerzhul joined #minetest-dev |
17:10 |
Fixer |
very good in forest |
17:10 |
paramat |
i might test this .. |
17:10 |
Fixer |
map loading will be somewhat slower, but acceptable |
17:10 |
Fixer |
i can still run |
17:12 |
red-002 |
should #5218 be a warning? |
17:12 |
ShadowBot |
https://github.com/minetest/minetest/issues/5218 -- "ERROR[Server]: Pathfinder: failed to update cost map" floods console |
17:12 |
red-002 |
or do you think it should stay an error? |
17:12 |
paramat |
unless there's some big disadvantage i would support a new balanced value |
17:14 |
* VanessaE |
watches Fixer's PC begin to smoke |
17:15 |
Fixer |
sfan5: trampoline should remine everyone that minetest also has UGLY unfixed falling related bugs |
17:16 |
Fixer |
VanessaE: 40fps at spawn, there was freeze, but it was as usual of unrelated loop_other origin |
17:16 |
VanessaE |
40 fps?! |
17:16 |
VanessaE |
how the fuck? |
17:16 |
VanessaE |
I can't even maintain 30 |
17:16 |
Fixer |
30fps |
17:16 |
paramat |
falling issues have been discussed and are not easy to fix |
17:16 |
Fixer |
VanessaE: it loads slightly slower |
17:17 |
Fixer |
VanessaE: let me do a walk |
17:18 |
Fixer |
whats up with mainloop_other 1.6 sec on vanessa servers only? |
17:18 |
VanessaE |
idk |
17:19 |
VanessaE |
signs maybe |
17:19 |
VanessaE |
(entities that is) |
17:19 |
Fixer |
i seen this only on your servers... including basic one |
17:20 |
VanessaE |
hopefully that text-on-signs idea pans out (and can replace signs_lib) |
17:21 |
Fixer |
VanessaE: 20-30 fps on spawn, what is good, is it is pretty solid fps, not quick changes, only unrelated rare freezes due to signs or whatever, will upload gif |
17:21 |
VanessaE |
ok |
17:22 |
|
ge joined #minetest-dev |
17:24 |
Fixer |
VanessaE: notice how smooth it is on your server https://imgur.com/a/9qd0T |
17:24 |
VanessaE |
far smoother than it is for me, for sure |
17:25 |
Fixer |
fps may be low, but at least it is consistent without insane jitter |
17:27 |
Fixer |
num_processed_meshes was at 5 on that server |
17:27 |
Fixer |
pretty good value |
17:28 |
Fixer |
now if I try default client... that will be disaster %) |
17:29 |
Fixer |
yesterdays gif from same place, probably shorter https://imgur.com/a/bWJoe |
17:29 |
VanessaE |
ew |
17:29 |
VanessaE |
that's almost as bad as it is for me |
17:30 |
Fixer |
yes, and compare with almost smooth line for sleep 15ms |
17:31 |
Fixer |
it just feels better, i don't want to throw up anymore, it is just low fps, but without this jitter shit on top |
17:37 |
paramat |
i might make a PR and we can then test to find a good balanced value |
17:38 |
VanessaE |
go with sfan5's idea, make it configurable |
17:38 |
Fixer |
i already tested 10-15-20-50ms sleeps, will spent some time with 15ms one, which I feel is quite good balance |
17:38 |
VanessaE |
(with a sane defautl) |
17:38 |
VanessaE |
default* |
17:38 |
paramat |
just remembered you can do PRs now |
17:39 |
Fixer |
nah, i'm noob with this |
17:39 |
Fixer |
it needs more code |
17:39 |
Fixer |
to check settings value and apply it to sleep |
17:39 |
paramat |
why more? |
17:39 |
paramat |
ok |
17:39 |
Fixer |
do you want it configurable? |
17:39 |
paramat |
having a setting is quite easy to code |
17:40 |
paramat |
erm maybe |
17:40 |
Fixer |
lets say we want 15ms, add setting with default 15ms, and in code it just checks that settings and uses for sleep :) |
17:40 |
Fixer |
people who want agressive map load can easily decrease it down to 1 ms... |
17:40 |
Fixer |
or 0 for disabled |
17:41 |
paramat |
it's important so a setting is probably needed |
17:42 |
sfan5 |
different idea: have a setting agressive_map_loading, defaults to false; in the code have sleep_ms(g_settings->get_bool("agressive_map_loading") ? 1 : 25); |
17:42 |
sfan5 |
then the setting is more user friendly and thus be added to be settings menu |
17:44 |
Fixer |
i hope this checking will not slowdown anything |
17:45 |
Fixer |
it will be cached settings value, right? |
17:46 |
|
rubenwardy joined #minetest-dev |
17:46 |
Fixer |
feels sooo good on servers too |
17:46 |
VanessaE |
sfan5: 1ms?? way too low |
17:46 |
VanessaE |
maybe you want 15 and 100 ? |
17:46 |
VanessaE |
(or whatever the higher value was) |
17:46 |
Fixer |
VanessaE: 1ms - most agressive, 100ms - slowgen |
17:47 |
VanessaE |
it's better to just allow a custom value imho |
17:47 |
VanessaE |
Fixer: yeah but you said that for you, below ~10ms is too aggressive |
17:47 |
Fixer |
VanessaE: yes |
17:47 |
sfan5 |
well currently the sleep_ms() doesn't seem to exist at all |
17:47 |
Fixer |
VanessaE: and default minetest don't have this sleep in the first place %) |
17:47 |
Fixer |
VanessaE: so it is nearly as agressive as default |
17:47 |
VanessaE |
ohhhhh |
17:47 |
sfan5 |
and i don't have any jitter problems |
17:48 |
VanessaE |
sfan5: go try VE-S then. |
17:48 |
VanessaE |
you will have bad jitter problems there :) |
17:48 |
Fixer |
sfan5: with sleep or without? |
17:48 |
Fixer |
i have jitter since 2011 basically |
17:48 |
Fixer |
on two different computers |
17:48 |
sfan5 |
without |
17:49 |
sfan5 |
where did you add the sleep anyway |
17:49 |
Fixer |
P4 2.8GHz + R9600 when I played on 0.2.2011/0.3/0.4dev and today with core i3 + R6870 |
17:49 |
sfan5 |
VanessaE: you mean dreambuilder survival? |
17:49 |
* VanessaE |
pokes Zeno` |
17:49 |
VanessaE |
sfan5: yeaH |
17:49 |
Fixer |
sfan5: http://pastebin.com/raw/D44biexY |
17:50 |
VanessaE |
(zeno had some stuff to say a while back about jitter/stutter and mesh gen lag) |
17:50 |
sfan5 |
Fixer: that's not exactly the same as with the old code though |
17:50 |
Fixer |
yeah, but helps %) |
17:51 |
sfan5 |
VanessaE: where do i look for jitter |
17:51 |
VanessaE |
near the spawn |
17:51 |
VanessaE |
just walk say toward the tunnel |
17:51 |
Fixer |
really big freezes don't count, they are of different origin |
17:53 |
Fixer |
example of worst kind, 0.4.13 on discontinued just test server: http://i.imgur.com/F4jOrj3.png |
17:53 |
sfan5 |
fps is pretty variable |
17:53 |
sfan5 |
frametime increases if mesh updates happen |
17:53 |
sfan5 |
this has been known since forever |
17:54 |
Fixer |
correct |
17:54 |
Fixer |
sleep just spreads it out more nicely, in lesser chunks |
17:54 |
Fixer |
this eliminates ingame jitter |
17:55 |
celeron55 |
but then the client is incapable of processing lots of meshes |
17:55 |
celeron55 |
it should be spread out, not limited |
17:55 |
sfan5 |
the problem here is that "aggressive" mesh updates presents no problem at all in many cases |
17:56 |
celeron55 |
i.e. a dynamic limit |
17:56 |
sfan5 |
so it would be a bad idea to just add a sleep_ms thats enabled by default |
18:01 |
paramat |
spread out seems better |
18:04 |
rubenwardy |
sofar: https://gist.github.com/rubenwardy/5ebfc6e6a15976118d487a1a51f9601e |
18:04 |
paramat |
#5258 fixed some more world-edge crashes |
18:04 |
ShadowBot |
https://github.com/minetest/minetest/issues/5258 -- Voxelmanip: Do not emerge or blit to blocks over map gen limit by paramat |
18:05 |
rubenwardy |
likely related to font_path = fonts/liberationsans.ttf in minetest.conf |
18:05 |
rubenwardy |
it shouldn't segfault |
18:10 |
sofar |
rubenwardy: fonts and 'run_in_place' do not get along at all |
18:10 |
sfan5 |
that's not the problem here |
18:10 |
rubenwardy |
:D |
18:10 |
sofar |
I had the same crashes |
18:10 |
sofar |
oh, hmm, I understand |
18:10 |
rubenwardy |
as a general rule, Minetest should never segfault |
18:11 |
rubenwardy |
:P |
18:11 |
sofar |
welp, I gotta go to work |
18:11 |
* sofar |
afk |
18:11 |
nerzhul |
no program should segfault, only assertions in debug builds are acceptable |
18:15 |
Fixer |
sfan5: no idea in what cases, any mesh update that is more than say 5 gives jitter for me, and usually in singleplayer it goes as high as 40 :( |
18:16 |
Fixer |
same for vanessa server |
18:16 |
Fixer |
with limiter it is much better experience |
18:16 |
|
Krock joined #minetest-dev |
18:16 |
|
Krock joined #minetest-dev |
18:16 |
Fixer |
map still loads pretty fast, yet smoother experience without jitter |
18:21 |
Fixer |
if you want to spread it... there still must be limit to not affect fps much, like 2-3(at most) mesh updates per frame |
18:25 |
Fixer |
it is fraps time |
18:32 |
|
Fixer joined #minetest-dev |
18:35 |
VanessaE |
just as a reminder, someone please fix the screwdriver. https://github.com/minetest/minetest_game/issues/1567 |
18:37 |
|
YuGiOhJCJ joined #minetest-dev |
18:42 |
red-002 |
rubenwardy, does #5255 look ok to you now? |
18:42 |
ShadowBot |
https://github.com/minetest/minetest/issues/5255 -- Add option to also check the center to `find_node_near` by red-001 |
18:46 |
rubenwardy |
yeah, although ){ |
18:48 |
red-002 |
should I fix the code style in the function? |
18:52 |
|
garywhite joined #minetest-dev |
18:52 |
Fixer |
my fly test ended up with much higher fps due to slightly slower map load, results: https://i.imgur.com/F8Hqpwk.png Look standard deviation and frame distribution, huge difference in jitter |
18:52 |
red-002 |
done |
18:55 |
rubenwardy |
someone knows their statistics |
18:57 |
garywhite |
Someone suggested that a feature be added to export the chat or F10 to a file. Is this possible? (I don't think so, cause then it would have to be added to the engine to save it to a file by default |
18:57 |
Fixer |
some hardware sites also started measuring frame times, not fps, to uncover various problems, like jitter/etc |
19:12 |
|
paramat joined #minetest-dev |
19:32 |
celeron55 |
so now loading less map is better? lol |
19:32 |
Fixer |
it is acceptable |
19:35 |
paramat |
i guess it is not just a case of number of meshes processed per frame but how complex they are |
19:38 |
red-002 |
#5071 |
19:38 |
ShadowBot |
https://github.com/minetest/minetest/issues/5071 -- Rename functions in the minetest namespace to be more consistent. by red-001 |
19:38 |
Fixer |
if someone have better idea that eliminates jitter, please do, meanwhile i;m sticking with sleep 15 as standard for my buids |
19:39 |
rubenwardy |
if it makes a difference, then it may be worth it as a hot fix |
19:39 |
rubenwardy |
leave better load balancing for latter |
19:39 |
rubenwardy |
although, for later usually means never |
19:39 |
Fixer |
it is still faster than +fast on ground on my hardware |
19:40 |
Fixer |
in terms of mapblocks load speed |
20:09 |
|
DonBatman joined #minetest-dev |
20:30 |
celeron55 |
sleeping a different amount makes zero sense; there are much better ways to throttle the mesh generation rate |
20:31 |
Fixer |
could be |
20:31 |
Fixer |
i'm sticking with sleep 15, who knows how many decades will pass when someone comes up with a solution |
20:33 |
celeron55 |
https://github.com/minetest/minetest/blob/master/src/client.cpp#L535 |
20:33 |
celeron55 |
this is where you should throttle it |
20:33 |
celeron55 |
limit the number of iterations that loop makes |
20:34 |
celeron55 |
it'll make it even smoother than you can get it with sleeps |
20:34 |
celeron55 |
for example, just replace while -> if |
20:34 |
celeron55 |
you'll get exactly one mesh per frame |
20:35 |
celeron55 |
a limit for that could be made a configuration option i guess |
20:40 |
sfan5 |
i remember someone complaining about the design https://github.com/minetest/master-server/pull/15 |
20:40 |
sfan5 |
or not whatever |
20:40 |
sfan5 |
^ Fixer you sound like you might have time to look at this |
20:41 |
Fixer |
sfan5: about design? |
20:41 |
sfan5 |
yes |
20:45 |
Fixer |
sfan5: that was probably not me, but i have problems with last column - it is hard to understand what exactly are those numbers for ping, lag |
20:45 |
paramat |
c55 thanks |
20:45 |
sfan5 |
Fixer: i wasnt trying to imply that it was you, just needed someone to look at it |
20:45 |
Fixer |
sfan5: after comma digits, few persons may check server uptime to see when there will be reset? |
20:45 |
sfan5 |
heres how it looks btw https://kitsunemimi.pw/tmp/sldesign/ |
20:46 |
Fixer |
hmm |
20:46 |
Fixer |
second column needs improvement |
20:47 |
sfan5 |
not aligned properly? |
20:47 |
Fixer |
https://i.imgur.com/JC3g6mO.png |
20:47 |
paramat |
c55 i might work on this |
20:47 |
Fixer |
sfan5: maybe make it players/max and below it average/top so it matches the pattern below |
20:48 |
Fixer |
sfan5: this looks crappy https://i.imgur.com/76h0SdB.png |
20:48 |
sfan5 |
oh |
20:48 |
sfan5 |
your screen/window is too narrow |
20:48 |
sfan5 |
can't do anything about this |
20:49 |
Fixer |
sfan5: 1280*1024 |
20:49 |
sfan5 |
the old design would look similarily bad |
20:49 |
Fixer |
sfan5: old design looks better on my screen, https://i.imgur.com/1CGKC9m.png |
20:49 |
Fixer |
sfan5: for that particular part |
20:50 |
Fixer |
on my LCD* |
20:50 |
Krock |
age is wrapped to a new line here |
20:50 |
Krock |
(with old style) |
20:50 |
Fixer |
hhmmmm, actually i can resize it in firefox to 1600*1200 as example, to see how it looks |
20:50 |
sfan5 |
accomodating for different sizes while keeping the nice alignment is pretty hard |
20:50 |
Fixer |
web dev tool |
20:50 |
Krock |
it's just too much information for narrow screens. hard to make it fit well |
20:51 |
Fixer |
ok, i'm looking at 1600*1200 version |
20:51 |
Fixer |
it looks neat |
20:52 |
Fixer |
sfan5: on 1600x1200/1920*1080/1920*1280/etc it should look nice |
20:52 |
sfan5 |
it does look nice on 1080p |
20:52 |
sfan5 |
since that is what i dev'ed it on |
20:53 |
Krock |
1280*1024 screen: http://i.imgur.com/nru6iCf.png |
20:53 |
Fixer |
also nice for 1366*768 |
20:54 |
Fixer |
below 1364 it starts to look ugly with second rows... |
20:54 |
Fixer |
sfan5: not a lot of people have 1280*1024 tbh |
20:54 |
sfan5 |
yeah most people have 16:9 |
20:54 |
sfan5 |
i'll let the PR sit 1 or 2 days and then merge it |
20:55 |
sfan5 |
(since SN probably won't come around to comment on it anyway) |
20:57 |
Fixer |
no wait, now it starts second row on 1366 |
20:58 |
sfan5 |
its quite tolerateable on phones too |
20:59 |
sfan5 |
celeron55: isn't doUpdate() countinously called by the thread while the queue is not empty? |
21:00 |
paramat |
nore sfan5 rubenwardy when you can please have a look at game#1552 , good new leafdecay system we have been working on |
21:00 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/1552 -- Leafdecay: node timer based implementation, API. by sofar |
21:00 |
sfan5 |
does the leafdecay abm really take that much processing power? |
21:00 |
Fixer |
sfan5: i think you should trim it to 1366*768, sometimes it starts second row on 1366px... |
21:01 |
sfan5 |
Fixer: the table layout is auto decided by your browser |
21:01 |
sfan5 |
i haven't set any specific limits in the css |
21:01 |
VanessaE |
sfan5: it can take a lot if it has a shitton of leaves to process i.e. moretrees |
21:02 |
Krock |
Fixer, what if the font size would be reduced by one pt? |
21:03 |
Fixer |
sfan5: if you have firefox you can go into dev panel and type "resize to 1366 768" |
21:04 |
Fixer |
shift+f2 |
21:05 |
Fixer |
serverlist looks cleaner now |
21:05 |
sfan5 |
i mean i could (try to) fix the size at 1366/768 but that would be a rather bad idea |
21:06 |
paramat |
it's the most intensive ABM, and of course for the vast majority of the time it's running for no reason |
21:07 |
paramat |
it only needs to be active when changes are being made to trunks |
21:10 |
paramat |
we recently removed the leafdecay trunk cache which was eating huge amounts of memory, so then the leafdecay ABM became more intensive and it had to be slowed down because of that |
21:15 |
Fixer |
sfan5: this make confuse https://i.imgur.com/VhfwvYl.png |
21:16 |
Fixer |
make=can |
21:16 |
rubenwardy |
I'd per separate columns for those things |
21:17 |
rubenwardy |
maybe with colspan for headers, if needed |
21:17 |
rubenwardy |
just so they're all aligned |
21:17 |
sfan5 |
Fixer: indeed, it kinda sucks that those two need to be in a signle columns |
21:17 |
sfan5 |
s/s$// |
21:24 |
Fixer |
Calinou can also look at that I guess |
21:25 |
rubenwardy |
paramat, reviewed |
21:28 |
Fixer |
celeron55: with if method, it seems I have more jitter |
21:29 |
Fixer |
compared to sleep 15 |
21:32 |
Fixer |
will try to benchmark it |
21:37 |
paramat |
ok |
21:40 |
Fixer |
jitter indeed pretty close to unfixed one with IF method, will try again |
21:40 |
Fixer |
also visible by eye compared to sleep 15 |
21:40 |
Fixer |
map loading is faster |
21:41 |
Fixer |
but jitter ... :( |
21:41 |
Fixer |
one more try |
21:47 |
|
Fixer joined #minetest-dev |
21:51 |
Fixer |
with if (!m_mesh_update_thread.m_queue_out.empty()) jitter is slightly better than original game (has visible stutter), much worse than sleep 15, after looking at fraps data |
21:52 |
paramat |
i'm testing too |
21:54 |
Fixer |
standard dev was ~5.3 both two runs with this IF method, standard game is about ~5-6 too, so not much win |
21:54 |
celeron55 |
what does the mesh update graph look like? |
21:54 |
Fixer |
sleep 15 gives stand dev 1.65 |
21:55 |
Fixer |
one sec, imgur is slow |
21:57 |
Fixer |
celeron55: https://i.imgur.com/yupq0AO.png |
21:58 |
paramat |
my code https://github.com/paramat/minetest/tree/meshprocess |
21:58 |
paramat |
will test with different values |
21:59 |
paramat |
with max 5 my graph is at solid max like that too, when flying |
22:00 |
Fixer |
mainloop_draw should be without any big spikes |
22:00 |
Fixer |
i still have them when it is set to 1 |
22:01 |
Fixer |
i will try this code, with 5 |
22:01 |
Fixer |
or 3 |
22:02 |
celeron55 |
wait where was the code that sleeps? |
22:03 |
celeron55 |
i can't even find it anymore |
22:03 |
Fixer |
celeron55: in 2011? yes |
22:03 |
Fixer |
one sec, will give you link |
22:04 |
Fixer |
celeron55: https://github.com/minetest/minetest/commit/02006a95402c41833779e3825c44b39d600e566b |
22:05 |
Fixer |
or this https://github.com/minetest/minetest/blob/02006a95402c41833779e3825c44b39d600e566b/src/client.cpp |
22:06 |
Fixer |
it was 50, then reduced to 3ms, then refactored/removed I think |
22:06 |
celeron55 |
so where do you add sleep_ms(15) now? |
22:07 |
Fixer |
celeron55: here http://pastebin.com/raw/D44biexY / modify it to 15 though |
22:08 |
paramat |
i'm just a little concerned about what happens to the queue if the client can't process meshes fast enough for a long time. it seems to prioritise nearby meshes |
22:09 |
celeron55 |
Fixer: what does the graph look like with the sleep, without other limits? |
22:13 |
garywhite |
celeron55: The guys on -project just brought up an interesting topic: Adding sound to the main menu. Thoughts? |
22:13 |
celeron55 |
well i guess you'll try something better than adding demoscene music to it |
22:15 |
paramat |
oh crumbs the music topic. this has been discussed a lot, music is a subgame thing, not an engine thing. i oppose it in mtgame for many reasons |
22:15 |
paramat |
other subgames can use it if they want |
22:15 |
celeron55 |
s/to it/to the engine/ |
22:17 |
Fixer |
celeron55: sleep 15 only on Vanessa survival creative: https://imgur.com/a/9qd0T Singleplayer has much better graph, will post in a sec |
22:18 |
Fixer |
celeron55: in singleplayer https://i.imgur.com/lKkvRHs.png |
22:18 |
Fixer |
celeron55: it can hit 2 or even 5 meshes depending on server, but it is damn smooth |
22:18 |
rubenwardy |
I support main menu music for MTG, but it should follow and suit ingame music |
22:19 |
Fixer |
i already checked few servers with sleep 15 and had very good experience |
22:19 |
garywhite |
Why are you showing the profiler graph from F5? (& yes, I'm not a coder or a developer-type person, but I do know that it's a profiler graph if you press F5 x2) |
22:19 |
Fixer |
fps_max = 100 |
22:19 |
Fixer |
will try paramats one |
22:21 |
celeron55 |
this indicates the spike is somehow caused by mesh generation (something inside MapBlockMesh::MapBlockMesh), not by something that is ran in the main thread, which seems weird |
22:21 |
Fixer |
nope nope nope nope |
22:21 |
Fixer |
i tried paramat IF code with limit at 5 |
22:22 |
Fixer |
lots of stuttering |
22:22 |
Fixer |
no go |
22:22 |
Fixer |
will try 3 |
22:22 |
|
YuGiOhJCJ joined #minetest-dev |
22:22 |
|
proller joined #minetest-dev |
22:23 |
Fixer |
3 - also stuttering |
22:25 |
Fixer |
1 - has less stuttering, but much much more compared to sleep 15 |
22:25 |
Fixer |
i would prefer sleep 15 any day |
22:28 |
Fixer |
yeah, it is noticable even with limit at 1 |
22:30 |
celeron55 |
it seems there could be something in MapBlockMesh::MapBlockMesh that somehow pauses rendering or the main thread |
22:31 |
celeron55 |
it's supposed to be able to be run self-contained in a thread without any outside references, which should allow rendering to happen at regular fps alongside of it |
22:33 |
celeron55 |
and the only point the result should get in touch with the main thread and rendering is the part i originally suggesting throttling |
22:36 |
celeron55 |
time to read through all of the relevant code in irrlicht i guess... |
22:36 |
celeron55 |
well, maybe some day |
22:43 |
* VanessaE |
growls at celeron55 |
22:46 |
|
proller joined #minetest-dev |
23:09 |
|
butchster joined #minetest-dev |
23:26 |
|
paramat joined #minetest-dev |
23:26 |
paramat |
odd, my patch creates quite smooth behaviour for me |
23:26 |
paramat |
apart from an occasional momentary freeze |
23:27 |
red-002 |
#5260 |
23:27 |
ShadowBot |
https://github.com/minetest/minetest/issues/5260 -- Use the `ARRLEN` macro in more places and remove an unused macro. by red-001 |
23:27 |
Fixer |
paramat: with what limit? |
23:28 |
paramat |
5 |
23:28 |
paramat |
need to test more though |
23:28 |
Fixer |
for me even 1 was not good enough |
23:29 |
red-002 |
5260 is quite trivial |
23:29 |
red-002 |
it just removes some code duplication |
23:31 |
paramat |
mtgame is too characterless and universal to have menu music, it woud be good for more specialised subgames though |
23:31 |
paramat |
(would) |
23:31 |
Fixer |
paramat: do you have stutter/jitter in the game without patch? |
23:34 |
paramat |
yes lots |
23:34 |
Fixer |
now try sleep 15 one |
23:34 |
paramat |
i have intel integrated graphics |
23:34 |
Fixer |
do you have nvidia? |
23:34 |
Fixer |
oh |
23:35 |
paramat |
i spend a lot of time flying at high speed over terrain, this probably doesn't help |
23:35 |
paramat |
(while deving mapgens) |
23:36 |
red-002 |
yeah I suppose there isn't anything generic enough for mt-game |
23:37 |
paramat |
mods could supply music though, if there's a lightweight way to play it |
23:38 |
paramat |
in-game music is best done generatively from short samples, to avoid huge music files |
23:38 |
red-002 |
this seems pretty generic https://soundcloud.com/essa-1/generic-game-loop-5-free-to-use?in=essa-1/sets/generic-game-music-loops |
23:39 |
* red-002 |
goes off on a search for the most generic video game music possible |
23:39 |
paramat |
hehe well any music by definition can't be generic |
23:39 |
VanessaE |
originally RBA wanted to suggest Mercury Rain, if I remember right |
23:39 |
VanessaE |
and that was an S3M |
23:39 |
VanessaE |
or some such |
23:41 |
red-002 |
it might be nice to change the speed or something like that when the player gets damaged |
23:41 |
red-002 |
not sure how hard that would be through |
23:42 |
Fixer |
every time i join vanessas servers my GPU fans go crazy |
23:43 |
paramat |
ugh i can't stand this type of stereotyped mainstream movie rigid linking of music to events |
23:43 |
paramat |
the best movie music is fairly independent from on-screen events |
23:43 |
paramat |
like MC's music |
23:44 |
VanessaE |
I don't know what MC music is like but to my mind, music that fits the "theme" of a given area would be enough |
23:44 |
VanessaE |
go into a cave, the music gets "dark" and "broody" |
23:45 |
paramat |
that's also really cheesy |
23:45 |
VanessaE |
up on the surface, bright and happy. at night? gloomy but not "scary" |
23:45 |
red-002 |
that's what people expect music to do |
23:45 |
VanessaE |
paramat: games have been doing this since the early 80's... |
23:45 |
paramat |
i hope not |
23:45 |
paramat |
inly crap games |
23:45 |
paramat |
(only) |
23:46 |
VanessaE |
Super Mario Brothers is a crap game? |
23:46 |
VanessaE |
was* |
23:46 |
paramat |
that kind of arcade game is different |
23:46 |
red-002 |
don't see how |
23:47 |
paramat |
because the whole game is comical and lighthearted, and 'arcady' it works |
23:47 |
VanessaE |
paramat: I assume you would be free to turn the music off if you don't like it... |
23:47 |
VanessaE |
wait what? |
23:47 |
VanessaE |
have you ever played SMB or one of the later iterations? |
23:47 |
red-002 |
since when is minetest anything but lighthearted? |
23:48 |
red-002 |
I mean it's kinda hard to tell the theme |
23:49 |
paramat |
we should stop being concerned with what we imagine people expect from a game, that leads to mainstream game clones, MC broke many expectations and became one of the most successful games ever |
23:49 |
VanessaE |
paramat: "we" should focus on what makes players enjoy the game. |
23:49 |
red-002 |
I'm pretty sure linking music with action has been done since like forever |
23:50 |
paramat |
SMB has a character that works with playful event-based game music, that's not suitable for a sandbox |
23:50 |
VanessaE |
short of somehow improving gameplay (which there isn't that much room for), in-game music generally makes a game more enjoyable |
23:50 |
VanessaE |
um, no |
23:50 |
VanessaE |
SMB's music is not event based (not precisely) |
23:50 |
VanessaE |
as I recall there's only two event that trigger a change in music - super-star power (change in theme), and running out of time (speeds up the main theme, otherwise it's the same), and |
23:51 |
red-002 |
I mean if you don't want music affected by the game then you can just mute the game music and play your own music |
23:51 |
paramat |
'done since forever' (by others) is no good reason in itself |
23:51 |
VanessaE |
otherwise the music is themed according to the environment - underground, above-ground, in water, and a few others. |
23:51 |
VanessaE |
and only the *sound effects* are event-based aside from the two things above., |
23:51 |
paramat |
'you can mute the music' is also no argument for adding a terrible idea |
23:52 |
red-002 |
you don't seem to have a good agrument for why it's a bad idea other then that you think a lot of people do it |
23:52 |
Fixer |
music? you don't even have sound for flowing water, nor your hand display anything when viewed outside /music... |
23:52 |
VanessaE |
a thousand game companies say "terrible idea" is probably wrong. Hell, even first-person shooters have (or had) music. |
23:52 |
paramat |
music reacting to biomes would be stomach-churningly cheesy. MC rightly doesn't do this |
23:53 |
VanessaE |
paramat: no one said biomes. |
23:53 |
red-002 |
and we don't have to copy mt |
23:53 |
red-002 |
mc* |
23:53 |
VanessaE |
just menu, above-ground, underground, maybe something that plays when you're fighting something |
23:53 |
VanessaE |
doesn't need to be much |
23:53 |
red-002 |
^ |
23:53 |
red-002 |
music is meant to set the tone |
23:53 |
paramat |
red depends what you mean by 'it', music can be excellent if done well |
23:54 |
red-002 |
The use of incidental music dates back at least as far as Greek drama. |
23:54 |
red-002 |
if wikipedia is correct |
23:55 |
paramat |
a thousand game companies create mainstream clones with no artistic merit, doesn't make them right |
23:55 |
VanessaE |
I wasn't talking about cloners |
23:55 |
VanessaE |
I was talking about companies that make or made original games |
23:55 |
paramat |
i'm not arguing against all use of music, read back |
23:55 |
VanessaE |
I know, but you said "terrible idea" |
23:56 |
red-002 |
^ |
23:56 |
VanessaE |
that sounds like an argument against music. |
23:56 |
paramat |
no, that was for music being closely tied to events or environments |
23:57 |
red-002 |
... |
23:57 |
paramat |
MC has the right idea, the music is completely independent from events or environments |
23:57 |
red-002 |
or they couldn't be bothered to add it |
23:58 |
paramat |
this reminds me of arguing with RBA :] he had the worst imaginable approach to music in games |
23:58 |
VanessaE |
heh |
23:58 |
red-002 |
really I dom't think there is any point to music otherwise |
23:58 |
red-002 |
don't* |
23:58 |
VanessaE |
looking at http://minecraft.gamepedia.com/Music it would appear you're not entirely right about MC music |
23:59 |
VanessaE |
paramat: ^ |
23:59 |
VanessaE |
some of MC's music IS environment-oriented. |
23:59 |
paramat |
visuals too we were polar opposites |
23:59 |
paramat |
oh ok |
23:59 |
red-002 |
well good background music is not obvious |
23:59 |
paramat |
not in an overly obvious stereotyped way |