--- Log opened Tue Sep 05 00:00:45 2017 |
00:05 | < Mahal> | so if the LG is on the network, it'll drag anything else down to N-only. Just FYI. |
00:05 | < Mahal> | (wifi networks on a/b/g/n auto-negotiate to the shittiest device's requirements) |
00:06 | < Mahal> | this is why my home wifi has two networks - home and home-5g |
00:07 | <&[R]> | N isn't the best? |
00:07 | <&[R]> | What is? |
00:08 | <&[R]> | (Also the Tab A is my main device) |
00:10 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
00:11 | < Mahal> | I meant if you have a wifi network that does a/n it'll drag down to N if the LG is on the network. |
00:12 | <&[R]> | Okay, I was only using the LG for testing, so A is the best of the set? |
00:12 | < Mahal> | Yup. |
00:12 | < Mahal> | Or the Note 3. |
00:12 | < Mahal> | but leave the LG out of the equation. |
00:12 | < Mahal> | (For now) |
00:12 | <&[R]> | AP can't do A anyways |
00:12 | <&[R]> | :p |
00:14 | < Mahal> | I'd also take everything but *one* access point out of the equation. |
00:14 | < Mahal> | get it working simply first, then add other devices to confuse things up later |
00:16 | <&[R]> | That's what I did |
00:16 | <&[R]> | I've only got one AP working right now |
00:21 | <&[R]> | Yeah, the APs all are limited to b/g/n |
00:21 | <&[R]> | As per their spec sheets |
00:47 | <&[R]> | MONKEY |
00:47 | <&[R]> | Ignore that |
00:48 | <@Alek> | HATE webp |
00:48 | <@Alek> | oh hey, Note 3. Still using mine nearly 4 years in. Love it, but it's showing its age.... the battery is about as good as it was from the factory (I got an OEM replacement that lasts just as long), it's the phone itself that burns power much faster. :/ |
00:52 | | Jessikat [Jessikat@Nightstar-bt5k4h.81.in-addr.arpa] has quit [Connection closed] |
00:53 | | Jessikat [Jessikat@Nightstar-hojksd.dab.02.net] has joined #code |
01:14 | <&Derakon> | Let's say I have a map like this: http://i.imgur.com/irQbxq6.png |
01:14 | <&Derakon> | I want to create terrain for this map. |
01:15 | <&Derakon> | Let's define a "chunk" of the map as one square. I have a set of algorithms that each can convert some rectangular grid of chunks into terrain. |
01:15 | <&Derakon> | I'm trying to come up with a good way to define whether or not a given chunk can fit in a given position. |
01:15 | <&Derakon> | Constraints include: |
01:16 | <&Derakon> | - can only use chunks from the current room and as-yet unallocated (black background) chunks |
01:16 | <&Derakon> | - can only connect to other chunks in a somehow-defined manner |
01:16 | <&Derakon> | - if a lock is present (triangle going across the door), chunk must be compatible with that kind of lock |
01:17 | <&Derakon> | ...sorry, the problem is to define whether or not a given chunk group can fit, with a chunk group being a rectangular selection of chunks. |
01:18 | <&Derakon> | Chunk groups have defined min and max widths and heights; they may or may not be of fixed size. |
01:18 | <&Derakon> | ...that might not be a hard constraint, but I'd rather not have every chunk group have a fixed size, I feel like it'd make things monotonous eventually. |
01:19 | <&Derakon> | So yeah, I want some general-purpose way to configure how a given ChunkGroup can be placed into the map. |
01:20 | <&Derakon> | I can probably muddle my way through to something, but if any of y'all have any insight, lay it on me. |
01:21 | <&McMartin> | This sounds suspiciously like a bin-packing problem |
01:22 | <&Derakon> | I believe I can get away with a greedy algorithm. |
01:22 | <&Derakon> | So long as I have a simple 1x1 chunkgroup that can accept connections on all borders. |
01:23 | <@Alek> | Looks like classic metroidvania map creation, only using an algorithm instead of premade maps. I look forward to the results. |
01:24 | <&Derakon> | That's the idea, yeah. |
01:24 | <@Alek> | any reason you couldn't adapt horizontal mapping algorithms to the vertical? I'm sure they exist... |
01:25 | <&Derakon> | Horizontal mapping algorithms? |
01:25 | <@Alek> | placing rooms in a dungeon. |
01:25 | <@Alek> | etc. |
01:25 | <@Alek> | Roguelike stuff. |
01:26 | <@Alek> | maybe even Diablolike. :P |
01:26 | <&Derakon> | Everything I've seen has lacked the high-level structure necessary to define a metroidvania progression. |
01:26 | <&Derakon> | I've written extensively about that here: https://forums.somethingawful.com/showthread.php?threadid=3832387 |
01:26 | | * Alek reads |
01:26 | <@Alek> | wait crap, needs registration. |
01:27 | <&Derakon> | Ah, yes, sorry. |
01:27 | <@Alek> | I've gone this long without a SA account... >_> |
01:27 | <&ToxicFrog> | The Dredmor approach is just to have a shitton of prefab rooms, and try a bunch of rooms in any given location until you find one that makes valid connections to its neighbors, and then do a second pass on the room interiors to add locks and treasures and stuff; making that many prefabs is hard, though |
01:27 | <&Derakon> | TF: and it also doesn't produce the high-level structure I need. |
01:27 | <@Alek> | what do you mean by high-level structure though? |
01:28 | <&ToxicFrog> | Especially since for this you would have to have different sets for, e.g., "rooms navigable by anyone" vs "rooms navigable only using the double jump", since that can't be enforced by the high-level structure or second-pass lock addition |
01:28 | <&ToxicFrog> | (although stuff like "opening this door requires the power bombs" can be) |
01:28 | <@Alek> | ooh, that's a good point. requirements. |
01:28 | <&Derakon> | Breaking a continuous world into discrete-but-connected regions, where the player often returns to a previous region, but must navigate regions in a defined order. |
01:29 | <&Derakon> | Your average roguelike dungeon features completely undirected exploration; any given bit of dungeon is basically like the rest |
01:29 | <&Derakon> | Notable features are typically hardcoded. |
01:29 | | * Alek nods |
01:29 | <@Alek> | right, right. |
01:29 | <&ToxicFrog> | Derakon: in principle the "high-level structure" can be enforced by that second-pass lock addition, but then they become, well, really obvious locks |
01:29 | <&Derakon> | TF: not just that, but exploration of such a map would tend to be very linear. |
01:29 | <&ToxicFrog> | Rather than "this area needs double jump to navigate" you end up with "there is a single map-tile of double-jump-mandatory terrain at each entrance to this area" |
01:29 | <&Derakon> | Speaking from experience, it's hard to bake in good loops into a map that isn't built with loops in mind. |
01:30 | <@Alek> | I think one of the GBA metroid games had multiple-tier locks for that. |
01:30 | <&ToxicFrog> | The loops are generated by the high level map generator, though |
01:30 | <&ToxicFrog> | I don't follow your objection here. |
01:30 | <@Alek> | and you had to get a cannon upgrade to unlock each successive tier, which gated the requirement progression. |
01:31 | <&Derakon> | TF: mm, maybe we're talking past each other. :\ |
01:31 | <&Derakon> | Anyway, I have a high-level map with structure I'm satisfied by; the problem now is filling in the details. |
01:31 | <&ToxicFrog> | Yes. |
01:31 | <&ToxicFrog> | That was my understanding. |
01:32 | <&ToxicFrog> | Which is why I'm confused, because the loops, ordering requirements, and lock placement requirements already exist in that high-level structure. |
01:32 | <&Derakon> | And I'd like a general-purpose "figure out what bit goes where" algorithm that takes a list of generator funcs and the config that dictates the prerequisites for using a given generator. |
01:32 | <&ToxicFrog> | The low-level structure is required to implement most of those requirements, but they already exist. |
01:33 | <&[R]> | Derakon: have you read squidi.net at all (the 300 project) |
01:33 | <&Derakon> | The requirements exist, but matching them to the low-level structure generators is a hairy problem. |
01:33 | <@Alek> | Hm. how about multiple mapping passes? first pass adds the basic rooms, second pass adds the rooms that require the first upgrade, third pass adds rooms that require the second upgrade, etc. |
01:33 | <&Derakon> | R: no, I have not. |
01:33 | <&[R]> | He covers something like this, not sure if it has the details you need though |
01:33 | <&Derakon> | Alek: doesn't solve anything, really. |
01:33 | <&Derakon> | Plus you want to put the lock rooms down first, so they have the most freedom of placement. |
01:33 | <&Derakon> | R: do you know where specifically he covered it? |
01:34 | <&[R]> | There's multiple articles that'll be relevant |
01:35 | <&ToxicFrog> | Derakon: so, I've now completely lost track of which part you're stuck on. I thought it was just generating the low-level terrain. |
01:35 | <&ToxicFrog> | Well, "just" |
01:35 | <&Derakon> | TF: it is, yeah. Let's say I have a generator function that can build Speed Booster locks. |
01:35 | <&Derakon> | It requires at least 2 horizontal tiles' worth of space, and 1 vertical tile. |
01:36 | <&Derakon> | And the lock has to be at either horizontal end of this corridor. |
01:36 | <&Derakon> | It doesn't really care about other connections -- they can come in from above, below, the opposite end of the lock. |
01:36 | <&Derakon> | Now I'm looking at my map, and saying "What generator functions can I use for this specific part of the map?" |
01:37 | <&[R]> | http://www.squidi.net/three/entry.php?id=4 <-- covers how to make locked rooms in the PG map |
01:37 | <&Derakon> | And I don't want to have to write out test-fit functions for every generaetor function. |
01:37 | <&[R]> | http://www.squidi.net/three/entry.php?id=158 <-- expansion on that |
01:37 | <&Derakon> | I'd like to be able to have a blob of data that I can match against the map configuration to find which generators are viable. |
01:37 | <&Derakon> | R: thanks, will look. |
01:38 | <&[R]> | http://www.squidi.net/three/entry.php?id=160 <-- same deal |
01:38 | <&[R]> | http://www.squidi.net/three/entry.php?id=124 <-- randomly generated metroidvania |
01:40 | <&Derakon> | Mm, that's a substantially simplified approach. |
01:40 | <&Derakon> | It's broadly the prefab approach that Dredmor uses, but all the prefabs are the same size. |
01:42 | <@Alek> | I remember reading of a card-based dungeon generator (physical) back in the last millennium. you'd pull a card and draw the room or hall on map paper, keep going to generate your dungeon while you had open doorways. |
01:43 | <@Alek> | very basic stuff tho. |
01:46 | < RchrdB> | Too tired right now to read all the scrollback, but have you read about Spelunky's level generation? I thought I remembered reading they did something slightly odd and very clever kind of like "generate a random level, then simulate an AI navigating it to prove that it's possible to complete it without any tools. If it isn't winnable, perturb or re-seed the generator and try again" |
01:46 | <&Derakon> | Spelunky uses prefabs, actually. |
01:46 | <&Derakon> | It's just very clever about it. |
01:47 | <&Derakon> | It goes to a lot of work to disguise the prefabs, and they're very carefully-designed to be versatile and widely-applicable. |
01:47 | <&ToxicFrog> | Alek: all of this boils down to "fit prefabs together", i.e. the Dredmor approach cited earlier |
01:47 | < RchrdB> | Derakon, ah! |
01:47 | < RchrdB> | dang |
01:47 | <&Derakon> | I think there's also some kind of pathfinding test, like you said; in particular, the ice caves need a maximum fall height test. |
01:47 | <&ToxicFrog> | Which is quick and easy for bashing something together for testing, but making the results look and play will requires a shitload of prefabs of varying sizes and all tagged/constrained appropriately |
01:48 | <&Derakon> | I mean, I'm kind of resigned to making a ton of prefabs anyway, but with the added complication that they aren't prefabs, they're custom generators tailored to make a specific kind of room. |
01:48 | <&Derakon> | So instead of "room with table and chairs" you have "function that produces dining rooms in a variety of shapes and sizes". |
01:48 | <&ToxicFrog> | Dredmor has ~500 prefabs, and you start noticing repetitions pretty quickly -- and it doesn't need to worry about ordering or navigability constraints. |
01:53 | | RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Ping timeout: 121 seconds] |
02:02 | | himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has joined #code |
02:02 | | mode/#code [+o himi] by ChanServ |
03:17 | <&Derakon> | In unrelated news, my map generator passed 3k lines of code. All Python. |
03:18 | <&Derakon> | If/when I ever tack an actual game onto this thing, I may have to port the generator to C#. |
03:18 | <&Derakon> | I don't know if Unity can call out to Python, but in any case I'd rather not leave the generator's source code lying around where anyone can read it, considering the effort I'm putting into it. |
03:28 | <&[R]> | GPL the sucker and be done with it |
03:30 | <&Derakon> | Nah. |
03:50 | <@Reiv> | Not trying for open-source this time, Der? |
04:03 | <&Derakon> | No, I'm not. |
04:03 | <&Derakon> | The difficulty with open-source being, if you want people to actually useit, then you have to build a community and then moderate said community. |
04:03 | <@celticminstrel> | I suppose it's technically possible to distribute pre-compiled Python maybe... |
04:03 | <&Derakon> | celticminstrel: it is, yes. |
04:03 | <@celticminstrel> | Assuming .pyc files are platform-agnostic. |
04:03 | <&Derakon> | There are programs out there that will turn your Python program into a standalone executable, even. |
04:03 | <&Derakon> | (A platform-specific executable, that is) |
04:04 | <@celticminstrel> | I know. |
04:04 | <@celticminstrel> | No idea if they actually strip out the textual source code though. |
04:04 | <&Derakon> | Anyway, if/when the game takes off, I can open-source parts of it if I feel like it, and be reasonably confident that there'll be a community interested in the code. |
04:04 | <&Derakon> | I don't see much point in open-sourcing before that point. |
04:05 | <@Alek> | There were programs that would do the same with BASIC - turn it into an executable. :D |
04:05 | <&Derakon> | Maybe one or two people will look at the code, which has pretty low value...and in exchange I'd lose a lot of power. |
04:05 | <@celticminstrel> | BASIC doesn't really count. |
04:05 | <@Alek> | you could make full, deep games or applications in it. why doesn't it count? |
04:06 | <@Reiv> | You make a fair point, Derakon. |
04:47 | | ion [Owner@Nightstar-gmbj85.vs.shawcable.net] has quit [[NS] Quit: s/byte/bye] |
04:53 | <&McMartin> | BASIC has been a compiled language for a long, long, long time. |
04:54 | <&McMartin> | Py2Exe is... kind of a horrible hybrid technology of some kind, but it does work |
05:00 | | Derakon is now known as Derakon[AFK] |
05:03 | <~Vornicus> | pycs are also platform agnostic. |
05:08 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
05:11 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
05:11 | | mode/#code [+o Alek] by ChanServ |
05:38 | <@celticminstrel> | Alek: Basically what McM said. |
05:48 | | celticminstrel [celticminst@Nightstar-1vj9md.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:51 | <@Alek> | fair. |
06:00 | | Jessikat [Jessikat@Nightstar-hojksd.dab.02.net] has quit [The TLS connection was non-properly terminated.] |
06:00 | | Jessikat [Jessikat@Nightstar-hojksd.dab.02.net] has joined #code |
06:37 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] |
06:59 | | Jessikat [Jessikat@Nightstar-hojksd.dab.02.net] has quit [The TLS connection was non-properly terminated.] |
07:00 | | Jessikat [Jessikat@Nightstar-hojksd.dab.02.net] has joined #code |
07:02 | | ion [Owner@Nightstar-gmbj85.vs.shawcable.net] has joined #code |
07:10 | | Jessikat` [Jessikat@Nightstar-b21.jtr.132.82.IP] has joined #code |
07:13 | | Jessikat [Jessikat@Nightstar-hojksd.dab.02.net] has quit [Ping timeout: 121 seconds] |
07:46 | | Kindamoody[zZz] is now known as Kindamoody |
08:09 | | Jessikat` is now known as Jessikat |
09:16 | | himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds] |
10:27 | | Kindamoody is now known as Kindamoody|afk |
11:54 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code |
11:54 | | mode/#code [+o himi] by ChanServ |
13:23 | <@TheWatcher> | For some reason, any time I see the acronym NFC I never parse it as "near field communication", it's always "no fucking clue"... |
13:36 | | * abudhabi headscratches. |
13:37 | <@abudhabi> | I'm trying to filter a list of numbers depending on whether I have a file related to that number. I want to skip over those I already have. |
13:37 | <@abudhabi> | interesting_numbers = [i for i in interesting_numbers if not isfile(dump_folder + '.html')] |
13:37 | <@abudhabi> | What am I doing wrong here? |
13:38 | <@abudhabi> | OK, found it. |
13:38 | <@abudhabi> | Thanks, guys! |
13:38 | <@TheWatcher> | Anytime~ |
13:40 | | Jessikat` [Jessikat@Nightstar-0v950i.dab.02.net] has joined #code |
13:42 | | Jessikat [Jessikat@Nightstar-b21.jtr.132.82.IP] has quit [Ping timeout: 121 seconds] |
14:46 | | Netsplit Golgafrincham.Nightstar.Net <-> Traal.Nightstar.Net quits: @[R], @PinkFreud, @Alek, @crystalclaw, @Orthia, @ToxicFrog, @Vornicus, @starkruzr, Mahal, @Derakon[AFK], (+14 more, use /NETSPLIT to show all of them) |
14:46 | | Netsplit over, joins: Mahal, &jerith, @PinkFreud, &[R], ~Vornicus, @Orthia, &ToxicFrog, @Syloq, &Derakon[AFK], &starkruzr (+13 more) |
14:47 | | mode/#code [+ao VirusJTG VirusJTG] by ChanServ |
14:47 | | Netsplit over, joins: VirusJTG |
14:51 | <@abudhabi> | https://www.youtube.com/watch?v=Xq3isov6mZ8 |
--- Log closed Tue Sep 05 16:11:17 2017 |
--- Log opened Tue Sep 05 16:32:55 2017 |
16:32 | | TheWatcher [chris@GlobalOperator.Nightstar.Net] has joined #code |
16:32 | | Irssi: #code: Total of 33 nicks [26 ops, 0 halfops, 0 voices, 7 normal] |
16:32 | | mode/#code [+o TheWatcher] by ChanServ |
16:33 | | Irssi: Join to #code was synced in 61 secs |
17:59 | | Degi [Degi@Nightstar-ln7ajd.dyn.telefonica.de] has joined #code |
19:04 | | Jessikat [Jessikat@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
19:06 | | Jessikat` [Jessikat@Nightstar-0v950i.dab.02.net] has quit [[NS] Quit: Bye] |
20:17 | | RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code |
20:26 | | Kindamoody|afk is now known as Kindamoody |
21:47 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
21:51 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
21:51 | | mode/#code [+o Alek] by ChanServ |
22:01 | | macdjord [macdjord@Nightstar-ahbhn1.cable.rogers.com] has quit [[NS] Quit: Wenn ist das Nunstück git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput] |
22:03 | | Vorntastic [Vorn@Nightstar-7cgtkn.sub-174-199-26.myvzw.com] has joined #code |
22:10 | | Vorntastic [Vorn@Nightstar-7cgtkn.sub-174-199-26.myvzw.com] has quit [[NS] Quit: Bye] |
22:15 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code |
22:15 | | mode/#code [+o Reiv] by ChanServ |
23:59 | | Degi [Degi@Nightstar-ln7ajd.dyn.telefonica.de] has quit [[NS] Quit: Leaving] |
--- Log closed Wed Sep 06 00:00:46 2017 |