[00:00:31] --- Darke|zzZ is now known as Darke
[00:03:26] <Darke> 'Morning'. *bow* I'm guessing rather 'early' in the morning for you guys. *grin*
[00:12:29] <wjp> morning :-)
[00:18:11] <Dark-Star> morning *yawn*
[00:38:27] <wjp> time for me to go
[00:38:29] <wjp> 'night
[00:38:34] <-- wjp has left IRC ("Zzzz...")
[00:54:19] --> Kirben has joined #exult
[00:54:19] --- ChanServ gives channel operator status to Kirben
[01:03:12] <-- Dark-Star has left IRC ("shutdown -h now ...")
[01:26:36] <-- Darke has left IRC ("Inficio-Infeci-Infectum")
[01:27:03] --> Darke has joined #exult
[01:27:03] --- ChanServ gives channel operator status to Darke
[01:57:12] <-- Kirben has left IRC (Excess Flood)
[01:57:18] --> Kirben has joined #exult
[02:17:02] <-- Darke has left IRC (gibson.freenode.net irc.freenode.net)
[02:17:02] <-- Kirben has left IRC (gibson.freenode.net irc.freenode.net)
[02:17:02] <-- Fingolfin has left IRC (gibson.freenode.net irc.freenode.net)
[02:17:02] <-- cnj has left IRC (gibson.freenode.net irc.freenode.net)
[02:19:22] --> Darke has joined #exult
[02:19:22] --> Kirben has joined #exult
[02:19:22] --> Fingolfin has joined #exult
[02:19:22] --> cnj has joined #exult
[04:06:36] <-- Fingolfin has left IRC ("good night")
[04:20:57] <-- Darke has left IRC ("*fluff!*")
[04:21:54] --> Darke has joined #exult
[04:21:54] --- ChanServ gives channel operator status to Darke
[06:05:39] --> ShadwChsr has joined #Exult
[07:20:45] <ShadwChsr> hey
[07:20:58] <Darke> Hi.
[07:24:42] <ShadwChsr> You work at all on the pagan engine?
[07:25:00] <Darke> Pentagram? I'm coding on it at the moment. *grin*
[07:25:00] <ShadwChsr> pentagram i mean
[07:25:21] <ShadwChsr> I'm curious as to how objects are sorted so that players are rendered in the correct position
[07:26:16] <Darke> Umm... ow. That's more of a 'Colourless' question, and even he's not really sure as to the rendering order. *grin*
[07:27:04] <Darke> Are you asking in specific to the player/npc characters? Random items on the ground? The 'world' itself (walls/etc)? Or just in general? *grin*
[07:29:22] <Darke> AFAIK, the world is effectively 3d, except in an isometric perspective. All the items have a x,y,z co-ordinate triplet, and then are rendered based on that ordering, in combination with some arcane fiddling.
[07:34:34] <Darke> If you're _really_ interested (and I do mean _REALLY_ interested *grin*) you can look at the mapviewer code in the 'old' pentagram module, that should give you most of the gritty details. *grin*
[07:43:03] <-- ShadwChsr has left IRC (Read error: 110 (Connection timed out))
[09:58:07] <-- Kirben has left IRC ("System Meltdown")
[09:59:53] --> Kirben has joined #exult
[09:59:53] --- ChanServ gives channel operator status to Kirben
[10:50:07] <-- Kirben has left IRC ("System Meltdown")
[11:07:16] --> Kirben has joined #exult
[11:07:16] --- ChanServ gives channel operator status to Kirben
[11:14:47] --> Fingolfin has joined #exult
[11:15:04] <Fingolfin> yollao
[11:15:06] <Fingolfin> opme
[11:41:36] <Darke> Hi.
[11:41:39] --- Darke gives channel operator status to Fingolfin
[11:53:35] --- Fingolfin is now known as Fingolfin|electi
[11:53:45] --- Fingolfin|electi is now known as Fingolfin|vote
[12:35:46] --- Fingolfin|vote is now known as Fingolfin
[12:42:33] * Darke votes for sleep and hops off to enact the majority's decision. Night!
[12:42:45] --- Darke is now known as Darke|afk
[12:44:10] --> wjp has joined #exult
[12:44:10] --- ChanServ gives channel operator status to wjp
[12:44:12] <wjp> hi
[12:47:52] <Darke|afk> Hi! Got to go, else I'll be accused of not conforming to the democratic process. *noddlenod* Bye!
[12:48:15] <wjp> :-)
[12:48:16] <wjp> bye
[12:59:35] <Fingolfin> hi wjp
[13:16:06] <wjp> hi Max
[13:41:48] --> Colourless has joined #Exult
[13:41:48] --- ChanServ gives channel operator status to Colourless
[13:42:10] <Colourless> hi
[13:43:39] <wjp> hi
[14:23:14] <-- Fingolfin has left IRC (Remote closed the connection)
[14:25:11] --> Fingolfin has joined #exult
[14:48:24] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[14:48:26] --> Kirben has joined #exult
[15:18:30] <-- Colourless has left IRC ("Colourless Error: Unknown (something happened caused by something)")
[15:18:41] <wjp> lol
[15:34:00] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[15:58:54] --> Suvroc has joined #exult
[15:58:58] <Suvroc> hello
[16:10:04] <-- Suvroc has left IRC (Killed (NickServ (Ghost: Corvus!Corvus@18.104.22.168)))
[16:10:16] --> Suvroc has joined #exult
[16:10:18] <Suvroc> hi again
[16:27:26] <wjp> hi (x2) :-)
[16:28:02] <Suvroc> :)
[17:15:29] --- Fingolfin is now known as Fingolfin|dinner
[17:47:58] --> ShadwChsr has joined #Exult
[17:48:04] <ShadwChsr> hey :)
[17:52:41] <Suvroc> hi
[18:14:35] --- Fingolfin|dinner is now known as Fingolfin
[19:23:42] <wjp> whee! Avernum 3 for windows is out! :-)
[19:52:11] <ShadwChsr> avernum?
[19:52:56] <ShadwChsr> ahh
[19:52:58] <ShadwChsr> U there wjp?
[19:53:16] * wjp nods
[19:53:40] <ShadwChsr> You're one of the 'core' devs for exult, right? Ie/ memorized all the code inside and out?
[19:53:59] <wjp> all code? nah :-)
[19:54:19] <ShadwChsr> As you might know by now I'm working on my own isometric system
[19:54:31] * wjp nods
[19:54:32] <ShadwChsr> I'm having trouble getting the characters rendering at the correct time
[19:55:11] <ShadwChsr> I looked at how UO did things - They 'sliced' up the tiles so they were all the same size - I have code that does that (you can still mapedit with the full size tile, of course.. just renders "split")
[19:55:31] <ShadwChsr> So all the objects render correctly now - but the character doesnt, because he/she/it can co-exist between tiles
[19:55:49] <ShadwChsr> Any ideas on what to do? Not much documentation on that these days - everything is 3d :(
[19:56:31] <wjp> I guess that kind of depends on how you render things exactly
[19:56:48] <ShadwChsr> "MapsIts being rendered as
[19:56:50] <ShadwChsr> ack
[19:57:03] <ShadwChsr> "Maps" are being rendered as isometric triangles, with rotated coordinates
[19:57:42] <ShadwChsr> right now it draws the ground, then afterwards, "all" (that can be shown on the screen) the objects from a sorted list.
[19:57:54] <ShadwChsr> Right now it sorts Y, then X, then Z
[19:58:31] <ShadwChsr> coordinates are floating point - First map coordinates (say, tile 5,5), then the decimal is the "offset"
[19:58:40] <ShadwChsr> 5.5,5.5 would mean halfway between tiles 5 and 6
[19:59:11] <ShadwChsr> Problem is, Tile 6,6 would draw *after*, cutting off the player's feet :)
[20:00:07] <ShadwChsr> If I draw 6,6 before the player, then it could be an outside wall and the player is now rendered inside the building, when he's really outside
[20:01:47] <wjp> what would this do if 5,5 were a wall, and 6,6 a flat tile?
[20:02:19] <wjp> um, wait
[20:02:30] <wjp> where is your origin and it what direction are x and y? :-)
[20:02:33] <wjp> s/it/in/
[20:02:49] <ShadwChsr> origin is 0,0, "top center" of the "map" (its a diamond, and 0,0 is the top)
[20:03:18] <ShadwChsr> so 1,1 would be moving down the screen.... y pixels +
[20:03:33] <ShadwChsr> 1,0 would be moving down right (x axis is along the topright edge)
[20:03:41] <ShadwChsr> 0,1 would be moving down left (y axis is along the top left edge)
[20:07:02] <wjp> hm
[20:07:38] <wjp> how can the player be on (5.5,5.5) if there's a wall on (6,6), btw?
[20:08:14] <ShadwChsr> The wall wouldn't take up the entire tile - collision detection uses bounding boxes as opposed to 'blocking' the entire tile
[20:08:19] <ShadwChsr> lets try this -
[20:08:35] <ShadwChsr> Floor object is on 0,5
[20:08:39] <ShadwChsr> Player is on 0,5.5
[20:08:43] <ShadwChsr> Floor object is on 0,6
[20:08:51] <ShadwChsr> floor object #2 (0,6) cuts of player's feet
[20:09:23] <ShadwChsr> what kind of bandwidth are you on?
[20:09:28] <wjp> adsl
[20:09:50] <ShadwChsr> good :)
[20:09:50] <wjp> I'm also on Linux :-)
[20:09:57] <ShadwChsr> damn
[20:10:16] <wjp> hm, so a "wall" tile has a wall in the center?
[20:10:20] <wjp> but 'ground' on the edges?
[20:10:59] <ShadwChsr> would be easier if i could show you the game itself, but lemme make some screens
[20:11:18] <wjp> I could try if it runs in wine, I guess
[20:11:48] <ShadwChsr> does dx run on wine?
[20:11:53] <wjp> it should
[20:12:04] <ShadwChsr> k, this uses dx7
[20:12:04] <wjp> from what I hear even Diablo II runs in wine :-)
[20:14:02] <ShadwChsr> Sorry about the lack of a zip file, this is "latest" code <grin>
[20:14:08] <wjp> :-)
[20:14:17] <ShadwChsr> almost done
[20:14:55] <ShadwChsr> Here's what you do - toss it all into a directory someplace
[20:15:09] <ShadwChsr> make a subdir called "Resources", put all the GRF files there
[20:15:18] <ShadwChsr> put the EXE, the .map, and the .ini in the maindir
[20:15:20] <ShadwChsr> Then run
[20:15:34] <ShadwChsr> game.exe -char warrior_male -map Good.map
[20:16:22] <ShadwChsr> There are a few bugs with walking (just changed the walking code, which is why), and its kinda slow, which i'll fix once I get the player rendered right
[20:19:00] <wjp> almost there... :-)
[20:20:06] <wjp> hm, wine is giving some nice errors about things not being implemented for 24 bpp
[20:21:37] <ShadwChsr> 24 is evil
[20:21:38] <ShadwChsr> ;)
[20:21:49] <ShadwChsr> But the game *should* run, just reallll slow
[20:21:57] <ShadwChsr> any chance at switching to 16 or 32?
[20:22:12] --> wjp_ has joined #exult
[20:22:56] <wjp_> what was that commandline again?
[20:23:14] <ShadwChsr> game.exe -char warrior_male -map Good.map
[20:23:53] <wjp_> ok, got it
[20:23:59] <wjp_> nice art
[20:24:51] <ShadwChsr> go into the building and you'll see what i mean
[20:25:20] * wjp_ nods
[20:26:12] <wjp_> looks like you need to consider object heights in your sorter
[20:29:50] <ShadwChsr> oh?
[20:30:18] <ShadwChsr> I thought it was a little more sinister than that
[20:30:42] <wjp> I'm not entirely sure about how to sort it exactly, though
[20:30:52] <ShadwChsr> Like determining which tiles the player overlaps, and rendering the player for each tile seperately, using some sort of clipping, like how UO does it
[20:31:24] <wjp> hmm
[20:32:48] <wjp_> how big are the tiles here, btw?
[20:33:00] <wjp_> the stairs are one tile?
[20:33:11] <ShadwChsr> yes
[20:33:20] <ShadwChsr> one tile with 4 collision boxes
[20:33:31] <ShadwChsr> each wall segment is one tile
[20:33:38] <ShadwChsr> well - one object
[20:33:45] <wjp_> but the wall is only on half the tile?
[20:34:05] <ShadwChsr> A tile is the size of - the mushrooms on the ground outside
[20:34:18] <ShadwChsr> The wall segment is 2 tiles long, about 1/3 of a tile "wide"
[20:36:17] <wjp_> hm, I'm currently on the tile directly above the stairs
[20:36:47] <wjp_> if I move a little bit to the top-right, my feet get clipped
[20:37:08] <wjp_> what are the coordinates then? (x, y.5) ?
[20:38:44] <ShadwChsr> more like x.5,y.5
[20:38:56] <wjp_> uh, yes, that's what I meant :-)
[20:39:11] <ShadwChsr> if the tile above the stairs is x,y
[20:39:14] <ShadwChsr> then the player would be on
[20:39:21] <ShadwChsr> (x-1).5,(y-1).5
[20:39:41] <ShadwChsr> or something
[20:39:44] <ShadwChsr> :P
[20:41:38] * wjp_ hmms
[20:42:56] <ShadwChsr> edit the game.ini and turn on "NoSpriteOffsets"
[20:43:06] <wjp_> if you consider everything as boxes, it should be possible to find a sorting algorithm that works properly
[20:45:47] <wjp_> but your current sorter only looks at coordinates, right? not the dimensions of the boxes?
[20:46:15] <ShadwChsr> yeah
[20:47:03] <ShadwChsr> Because Collision Boxes != Object Dimensions
[20:47:57] <wjp_> what do you mean exactly?
[20:48:08] <ShadwChsr> Well take the stairs for example
[20:48:15] <ShadwChsr> they have 4 collision boxes
[20:48:31] <ShadwChsr> none of those collision boxes fit the entire "boundary" of where the object "exists"
[20:48:38] <wjp_> the problem is that dimensions of an object do matter for drawing order
[20:48:54] <wjp_> and the stairs are a single image?
[20:49:08] <ShadwChsr> yeah
[20:49:32] <ShadwChsr> Theoretically I should create a new bounding box (only will allow 1) that is called "Object Boundary" and sort based on that
[20:49:57] <ShadwChsr> You may want to sort an object but allow the player to walk through it, in some weird cases
[20:50:04] <ShadwChsr> (low plants on the ground, for example)
[20:50:18] <wjp_> if objects have irregular shapes, it'll become very hard to get the drawing order correct
[20:50:35] <ShadwChsr> Like wall corners ;P
[20:51:09] <wjp_> is that a single image too?
[20:51:16] <ShadwChsr> yeah
[20:51:39] <wjp_> yikes
[20:51:46] <ShadwChsr> Exactially :)
[20:51:57] <wjp_> that's impossible to draw in the right order
[20:52:04] <wjp_> you'll have to cut up the objects in some way
[20:52:41] <ShadwChsr> yeah
[20:52:47] <ShadwChsr> Dont look at me I didnt design the art ;)
[20:54:23] <ShadwChsr> but that makes sense
[20:54:59] <wjp_> it's possible to get the objects that are boxes right, by taking box dimensions into account
[20:55:20] <ShadwChsr> originally I didnt do that because my axis' weren't rotated
[20:55:27] <ShadwChsr> now that they are it should (hehe) be straightforward
[20:55:48] <wjp_> the wall corners looking like < and > will have to be split up
[20:56:08] <wjp_> (either by splitting up the object itself, or by rendering it in 2 passes)
[20:56:26] <wjp_> s/passes/parts/
[20:56:39] <ShadwChsr> *nods
[20:56:43] <ShadwChsr> probably will split them up
[20:56:53] <wjp_> hm, my father wants his PC back :-)
[20:57:01] <ShadwChsr> cya :)
[20:57:03] <wjp_> I'll move back to my own
[20:57:06] <-- wjp_ has left IRC ("leaving")
[20:57:33] <ShadwChsr> What do you think of the engine as a whole though? Potential?
[20:57:47] <wjp> it looks very good :-)
[21:03:18] <ShadwChsr> How did you learn game dev?
[21:06:43] <wjp> exult :-)
[21:08:15] <ShadwChsr> :)
[21:08:21] <ShadwChsr> Yeah basically taught myself with my game
[21:13:47] <ShadwChsr> Wow I just crashed exult!! lol
[21:14:31] <wjp> what did you do?
[21:14:49] <ShadwChsr> Press F2, then N, then 0
[21:15:03] <ShadwChsr> select change shape, try changing to something - gargoyle, that huge demon, etc
[21:15:10] <wjp> in BG or SI?
[21:15:10] <ShadwChsr> once you exit the F2 menu - crash
[21:15:14] <ShadwChsr> BG
[21:15:25] <wjp> which exult version?
[21:15:33] <ShadwChsr> RC
[21:15:34] <ShadwChsr> +2
[21:15:36] <ShadwChsr> :)
[21:15:46] <ShadwChsr> latest
[21:16:01] <ShadwChsr> doesnt return an error just dumps me on my desktop
[21:16:26] <ShadwChsr> nothing unusual in sterr
[21:16:29] <ShadwChsr> err stderr
[21:16:33] <ShadwChsr> Exception attempting to load Serpent Isle 'paperdol.vga', 'gumps.vga' or 'shapes.vga'
[21:16:33] <ShadwChsr> Do you have Serpent Isle and is the correct path set in the config for Serpent Isle?
[21:16:33] <ShadwChsr> Support for 'Serpent Isle' Paperdolls and Multiracial Avatars in 'Black Gate' DISABLED.
[21:16:37] <ShadwChsr> thats all thats in there
[21:16:59] <wjp> hm, changing to a cyclops seems to work with current cvs
[21:18:26] <ShadwChsr> just tried that - crash
[21:18:31] <ShadwChsr> try removing your SI files and just use BG
[21:18:59] <wjp> it was probably fixed after rc2
[21:19:06] <wjp> rc2 is quite old already
[21:20:57] <ShadwChsr> got a new winbinary? :)
[21:22:25] <-- Suvroc has left IRC ("Follow the white rabbit...")
[21:24:12] <ShadwChsr> n/m <duh>
[21:26:00] <ShadwChsr> yeah works now
[21:26:03] <ShadwChsr> btw
[21:26:53] <ShadwChsr> Where does the "ethereal monster" show up in the game?
[21:26:56] <ShadwChsr> that huge ugly red thing
[21:28:52] <ShadwChsr> it looks kinda like the guardian, but cooler
[21:28:52] <ShadwChsr> ;)
[21:30:00] <ShadwChsr> Theres also a fairy and a three-headed-dragon i dont remember seeing
[21:30:03] <wjp> it's in one of the generators
[21:30:13] <wjp> those two are on ambrosia
[21:30:39] <wjp> the hydra and the ethereal monster are necessary to defeat to finish BG
[21:30:55] <ShadwChsr> *whistles innocently*
[21:31:12] <ShadwChsr> i've never actually finished it ;)
[21:31:26] <ShadwChsr> I think the farthest I've gotten is the generator at the fellowship retreat
[21:31:37] <ShadwChsr> Where's ambrosia?
[21:32:04] <wjp> far NE
[21:32:18] <wjp> (it's an island, btw)
[21:33:11] <ShadwChsr> hehe I crashed it again - new version ;)
[21:43:22] <-- ShadwChsr has left IRC ()
[21:44:48] <-- Fingolfin has left IRC ("42")
[23:11:51] <-- wjp has left IRC ("Zzzz...")