LOG 6/12/2011

(10:00:06 AM) sledorze_: happy to see so much people!
(10:00:23 AM) sledorze_: we can officially start this meeting.
(10:00:29 AM) sledorze_: ---------------------------------------------------------------
(10:00:33 AM) back2dos: *bing*
(10:00:43 AM) sledorze_: ok, so it's my first IRC meeting
(10:00:52 AM) sledorze_: got a list of things to discuss today.
(10:01:11 AM) sledorze_: the goal is not to have too much to do for a first one
(10:01:14 AM) back2dos: can we see it? ^^
(10:01:27 AM) sledorze_: but agreeing on the big picture
(10:01:38 AM) sledorze_: and meet each other
(10:01:39 AM) sledorze_: yes
(10:01:47 AM) sledorze_: 1) The goal.
(10:02:27 AM) sledorze_: 2) Organisation (sprints / regular checkpoints / etc..)
(10:02:44 AM) sledorze_: 3) Definition of what would be the first proof of concetp.
(10:03:11 AM) sledorze_: 4) schedule next meeting where some commitments would be made.
(10:03:15 AM) sledorze_: 5) end
(10:03:18 AM) m22spencer: (Sorry to interrupt, but we may want to write in our names as written on the member list, for benefit of the log file that will be posted later)
(10:03:36 AM) back2dos is now known as Juraj
(10:03:43 AM) Juraj is now known as JurajKirchheim
(10:03:47 AM) JurajKirchheim: like that?
(10:04:00 AM) m22spencer: That works
(10:04:03 AM) sledorze_: (how do you do that?)
(10:04:12 AM) m22spencer: /nick name
(10:04:13 AM) JurajKirchheim: with /nick <nickname>
(10:04:16 AM) You are now known as MatthewSpencer
(10:04:58 AM) sledorze_ is now known as stephaneLeDorze
(10:05:03 AM) Ob1kn00b: no, wait you're right, what a pain
(10:05:03 AM) stephaneLeDorze: ok
(10:05:18 AM) JurajKirchheim: ok, sounds good
(10:05:30 AM) stephaneLeDorze: it would be nice to spend 15-20 mins on each..
(10:05:48 AM) stephaneLeDorze: do you agree on the plan or do you want to change something before we start?
(10:06:08 AM) stephaneLeDorze: ok
(10:06:23 AM) JurajKirchheim: I think 2 should best be discussed last however
(10:06:31 AM) stephaneLeDorze: so let's talk about the goal (we've already talked a little bit about that before the meeting)
(10:06:48 AM) m22spencer: @JurajKirchheim agreed
(10:06:54 AM) stephaneLeDorze: you mean after 3 or next meeting?
(10:07:11 AM) JurajKirchheim: well, after having some sort of idea how much ground we have to cover ^^
(10:07:19 AM) stephaneLeDorze: ok
(10:07:31 AM) stephaneLeDorze: still we'll discuss about next meeting ..
(10:07:32 AM) stephaneLeDorze: :)
(10:07:36 AM) JurajKirchheim: yep ;)
(10:07:49 AM) stephaneLeDorze: oki so back to the goal
(10:08:08 AM) stephaneLeDorze: I think most of you were excited by this idea but we have different interpretation of it.
(10:08:17 AM) stephaneLeDorze: I propose to share and agree
(10:08:29 AM) stephaneLeDorze: so I'll start and then you can continue..
(10:08:33 AM) stephaneLeDorze: as you will
(10:09:00 AM) Ob1kn00b: Ok, is opengl an interface or an implementation?
(10:09:02 AM) stephaneLeDorze: I want this project to be a common library to use it for IOS 3D games and digital advertising.
(10:09:05 AM) JurajKirchheim: ok, well, what I would personally like, would be a high level engine, with an entirely platform agnostic, simple, Haxe-ish sexy interface
(10:09:43 AM) stephaneLeDorze: continue continue..
(10:09:45 AM) JurajKirchheim: I personally see no value in having the ability to really traverse the mesh right into it's vertices
(10:09:56 AM) JurajKirchheim: at least not in a cross-platform way
(10:10:14 AM) JurajKirchheim: because basically, what we want is cross-platform and high-performance
(10:10:15 AM) stephaneLeDorze: yes
(10:10:35 AM) JurajKirchheim: which means we should really just make some thick abstraction layer for common tasks
(10:10:56 AM) JurajKirchheim: and everyone who needs to work beneath that layer will have to write platform-specific code
(10:11:35 AM) JurajKirchheim: the interesting point is agreeing on the meaning of "common tasks" ^^
(10:11:49 AM) stephaneLeDorze: I want to be able to bring an artist on board and can use it's daily tools.
(10:11:54 AM) stephaneLeDorze: ok
(10:11:57 AM) JurajKirchheim: yep
(10:12:03 AM) Ob1kn00b: I've been thinking about abstraction layers. Who is familiar with Traits? Would they help?
(10:12:03 AM) JurajKirchheim: integration is vital
(10:12:18 AM) MatthewSpencer: @JurajKirchheim: I agree with the abstraction layer. I would say it needs to stay as simple as possible, implementing only the most basic building blocks. Buffers, shaders, attributes, uniforms.
(10:13:28 AM) stephaneLeDorze: there's no traits in haxe and I think it's too detailled for now..
(10:13:46 AM) Ob1kn00b: I've got an implementation that's underway
(10:13:54 AM) stephaneLeDorze: so what would you manipulate? entities?
(10:13:55 AM) JurajKirchheim: I mean, if you take the game I posted earlier (http://www.koyotl.de), we basically have meshes and animations created with 3d tools. And most of the time we really just perform affine transformation on a whole group, or playback an animation
(10:14:35 AM) JurajKirchheim: and you can do a lot with this
(10:15:05 AM) JurajKirchheim: bringing an artist in is probably really a good idea
(10:15:33 AM) JurajKirchheim: having actuall 3d modells to work with, rather then building n-thousand examples of spinning cubes :D
(10:15:38 AM) MatthewSpencer: Are you proposing to integrate mesh and animation support into the very base level of the cross-platform 3D code?
(10:15:39 AM) stephaneLeDorze: I think it should be as easy as Jquery..
(10:15:59 AM) JurajKirchheim: yes and no
(10:16:31 AM) JurajKirchheim: we could handle it somewhat like bytesdata
(10:16:43 AM) JurajKirchheim: haxe.io.BytesData
(10:17:11 AM) JurajKirchheim: i.e. there is a data type for it, but you don't really manipulate it at crossplatform level
(10:17:36 AM) stephaneLeDorze: I think the animation interface should be the same for all plateformes
(10:17:50 AM) MatthewSpencer: I think the abstraction layer literally needs to be "stupid", pure basic types. This is where performance is absolutely critical.
(10:18:07 AM) MatthewSpencer: You can always build the toolset over that layer.
(10:18:29 AM) stephaneLeDorze: are you used to combinators?
(10:18:30 AM) MatthewSpencer: You don't lose features or cross-platform support for those features, but you do gain code separation.
(10:18:31 AM) JurajKirchheim: yes, but animation to me is something primitive
(10:18:44 AM) JurajKirchheim: and performance critical
(10:18:55 AM) stephaneLeDorze: I think the animation example fits pretty well in it.
(10:19:10 AM) JurajKirchheim: and should probably be solved in platform-specific way
(10:19:24 AM) stephaneLeDorze: performing, mixing animation should be done low level
(10:19:44 AM) JurajKirchheim: and therefore meshes should also be
(10:19:52 AM) stephaneLeDorze: however, the logic on what animation to mix each other, etc.. should be common.
(10:19:59 AM) stephaneLeDorze: yes
(10:20:05 AM) stephaneLeDorze: we have no choice
(10:20:33 AM) stephaneLeDorze: the high level could build a sort of ast and then the engine map it on its implementation.
(10:21:59 AM) stephaneLeDorze: so the interface would be lower than entities?
(10:22:42 AM) stephaneLeDorze: in a previous engine I wrote, we had animations, skeleton and meshs separated.
(10:23:07 AM) stephaneLeDorze: the high level tell the low level how to mix them
(10:23:27 AM) stephaneLeDorze: the low level performed a lot of optimizations underneath
(10:23:28 AM) JurajKirchheim: Do we really need to know of meshes?
(10:23:43 AM) JurajKirchheim: I mean, we're not constructing them ourselves
(10:23:45 AM) stephaneLeDorze: the usage was:
(10:24:08 AM) JurajKirchheim: they are usually generated from some parser/decoder
(10:24:10 AM) stephaneLeDorze: add a body part to an entity (on its existing skeleton)
(10:24:31 AM) stephaneLeDorze: it was a skin not really a mesh (mesh + attach information)
(10:25:50 AM) stephaneLeDorze: okay it's a point to discuss later on; what about other features / needs (time slips)
(10:26:24 AM) stephaneLeDorze: i.e. do one need streaming?
(10:27:17 AM) stephaneLeDorze: do one need to have prebuild characters / vehicles ?
(10:27:21 AM) JurajKirchheim: yes, that would be really good
(10:27:27 AM) MatthewSpencer: I just want to cover this again, and then I'll stop arguing. Building animation controls and other higher level features into the core cross platform support is a mistake. It just adds bulk and makes performance critical code harder too write. WebGL/Molehill/OpenGL all have very similar functionality. The core cross platform goal should just be to make these have a unified interface and functionality.
(10:28:03 AM) stephaneLeDorze: I agree, Animation mix should be made as low level as possible (Morph on the GPUà
(10:28:04 AM) stephaneLeDorze: )
(10:28:31 AM) stephaneLeDorze: defining how animations smooth together however should be controllable from high level.
(10:28:43 AM) stephaneLeDorze: coz it's gameplay controller logic
(10:29:16 AM) stephaneLeDorze: like with css3 transformation if you like :)
(10:29:19 AM) MatthewSpencer: When I say core cross platform, I'm talking about just the ability to upload textures/vertices/indices/shaders.
(10:29:44 AM) MatthewSpencer: Then you can build your animation controller directly above that, with no performance hit.
(10:29:53 AM) stephaneLeDorze: ok good question; Hugh said he wanted to stick to flash3D api
(10:30:01 AM) justinfront left the room (quit: Quit: ChatZilla 0.9.86.1 [Firefox 3.6.17/20110420140830]).
(10:30:19 AM) MatthewSpencer: I can promise you right now, the Molehill api is going to change a LOT over the next year. It's important to keep the core easy to modify.
(10:30:55 AM) stephaneLeDorze: so you propose we go lower level and then adapt on even higher API to keep safe..
(10:31:02 AM) stephaneLeDorze: are you?
(10:31:06 AM) MatthewSpencer: Yes.
(10:31:34 AM) stephaneLeDorze: I think a critical decision is to keep tools and formats, agree?
(10:31:54 AM) stephaneLeDorze: so that we do not need to rewrite everything
(10:32:09 AM) MatthewSpencer: The core cross-platform should play nice with anything you want to build above it.
(10:32:23 AM) MatthewSpencer: You might have to make a few slight changes in the Away3D library, but not many.
(10:32:31 AM) stephaneLeDorze: If we do so, we'll basically rewrite a lot on top of the low level interface you propose
(10:32:50 AM) MatthewSpencer: You would have to rewrite things anyways to get the opengl support into Away3D
(10:33:18 AM) stephaneLeDorze: so you propose to use a port of away3d but change the flash3D api for our
(10:33:34 AM) stephaneLeDorze: why not rewritting below the interface?
(10:33:47 AM) MatthewSpencer: "the interface" which interface?
(10:34:15 AM) stephaneLeDorze: Stage3D
(10:34:21 AM) dazKind [~mib@HSI-KBW-109-193-114-090.hsi7.kabel-badenwuerttemberg.de] entered the room.
(10:34:44 AM) stephaneLeDorze: Stage3D interface (flash3D)
(10:35:15 AM) dazKind: hi guys
(10:35:19 AM) JurajKirchheim: hi
(10:36:07 AM) MatthewSpencer: I'm just saying we need to keep the core as separate as possible, and as low level as possible. It can be built to have the same interface as Stage3D.
(10:36:09 AM) JurajKirchheim: ok, matthew, if I understand you correctly, you basically want to make a cross-platform abstraction of the target's "native" 3d rendering architecture
(10:36:13 AM) stephaneLeDorze: if things change at the interface level then your glue rewrote will happen on each backend below this interface and the engine will follow away3D adaptation above
(10:36:22 AM) MatthewSpencer: @JurajKirchheim Yes, thank you
(10:36:28 AM) JurajKirchheim: and then build anything and everything on top of that?
(10:36:30 AM) JurajKirchheim: ok
(10:36:46 AM) polygonal [~chatzilla@mnhm-590e4c2c.pool.mediaWays.net] entered the room.
(10:37:40 AM) JurajKirchheim: and you're confident, that this can be made in a cross-platform way without bigger problems?
(10:37:55 AM) MatthewSpencer: That way, anything outside the core will never have to worry about the core changing (untill we move to DX12 or something crazy)
(10:37:55 AM) stephaneLeDorze: ok Matthew, our point of view are not incompatible if you build an adaptation of flash3D above it.
(10:38:12 AM) JurajKirchheim: ok, yes
(10:38:27 AM) MatthewSpencer: We should be able to make the core look just like Stage3D externally.
(10:38:41 AM) JurajKirchheim: true, but this is really "just" an inner platform ... a rare example of a good use
(10:38:47 AM) MatthewSpencer: Stage3D derives from opengl and directx anyways. They are very similar.
(10:39:00 AM) JurajKirchheim: ok
(10:39:10 AM) JurajKirchheim: but you do have plans to build things on top of that, right? :D
(10:39:12 AM) stephaneLeDorze: that is what I thought, we would then be able to make progress on both the low and high levels..
(10:39:23 AM) justinfront [~chatzilla@6.154.139.88.rev.sfr.net] entered the room.
(10:39:38 AM) MatthewSpencer: I don't mean to go on and on about this, but it's a very critical concept. Extremely hard to refactor an engine later to support this (From experience)
(10:39:52 AM) JurajKirchheim: ok
(10:40:41 AM) stephaneLeDorze: I think it's a matter of agreeing for all backend implementors in fact.
(10:41:14 AM) stephaneLeDorze: who's interested to work on the backends?
(10:41:18 AM) MatthewSpencer: <---
(10:41:27 AM) stephaneLeDorze: (and which one :) )
(10:41:29 AM) MatthewSpencer: I'm all about low level high performance code
(10:41:35 AM) justinfront: Sorry been rebooting not followed all but think it would be good to get away3D running in pure Haxe on flash then go from there?
(10:42:25 AM) JurajKirchheim: so we agree on the idea, that the cross-platform layer basically defines some primitives (from the point of view of the client code), namely textures/vertices/indices/shaders ... where do those primitives come from?
(10:42:34 AM) MatthewSpencer: I can go over what I'm talking about in code later on when we get to that part, since I'm probly explaining it very badly right now.
(10:42:53 AM) stephaneLeDorze: (we'll define soon what would be a first proof of concept)
(10:43:02 AM) JurajKirchheim: will we create multiple hxsl backends?
(10:43:11 AM) stephaneLeDorze: I don't think the client code would see that interface
(10:43:20 AM) JurajKirchheim: (for shaders)
(10:43:21 AM) MatthewSpencer: The primatives would come from either your high end library, or the user (if they chose to work directly with the backend)
(10:43:39 AM) stephaneLeDorze: at least at first coz we do not reimplement flash...........
(10:43:55 AM) MatthewSpencer: @JurajKirchheim: Could you explain multiple hxsl backends a bit more?
(10:44:14 AM) JurajKirchheim: well, I mean, I want a way to create shaders
(10:44:21 AM) JurajKirchheim: don't I? ^^
(10:44:44 AM) MatthewSpencer: Are you talking about the hxsl -> glsl/AGAL issue?
(10:45:10 AM) JurajKirchheim: to my knowledge hxsl currently only produces bytecode for flashplayer
(10:45:14 AM) JurajKirchheim: or am I wrong?
(10:45:44 AM) MatthewSpencer: Produces AGAL, so yeah. We'd need a way to parse an hxsl shader to either GLSL or AGAL depending on platform
(10:45:54 AM) JurajKirchheim: yep, that's what I meant
(10:45:55 AM) MatthewSpencer: OR, we could parse it to CG which is much more similar to AGAL
(10:46:11 AM) MatthewSpencer: Okay, sorry. Multiple backends confused me a bit
(10:46:42 AM) JurajKirchheim: ok, well let's assume, all the primitives are there for the moment
(10:46:42 AM) stephaneLeDorze: We're not forced to solve every question here :)
(10:47:04 AM) MatthewSpencer: Do we offer extensive GLSL support for OpenGL platforms? Or do we make all HxSL target the limitations of Molehill?
(10:47:12 AM) stephaneLeDorze: I still want my artist to be able to import its 3DSMax stuff ..
(10:47:20 AM) justinfront: From a practical point of view front end at the moment away plugs into some adobe code so to begin with we need something that is not too far from a replacement to that?
(10:47:21 AM) JurajKirchheim: yep, that's important
(10:47:31 AM) JurajKirchheim: or let's start with collada or something open
(10:47:44 AM) JurajKirchheim: can 3dsmax export some open format?
(10:48:00 AM) MatthewSpencer: Yeah, the core should have an external interface that works exactly like Adobe Molehill.
(10:48:12 AM) stephaneLeDorze: ok
(10:48:22 AM) MatthewSpencer: 3ds can be converted to collada
(10:48:32 AM) JurajKirchheim: ok, fair enough
(10:48:40 AM) justinfront: its important front end works with prebab and awd formats.
(10:48:48 AM) JurajKirchheim: i'd be willing to write that
(10:48:51 AM) stephaneLeDorze: just want not to build a programmer platform but a production tool with programming capanbilities (even extended) :)
(10:48:56 AM) MatthewSpencer: Collada is very slow and a pain to parse though. Just keep that in mind.
(10:49:00 AM) JurajKirchheim: you'd just have to explain what kind of output you want
(10:49:26 AM) dazKind: there should an extra tool that converts collada to the engine's format
(10:49:26 AM) JurajKirchheim: yes, but I prefer getting things working with human readable formats first ^^
(10:49:45 AM) MatthewSpencer: Every file format becomes the same thing on the GPU, so it's just a matter of writing the correct importer.
(10:49:53 AM) dazKind: personally I dont see the point in supporting 8 or more parser in an engine
(10:49:57 AM) MatthewSpencer: Obj is easy to parse I believe
(10:50:01 AM) JurajKirchheim: ok
(10:50:01 AM) MatthewSpencer: Quick too
(10:50:09 AM) stephaneLeDorze: I agree the more important is to have result quickly and then iterate on several layers in parallel :)
(10:50:36 AM) stephaneLeDorze: a format that support morphing please ..
(10:50:47 AM) justinfront:
(10:50:55 AM) stephaneLeDorze: for facial / cheap animation :)
(10:50:58 AM) JurajKirchheim: the format is not so much the matter per se
(10:51:06 AM) dazKind: a good example is horde3d and it's collada-converter. it's open source, maybe it can serve as a starting point
(10:51:19 AM) stephaneLeDorze: (as long as it can carry the information)
(10:51:47 AM) JurajKirchheim: the matter is getting some data into the engine to have a real world scenario
(10:51:50 AM) stephaneLeDorze: so who want to work on this in addition to Juraj?
(10:52:05 AM) justinfront: Have any of you guys worked with prefab? I have a designer friend who uses prefab with maya I think it can be good workflow.
(10:52:21 AM) JurajKirchheim: never worked with any 3d tools
(10:52:21 AM) stephaneLeDorze: never
(10:52:36 AM) MatthewSpencer: ditto
(10:53:05 AM) stephaneLeDorze: all artist I know of work with 3DSMax (but they're now as old as me.. so the new generation perhaps use more Maya or Blender.. dunno)
(10:53:18 AM) MatthewSpencer: The poor work with Blender!
(10:53:32 AM) MatthewSpencer: Isn't 3DS crazy expensive?
(10:53:39 AM) stephaneLeDorze: (((((( my timing is completely exploded but the discussion is worth it ))))))))))
(10:53:42 AM) stephaneLeDorze: :)
(10:53:53 AM) MatthewSpencer: does anyone have time constraints?
(10:54:10 AM) justinfront: Ok this is guys site, now if I want to continue working with guy we need prefab awd support irresepctive of away3d compatibility.
(10:54:55 AM) MatthewSpencer: Does away3d already have prefab support?
(10:55:09 AM) stephaneLeDorze: I propose we switch to what would be the first Proof of concept for people with limited availability and then can come back to this discussion.
(10:55:13 AM) justinfront: prefab is away spin off
(10:55:23 AM) MatthewSpencer: oh, okay
(10:55:43 AM) stephaneLeDorze: I was initially thinking about something crazy
(10:55:44 AM) justinfront: all the bsp collision is setup in prefab
(10:55:51 AM) stephaneLeDorze: a rotating cube
(10:55:54 AM) stephaneLeDorze: :)
(10:55:58 AM) JurajKirchheim: ^^
(10:56:03 AM) justinfront: just a small class with existing away code and you can walk round rooms
(10:56:19 AM) stephaneLeDorze: a big one with controls! :)
(10:56:38 AM) justinfront: you can go up the stairs but yer always start with a cube
(10:56:52 AM) MatthewSpencer: We will very soon have the ability to import raw vertex data. So cubes, sierpenski triangles, cubes of cubes, things like that will be easy to throw up quickly.
(10:56:54 AM) JurajKirchheim: probably yes
(10:57:04 AM) JurajKirchheim: but it's not much of a proof of concept, is it? ^^
(10:57:29 AM) JurajKirchheim: yes, sounds better
(10:57:33 AM) stephaneLeDorze: I think that the first one is a matter of having something working very quickly so that the other plateform could start working on WebGL / OpenGL backends
(10:57:54 AM) JurajKirchheim: I don't think we should hurry up with switching
(10:58:14 AM) JurajKirchheim: at least not necessarily
(10:58:21 AM) MatthewSpencer: If we do the core the way I propose, your demos will be platform independant.
(10:58:22 AM) stephaneLeDorze: It's a first proof of concept of cross plateform.
(10:58:59 AM) dazKind left the room.
(10:59:12 AM) stephaneLeDorze: I think it would also requiers not a lot of away3D port..
(10:59:39 AM) stephaneLeDorze: Who's not buying it? do you want to propose something else?
(11:00:24 AM) stephaneLeDorze: ok
(11:00:39 AM) stephaneLeDorze: who would be interested in what part?
(11:00:50 AM) stephaneLeDorze: Juraj proposed the formats
(11:01:01 AM) JurajKirchheim: ok, so the proof of concept is basically building a crossplatform low level api and then bolting some away3d code on top of that to see it working?
(11:01:02 AM) stephaneLeDorze: and Matthew some backend (dunno which)
(11:01:28 AM) stephaneLeDorze: technically, yes
(11:01:37 AM) JurajKirchheim: ok
(11:01:46 AM) justinfront: Ok from my perspective happy to work on moving the away3d broomstick over to Haxe format I have some time this week I can put towards that, then maybe others can help trying to get a compile ?
(11:02:20 AM) stephaneLeDorze: strategically, it's bringing the interface, having a first iteration for us to work together and be able to iterate in // on several subjects
(11:02:25 AM) stephaneLeDorze: and not loose the hype! :)
(11:02:26 AM) justinfront: but I would like someone to replace the adobe part ( the backend ).
(11:03:16 AM) JurajKirchheim: I am actually not *that* fond of away3d ... it's very as3-ish
(11:03:34 AM) JurajKirchheim: it's good enough a code source to build a POC with
(11:03:38 AM) stephaneLeDorze: you mean the runtime?
(11:03:52 AM) JurajKirchheim: i mean the api
(11:03:56 AM) justinfront: yer but it has a big test base and seems a good starting point.
(11:04:03 AM) JurajKirchheim: of course, yes
(11:04:31 AM) JurajKirchheim: I just wanted to say, we shouldn't put more effort into a port then necessary
(11:04:32 AM) stephaneLeDorze: personnaly I don't care so much.. just wanna you to buy the decision we'll make.
(11:04:45 AM) JurajKirchheim: :D
(11:04:59 AM) JurajKirchheim: yes, I think this is not the time to discuss it
(11:05:07 AM) stephaneLeDorze: I have no idea of the code quality nor the total feature set of away3D
(11:05:49 AM) stephaneLeDorze: that's why it's easier to spec it as: a big cube with controls :)
(11:06:06 AM) justinfront: well thing is to reach maturity it will take a lot longer from scratch or lower down? I know it will take a long time to be able to do half of what away can do if you guys work from scratch. Better to optimise and tweak something that works?
(11:06:12 AM) stephaneLeDorze: so Justin and Juraj, both on formats?
(11:07:10 AM) JurajKirchheim: well I suggest we do the POC first ... then we'll have a working backend layer and enough insight into away3D to reevaluate things
(11:07:16 AM) stephaneLeDorze: I think that this apply to the first demo
(11:07:27 AM) MatthewSpencer: This is actually two different projects combined into one. It will help to think of them like this:
(11:07:27 AM) MatthewSpencer: A. Cross platform 3D
(11:07:27 AM) MatthewSpencer: B. 3D Toolset
(11:07:36 AM) JurajKirchheim: yep, right
(11:07:51 AM) justinfront: I am just going to move the away code to Haxe looking then up to others to help getting it working... already that is a lot of work. If you have directories you prefer I move over first then let me know but it has lots of dependancies so you can't easily chop it up
(11:08:08 AM) stephaneLeDorze: I understand porting a lot of away3D is a lot for a cube..
(11:08:22 AM) JurajKirchheim: :D
(11:08:44 AM) MatthewSpencer: What about away3Dlite. Isn't there already a haxe version?
(11:08:53 AM) MatthewSpencer: Or is it not up to date for Molehill
(11:08:56 AM) JurajKirchheim: not for molehill
(11:09:01 AM) MatthewSpencer: Alrighty
(11:09:03 AM) JurajKirchheim: at least last time I checked
(11:09:08 AM) stephaneLeDorze: I have an outstanding question:
(11:09:16 AM) JurajKirchheim: shoot!
(11:09:18 AM) justinfront: stephane think you need to play with prefab, thats the problem with lite no bsp support
(11:09:21 AM) stephaneLeDorze: who is in charge of coding the cube and the controls???
(11:09:38 AM) JurajKirchheim: what do you mean by controls?
(11:09:46 AM) stephaneLeDorze: unreal lilke
(11:09:50 AM) stephaneLeDorze: mouse and keyboard
(11:10:07 AM) stephaneLeDorze: you can point the way you like wit the mouse
(11:10:13 AM) JurajKirchheim: oh, ok
(11:10:24 AM) JurajKirchheim: well, once we have a camera, that should be straight forward :D
(11:10:27 AM) stephaneLeDorze: and move forward/backward side'ward' with the keyboard
(11:10:41 AM) stephaneLeDorze: yes
(11:10:42 AM) justinfront: it depends on the application.
(11:10:52 AM) grumpytoad: not straight forward due to cross-platform differences
(11:10:55 AM) stephaneLeDorze: who want to do it?
(11:11:10 AM) stephaneLeDorze: proof of concept will show a lot of problems :)
(11:11:15 AM) JurajKirchheim: dunno ... I wouldn't single this out
(11:11:27 AM) MatthewSpencer: You shouldn't see any cross-platform differences related to the actual 3D. That's what the core backend solves.
(11:12:01 AM) JurajKirchheim: basically whoever implements the camera should do this
(11:12:12 AM) stephaneLeDorze: ok
(11:12:19 AM) stephaneLeDorze: who implements the camera :)
(11:12:38 AM) stephaneLeDorze: basically who want to give a go at logic code (gameplay)
(11:13:40 AM) stephaneLeDorze: ok looks like we're building a low level engine :p
(11:13:46 AM) stephaneLeDorze: uhuhhu
(11:13:51 AM) stephaneLeDorze: I can do it.
(11:13:58 AM) MatthewSpencer: Question: Our OpenGL targets (c++/Java), we're going to need to write external libraries to expose glFunctions to HaXe right? Or do these already exist?
(11:14:58 AM) stephaneLeDorze: What about using hugh's work? (just asking)
(11:15:15 AM) naowe left the room (quit: Quit: Page closed).
(11:15:41 AM) stephaneLeDorze: I think he uses SDL
(11:15:54 AM) stephaneLeDorze: you should contact him..
(11:16:30 AM) JurajKirchheim: true
(11:16:38 AM) stephaneLeDorze: about backends, which one can we support for the poc?
(11:16:55 AM) stephaneLeDorze: ideally all but dunno if we are enough..
(11:17:11 AM) stephaneLeDorze: who want to adress which one?
(11:17:31 AM) stephaneLeDorze: Matthew?
(11:17:47 AM) MatthewSpencer: molehill should be easy to handle. opengl will take some more time, especially considering there seem to be no gl bindings for Java/C++, and the neko bindings are out of date
(11:18:18 AM) stephaneLeDorze: doesn't nme use some? ..
(11:18:25 AM) stephaneLeDorze: k
(11:18:30 AM) MatthewSpencer: I can write the bindings, just need to learn how to access external c functions. There's a page on it somewhere on the haxe board.
(11:18:53 AM) grumpytoad: http://haxe.org/doc/cpp/ffi
(11:18:54 AM) MatthewSpencer: NME might, but that'd just be another library, and another layer to push through
(11:19:07 AM) MatthewSpencer: @grumpytoad: Thanks
(11:19:21 AM) grumpytoad: that'll give you neko bindings for free
(11:19:53 AM) grumpytoad: (as well as cpp of course)
(11:20:16 AM) MatthewSpencer: It'll take me a little while to learn how to do that, so I might be slow at making the bindings
(11:21:00 AM) stephaneLeDorze: I think hugh could / Andy Li could help, contact them..
(11:21:18 AM) MatthewSpencer: For the cross platform wrapper, you guys are saying you want molehill style? AKA Context3D
(11:22:11 AM) stephaneLeDorze: I think it's pretty reasonnable to aim at this interface..
(11:22:45 AM) MatthewSpencer: It's perfectly do-able, you'll lose some gl features. Not that they would be used often enough to matter anyways.
(11:22:47 AM) stephaneLeDorze: otherwise, no luck with flash .. :\
(11:23:33 AM) stephaneLeDorze: so I 'll update the wiki with this milestone definition.
(11:23:36 AM) MatthewSpencer: Well, the alternative would be to write a gl backend, and hide the flash implementation behind that. It would require a lot more to implement though.
(11:23:41 AM) stephaneLeDorze: and the roles
(11:23:43 AM) stephaneLeDorze: give access..
(11:23:55 AM) stephaneLeDorze: (yeah)
(11:24:07 AM) MatthewSpencer: Sorry, one more question. Will we be using nme?
(11:24:35 AM) JurajKirchheim: if implemented, why not? :D
(11:24:46 AM) MatthewSpencer: Context3D.drawToBitmapData( ) requires BitmapData (eg: nme). Just one example
(11:25:00 AM) JurajKirchheim: oh, ok
(11:25:01 AM) stephaneLeDorze: I think it would be faster to develop and it covers mmuch more than graphics so yes
(11:25:07 AM) MatthewSpencer: Fair enough
(11:26:11 AM) stephaneLeDorze: and if you got to agressively optimize nme, it will profit to other projects :)
(11:26:17 AM) MatthewSpencer: So I'm on the backend?
(11:26:26 AM) justinfront: I am just worried if you go too much back to basics, then I can't really just give my smart designer friend a tool like prefab and knock something together in hours that is good... you will be working on it till next christmas and it still won't do half of what away can do now. I don't see why we can't rewrite the backend ( adobe part ) and then optimise the hell out of away but essentially init
(11:26:27 AM) justinfront: ially track the current build. I know its more fun to go with new but not always best.
(11:27:15 AM) MatthewSpencer: @justinfront: The back to basics cross platform backend will not have any effect on what you want. It's merely to help code separation.
(11:27:51 AM) JurajKirchheim: yes
(11:27:51 AM) MatthewSpencer: It will look and work just like the molehill library.
(11:28:03 AM) JurajKirchheim: as mathew said, these are two different layers
(11:28:13 AM) JurajKirchheim: matthew*
(11:28:20 AM) stephaneLeDorze: We're planning to use existing tools (prefab and/or others..)
(11:29:39 AM) stephaneLeDorze: it's just not part of first milestone and what Matthew is talking about is below the Stage3d interface, so no implication like he said
(11:30:37 AM) JurajKirchheim: the point is really getting "something like stage3d" cross-platform and building enough code around it to evaluate it
(11:30:51 AM) MatthewSpencer: It'll be separate from Stage3D:
(11:30:51 AM) MatthewSpencer: flash.display3D.*
(11:30:51 AM) MatthewSpencer: HIDE.display3D.*
(11:31:07 AM) justinfront: Ok practical questions on what I have been working slowly on...
(11:31:09 AM) justinfront: 1) I was assuming that uint is not a generally a good idea for cross platform.
(11:31:09 AM) MatthewSpencer: Remap will make it transparent though
(11:31:11 AM) justinfront: 2) arcane is arcane and is not haXish and so going with publics instead.
(11:31:36 AM) stephaneLeDorze: So about the cube / camera / controls, this means I'll work with you justin to bring some parts of away3D (minimal)
(11:31:58 AM) justinfront: 3) there seems to be an excess of getters and setters
(11:32:01 AM) JurajKirchheim: you don't need away3d for a cube
(11:32:15 AM) MatthewSpencer: Neko will be a pain, we'll have to work in native int32 there for some of the stuff. I'd rather keep int32 out of the other platforms though.
(11:32:33 AM) JurajKirchheim: well, it's very AS3-ish, yes ...
(11:32:33 AM) justinfront: but I need it so that I don't have to do code for guy in as3 anymore! :)
(11:33:18 AM) MatthewSpencer: If you want to keep the toolset highly optimized, try to batch as much as possible.
(11:33:34 AM) justinfront: so uint for int I think will work for most of away I am not sure about the adobe interface
(11:33:35 AM) stephaneLeDorze: how it's not only a cube
(11:33:35 AM) MatthewSpencer: Function calls kill AVM2 performance
(11:33:44 AM) MatthewSpencer: Non linear access kills C++ performance
(11:34:09 AM) stephaneLeDorze: it's keyboard, mouse, camera, maths, events in addition to some rendering.
(11:34:52 AM) MatthewSpencer: @justinfront: For some crazy reason, int is faster than uint in Flash anyways, so you never really see uints.
(11:34:58 AM) stephaneLeDorze: (I have never done away3D before)
(11:36:05 AM) justinfront: I know I am just telling you what is in the away code I have seen most of the for loops are uints ). It would be good to get target experts so zjnue, niel focusing on javascript.
(11:36:12 AM) stephaneLeDorze: So I propose we all think about it and then come back together with some timing information (not preventing us to start).
(11:36:14 AM) MatthewSpencer: @stephane: If the goal is a cross platform demo, we don't need to have the Away3D platform ported to show that. We can just code a basic molehill app and demo the cross platform support.
(11:36:33 AM) justinfront: were is Tarwin?
(11:37:47 AM) stephaneLeDorze: It's a matter of having a bare minimum atop of the interface to show it..
(11:38:06 AM) stephaneLeDorze: I don't think it will slow down the backend development.. do you?
(11:38:32 AM) MatthewSpencer: Not at all
(11:39:20 AM) stephaneLeDorze: please send me you github accounts names so that I can give you the rights
(11:39:32 AM) MatthewSpencer: m22spencer
(11:39:33 AM) JurajKirchheim: back2dos
(11:39:54 AM) justinfront: So you going to write an adobe replacement using nicolas shaders for initial backend?
(11:40:26 AM) MatthewSpencer: That's the goal.
(11:40:43 AM) stephaneLeDorze: as you know..( or not )
(11:40:45 AM) MatthewSpencer: I'm going to try to keep it as close to context3D as possible
(11:40:55 AM) stephaneLeDorze: git can work with branches
(11:40:56 AM) justinfront: so the interface should be the same initially?
(11:41:29 AM) MatthewSpencer: Yeah, It should be an exact match to start
(11:41:30 AM) stephaneLeDorze: I invite you to think about it during development so that not to break the master
(11:42:12 AM) MatthewSpencer: I'm just gonna start on the external gl calls for c++ right now, while everything settles, in case something changes.
(11:42:46 AM) onthewings [~chatzilla@n219073020163.netvigator.com] entered the room.
(11:43:14 AM) stephaneLeDorze: I propose to schedule now the next meeting where we'll be able to give some rought estimations and/or give feedback on things we could have forgotten
(11:43:44 AM) stephaneLeDorze: what about next weekend same hour?
(11:44:15 AM) JurajKirchheim: sounds good
(11:44:15 AM) MatthewSpencer: I'm out of town for a week, but I should be back by then. So that works for me.
(11:44:20 AM) stephaneLeDorze: (Matthew, Juraj you have acess)
(11:44:25 AM) JurajKirchheim: thanks
(11:44:27 AM) MatthewSpencer: Thank you
(11:44:32 AM) stephaneLeDorze: ok
(11:44:40 AM) stephaneLeDorze: so let's meet next weekend
(11:45:03 AM) stephaneLeDorze: meeting over -- we can continue talking.

version #10659, modified 2011-06-12 18:24:25 by mspencer