--- Log opened Fri Feb 20 00:00:42 2009 |
00:08 | | Derakon [~Derakon@Nightstar-4920.hsd1.ca.comcast.net] has quit [Operation timed out] |
00:16 | | Derakon [~Derakon@Nightstar-4920.hsd1.ca.comcast.net] has joined #code |
00:16 | | mode/#code [+o Derakon] by ChanServ |
00:38 | <@GeekSoldier> | what an advert for Kongregate... Kongregate, the methadone to WoW. |
00:48 | | Consul [~consul@Nightstar-2844.dsl.sfldmi.ameritech.net] has quit [Quit: Leaving] |
01:03 | | You're now known as TheWatcher[T-2] |
01:06 | | You're now known as TheWatcher[zZzZ] |
01:16 | | Reiver [~reaverta@Nightstar-23804.xdsl.xnet.co.nz] has quit [Quit: Changing servers] |
01:16 | | Reiver [~reaverta@Admin.Nightstar.Net] has joined #Code |
01:16 | | mode/#code [+o Reiver] by ChanServ |
01:30 | | Consul [~consul@Nightstar-2844.dsl.sfldmi.ameritech.net] has joined #code |
01:30 | | mode/#code [+o Consul] by ChanServ |
01:33 | | * Derakon starts work on different sizes of bullet. |
01:34 | <@Derakon> | I wonder what the rotozoom tax is gonna be on this... |
01:44 | <@Vornicus> | That's something I'm kind of dreading in VornMoO: I've got an on-map information bar that needs to scale, and I can have up to a hundred of those; doing live scaling of 100 objects with rotozoom sounds like Not My Idea Of A Good Time. |
01:45 | <@Vornicus> | Well that and the warp lane thing; I suspect that will be redrawn live as I pan and zoom. |
01:47 | <@gnolam> | => go hardware-accelerated. |
01:52 | <@McMartin> | That would mean writing OpenGL code. |
01:52 | <@McMartin> | It also means that your 2D game requires a modern system to run, which offends some people~ |
02:01 | <@Derakon> | Argle bargle fargle. |
02:01 | <@Derakon> | Why does rotozoom have to leave the object uncentered? >.< |
02:01 | <@Derakon> | Yes, I know, the upper-left corner is still in the same place. I don't care about the upper-left corner! |
02:09 | | gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?] |
02:37 | <@Derakon> | http://derakon.dyndns.org/~chriswei/temp/bulletmlscreen34.png |
02:46 | <@Vornicus> | Sweeeet. |
02:46 | <@Vornicus> | Are you going to update the other patterns to use differently-sized bullets? |
02:47 | <@Derakon> | Yeah, the entire game basically gets a makeover now. |
02:52 | <@Derakon> | Hah...why didn't I think of that before? |
02:52 | | * Derakon adds the isEmitter tag to bullets, to make them immune to the inflector and bombs, deal no direct damage to the player, and vanish at the end of the pattern. |
02:52 | <@McMartin> | Noo, my glorious Doomcircle strategy~ |
02:54 | <@Derakon> | I won't use it everywhere. Much of the point of Doomcircle is that you can disrupt the circle. |
02:54 | <@Derakon> | But there's not much that happens in this new pattern if you lose a life, for example. |
02:54 | <@Serah> | Does anyone know of a better speech emulator than the windows built-in? |
02:58 | <@McMartin> | Serah: Well, um, the mac built-in speech emulator is pretty good~ |
02:59 | <@McMartin> | I assume you meant "for windows", though. |
02:59 | <@Serah> | Aye. |
02:59 | <@Derakon> | Mental note: isInflector != isEmitter. |
04:58 | <@Derakon> | Hmm... |
04:58 | <@Derakon> | I want to cache resized bullet sprites so that I don't have to do so many rotozoom operations. |
04:58 | <@Derakon> | So right now I'm looking at a dict that maps bullet type (i.e. color/shape) to a dict that maps sizes to lists of surfaces. |
04:59 | <@Vornicus> | But that can get big... |
04:59 | <@Derakon> | But then it's entirely possible that some clever goose will come along and make bullets of continuously variable sizes. |
04:59 | <@Derakon> | So I want to semi-intelligently prune the cache. |
05:05 | <@Derakon> | Okay, limit is 50 variations, each with 24 frames. |
05:05 | <@Derakon> | That should be handle-able. |
05:05 | <@Vornicus> | How are you enforcing the limit? |
05:06 | <@Derakon> | +1 when I add to the cache. |
05:06 | <@Vornicus> | (I recommend pruning according to last-used time; oldest dies) |
05:06 | <@Derakon> | If I hit the limit, I go through and check each variation's number of uses. |
05:07 | <@Derakon> | I ditch the one that's been used least. |
05:07 | <@Vornicus> | This way if someone is using most of them, they don't keep cycling out because the least-used are also currently /on the screen/. |
05:08 | <@Derakon> | If you have 50 different bullet sizes onscreen, you're fucked anyway. |
05:08 | <@Vornicus> | I don't mean all. |
05:08 | <@Vornicus> | I mean most. |
05:09 | <@Vornicus> | Your current thing, if you hit 50 including older ones that were used a lot in old patterns, you'l end up dropping actively-used bullets because they haven't yet collected enough uses... |
05:09 | <@Derakon> | I see your point. |
05:09 | <@Derakon> | Pattern 1 uses one bullet size and makes 500000 bullets of that type. |
05:10 | <@Derakon> | Pattern 2 comes along and makes 49 different kinds of bullet. |
05:10 | <@Vornicus> | and then they cycle in again with 0 uses but then gets stomped on again the next time through. |
05:11 | <@Vornicus> | Using recency you will stomp the one or two bullet sizes that older patterns were using because you don't need them any more, and you don't have to worry about active bullets dropping out of the cache. |
05:11 | <@Derakon> | Right. |
05:11 | <@Derakon> | Good catch, thanks. |
05:16 | <@Derakon> | Argh, they're way too small! Why? |
05:17 | <@Derakon> | Oh, duh. I'm doing the rotozooming twice. |
05:18 | <@Derakon> | Go to all that trouble of making the cache, then fail to remove the rotozooming. Whoops. |
05:19 | <@Derakon> | Oh, yes, that's much better. |
05:20 | < Rhamphoryncus> | Mind if I ask what you're working on? |
05:20 | <@Derakon> | Fusillade. |
05:20 | <@Derakon> | http://www.aegis-soft.com/games/fusillade |
05:21 | <@Vornicus> | that's right, folks, we have an honest to god indie game developer on Nightstar now. |
05:21 | <@Derakon> | Note he didn't say "successful". |
05:22 | <@Vornicus> | You can't be successful until you've released your first game. |
05:22 | < Rhamphoryncus> | What language? |
05:22 | <@Derakon> | Python. |
05:23 | < Rhamphoryncus> | cool |
05:23 | < Rhamphoryncus> | I have a leeetle knowledge of python, heh |
05:23 | | * Vornicus is currently Inspired by Der to actually work on his own games. |
05:23 | <@Derakon> | Glad to hear it. :) |
05:25 | < Rhamphoryncus> | I've been tempted to make a tower defense game, but I figure I should get more done on my compiler first, hehe |
05:25 | <@Derakon> | Rhamphoryncus: before starting on my gaming projects, I knew basically no Python. |
05:25 | <@Vornicus> | Python is not hard to pick up. |
05:25 | <@Derakon> | I'd made one script in Blender that was more math than Python, and dabbled a very small amount in Python at work, and that's basically it. |
05:26 | | * Derakon tries to figure out how to make the Machinegun pattern more interesting. |
05:27 | <@Vornicus> | (And we have at least a few people here that count as Gurus - me, for instance) |
05:27 | <@Derakon> | Yeah, if it weren't for #code I wouldn't be a very happy camper. :) |
05:28 | < Rhamphoryncus> | Vornicus: yeah, ditto |
05:29 | <@Vornicus> | Oh yes, you too. Now I remember, it's you in #python and SJ in #spaceempires |
05:29 | <@Derakon> | ...oh, that was sarcasm earlier? |
05:29 | <@Vornicus> | Apparently. I'd forgotten that Rham is actually quite good. |
05:30 | | mode/#code [+ooooov crem Rhamphoryncus simontwo Syloqs-AFH Tarinaky KarmaBot] by Vornicus |
05:31 | <@Rhamphoryncus> | I'm basically a threading guru.. which is to say I have no life and waste time on pointless endeavours ;) |
05:31 | <@Vornicus> | Heh |
05:32 | | * Derakon tries to figure out how to make his machinegunners lob grenades at the player. |
05:32 | <@Derakon> | May not be worth the effort. |
05:38 | | * Vornicus examines VornMoO's code, tries to remember what he was working on. |
05:39 | <@Derakon> | Oh, wow, haven't seen that error before. |
05:39 | <@Vornicus> | Oh, right. 1. display of the gravity push algorithm, and loading and saving of star maps. |
05:39 | <@Derakon> | "TypeError: unpack non-sequence". |
05:39 | <@Vornicus> | Der: what's the error? |
05:39 | <@Vornicus> | Sweet. |
05:39 | <@Derakon> | I wonder how I managed that one... |
05:39 | <@Rhamphoryncus> | a,b = 42 |
05:39 | <@Vornicus> | That. |
05:39 | <@Derakon> | Yes, the meaning is clear. |
05:39 | <@Rhamphoryncus> | hum nope, not that type |
05:40 | <@Rhamphoryncus> | what python version? |
05:40 | <@Derakon> | I was more meaning "That code doesn't really do a whole lot that's special, so I should have exhaustively tested it already." |
05:40 | <@Derakon> | 2.5. |
05:40 | <@Rhamphoryncus> | hrm |
05:40 | <@Derakon> | Oh, that's the cache pruning code. It shouldn't have kicked in yet. Odd. |
05:41 | <@Rhamphoryncus> | I dunno what produces that variant of error. Now I'm curious :) |
05:41 | | * Derakon cuts the cache size down to 2. |
05:42 | <@Derakon> | It was a failure to use "items()" when iterating over pairs in a dict. |
05:43 | <@Vornicus> | if you're iterating, use iteritems() instead of items() |
05:43 | <@Vornicus> | Faster, doesn't make a copy. |
05:43 | <@Derakon> | Ahh. |
05:43 | <@Derakon> | That's about all I use items() for. |
05:43 | <@Vornicus> | This changes in 3.0 though |
05:43 | <@Derakon> | You'll note I'm not using 3.0. :) |
05:44 | <@Derakon> | Probably won't be for awhile. |
05:44 | <@Vornicus> | Right, and you shouldn't be - 3.0 is really a library developer release. |
05:46 | <@Derakon> | Okay, here's my caching code: http://paste.ubuntu.com/120454/ |
05:46 | <@Derakon> | The first block deals with insertion, the second block with removal. |
05:47 | <@Derakon> | The problem I'm running into is that 'use' doesn't appear to be a valid key into the dataDict. So clearly I'm mixing my dicts up somehow. |
05:50 | <@Derakon> | No ideas? |
05:50 | <@Derakon> | Nobody cares? |
05:51 | <@Derakon> | ...oh, wait, duh. Line 32. |
05:52 | | * Vornicus was reading. |
05:52 | <@Derakon> | Instead of removing the old entry from the cache, I'm replacing it with an empty entry...which has no usage stats. |
05:52 | <@Derakon> | So then I try to access that empty entry and crash. |
05:53 | <@Derakon> | I should be doing something like "del self.bulletCache[type][size]", except I don't think del does what I want. |
05:53 | <@Vornicus> | What do you want it to do? |
05:53 | <@Derakon> | Or maybe it does and I have a separate problem. |
05:54 | <@Vornicus> | It will remove the item of choice from the cache, thereby reducing its refcount. |
05:55 | <@Vornicus> | Minor refinement: use bulletCache[(type, size)] instead of a nested dict; that way the cache keeps its own length count (len() is O(1)) and you don't have to worry about pruning obsolete bullet type dictionaries. |
05:56 | <@Derakon> | ...I didn't know you could use tuples as keys. |
05:56 | <@Derakon> | Nice. |
05:57 | <@Vornicus> | That's why there are tuples. |
05:58 | <@Vornicus> | You can also use frozensets as keys. |
05:58 | <@Vornicus> | (You don't often have occasion to.) |
05:59 | <@Derakon> | Okay, that seems to be working. |
05:59 | <@Derakon> | Where by "working" I mean "the cache is not causing the game to crash, at least". |
05:59 | <@Derakon> | I believe my secondary problem was re-using "type" and "size". |
06:02 | | Syloqs-AFH [Syloq@ServicesAdmin.Nightstar.Net] has quit [Connection reset by peer] |
06:04 | <@Rhamphoryncus> | reusing names will tend to bite you |
06:04 | <@Derakon> | It wasn't consciously done. |
06:05 | <@Rhamphoryncus> | that's usually why it bites you ;) |
06:05 | <@Derakon> | "type" and "size" were what the keys to those dicts were...the fact that they were also parameters to the function had escaped me. |
06:05 | <@Derakon> | Heh. |
06:05 | | * Vornicus occasionally reuses parameter names as argument names... |
06:08 | <@Vornicus> | so I'll go for instance def stirling_first_kind(n,m): and then later on I'll go stirling_first_kind(n,m) when I use the function. |
06:11 | <@Rhamphoryncus> | type is also a builtin, which is another reason not to use it |
06:11 | <@Derakon> | Bah! |
06:11 | <@Rhamphoryncus> | people are fond of clobbering str and list |
06:12 | <@Vornicus> | I finally started calling them my_str and my_list in generic functions. |
06:16 | <@Derakon> | Wow okay, Homebullet just got a lot harder. |
06:16 | <@Derakon> | I slightly increased the homing factor...and I added a second emitter firing rings of bullets at regular intervals. |
06:23 | <@Rhamphoryncus> | Vornicus: I often go with s or l if it's just a throwaway |
06:24 | <@Vornicus> | I t4end to shy away from 1-letter names unless it's an established math function like Stirling Numbers or something. |
06:27 | <@Rhamphoryncus> | Of course a descriptive name is better, but my_str isn't descriptive |
06:27 | <@Derakon> | It at least identifies the type of the variable. |
06:28 | <@Vornicus> | Which for generic-ish functions is all you need. |
06:34 | <@Derakon> | Behold, the new face of Chargelaser! http://derakon.dyndns.org/~chriswei/temp/bulletmlscreen34b.png |
06:36 | <@Vornicus> | Sweet. |
06:42 | <@Derakon> | Okay, mental note: continuously-variable bullets are a bad idea. |
06:42 | <@Derakon> | That in mind, I think I'm going to quantize the available bullet sizes. |
06:45 | | UndeadAnno [~farkoff@Nightstar-29197.neoplus.adsl.tpnet.pl] has joined #Code |
06:45 | | mode/#code [+o UndeadAnno] by ChanServ |
06:47 | <@Vornicus> | aha. Here is where I really got stuck. |
06:48 | <@Vornicus> | I was starting in on the canvas for star rendering, and I ended up mired in controls. |
06:51 | <@Vornicus> | And silly matrix stuff. |
06:53 | <@Derakon> | Okay, this is a misfeature, but it was too cool not to share: http://derakon.dyndns.org/~chriswei/temp/bulletmlanim5.gif |
06:56 | <@Vornicus> | Dude, put that one in, that's amazing. |
06:56 | <@Derakon> | Heh. It'll need something to jazz it up. |
06:57 | <@Vornicus> | Are larger bullets harder to inflect? |
06:57 | <@Vornicus> | If not they should be. |
06:57 | <@Derakon> | Not at the moment. They should be. |
06:57 | <@Vornicus> | Heh |
06:58 | <@Rhamphoryncus> | heh, I'm scratching my head, looking for the "bug" |
06:59 | <@Derakon> | The bug is that the pattern isn't what I wanted it to be. |
06:59 | <@Derakon> | It's a bit of serendipity. |
06:59 | <@Rhamphoryncus> | yeah |
06:59 | <@Vornicus> | Hrm. I'd actually have it fire off individual bursts in random directions, rather often. Call it Solar Flare. |
07:00 | <@Derakon> | This is what happens when you put Counterspiral on turbo with continuously variable bullet sizes, BTW. |
07:01 | <@Vornicus> | How many bullet types do you have? |
07:01 | <@Derakon> | 4 at the moment. Three are just recolors; the fourth is a rotating diamond. |
07:02 | <@Derakon> | http://derakon.dyndns.org/~chriswei/temp/bulletmlbullet1.gif, except drawing correctly~ |
07:02 | <@Derakon> | ...that almost sounds vaguely appropriate, random moderator! |
07:10 | | * Vornicus bows |
07:19 | | * Derakon tries to work out how to free Solarflare from the shackles of the "sequence" firing type. |
07:19 | | Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ] |
07:19 | <@Derakon> | Sequence makes certain things easy, but the pattern completely unravels if you have multiple firing sources. |
07:22 | <@Rhamphoryncus> | Sequence allows you to have multiple sources all firing in a single pattern? |
07:22 | <@Derakon> | No. |
07:22 | <@Derakon> | "Sequence" is a type of direction (other types are "absolute", "relative", and "aim"). |
07:22 | <@Rhamphoryncus> | ahh |
07:22 | <@Derakon> | "Sequence" says "Fire this bullet in a direction based on the last direction a bullet was fired in". |
07:23 | <@Derakon> | So using e.g. sequence with an offset of 10 means you fire bullets at 10° intervals. |
07:23 | <@Derakon> | If some other bullet source comes along, though, suddenly your nice circle gets disrupted because the last bullet wasn't part of "your" pattern. |
07:24 | <@Rhamphoryncus> | So they interfere |
07:24 | <@Derakon> | Right. |
07:25 | <@Derakon> | In most cases I can replace sequence-type directions with absolute directions that make use of the $iter index variable I added. |
07:25 | <@Derakon> | This pattern's proving more resilient though. |
07:56 | | Derakon is now known as Derakon[AFK] |
08:09 | | * UndeadAnno wonders how the fuck does the Homeworld Cataclysm patch search for the installed game. By grepping every hard drive for the executable?! |
08:23 | <@Rhamphoryncus> | that could be close to the truth |
08:24 | <@UndeadAnno> | It takes an absurd amount of time. |
09:36 | | You're now known as TheWatcher |
09:45 | | EvilDarkLord [~jjlehto3@Nightstar-9591.cs.hut.fi] has quit [Ping Timeout] |
09:47 | | EvilDarkLord [~jjlehto3@Nightstar-9591.cs.hut.fi] has joined #code |
09:48 | | EvilDarkLord is now known as NSGuest-521 |
09:51 | | NSGuest-521 is now known as EvilDarkLord |
10:13 | | gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code |
10:13 | | mode/#code [+o gnolam] by ChanServ |
11:02 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus] |
12:01 | | crem [~moo@Nightstar-28703.adsl.mgts.by] has quit [Ping Timeout] |
12:16 | | gnolam is now known as House |
12:23 | | Serah [~Z@87.72.35.ns-26506] has quit [Quit: ] |
13:52 | | Serah [~Z@130.227.16.ns-12529] has joined #code |
13:53 | | mode/#code [+o Serah] by ChanServ |
15:09 | | KBot [AnnoDomini@Nightstar-29355.neoplus.adsl.tpnet.pl] has joined #Code |
15:11 | | KarmaBot [AnnoDomini@Nightstar-29197.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
15:11 | | UndeadAnno [~farkoff@Nightstar-29197.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
15:12 | | KBot is now known as KarmaBot |
15:18 | | UndeadAnno [~farkoff@Nightstar-29355.neoplus.adsl.tpnet.pl] has joined #Code |
15:18 | | mode/#code [+o UndeadAnno] by ChanServ |
16:03 | | Syloqs_AFH [Syloq@Admin.Nightstar.Net] has joined #code |
16:04 | | Syloqs_AFH is now known as Syloqs-AFH |
16:15 | | You're now known as TheWatcher[afk] |
16:39 | | Vornicus [~vorn@Admin.Nightstar.Net] has joined #code |
16:39 | | mode/#code [+o Vornicus] by ChanServ |
17:31 | | Derakon[AFK] is now known as Derakon |
18:34 | | You're now known as TheWatcher |
18:47 | | * Derakon eyes his list of testers. |
18:47 | <@TheWatcher> | ? |
18:47 | <@Derakon> | I have 14 already and I'm sure I've forgotten someone. |
18:47 | <@Derakon> | I just added a scrolling credits marquee to the main menu. |
18:47 | <@TheWatcher> | aaah :) |
19:04 | | RooWeazel [Roogle@Nightstar-25590.hsd1.co.comcast.net] has quit [Ping Timeout] |
19:08 | | RooWeazel [Roogle@Nightstar-25590.hsd1.co.comcast.net] has joined #code |
19:08 | | crem [moo@Nightstar-28703.adsl.mgts.by] has joined #code |
19:12 | | crem_ [~moo@Nightstar-28703.adsl.mgts.by] has joined #code |
19:12 | | crem [moo@Nightstar-28703.adsl.mgts.by] has quit [Connection reset by peer] |
19:18 | | Derakon is now known as Derakon[AFK] |
19:23 | | crem_ [~moo@Nightstar-28703.adsl.mgts.by] has quit [Ping Timeout] |
19:32 | | crem [~moo@Nightstar-28703.adsl.mgts.by] has joined #code |
19:34 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code |
19:41 | | crem [~moo@Nightstar-28703.adsl.mgts.by] has quit [Ping Timeout] |
19:42 | | crem [~moo@Nightstar-28703.adsl.mgts.by] has joined #code |
20:12 | | Tarinaky [~Tarinaky@88.83.110.ns-10776] has quit [Client exited] |
20:13 | | Tarinaky [~Tarinaky@88.83.110.ns-10776] has joined #code |
20:14 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code |
20:14 | | mode/#code [+o Attilla] by ChanServ |
20:34 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer] |
20:34 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Ping Timeout] |
20:36 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code |
20:36 | | mode/#code [+o Attilla] by ChanServ |
20:37 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code |
20:38 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Client exited] |
20:40 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code |
20:49 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer] |
20:51 | | Serah [~Z@130.227.16.ns-12529] has quit [Ping Timeout] |
20:55 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code |
20:55 | | mode/#code [+o Attilla] by ChanServ |
20:57 | | Serah [~Z@130.227.16.ns-12529] has joined #code |
20:57 | | mode/#code [+o Serah] by ChanServ |
20:57 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer] |
20:58 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code |
22:16 | | * Vornicus ponders his galaxy canvas again. |
22:16 | <@Vornicus> | There's two things here: 1. the galaxy map, and 2. the surface onto which I will project. |
22:22 | <@Vornicus> | The entities on the map define the extents of the map, which also provides an aspect ratio. As I zoom and pan the map, I have to use the extents and aspect ratio to define the limits of how the zooming and panning work. |
22:26 | <@McMartin> | Hm. Are you planning on having huge amounts of smooth zooming and panning? |
22:26 | <@McMartin> | Because if so, OpenGL probably is the way to go over pure rotozoom |
22:26 | <@McMartin> | Unless you want to target stock Linux machines, I guess. |
22:27 | <@Vornicus> | I have been seriously considering OpenGL because my existing interface requires painting large semitransparent areas. |
22:28 | <@Vornicus> | Large, circular semitransparent areas. |
22:30 | <@Vornicus> | (which I grant will need to be broken into triangles for OpenGL, but I can do that!) |
22:34 | <@jerith> | Vornicus: 2d or 3d map? |
22:35 | | * jerith has been loving the 3d in Ascendancy, but wishing for a better UI. |
22:35 | <@Vornicus> | 2d map. |
22:38 | <@Vornicus> | I have a notebook with sketches of some of the features of the galaxy map. |
22:38 | <@Vornicus> | It's really pretty stuff, and I'm pretty sure I can do it all. |
22:38 | | Derakon[AFK] is now known as Derakon |
22:46 | <@McMartin> | ... Yeah, absolutely go OpenGL, then. |
22:47 | <@Vornicus> | Means figuring out PyOpenGL. |
22:50 | <@McMartin> | Yeah, but |
22:51 | <@Vornicus> | Large transparent areas would be its job. |
22:58 | <@Vornicus> | ...uh. Yes, thank you, stupid installer, for not finding the C runtime. |
22:58 | | * Vornicus bites it. |
23:02 | <@Vornicus> | ...and I can't find a copy of it anywhere else. |
23:02 | | * Vornicus wanders over to the pyopenGL folks and bites them. |
23:26 | | * Vornicus gets Pygame in there, anyway, and determines that his original renderer does indeed still work. |
23:26 | <@Vornicus> | Also it's great to watch. |
23:27 | <@Derakon> | Do screenshots do it justice? |
23:27 | <@Vornicus> | Well, yes and no. |
23:27 | | Doctor_Nick [~nick@Nightstar-12626.tampfl.fios.verizon.net] has quit [Quit: leaving] |
23:39 | <@Vornicus> | Essentially i have a thing that places stars randomly according to a few rules (and I wish I could make these rules cleaner - they're a lot faster than the gravitic repulsion solution, but they also /fail/ 10% of the time...), and then the stars are stationary... but my renderer will scale the canvas according to the extents of the map. |
23:39 | | UndeadAnno [~farkoff@Nightstar-29355.neoplus.adsl.tpnet.pl] has quit [Quit: I like maxims that don't encourage behaviour modification.] |
23:40 | <@Vornicus> | hang on, I'll attach my renderer (only prereq right now is pygame, and objc if you're on mac) to something and link that to you. |
23:40 | <@Vornicus> | oh. right, it needs the star images too. |
23:42 | <@Vornicus> | http://vorn.dyndns.org/theonewiki/ShipArtRequirements?action=AttachFile <--- mooclone.zip is all the source and reverse-engineering data I've got. To see the thing, run render.py |
23:42 | <@Vornicus> | You'll need pygame and, if you're on mac, objc. |
23:42 | <@Vornicus> | And if you're on mac you'll need to uncomment the line that imports objc. |
23:44 | <@Vornicus> | Oh, and to change the number of stars it generates, change the number on line 151. |
23:45 | <@Vornicus> | Right now it uses 500, which is a lot more than you'd ever want in an actual moo game - the original MoO maxes out at 106. |
23:48 | | * TheWatcher goes to look |
23:49 | | * TheWatcher also goes to get python and pygame for windows >.> |
23:50 | <@TheWatcher> | ... why 106, do you know? |
23:53 | <@Vornicus> | 106: 100 stars are placed on the Large map, and then one additional star per race - homeworlds are placed separately. You can only get six races in game at a time in MoO |
23:53 | | Doctor_Nick [~nick@Nightstar-12626.tampfl.fios.verizon.net] has joined #code |
23:54 | | mode/#code [+o Doctor_Nick] by ChanServ |
23:54 | | Serah [~Z@130.227.16.ns-12529] has quit [Ping Timeout] |
23:54 | <@TheWatcher> | Aah |
23:55 | <@TheWatcher> | Makes sense :) |
23:55 | <@TheWatcher> | (<= has never actually played any of the MoO games, so) |
--- Log closed Sat Feb 21 00:00:54 2009 |