code logs -> 2017 -> Wed, 08 Nov 2017< code.20171107.log - code.20171109.log >
--- Log opened Wed Nov 08 00:00:04 2017
00:00 Kindamoody|autojoin is now known as Kindamoody[zZz]
00:19 Jessikat [Jessikat@Nightstar-bt5k4h.81.in-addr.arpa] has quit [Connection closed]
00:46 Derakon[AFK] is now known as Derakon
00:51 celticminstrel [celticminst@Nightstar-g63802.dsl.bell.ca] has joined #code
00:51 mode/#code [+o celticminstrel] by ChanServ
01:00 celticminstrel [celticminst@Nightstar-g63802.dsl.bell.ca] has quit [Ping timeout: 121 seconds]
01:02 celticminstrel [celticminst@Nightstar-5npa6n.dsl.bell.ca] has joined #code
01:02 mode/#code [+o celticminstrel] by ChanServ
01:23 mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code
01:23 mode/#code [+o mac] by ChanServ
01:26 macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
01:47 macdjord|slep [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code
01:48 mode/#code [+o macdjord|slep] by ChanServ
01:50 mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
03:38 celmin [celticminst@Nightstar-1rm87u.dsl.bell.ca] has joined #code
03:38 mode/#code [+o celmin] by ChanServ
03:38 celticminstrel [celticminst@Nightstar-5npa6n.dsl.bell.ca] has quit [NickServ (RECOVER command used by celmin)]
03:38 celmin is now known as celticminstrel
03:42 celticminstrel [celticminst@Nightstar-1rm87u.dsl.bell.ca] has quit [Ping timeout: 121 seconds]
03:48 macdjord|slep is now known as macdjord
05:17 Derakon is now known as Derakon[AFK]
05:22 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Connection closed]
05:37 Kindamoody[zZz] [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
05:38 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
05:38 mode/#code [+o Kindamoody|autojoin] by ChanServ
06:00 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
06:01 mode/#code [+qo Vornicus Vornicus] by ChanServ
06:11 Vornlicious [Vorn@Nightstar-d8fil4.sub-70-197-64.myvzw.com] has joined #code
06:13 Vorntastic [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
06:28 Vornlicious [Vorn@Nightstar-d8fil4.sub-70-197-64.myvzw.com] has quit [The TLS connection was non-properly terminated.]
06:41 Vorntastic [Vorn@Nightstar-d8fil4.sub-70-197-64.myvzw.com] has joined #code
06:48 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
06:51 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
06:51 mode/#code [+o Alek] by ChanServ
09:15 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
09:28 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
09:29 mode/#code [+o Kindamoody|autojoin] by ChanServ
09:33 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
09:38 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
09:38 mode/#code [+o Kindamoody|autojoin] by ChanServ
09:45 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
10:28 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
10:28 mode/#code [+o Kindamoody|autojoin] by ChanServ
10:33 macdjord is now known as macdjord|slep
10:40 Jessikat [Jessikat@Nightstar-3gflgu.dab.02.net] has joined #code
10:40 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
10:41 Kindamoody|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
10:41 mode/#code [+o Kindamoody|autojoin] by ChanServ
11:11 Cwe_chnz [ircex@Nightstar-r40v7s.three.co.id] has joined #code
11:14 Cwe_chnz [ircex@Nightstar-r40v7s.three.co.id] has quit [Connection closed]
11:47 Kindamoody|autojoin is now known as Kindamoody
12:01
<&[R]>
"If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one?" — Tom Cargill, 1990
12:11
< Jessikat>
Quite
12:12
< Jessikat>
And the answer is never, stop using inheritance.
12:13
<&[R]>
But C++ mixins require inheritance.
12:14
< Jessikat>
Stop it
12:14
< Vorntastic>
I find myself pondering once again programming languages writable on mobile
12:15
< Jessikat>
C++ is a stupid language that traps clever people and steals their time and sanity
12:15
< Jessikat>
And yet is still probably the most sensible choice for work requiring tight performance
12:15
< Jessikat>
Sigh
13:48
<&ToxicFrog>
Vorntastic: as in, stuff you can reasonably program in using only a cellphone?
13:49
< Vorntastic>
Yes
13:51
< Vorntastic>
Ideally such that I can then edit in a standard text editor when I get home
13:54
<&ToxicFrog>
Setting aside all the issues of keyboard and getting files to and from the phone, JS is the obvious choice because you already have a known-good JS interpreter installed (the browser)
14:05
<@TheWatcher>
Yeah, but debugging JS on a phone?
14:05
<@TheWatcher>
Is it even possible to get an inspector on one?
14:05
<@TheWatcher>
(If so, I'd really like to know how!)
14:07
<&ToxicFrog>
Chrome at least only supports remote debugging
14:10
<@abudhabi>
[R]: I suspect those qualifiers aren't all legal in the same declaration.
14:31 Jessikat` [Jessikat@Nightstar-183a7n.dab.02.net] has joined #code
14:34 Jessikat [Jessikat@Nightstar-3gflgu.dab.02.net] has quit [Ping timeout: 121 seconds]
14:45 Vorntastic [Vorn@Nightstar-d8fil4.sub-70-197-64.myvzw.com] has quit [Connection closed]
14:46 Vorntastic [Vorn@Nightstar-d8fil4.sub-70-197-64.myvzw.com] has joined #code
15:01
< Jessikat`>
Protected abstract virtual base refers to the superclass
15:01
< Jessikat`>
Pure virtual private destructor is the method
15:02
< Jessikat`>
It means that you cannot instantiate the abstract base class and by extension its subclasses
15:03
< Jessikat`>
If you are building these monstrosities then you likely aren't achieving much anyway
15:03 Jessikat` is now known as Jessikat
15:04
< Jessikat>
Hm, though if you are inheriting the protected destructor in theory this just means you can't destroy *this* instance
15:04
< Jessikat>
tl;dr this just illustrates my earlier point
15:05
<@abudhabi>
Is there any way to make Chrome on my tablet pretend it's not on a mobile device?
15:10 Degi [Degi@Nightstar-v1038d.dyn.telefonica.de] has joined #code
15:11 Vorntastic [Vorn@Nightstar-d8fil4.sub-70-197-64.myvzw.com] has quit [[NS] Quit: Bye]
15:11 Vorntastic [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
15:20 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
15:22
<&ToxicFrog>
abudhabi: threedots menu, "request desktop site"
15:24
<@abudhabi>
Thanks!
15:26
<@abudhabi>
How do I install the WidevineCdm component on my tablet's Chrome?
15:30
<&ToxicFrog>
No idea. I recommend pirating drm-free versions of whatever content you are trying to consume.
16:19
<@abudhabi>
Might as well, but it's highly annoying that I can't watch netflix in my browser, and the app requires my soul AND my firstborn to run.
17:23 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
19:25 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Ping timeout: 121 seconds]
19:37 Jessikat` [Jessikat@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
19:55 Jessikat [Jessikat@Nightstar-183a7n.dab.02.net] has quit [[NS] Quit: Bye]
19:55 Jessikat [Jessikat@Nightstar-183a7n.dab.02.net] has joined #code
19:55 Jessikat [Jessikat@Nightstar-183a7n.dab.02.net] has quit [[NS] Quit: Bye]
20:20
<&ToxicFrog>
Ok so.
20:21
<&ToxicFrog>
ttymor.lua implemented the map as a grid of lists of entities. Terrain was included in the entity lists. It was possible for one entity to exist in multiple cells, so e.g. every floor tile in the game was the same entity, since floors are immutable.
20:22
<&ToxicFrog>
ttymor.clj is still up in the air.
20:22
<&ToxicFrog>
From a rendering perspective, it doesn't matter; the rendering API is basically (setChar x y char) so no matter what I do it's going to involve either updating the framebuffer whenever a cell changes, or walking the entire grid and building the framebuffer every time we draw.
20:23
<&ToxicFrog>
For pathfinding and LOS, though, the library I'm using is Opinionated.
20:24
<&ToxicFrog>
LOS in particular wants a float[][] of opacity values, and returns a float[][] of light levels.
20:24
<&ToxicFrog>
Pathfinding wants either a float[][] of path costs, or a char[][] of actual terrain accompanied by a map[char => float] and it does the conversion for you.
20:28
<&ToxicFrog>
There's also a utility function to convert a char[][] into an opacity map, but it's not configurable -- it treats # and + as opaque and everything else as transparent.
20:31
<&ToxicFrog>
So it's kind of pushing me towards having a char[][] for the terrain map, and then I can pass that to calculateResistances and suchlike
20:32
<&McMartin>
I see both Lua and Clojure mentioned here; are you using some automatic method for navigating the JNI layer on the Clojure side?
20:36
<&ToxicFrog>
They are disjoint; I'm rewriting a lua prototype in clojure, after realizing that clojure's library game for stuff like shadowcasting FOV and Dijkstra mapping is much stronger than Lua's.
20:37
<&McMartin>
Aha, OK.
20:37
<&McMartin>
So "the JIT, straight up" or "having someone else have written the bindings already".
20:37
<&McMartin>
Both fine techniques!
20:37
<&ToxicFrog>
What?
20:37
<&ToxicFrog>
Bindings to what?
20:37
<&McMartin>
"For pathfinding and LOS, though, the library I'm using is Opinionated"
20:37
<&ToxicFrog>
The only cross-laguage calls happening here are clojure<->java
20:37
<&ToxicFrog>
The library is written in java
20:38
<&ToxicFrog>
Access to that library at all is one of the reasons for moving to clojure
20:38
<&McMartin>
That's the "the JIT, straight up"
20:38
<&McMartin>
My initial reading did not include the "disjoint" part, which meant that the core library was probably exposing a C API, because Lua
20:39
<&ToxicFrog>
Aah
20:40
<&ToxicFrog>
The libraries in play here are squidlib-util (pathfinding, FOV/LOS, a bunch of other stuff I'm not using like dungeon generation) and lanterna (curses-alike, with a GUI library on top and the option of running its own built in terminal emulator rather than using /dev/tty)
20:41 * McMartin nods
20:42
<&ToxicFrog>
Probably the appraoach that most closely matches what I was doing in lua is to have the map be a grid of lists of entities + two double[][]s for LOS and path information, and when a map cell is updated, update the arrays too
20:42
<&ToxicFrog>
I'm not sure that's actually the best option
20:42
<&ToxicFrog>
OTOH if I sort out the map API properly I can shuffle it around later with minimal disruption
20:43 * McMartin nods
20:43
<&ToxicFrog>
(the lua version -- to the extent it did pathfinding/los at all, which it didn't really -- calculated all of this on the fly by sending <path> and <sight> messages to everything in the map cell at issue)
20:44
<&ToxicFrog>
(so I guess the other thing I could do is generate the maps on the fly as needed, and discard them when done, which on the one hand means I don't have this big chunk of mutability lying around, but on the other hand means I'm constantly allocating and destroying it)
20:46
<&McMartin>
(ISTR Clojure's data structure library being Very Good At Splitting That Difference)
20:46
<&ToxicFrog>
(clarify?)
20:47
<&McMartin>
("Given this data structure, give me a modified version of it, both immutable" with maximized sharing between the two.)
20:47
<&ToxicFrog>
Given all this I don't think keeping a char[][] around for the terrain buys me much; it either duplicates stuff already in the entity grid, or requires special casing, and the squidlib helper functions don't cope well with stuff like "this bit of floor can be seen through and shot through but not pathed through".
20:48
<&ToxicFrog>
(Oh, yes, but when I say double[][] I literally mean that data type, a 2d Java array of doubles)
20:48
<&McMartin>
(... right then, yes, that is an issue)
20:48
<&ToxicFrog>
(because that is what the API for this library expects, because it is written entirely in Java)
20:50
<&ToxicFrog>
So I mean, on the one hand this is a turn-based game and the biggest map I expect to see is 100x100, and generating the map is O(n) in the total number of entities on the map, which isn't too bad
20:51
<&ToxicFrog>
OTOH it potentially needs to be used for every active enemy (the pathfinding map, anyways)
20:51
<&McMartin>
This to me suggests "start with some encapsulated mutability at first"
20:51
<&ToxicFrog>
Yeah
20:53
<&ToxicFrog>
Maybe a map has the grid, double[][]s for visibility and each kind of pathfinding, and an API for handling the latter with tongs
20:53
<&ToxicFrog>
Basically anything that "modifies" the map also updates the vismap and pathmap.
20:55
<&McMartin>
The tongs make hiding the mutability a bit easier too.
20:55
<&McMartin>
You can even secretly become COW later if you need functional-like behavior
20:56
<&ToxicFrog>
I probably won't but it might be neat to be able to rewind the game
20:57
<&ToxicFrog>
So given this, I think my next step is to actually get started on the map API and update my prototype in light of that
20:57
<&ToxicFrog>
And once I have that I can clean up the MapViewer a bit, then poke at the entity/component/message API and see how much of it is useful to bring over from the lua version.
20:58 * McMartin nods
21:03 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Connection closed]
21:06 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
21:06 mode/#code [+o Kindamoody] by ChanServ
21:22 macdjord|slep is now known as macdjord
21:51 gnolam [quassel@Nightstar-e9kifc.cust.bredband2.com] has joined #code
21:51 mode/#code [+o gnolam] by ChanServ
22:02 Degi [Degi@Nightstar-v1038d.dyn.telefonica.de] has quit [[NS] Quit: Leaving]
22:59 Derakon[AFK] [Derakon@Nightstar-fr5qel.ca.comcast.net] has quit [Ping timeout: 121 seconds]
23:03 Derakon [Derakon@Nightstar-fr5qel.ca.comcast.net] has joined #code
23:04 mode/#code [+ao Derakon Derakon] by ChanServ
23:17 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Connection closed]
23:36 gnolam [quassel@Nightstar-e9kifc.cust.bredband2.com] has quit [[NS] Quit: Z?]
--- Log closed Thu Nov 09 00:00:05 2017
code logs -> 2017 -> Wed, 08 Nov 2017< code.20171107.log - code.20171109.log >

[ Latest log file ]