M3G format - 2006 GDC talk

Hi, I found this on the internet archive:
Mobile 3D Development and COLLADA Stephen Wilkinson 3/20/2006 4:00 PM - 4:45 PM

It points to the Khronos schedule for conferences. It’s really interesting. I don’t know if Stephen Wilkinson is still around these forums now? I’d like to ask 2 simple questions about the .m3g format regarding fog (distance planes) and vertex colors.

I’m aware of the m3g evolution from 2004-2009 up to the .h3t format.
However, I’d like to get into this topic with technical details (back to 2004).

Please let me know if anyone else has had the opportunity to code or work with the J2ME 3D .m3g format.

Cheers!
Pierre.

Incidentally, does anyone have screenshots of how the 3D Mascot Capsule game engine v.3 looked?

I was a member of JSR-184 which created the .m3g format and worked on Mascot Capsule v4, which was an M3G implementation and am somewhat familiar with Mascot Capsule v3. I do not have any screen shots from v3. I was also a member of JSR-297 which created M3G 2.0. The latter was overtaken by events so that no products were ever released.

It was all a long time ago. Not sure how much detail I will be able to recall.

1 Like

Hi @markc , it’s amazing to meet someone from the original .M3G format dev team!.:fire::fire::fire:

I think the format is formidable as it has so many things that definitely shaped the way we handle 3D data ( I saw a lot of similar things regarding USD and GLTF).

I picked up interest in this format to give original retro game developers a way to port their 3d meshes into the JSR184 J2ME format. I’m coding with the help of Claude, Gemini, a modern day M3G exporter using Blender 3.6. github().com/3dcinetv/M3G-Blender-Exporter

So far, the exporter does:

  • export .m3g byte complyant
  • bones + animation (1 action timeline)
  • Materials + alpha
  • World color (background), ambient light, point, and sun (omni / directional)

Next on the roadmap:

  • Vertex colors
  • Morph targets (blendshapes)
  • Fog (it’s there but I can’t assign the appearance)

I contacted Claus Höfele after I found out he wrote a whole book using Blender 2.49 and M3G API. This was last week.
For the past two years (before I found the book), I’ve been trying to put 2+2 together basically through trial and error. AI wasn’t “smart enough” back then. However things have changed for the better and I finally got work done in 1 month, what took me 2 years to slowly progress in regards of making the exporter.

I got a semi-final “Pre-release” version finished now.

I understand back in 2005, the original .m3g .py addon for Blender 2.49 also had a long journey of development. I read the notes inside the addon, and there were things left to be finished. I understand the .mbac/ .mtra formats evolved pass .m3g, and in 2006 the .h3t format took over.
I understand Blender 2.5 arrived, then no one updated the addon, the format was left behind in time. I contacted another CGI artist who used to work in 3DsMax back at the time, and he pointed a lot of interesting facts about the .m3g format in regards of custom attributes/(in blender 2.8+: Custom properties).

@markc there are some things that are cryptic to me in regards of volume detection (they call it raycast - nikita36078.github(.)io/J2ME_Docs/docs/jsr184/index.html. Question: if I create an empty#1, assign custom properties: location, size; these properties can be passed on to Java by Object3D.find() <–Id of “1” in this example, and in Java we can create a “trigger event” if the raycast hits, right?

Another thing I wanted to ask is about LODs. There’s nothing on the current internet that talks about how J2ME handled .m3g LODs at the time. The little I know it’s only through other retro developer forums or old podcasts about the J2ME games era, but not really any details about how they handled/passed these kind of attributes (load?) at a given distance from the camera/player. If you could share something about this, it would be amazing.

You mentioned you are familiar with Mascot Capsule V3: was this an authoring visual environment like Unreal Engine or Unity? Even a vague sketch of what it looked like would be awesome. I understand it had an Eclipse integration, so I really don’t know if it had its own “tool panel” or it was just an easier way to import classes from it (dependencies / code)?

Anything you can share on these topics, I’ll be great to progress in this exporter for Blender 3.6
Regards!

Pierre.

@markc just chimining in, in case you’ve not seen this thread.
Also: Was mascot capsule just an API or an actual (visual) environment to develop games?