--- Log opened Wed Jun 06 00:00:16 2012 |
00:02 | < Rhamphoryncus> | Wrote out my vertex indices one way, get 0..46. Try another way and get 0..44 x_x |
00:03 | < Rhamphoryncus> | Oh, I see. Off by 2 early in the first one :/ |
00:15 | <~Vornicus> | man I get crazy ideas. |
00:17 | <~Vornicus> | a minecraft texture pack editor with "preview" |
00:19 | < Rhamphoryncus> | ahaha. std::cout << somevector gives an error. And a note about every possible overloading of << |
00:20 | <&McMartin> | Oh, C++ |
00:22 | < Rhamphoryncus> | unfortunately |
00:23 | | io|voting is now known as iospace |
00:24 | <&McMartin> | That was in the same tone of voice one uses to exasperatedly reprove someone from whom you expect no better. |
00:26 | < Rhamphoryncus> | heh |
00:26 | < Rhamphoryncus> | Well I did try haskell :/ |
00:27 | <~Vornicus> | http://weknowmemes.com/2012/03/oh-you-dog/ ? |
00:27 | <&McMartin> | C++ really is the best choice overall for a goodly number of use cases. |
00:28 | < Rhamphoryncus> | yeah |
00:28 | <@ToxicFrog> | Sadly, there's also a very large set of use cases for which it's a terrible choice but which people insist on using it for. >.< |
00:29 | < Rhamphoryncus> | "overall" being the key word |
00:29 | | Derakon[AFK] is now known as Derakon |
00:29 | < Rhamphoryncus> | If pypy ever gets a good threading model worked out and implemented I might be able to use it instead |
00:30 | <&McMartin> | I kind of want to try performance testing the stock Java Canvas. |
00:38 | < RichyB> | Rhamphoryncus, I take it that you don't consider "multi-process plus an IPC clusterfuck" to be a good threading model? :) |
00:39 | < Rhamphoryncus> | no :) |
00:40 | < Rhamphoryncus> | Especially not with python objects that, even with mmap, would requires serializing/deserializing |
00:40 | < RichyB> | Mmmm. |
00:41 | | RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has left #code ["Leaving"] |
00:41 | | RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has joined #code |
00:41 | < RichyB> | Wrong button again. |
00:41 | < Rhamphoryncus> | heh |
00:41 | < RichyB> | I need to recompile xchat with control-W rebound to control-backspace, and "close window" bound to some other key. |
00:42 | < Rhamphoryncus> | hrm. My vertices are correct. My indices are correct. They work together with a subdivision of 2. However, they somehow fail when I use a subdivision of 1 or 3 |
00:42 | < RichyB> | For some reason that keybinding is completely hardcoded. |
00:48 | < Rhamphoryncus> | how the heck do I manage to screw up a subdivision of 1. That's *1* triangle. 3 vertices, 3 indices. I'm printing them, they look fine |
00:49 | <&McMartin> | "I don't want you to pray to the duck. I want you to ASK THE DUCK YOUR QUESTION." |
00:58 | < RichyB> | McMartin, you're using a rubber duck to get people to solve their own problems by putting their questions into words? :) |
00:58 | <&McMartin> | It came to mind for some reason |
00:59 | < RichyB> | "Pray to the Duck" has to be a good name for something. |
01:00 | < RichyB> | Maybe a band name, more likely a tiny platform shooter or something. |
01:00 | <&McMartin> | SOMEBODY GET THIS DUCK AWAY FROM ME |
01:00 | | * RichyB blinks. Uh...? |
01:01 | < RichyB> | Ooh, actually, "SOMEBODY GET..." would be a very good band name indeed. |
01:01 | < Rhamphoryncus> | woot got it |
01:01 | < RichyB> | oh that reminds me |
01:01 | < RichyB> | http://pleasingfungus.com/Manufactoria/ |
01:02 | < RichyB> | The whole of #code needs to be playing this. |
01:02 | < Rhamphoryncus> | Can't just replace sizeof(myarray) with sizeof(myvertex). myvertex.size() is wrong too. |
01:02 | < RichyB> | Really fun game about making tiny Turing machine things. :) |
01:02 | < Rhamphoryncus> | myvertex.size() * sizeof(myvertex[0]) is right though |
01:03 | <&McMartin> | Oh god, Manufactoria |
01:03 | <&McMartin> | Been there, did that, long ago. |
01:03 | < RichyB> | Popped up on reddit a day or so ago |
01:03 | < RichyB> | someone claimed that the authors had not actually completed the latter challenges, merely proved them possible with queuing theory. ;) |
01:04 | <&McMartin> | I'm pretty sure I solved through Metatron. |
01:04 | <&McMartin> | It may have expanded since I last played. |
01:05 | < RichyB> | I'm through about half the levels at the moment. |
01:05 | < RichyB> | So, about 10% of the way through in terms of effort. :) |
01:10 | < Rhamphoryncus> | ah, finally started to feel sluggish. I think that's a personal record on triangle counts |
01:11 | <&McMartin> | ? |
01:11 | < Rhamphoryncus> | turned the subdivision up to 1024. |
01:11 | < Rhamphoryncus> | half a million vertices |
01:13 | < Rhamphoryncus> | Even that is probably just input lag. The software end is only sending 3 glDrawElements() commands per frame |
01:14 | < Rhamphoryncus> | half a million vertices, each is used 6 times, each triangle uses 3, so a million triangles. I do that 3 times so 3 million triangles/frame |
01:15 | < Rhamphoryncus> | screen has 1764000 pixels so 2 triangles/pixel :D |
01:18 | <~Vornicus> | what craziness is this. |
01:20 | < Rhamphoryncus> | heh, double the subdivision (4x the triangles) and it feels like single digit fps |
01:21 | <&McMartin> | Just Use A Fragment Shader |
01:21 | < Rhamphoryncus> | Naw, this is just me screwing around |
01:22 | < Rhamphoryncus> | I have the map format in mind so I want a specific triangle tessellation to match it. This generates the tessellation for me rather than hardcoding it |
01:23 | < Rhamphoryncus> | All I have to do is change one number to go from 12 triangles to millions. Wouldn't you play with that knob? |
01:24 | <~Vornicus> | 12 triangles? |
01:24 | <~Vornicus> | What shape are you using? |
01:24 | < Rhamphoryncus> | 1 triangle chopped into 4, with 2 friends |
01:28 | | McMartin_ [mcmartin@Nightstar-3a3f32ba.pltn13.sbcglobal.net] has joined #code |
01:29 | | himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code |
01:29 | | mode/#code [+o himi] by ChanServ |
01:30 | < Rhamphoryncus> | http://i.imgur.com/DnHFz.png |
01:30 | < Rhamphoryncus> | Something that awesome has to be seen to be believed |
01:31 | | McMartin [mcmartin@Nightstar-703e232b.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
01:32 | | McMartin_ [mcmartin@Nightstar-3a3f32ba.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
01:33 | | McMartin [mcmartin@Nightstar-3a3f32ba.pltn13.sbcglobal.net] has joined #code |
01:33 | | mode/#code [+ao McMartin McMartin] by ChanServ |
01:40 | | Noah [nbarr@Nightstar-8f3ee3b6.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
01:46 | | You're now known as TheWatcher[T-2] |
01:51 | | You're now known as TheWatcher[zZzZ] |
02:02 | | iospace is now known as io|nervous |
02:32 | | Kindamoody[zZz] is now known as Kindamoody |
02:32 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
02:35 | | * celticminstrel is wondering if there is any way to get cout, cerr, and clog to all output in different colours in Xcode's console window. |
02:39 | | Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has quit [Ping timeout: 121 seconds] |
02:49 | | RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
02:49 | < Rhamphoryncus> | hypothetically.. redirect them to separate programs to add on the colour to each line |
02:50 | < Rhamphoryncus> | Although that could also break if they interleave wrong. |
02:51 | < Rhamphoryncus> | Only way they wouldn't break is if the console itself used 3 different fd's and did its own |
02:51 | < Rhamphoryncus> | oh, a separate program to serve that purpose too |
02:52 | < Rhamphoryncus> | rather, make a single program that collects the 3 as different fd's, then adds colour and outputs to a single fd |
02:59 | < Rhamphoryncus> | spawn subprocess, select on the 3 fd's, read from whichever one, print colour, print what you read, print reset to base colour, go back to select |
03:03 | < celticminstrel> | ...sounds insanely complicated. :P |
03:04 | < celticminstrel> | What I'd like are iostream mannipulator functions like endl, but I imagine those are pretty unlikely. |
03:05 | < celticminstrel> | I don't even know if Xcode's console supports any kind of colour. |
03:25 | <&McMartin> | *yes* |
03:26 | <&McMartin> | Clojure: Now more comfortable to me than scheme, becuase map, filter, take, etc. are all lazy. |
04:12 | <&McMartin> | Also, (range) defaults to returning all the natural numbers |
04:12 | <~Vornicus> | ...nick |
04:12 | <~Vornicus> | nice |
04:13 | | Noah [nbarr@Nightstar-8f3ee3b6.pools.spcsdns.net] has joined #code |
04:31 | < Rhamphoryncus> | Only the natural? If it was really good it'd return all the integral numbers ;) |
04:31 | <&McMartin> | Ehn, that's just another map. |
04:58 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited] |
05:09 | | io|nervous is now known as io|blargh |
06:08 | <~Vornicus> | arg! Why am I so damn afraid to change code |
06:10 | < Noah> | Vornicus: Because you're aren't using a versioning system |
06:10 | <~Vornicus> | except I am. |
06:11 | < Noah> | Then change your code pansy |
06:12 | <~Vornicus> | WHy do you think I'm complaining about my mentality? |
06:15 | < Noah> | Need more and/or less medication? |
06:15 | <~Vornicus> | Probably. |
06:32 | | Derakon is now known as Derakon[AFK] |
06:34 | | * Vornicus pokes around pygame looking for a vsync setting or something. |
06:35 | <&McMartin> | SDL_Flip should autovsync. |
06:36 | <~Vornicus> | Okay, does it block on that, or is my framerate unlimited? |
06:36 | <~Vornicus> | ("unlimited" in the sense that I can flip as often as it lets me and I'll only get the last frame before vsync hits, that is) |
06:37 | <&McMartin> | Trying to pull this up now |
06:37 | <&McMartin> | I believe each call to Flip waits for vsync and clears your background though |
06:38 | <~Vornicus> | Okay. That makes my life so much easier, I can do things without manual waits. |
06:39 | <&McMartin> | My statement is, I think, specific to SDL 1.2 and SDL_DOUBLEBUF |
06:39 | <&McMartin> | Which you want, for serious |
06:40 | <&McMartin> | libsdl.org is being insanely slow >_< |
06:40 | < celticminstrel> | I'm not actually using double buffering. |
06:40 | <&McMartin> | UQM doesn't either, but most circumstances will want it. |
06:41 | < celticminstrel> | I think I didn't only because it's slightly more work. I can't remember though; I made that decision a year or two ago. |
06:42 | <&McMartin> | UQM inherited this crazy triple-buffered monstrosity and it was easier to use updaterect with it than to try to change the engine to be double-buffered right. |
06:45 | < celticminstrel> | I suppose I could make that change. I don't think I have any reason not to. |
06:45 | <&McMartin> | I can't reach http://www.libsdl.org/cgi/docwiki.cgi/SDL_Flip |
06:45 | <~Vornicus> | I can. |
06:45 | < celticminstrel> | I can't, I think. |
06:46 | <&McMartin> | There it goes. |
06:46 | < celticminstrel> | Changing to double buffering just means replacing SDL_UpdateRect(s) with SDL_Flip? |
06:46 | <&McMartin> | It looks like you have to have the DOUBLEBUF bit set *and* have made your video a hardware surface. |
06:46 | < celticminstrel> | Oh. |
06:46 | < celticminstrel> | Maybe that's why I didn't do it. |
06:46 | < Noah> | No load for me |
06:46 | < celticminstrel> | I set it as a software surface. |
06:46 | <&McMartin> | SDL_Flip is short for SDL_UpdateRect(NULL) if you don't have various things set, though. |
06:47 | <&McMartin> | Well, for SDL_UpdateREct(screen, 0, 0, 0, 0) |
06:47 | | Reiver [reiverta@5B433A.F67240.51130B.1334CB] has joined #code |
06:48 | <&McMartin> | ISTR there was a way to wait for vertical retrace though. |
06:48 | <~Vornicus> | Oh, I see |
06:48 | < celticminstrel> | Blah, it's 2am. |
06:49 | <~Vornicus> | Okay: I need to call display.setmode(resolution, FULLSCREEN | DOUBLEBUFF | HWSURFACE), apparently |
06:50 | < celticminstrel> | Hm? What's this? |
06:50 | < celticminstrel> | . |
06:50 | <~Vornicus> | because I need fullscreen to get a hardware surface, and only hardware surfaces with double buffering get flip to work like that. |
06:52 | < celticminstrel> | No, I mean the part where it doesn't look like an SDL call. |
06:52 | <~Vornicus> | it's pygame |
06:52 | < celticminstrel> | Ah. |
06:53 | <~Vornicus> | technically it's pygame.display.setmode(resolution, pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE) |
06:54 | | Netsplit *.net <-> *.split quits: @McMartin, @PinkFreud |
06:54 | <~Vornicus> | yay |
06:54 | | * Vornicus beats kak with a stick |
06:58 | < Noah> | :\ |
06:58 | < Reiver> | ey Vorn |
06:58 | <~Vornicus> | ey Reiv |
07:00 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
07:07 | | * Vornicus pokes at the various convolutions you need in order to get fullscreen to not blow goats. |
07:09 | <~Vornicus> | Okay, 1: the display -- and the surface -- go away when you tab out; This means that when you tab out you can't blit, so you need to make sure that you drop out of the render loop. |
07:12 | <~Vornicus> | THis means you have a tabbed-away event loop where you pick up active events, quits, and probably user events, and handle those appropriately, waiting for the world to come back. |
07:15 | | Netsplit over, joins: &McMartin, @PinkFreud |
07:15 | | Netsplit *.net <-> *.split quits: Reiver, Tarinaky, Vornicus, franny, jerith, io|blargh, @rms |
07:16 | < Noah> | Anyone tried Smuxi? |
07:16 | | Reiver [reiverta@5B433A.F67240.51130B.1334CB] has joined #code |
07:16 | | franny [fran@Nightstar-e67f9d08.com] has joined #code |
07:16 | | jerith [jerith@ServerAdministrator.Nightstar.Net] has joined #code |
07:16 | | rms [rstamer@genoce.org] has joined #code |
07:16 | | io|blargh [Alexandria@Nightstar-e67f9d08.com] has joined #code |
07:16 | | Tarinaky [tarinaky@Nightstar-dd7e4a05.net] has joined #code |
07:16 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
07:16 | | ServerMode/#code [+aoooq jerith jerith rms Vornicus Vornicus] by *.Nightstar.Net |
07:17 | <~Vornicus> | well that was fun. |
07:17 | <~Vornicus> | Anyway. |
07:18 | < Noah> | Welcome back, so |
07:18 | < Noah> | Anyone tried Smuxi? |
07:18 | | * Vornicus repeats his last few lines for McM at least. |
07:18 | <~Vornicus> | Okay, 1: the display -- and the surface -- go away when you tab out; This means that when you tab out you can't blit, so you need to make sure that you drop out of the render loop. |
07:18 | <~Vornicus> | THis means you have a tabbed-away event loop where you pick up active events, quits, and probably user events, and handle those appropriately, waiting for the world to come back. |
07:19 | <~Vornicus> | You probably also want to Pause The Game when this happens. |
07:19 | <~Vornicus> | But that I think can wait until I have, uh. A pause screen? |
07:19 | <&McMartin> | Hrm |
07:19 | <&McMartin> | I was under the distinct impression that SDL handled most of that stuff for you. |
07:19 | < Reiver> | Vorn: What are you doing? |
07:20 | <~Vornicus> | Reiver: making a game. |
07:20 | < Reiver> | Vorn: What are you making? |
07:20 | <~Vornicus> | Vornda. |
07:20 | <~Vornicus> | Possibly followed by Vornblo. |
07:20 | <~Vornicus> | or concurrent with. |
07:20 | <~Vornicus> | Anyway. |
07:20 | <~Vornicus> | The difficulty right now is that trying to blit to a screen that's been tabbed away blows up. |
07:21 | < Reiver> | Vornda? Vornblo? |
07:21 | | * Vornicus is not creative with names, okay |
07:21 | < Reiver> | da? blo? |
07:21 | <@Tamber> | Vornda, as opposed to Vornyet? |
07:21 | <~Vornicus> | ..tamber wins |
07:21 | <~Vornicus> | no, Zelda, Diablo |
07:22 | <~Vornicus> | other things I have in my head are Vornlink (uplink) and Vorns Ahoy (ducks ahoy) |
07:22 | < Reiver> | ... you plan to make a diablo |
07:22 | | io|blargh is now known as iospacedout |
07:22 | < Reiver> | why do you plan to make a diablo |
07:22 | <~Vornicus> | Because it's in there |
07:22 | <~Vornicus> | and for the love of god it needs to get out. |
07:22 | < Reiver> | huh. |
07:22 | < Reiver> | I am curious how Your DIablo Is Different. |
07:24 | <~Vornicus> | Aside from taking significant advice from the original Diablo - randomly chosen plot quests, most skills are universal, total persistence - I intend on having procedurally generated level sequence, not just procedurally generated level. |
07:25 | <~Vornicus> | s. |
07:29 | <~Vornicus> | Other things I was thinking about: "ability scores" might be replaced entirely with passive skilloids like Torchlight has (except that instead of how Torchlight does it, you'd have passive skill points and active skill points) |
07:31 | < Reiver> | Diablo 1 had largely universal skills? |
07:31 | | * Reiver likes that idea |
07:32 | < Reiver> | Though actual stats have their place too. |
07:32 | < Reiver> | And I do like how Torchlight did theirs, actually |
07:32 | <~Vornicus> | Aside from disarm, field repair, and field recharge, everything that a character in diablo 1 could do, any other character could do as well. |
07:32 | < Reiver> | "Your STR is a +X% bonus to melee" |
07:32 | < Reiver> | huh, classes were D2? DIdn't even realise that. |
07:33 | <~Vornicus> | -- it's just that all of these added skills were spells, and the wizard was the only one who could really take advantage of it. |
07:33 | < Reiver> | One other system I've rather enjoyed has been Dungeons of Dredmor. |
07:34 | < Reiver> | Wherein a character can pick (or randomly determine) half a dozen linear skill paths at chargen. |
07:34 | <~Vornicus> | no, D1 had classes - they dictated 1. your maximum in the four ability scores, 2. which of the three class-specific skills you got, 3. your attack rates with various weapons, 4. how your int and con affected your mp and hp, 5. the model and voice actor. |
07:34 | < Reiver> | Each point is something new, or at least a buff of the old. |
07:34 | < Reiver> | aha. So... preferences or biases, rather than Totally New And Unique. |
07:35 | <~Vornicus> | Basically, yeah. |
07:35 | <~Vornicus> | The only thing that was truly different and not Just A Number was that rogues got disarm and warriors and wizards got shitty field-recharge and field-repair abilities. |
07:36 | | * McMartin eyes this code, which is impossibly efficient. |
07:36 | <~Vornicus> | Perhaps it's not being run. |
07:36 | <&McMartin> | I think the compiler is secretly memoizing this function. |
07:36 | <~Vornicus> | ...I was joking, man |
07:37 | <~Vornicus> | What I dislike about Torchlight's passive skills is that in some sense they're "lost levels" - they're not so significantly powerful, often, that it feels good to take them. |
07:38 | <&McMartin> | Vornicus: No, seriously, it's a brute-force search, on the problem Problem Euler says should take until the heat death of the universe |
07:38 | <&McMartin> | And it's taking a millisecond |
07:38 | <~Vornicus> | Wait, the giant number pyramid? |
07:39 | <&McMartin> | Yes |
07:39 | <&McMartin> | This code is clearly a raw recursive search |
07:39 | <&McMartin> | And it just *finishes*. |
07:39 | <&McMartin> | It's NOT ALLOWED TO DO THAT. |
07:39 | <~Vornicus> | and, I presume, prints the answer |
07:39 | <~Vornicus> | What language? |
07:39 | <&McMartin> | C++ |
07:39 | <~Vornicus> | What the shit |
07:40 | <&McMartin> | YEs |
07:40 | <&McMartin> | I do not understand |
07:40 | < Reiver> | McMartin: Clearly you need more cout >> |
07:41 | <~Vornicus> | What compiler? |
07:41 | <&McMartin> | gcc 4.7 |
07:42 | | * McMartin makes the function impure. |
07:42 | <&McMartin> | Oh, hm |
07:42 | <&McMartin> | This is smaller. |
07:42 | <&McMartin> | OK. |
07:42 | <&McMartin> | Freakout over. |
07:43 | | * McMartin abbreviated the triangle. -_- |
07:43 | <~Vornicus> | -_- |
07:43 | < Reiver> | snrk |
07:43 | < Reiver> | triangle? |
07:44 | <&McMartin> | It's a function on a Bunch Of Numbers, arranged in a triangle. |
07:44 | <&McMartin> | Linear with dynamic programming techniques, exponential without. |
07:44 | <&McMartin> | I *did* see some optimizations naming pure vs. impure, though. |
07:44 | <~Vornicus> | http://projecteuler.net/index.php?section=problems&id=67 |
07:46 | <~Vornicus> | pure vs impure? |
07:49 | <&McMartin> | A pure function has no side effects and doesn't depend on anything outside of context |
07:50 | <&McMartin> | In particular, that means that if you call it twice with the same arguments, you get the same result. |
07:51 | < Reiver> | ... isn't that fairly standard for a function? |
07:52 | <&McMartin> | Not really. |
07:52 | <&McMartin> | getX() tends to return different values a lot. |
07:52 | <&McMartin> | Anything that's a function of your fields is usually not the same on each call |
07:52 | < Reiver> | ...aha, right. |
07:53 | <~Vornicus> | So a pure function is a const function, and if it's a method, on a const object. |
07:58 | <~Vornicus> | Also I like how you called it Problem Euler. |
08:00 | <~Vornicus> | Reiver: anyway I was also thinking (among other things) about an explicit level system for equipment (in the sense that equipment is generated with a particular level and its numbers are based directly on that), some sort of crafting, uh... |
08:05 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
08:07 | <~Vornicus> | (an explicit level system, perhaps as opposed to an actual mundane/magical divide) |
08:08 | < Reiver> | hn |
08:08 | < Reiver> | Why the leveling? Just to ensure you don't get crap at high levels? |
08:09 | <~Vornicus> | Partly that |
08:09 | <~Vornicus> | Partly, one of the things I hate about Diablo is that I can't tell how good the mundane stuff is compared to "lower tier" magical stuff |
08:09 | < Reiver> | Just be sure to avoid the Borderlands approach. |
08:09 | <~Vornicus> | Consider a really kitted out leather armor, compared to full plate |
08:10 | < Reiver> | ... do you mean in that you have to check how good the mundane is? |
08:10 | <~Vornicus> | In a large sense, yes. |
08:11 | < Reiver> | Idea I always toyed with there: The stuff can be mundane/magic/etc, sure, whatever |
08:11 | <~Vornicus> | Whereas, sensibly balanced, I can tell just by the level number approximately how it stacks up. |
08:11 | < Reiver> | But the shade thereof changes based on relative value/awesome to you. |
08:11 | < Reiver> | ... which may well be 'level number, but hidden' |
08:12 | <~Vornicus> | slep |
08:12 | < Reiver> | ni! |
08:14 | | himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Operation timed out] |
09:06 | <&McMartin> | Hm. |
09:06 | <&McMartin> | I guess I'll have to save this one for some other time. |
09:10 | | You're now known as TheWatcher |
09:11 | <@TheWatcher> | Reiver: re Unity and "How many of those are required for the initial development?" |
09:12 | < Reiver> | yah? |
09:13 | <@TheWatcher> | That's a tricky one, but it's also a question that doesn't really make much sense |
09:13 | <@TheWatcher> | I'm writing something free, open source, etc. |
09:13 | < Reiver> | aha, right then |
09:13 | < Reiver> | So you can't play with the baseline then go commercial engine later for polish features. |
09:14 | <@TheWatcher> | Even if they aren't needed for 'initial dev', I'd still be $1500 out of my own pocket the minute I wanted to go beyond that... as would anyone wanting to use the code |
09:16 | < Reiver> | Yeah, not good for that |
09:16 | < Reiver> | But then this is not terribly surprising given that Unity is intended to be a commercial product. |
09:16 | < Reiver> | A bit like the Microsoft Game Maker (except not being pathetic) |
09:17 | < Reiver> | Or the Unreal engine, etc. |
09:17 | <@TheWatcher> | Yeah, I was mainly looking at it for the platform neutrality |
09:18 | < Reiver> | Yeah |
09:18 | < Reiver> | There /isn't/ a decent, solid, platform-agnostic free and open source game engine |
09:19 | < Reiver> | If there was Unity wouldn't be making inroads~ |
09:33 | | RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
10:26 | | * TheWatcher eyes this |
10:27 | <@TheWatcher> | How is this even possible? I have the graphics driver set up to force vsync on, and yet here is this game running at Insaneo FPS because it's not got vsync on |
10:35 | | * TheWatcher tries to dig up which registry key controls vsync in direct3d |
10:48 | | * TheWatcher tries to get his head back into this code |
10:49 | <@TheWatcher> | It should not be this hard; it's only been 4 days since I last worked on it, sheesh |
10:54 | | Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has joined #code |
11:12 | | Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has quit [[NS] Quit: ] |
--- Log closed Wed Jun 06 11:19:29 2012 |
--- Log opened Wed Jun 06 11:19:37 2012 |
11:19 | | TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code |
11:19 | | Irssi: #code: Total of 22 nicks [5 ops, 0 halfops, 0 voices, 17 normal] |
11:19 | | mode/#code [+o TheWatcher] by ChanServ |
11:20 | | Irssi: Join to #code was synced in 38 secs |
11:39 | | iospacedout is now known as io |
11:50 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
12:04 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
12:04 | | mode/#code [+o himi] by ChanServ |
12:11 | | Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has joined #code |
12:34 | <&McMartin> | It turns out that designing meaningful and useful unit tests for an assembler is kind of interesting. |
12:37 | <&McMartin> | Also, go me |
12:38 | | * McMartin hits a brick wall due to bad spec, discovers he already did all of the infrastructure needed to do it Actually Right 10 years ago. |
12:38 | <&McMartin> | Now all I have to do is extend a few tables. |
13:01 | | io is now known as io|gone |
13:02 | < Reiver> | ... 10 years ago is quite the achievement, what are you /doing/ |
13:03 | <&McMartin> | Modernizing the old project I wrote to teach myself Python ten years ago, to turn it into a utility Worthy Of Being Out There. |
13:03 | < RichyB> | Mad props. |
13:03 | < Reiver> | Hunh. |
13:03 | < Reiver> | Python is old now~ |
13:03 | <&McMartin> | I wanted a compiler switch to turn off the "collapse" pass during instruction selection. |
13:03 | <&McMartin> | This is a tremendously bad idea - many instructions relied on this for proper behavior. |
13:03 | < RichyB> | Python has been old for ages. |
13:04 | <&McMartin> | The right thing to do is to have new pseudoinstructions that are basically "don't collapse this instruction", but that requires being able to map multiple opcodes to a single binary point. |
13:04 | <&McMartin> | Turns out I planned for that 10 years ago when I wrote the script that builds the Opcode tables out of the instruction set description, even though I never used it. ^_^ |
13:04 | <&McMartin> | And it worked! I must have tested it back then. |
13:05 | <&McMartin> | (The project: https://github.com/michaelcmartin/Ophis ) |
13:18 | <&McMartin> | SUCCESS. |
13:18 | <&McMartin> | Ophis 2 is now feature-complete. |
13:18 | <&McMartin> | Up next: testing, documentation |
13:19 | < RichyB> | Bonus. :) |
13:19 | <&McMartin> | Though now it's time to head to work. |
13:19 | <&McMartin> | Boo, hiss. |
13:20 | < RichyB> | Ah well. |
13:20 | < RichyB> | Good luck, travel safely. |
13:24 | <&McMartin> | Things that are awesome: a <10min commute entirely on surface streets |
13:25 | | * TheWatcher applies vast jealousy |
13:25 | <&McMartin> | TheWatcher: It is 0530. :/ |
13:26 | <@TheWatcher> | (that said, my normal 'commute' tends to be 'change virtual desktop', unless I actually need to go into the office for meetings) |
13:26 | <@TheWatcher> | (in the latter case, it's an hour and 40 minutes each way >.<) |
13:28 | <@TheWatcher> | Hopefully you don't need to do that one too often? |
13:31 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
13:42 | | Kindamoody is now known as Kindamoody|afk |
13:47 | <&McMartin> | No, not really |
13:47 | <&McMartin> | On the other hand, huh, sun is already up |
14:26 | | io|gone is now known as iofficspace |
14:28 | | Reiver [reiverta@5B433A.F67240.51130B.1334CB] has quit [Client closed the connection] |
14:38 | | Orthia [orthianz@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
14:39 | <@TheWatcher> | Bleegh, why can I never find code snippets when I need them.... |
14:39 | < iofficspace> | ctrl+f? |
14:39 | < iofficspace> | /? |
14:43 | <@TheWatcher> | Uh, I mean a single line of code in 18 projects, totalling something like 100k lines of code. And some are on a second server. |
14:48 | | Orthia [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
14:54 | < iofficspace> | ... |
14:54 | < iofficspace> | god fuck \ vs / in file systems |
14:55 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code |
14:58 | < iofficspace> | ... oh right, windows decided to do something smart and make \ and / interchangable... |
14:58 | < iofficspace> | SOLVES MY PROBLEM |
14:58 | < iofficspace> | :D |
14:59 | < RichyB> | Yes, Microsoft fixed their own manufactured problem by making / work too. :) |
14:59 | < RichyB> | (Apparently history says that it's IBM's fault and MS wanted to go with / originally.) |
15:00 | < RichyB> | (But some goons from IBM with chainsaws made them use \ instead.) |
15:03 | | * TheWatcher mutters vile curses against all the blithering lunatics who came up with RFC821, 822, 2821, 2822, 5321, and 5322 |
15:03 | < iofficspace> | which are? |
15:03 | <@TheWatcher> | I swear they're actually a sick joke perpetuated by a group of people whose sole intention is to drive you absolutely fucking insane. |
15:04 | < iofficspace> | RFCs for what then |
15:04 | <@TheWatcher> | SMTP and email message format specs |
15:05 | < iofficspace> | ah |
15:06 | <@TheWatcher> | 821/822 aren't too bad, in a "this is a bit of a mess, but can be dealt with" way, but later ones are shining examples of the sort of madness that would make Azathoth himself utter "I say, steady on now..." |
15:17 | < RichyB> | This is what happens when you try to layer rich-media crap and unicode and everything else in the world on top of a single protocol while also keeping it backwards-combatible with 20 year old installations of sendmail. |
15:17 | < RichyB> | and also with 20 year old installations of trn. |
15:21 | <@TheWatcher> | Partly. Partly it seems that they've just taken whichever whacked-out ideas they cam up with while high on PCP and shoved them in |
15:32 | | * Rhamphoryncus mumbles about PEBKAC errors |
15:33 | | * iofficspace giggles at Rhamphoryncus |
15:34 | < Rhamphoryncus> | Was testing to figure out if texture objects really are separate from texture image units and thus retain their state. I was doing this by setting up the state on GL_TEXTURE1 and at render time binding it to GL_TEXTURE2 |
15:35 | < Rhamphoryncus> | Wasn't working though. Because I was still telling my shader to use GL_TEXTURE0 |
15:51 | < Rhamphoryncus> | hmm. Next up is to form them into a map structure. Either I write a python program for editing maps or I figure out how to apply perlin noise and generate on the fly |
15:53 | < celticminstrel> | Hm. I wonder what C++'s regex does if an optional subpattern isn't matched. |
15:54 | < celticminstrel> | Wait, actually i have a better way. |
15:56 | < iofficspace> | not using C++? |
16:10 | <@TheWatcher> | Indeed. A much better way would be to embed a perl 'terp in the program, and use the perl regexp engine for it!~ |
16:10 | | * TheWatcher flrrrrd |
16:13 | < celticminstrel> | No, I switched to the iterator form. |
16:13 | < celticminstrel> | And tweaked the pattern accordingly. |
16:32 | | * Rhamphoryncus reads up on simplex noise |
16:33 | < RichyB> | TheWatcher, PCRE, yo. |
16:33 | | * McMartin returns from phase one of meeting |
16:33 | <&McMartin> | That went relatively well, I think. |
16:33 | <@TheWatcher> | \o/ |
16:34 | <&McMartin> | Nothing like doing kernel debugging on-site from 3000 miles away through, I think, four layers of virtualization. -_- |
16:34 | <&McMartin> | <wulfenbach>AND IT WORKED.</wulfenbach> |
16:35 | <@TheWatcher> | Awesomeness. |
16:35 | < RichyB> | You don't need to bold anything in between <wulfenbach> tags. |
16:36 | <&McMartin> | I didn't. |
16:36 | <&McMartin> | It did it to itself. |
16:36 | < RichyB> | Hahahahahaha |
16:36 | | * McMartin wird alles mit Wissenschaft zerst?ren |
16:39 | <@TheWatcher> | SCIENCE! |
16:45 | < Rhamphoryncus> | okay, perlin and simplex noise are both way too complex for my immediate needs |
17:11 | < Rhamphoryncus> | hmm so the main trick seems to be that by giving each grid location a gradient rather than a direct value you make the peaks be irregularly spaced |
17:12 | <&McMartin> | Rhamphoryncus: Hey, you know a bunch about Python internals. |
17:12 | <&McMartin> | I notice that generators signal that they're done by throwing exceptions. How efficient is Python about exception handling? |
17:13 | <@TheWatcher> | Hrm. Anyone know of any way to tell whether something is intercepting timeGetTime() calls? |
17:14 | <&McMartin> | Some kind of agent! |
17:14 | <&McMartin> | bondJamesBond() |
17:14 | <&McMartin> | I guess strace? |
17:18 | | Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has quit [Ping timeout: 121 seconds] |
17:18 | < Rhamphoryncus> | McMartin: reasonable efficient. It's still more expensive than a plain return, but it's not an issue unless you're doing a really tight loop |
17:19 | <&McMartin> | But not the "hundreds of times slower" that Java/C++ have, clearly |
17:19 | < Rhamphoryncus> | yeah |
17:20 | < Rhamphoryncus> | Just entering/exiting a generator for the .next() is going to be more expensive for any non-trivial length |
17:20 | <&McMartin> | nog |
17:23 | | Attilla [Obsolete@Nightstar-ab0ca881.as43234.net] has joined #code |
17:25 | < iofficspace> | and back to testing =/ |
17:49 | < Rhamphoryncus> | haw, C++ is funny. The C++11 random module provides a variety of RNGs, but most of the functions to operate on them (such as uniform_int_distribution) are provided separately and must have the rng passed in. Why? Because they need some sort of mixin scheme and all they have is inheritance |
17:52 | < RichyB> | McMartin, Python's pretty efficient about exception handling. |
17:52 | < RichyB> | At least, compared to everything *else* in the slow-assed language. |
17:53 | < RichyB> | Oh Rhamphoryncus already gave a better answer, never mind. |
17:53 | < RichyB> | Perils of reading backscroll top-down, sorry. |
18:01 | < Rhamphoryncus> | Good to see I'm not the only one who does that |
18:02 | < Rhamphoryncus> | I take offence to python being called a slow-assed language. It *is* a slow-assed language, but I take offence to it ;) |
18:08 | < Noah> | Woah now |
18:09 | < Noah> | I took take offense too that |
18:11 | < Rhamphoryncus> | I take offence to your misspelling of "to" |
18:12 | < Noah> | and too |
18:12 | < Noah> | that was suppose to come out as "I too take offense to that" |
18:13 | < Noah> | But at least I got offense correct |
18:13 | <@TheWatcher> | Bah, only in your odd American spelling of it ;) |
18:14 | < Noah> | Whatever, at least I also don't stick a u in "colour" |
18:22 | < Noah> | 1963 of 2930 songs downloaded :\ |
18:34 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code |
18:34 | | mode/#code [+o Vash] by ChanServ |
18:43 | | RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving] |
18:58 | | Kindamoody|afk is now known as Kindamoody |
19:09 | | Kindamoody is now known as Kindamoody[zZz] |
19:15 | < celticminstrel> | I'm still using rand() for my random numbers. Is there really any reason to switch? |
19:16 | < celticminstrel> | It's not like I care about the distributions or anything. |
19:18 | <~Vornicus> | Mersenne Twister has a much larger state space; there are many things where the space is too large to handle nicely. |
19:20 | <~Vornicus> | Shuffling a deck of cards, for instance, you want twister, not your standard rand() |
19:21 | <~Vornicus> | Also, see what your value for RAND_MAX is |
19:21 | < celticminstrel> | I'm just using a few random numbers to select a random location or direction in some situations. |
19:22 | < celticminstrel> | RAND_MAX is 0x7fffffff |
19:22 | <~Vornicus> | Okay so that's reasonable |
19:22 | <~Vornicus> | (some implementations I've found use 0x7fff) |
19:26 | | * Vornicus pokes at pygame. Okay, how to do this. |
19:27 | <~Vornicus> | I'm getting crashes quitting from fullscreen too. |
19:29 | < celticminstrel> | I think one cause I had of a crash when quitting was calling TTF_CloseFont after TTF_Quit and SDL_Quit. |
19:30 | <~Vornicus> | I haven't even really done anything yet |
19:30 | < celticminstrel> | Oh. |
20:04 | < Rhamphoryncus> | ingenuity: 1, DRM: 0 |
20:04 | < Rhamphoryncus> | "What's that? A random printer you just added in "print to file" mode that just happens to have the word PS in the name? Why sure, I'll print to that!" |
20:05 | <&McMartin> | I declare today over - by the time I were to get back from lunch it would have been 8 hours |
20:06 | <&McMartin> | Instead, I will go home, sip soup, and go to sleep |
20:06 | < Rhamphoryncus> | celticminstrel: I prefer MT on principle since rand() has pretty much no specs on what algorithm it uses and old ones were pretty abysmal. That's largely academic though, as new ones are better |
20:08 | < Rhamphoryncus> | oh, if you want your PRNG to be repeatable (save the seed and regenerate the results later) you need your own, or if you want to avoid global state (multiple seeds for different uses or across threads) |
20:09 | < celticminstrel> | I suppose the repeatable argument is based on the fact that the implementation is unspecified, since I'm pretty sure rand() is repeatable. |
20:10 | <@ToxicFrog> | rand() is repeatable by specification; a non-repeatable rand() is nonconformant. |
20:10 | <@ToxicFrog> | That said, there are no requirements that it be repeatable across platforms. |
20:10 | < celticminstrel> | That's what I thought he meant. |
20:10 | <@ToxicFrog> | And indeed rand() on linux actually forwards to random(), which is decent, whereas rand() on windows uses the old, terrible algorithm. |
20:11 | < celticminstrel> | It says Mersenne is "slower"; it's not really a significant difference, is it? |
20:34 | < Rhamphoryncus> | Yeah, I meant across implementations |
20:34 | < Rhamphoryncus> | celticminstrel: it might be 10x slower but for many applications that's fine |
20:35 | < Rhamphoryncus> | maybe 100x compared to some algorithms |
20:44 | | * Rhamphoryncus tries to understand UV/UVW vs XYZ coordinates |
20:45 | < Rhamphoryncus> | it sounds like UV is a latitude/longitude system implicitly using a flattened projection of the 3d model |
20:50 | < Rhamphoryncus> | What I'm actually looking for is names for barycentric coordinates but it doesn't look like there are any conventions. sometimes ABC, others A?A?A? |
20:50 | < Rhamphoryncus> | Which are generic conventions |
21:00 | | Attilla [Obsolete@Nightstar-ab0ca881.as43234.net] has quit [Ping timeout: 121 seconds] |
21:05 | | Attilla [Obsolete@Nightstar-e3792f18.as43234.net] has joined #code |
21:29 | <~Vornicus> | I've only heard of UVW in terms of texture mapping, but that can be sensible. |
21:29 | | iofficspace is now known as io|pissedoff |
21:31 | < Rhamphoryncus> | Tessellation or texture coordinates of a triangle are barycentric, sometimes described as UVW, but GLSL only provides vector attributes of xyzw or rgba |
21:32 | <~Vornicus> | oh, that's what you're doing |
21:32 | < Rhamphoryncus> | xyz is already used in multiple contexts so I was hoping I could disambiguate it with different naming |
23:06 | | * TheWatcher laughs at this vaguely |
23:07 | <@TheWatcher> | I apparently have an "Ominous XP Install" |
23:07 | < Noah> | ToxicFrog: What language were we talking about on rand? |
23:07 | <~Vornicus> | C/C++ |
23:07 | <@TheWatcher> | (because QueryPerformanceCounter is returning unreliable values) |
23:08 | < Noah> | What does Python use? |
23:08 | <~Vornicus> | Mersenne twister is the default on anything recent |
23:32 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
23:56 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
--- Log closed Thu Jun 07 00:00:32 2012 |