#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2015-05-22

Timestamps are in GMT/BST.

00:31:08BFLogBot Commit: a81730a483 | Author: buckyballreaction | Message: Housekeeping. Move library includes into the lib directory to clean-up our root directory a little. A CMake re-run from scratch will be required
00:36:19raptornight!
00:36:22raptor Quit ()
03:10:30Nothing_Much Quit (Remote host closed the connection)
03:22:57Flynnn has joined
05:54:50LordDVG has joined
06:27:02Flynnn Quit (Quit: This computer has gone to sleep)
06:45:45Flynnn has joined
06:46:13Flynnn Quit (Client Quit)
07:36:32LordDVG Quit (Ping timeout: 264 seconds)
07:47:51empyrean has joined
07:49:35LordDVG has joined
09:34:52koda has joined
10:41:24empyrean Quit (Remote host closed the connection)
11:53:21Nothing_Much has joined
11:55:44raptor has joined
11:55:44ChanServ sets mode +o
12:51:02Flynnn has joined
13:00:34Flynnn Quit (Quit: This computer has gone to sleep)
13:47:25watusimoto has joined
13:47:25ChanServ sets mode +o
14:08:14watusimotohello
14:08:19raptorhi
14:08:22watusimotoI forged on with physfs a bit last night
14:08:26watusimotoand quickly got mired
14:08:40watusimotoEveryone has their own stream....
14:08:51watusimotoso physfs can create a stream
14:08:56watusimotoand alure and consume a stream
14:09:11watusimotobut a physfs stream is not the same as an alure stream
14:09:38watusimotoso I conclude I need to learn more about streams
14:09:49raptorah, ok
14:10:01raptori did a lot with stream in java
14:10:35raptorbasically, they boil down to 2 things: a long line of data; how to interpret the data
14:10:41watusimotoyes
14:10:56raptor'everything is a byte stream' is what i'd tell myself
14:11:07raptornow what to do about those pesky bytes
14:11:22raptorlong story short... i don't like streams
14:11:32watusimotounfortunately the alstream (which I think is what we want) is abstract... the implementations seem to be format specific, like a wav_stream and such
14:11:55watusimotoand we don't want to get into the details of file formats
14:11:58raptorwhy are you caring about an audio stream for physfs?
14:12:25watusimotoif we want to load a sound file from a physfs file, stream seems to be the best way
14:12:50watusimotounless, I suppose, there is a way to get an absolute filepath to the phsyfs file, which for some reason didn't occur to me until just now
14:12:55watusimotodespite it being so obvious
14:14:23watusimotolike if only there were this function: PHYSFS_getRealDir
14:14:42watusimotobecause then my stream problem would simply go away
14:15:03raptori thought physfs would always return a file (stream or pointer, whatever) then just pump that into the normal alure operations already used
14:15:21raptorheh, yes
14:15:30watusimotoI think it will... I was tired
14:15:48watusimotoI was thinking about streams because I want to migrate our level loading to streams to improve performance
14:16:08raptori did some distro re-org last night, so if you merge, make sure to re-run cmake and compile from scratch
14:16:15watusimotook
14:16:31watusimotoI'm currently thinking we'll use physfs for everything except loading levels
14:16:44raptorstreams wiill only work if the parsing is linear
14:16:59raptoror you'll have to put in complexity to manage the non-linearness
14:17:02watusimotoyou mean the file p;arsing?
14:17:14watusimotoI'll juse use readline, which grabs the next line from a stream
14:17:24watusimotosince our levels are all based on lines, that should work nicely
14:17:52raptornot libreadline, i hope; you mean the function readline()?
14:17:58watusimotoyes
14:18:01raptorok phoew
14:18:02watusimotonot libreadline
14:18:09watusimotoyou think I'm nutz??
14:18:09raptori had envisioned a nightmare
14:18:54watusimotoI think I'm also going to introduce a level hash that gets stored in the first line of the file
14:19:02watusimotoit will be updated by the editor
14:19:03raptorLevelformat 3?
14:19:09watusimotomaybe 2.1
14:19:15raptorhmm
14:19:26watusimotoif it's there, we need only read that and then we can use cached metadata
14:19:30raptori know we discussed a hashing algo once...
14:19:34raptormaybe that was with kaen
14:19:34watusimotoif it's not, we'll parse the level as normal
14:19:44watusimotoI was thinking of md5
14:19:49raptoryou'll have to ignore the newlines
14:19:59watusimotowhy?
14:19:59raptoroh, on the straight file itself?
14:20:02watusimotoyes
14:20:25raptorbecause... uh... levels can be identical with reordered lines and different line endings
14:20:33watusimotoperhaps during save we would create a string version, and hash that
14:20:56watusimotowhat you said was true, but the idea isn't to compare two levels to see if they are the same, it's to see if the level is known
14:20:59raptorso i guess we should determine what the hash actually means - unique level? or unique file?
14:21:17watusimotoif someone rearranges the lines in the level file, we'd treat that as an unknown level
14:21:22watusimotoso here is how it would work
14:21:29watusimoto1) read first line of level file
14:21:37raptoror maybe - we go to a binary format that does ordering and forbids external editing!
14:21:44watusimotoif it is a hash, look to see if we know the metadata
14:21:44raptorthen we'd have absolute assurances
14:22:02watusimotoif so, we use that until we need to actually load the level
14:22:25raptorah... maybe a hash of just the metadata?
14:22:27watusimotoif unknown, we read the level and generate whatever we need for metadata
14:22:49watusimoto(no because I want to compute the area of the level so we can know if this is a big or small level)
14:23:14watusimotowhen it comes time to actually load the level, we'll recompute the hash as we load
14:23:23raptorhmmm... the rest of level loading better be *really* fast
14:23:38watusimotoif it differs from what the level said it was (i.e. because someone manually edited the level), then we'll update our metadata
14:24:06watusimotowhen level is edited, a hash line will be inserted
14:24:14watusimotothat's what I'm thinking
14:24:49watusimotoso for most levels, we can read only the first line and be done
14:25:01watusimotoat least until we load it
14:25:47watusimotomaybe we can include a cmd line option to read all levels in a folder, insert hashes, and store the metadata, so loading at gametime can be fast
14:26:11raptorfirst line is LevelFormat, if it exists
14:26:17raptorno wait
14:26:36raptoryeah, that's right, then GameType
14:26:43watusimotoI'm thinking first line will be hash, 2nd line levelformat, 3rd line gametype
14:27:29watusimotobecause you don't really care about the format until you start parsing the level itself
14:27:30raptorlevel parsing code is expecting first line to be LevelFormat because that triggers different parsing types
14:27:42raptorincluding, perhaps, reading in a hash
14:27:55raptoror discarding a hash
14:27:59watusimotothat's a fair question... is the hash something that would change with different formats?
14:28:11raptorwell, it's also not found on older levels
14:28:17raptorso we can't expect it always
14:28:18watusimotoI'm thinking that all levels could have a hash, even old ones
14:28:28watusimotobut it could be absent as well,e ven in new levels
14:28:35watusimotoabsent, or even wrong
14:28:51watusimotoit's intended to be a speedup, not something foolproof
14:29:04watusimotoand I do not yet know how to handle generated levels
14:29:09raptorI think it's wise to have LevelFormat first to trigger various logic(s)
14:29:18raptorthat's what it's there for
14:29:23watusimotoyes
14:29:25watusimototrue
14:30:11watusimotomaybe there should be a level data line that specifies level size
14:30:29watusimotoit can be generated automatically for traditional levels at edit time, or manually overridden for levelgened levels
14:30:30raptorand by size, you mean computed area?
14:30:36watusimotoyes
14:30:46raptorthat would work
14:31:00watusimotoI want to be able to let people choose levels sorted by approximate size
14:31:10watusimotoso they can pick from a menu of small/med/big levels
14:31:21raptorold levels would have to be generated and cached
14:31:24watusimotomaking it easier to find a level for a small (or big) group
14:31:47watusimotothat's the real factor driving all this
14:31:55watusimotohow to sort by size, but still keep load times fast
14:32:08raptoryes, so we have a .cache folder, maybe? to persist level computations
14:32:10watusimotobecause computing size is slow
14:32:21raptorbecause i don't like the idea of modifying the original level
14:32:25watusimotoI was thinking of using a sqlite db
14:32:43watusimotoindexed by hash
14:32:48raptorthat would work - it may be overkill
14:32:57watusimotothere could be several hundred records
14:33:02watusimotoand we have sqlite in there already
14:33:26raptoror a simple txt file with one line per hash pointing to a file name (or something)
14:33:48raptorsqlite is sadly unused for the most part...
14:33:59watusimotowell, we'f probably store hash/size/author/gametype/all other metadata
14:34:19watusimotoso once we get a hash, we can stop reading the levelfile and move to the next one\
14:34:40watusimotoand this data doesn't need to be user accessible
14:36:03watusimotoone minro issus is that as levels change, the old orphaned hashes will still be in our db
14:36:10watusimotoso over time, size will grow
14:36:41watusimotothough maybe after a certain size, old records can be flushed
14:38:35watusimotoand it just may not matter at the number of potential records we are talking... hundreds, not thousands...
14:39:58raptorthere are a few people with thousands - sky_lark and amgine (and maybe a bobdaduck)
14:40:11raptoror at least on the order of 1 - 3 thousand or so
14:40:47raptorI have to take a break for a bit and get back to studies. I'll be back later
14:41:09raptor Quit ()
14:46:02LordDVG Quit (Remote host closed the connection)
15:00:01Nothing_Much Quit (Remote host closed the connection)
15:21:30koda Quit (Ping timeout: 250 seconds)
15:44:30empyrean has joined
16:36:54koda has joined
17:09:16Flynnn has joined
17:15:56Flynnn Quit (Quit: This computer has gone to sleep)
18:01:49amgine123 has joined
18:03:00amgine123hi wattsimo are you afk ?
18:06:57watusimotohi
18:07:28watusimotoBtw, I could not reproduce the team assignemtn editor bug you reported; hopefully it was because I'd already fixed it
18:07:54watusimotoI was able to reproduce some of the other bugs, but, alas, not reliably... I know they're there, but not how to make them happen
18:11:50amgine123yeah i had that same issue
18:12:17amgine123yeah when I did alt # the teams changed but the color was the same
18:13:23amgine123is te ZAP lib somehwere im working on a procjet but im not familer with BF varibles and such
18:13:49amgine123 Quit (Quit: Page closed)
18:15:50amgine123 has joined
18:54:24raptor has joined
18:54:24ChanServ sets mode +o
19:29:26amgine123 Quit (Ping timeout: 246 seconds)
19:29:27Flynnn has joined
19:29:36amgine123 has joined
20:02:05koda Quit (Quit: koda)
20:33:08amgine123 Quit (Ping timeout: 246 seconds)
20:33:55raptor Quit ()
20:34:02raptor has joined
20:34:02ChanServ sets mode +o
20:42:01watusimoto Quit (Read error: Connection reset by peer)
20:44:49raptor Quit ()
20:56:19Canseco has joined
21:00:08amgine123 has joined
21:01:37Canseco Quit (Remote host closed the connection)
21:20:59empyrean Quit (Remote host closed the connection)
21:22:50amgine123 Quit (Quit: Page closed)
21:23:19Aniball2 has joined
21:42:08Aniball2 is now known as amgine123
23:29:20Flynnn Quit (Quit: This computer has gone to sleep)
23:32:41amgine123 Quit (Ping timeout: 246 seconds)

Index Search ←Prev date Next date→

These logs were automatically created by BFLogBot on irc.freenode.net.