iOS game engine art pipeline
Alright in this video, I want to show the process from going from Maya on the left, to the asset being loaded into the iPhone simulator on the right and pretty much I'll show both of them here together, one more time, but pretty much. If I go to the Maya window, I've written a custom plug-in for Maya which the artists use and they can either use it from the command line or from the the UI. I'Ve got a little Mel you I script written and from that they can. They can set several options on how they wish to export the model and the plugin will go through their scene and export the mesh or the animation or collision geometry, whatever they want, based on their selections and will be optimized for iOS. And if I change to wireframe yeah there, you can see the skeleton that's animating in Maya and it should be yet and of course it's the same one that you're seeing on the iPhone simulator over here and if I pan back, you can see both of them. Animating, this one's been exported at 24 frames a second and that's probably what I'm going to keep it at. Unless artists have a different opinion, I'm not an expert, but I think they export at 24 frames a second. So once the plug-in has exported the data, it will be in a text file or a binary file, depending on the option that they set. So if I load that up so that you can see it, hopefully it'll show up on the phone, probably not, but I have it focus. So this is the ascii version, so this is more for humans so that they can read the data and it's more for me. If there's a bug, I can track it down and you'll see sort of the base frame. Let'S, let me come on focus, so the base frame is the first frame, and then I compress my animation based on that frame. So there's less data here you can see the frames there is a hundred and ten for this particular animation and to see the iphone optimized version is just a binary file with the data now how this gets into the the engine there's a ENT file. I call it an entity file and if I click on that, here's one it's an editing resource, I give it a name. I give it a class and it's see game entity which, if you've seen my previous video, it's kind of pointless, because there's only one game entity class since I use entity component systems, but I just decided to give the class parameter then there's a preload. And then you can set the components that you wish the entity to have. So here there's one there's a mesh component. So that's private instagram viewer rsoft 've seen in previous videos and then there's the animation component, which no surprise has all the animations. And there you see the idle am file, which is this file that I showed previously and then there's some other files, there's a animation group which will pick between random animations and you can set several commands to the animations. So the whole design premise for this system is to not have me involved when it when you need to run the engine, so the artists can pretty much do everything without my help, they can offer their own shaders write their own materials if they know how and Get that imported into the engine and everything's done via text files or scripting, so they don't need to come to me and say: can you you know code such and such well? That'S not entirely true. They can come to me if they need a new component that needs to be written in C++ and I'll write it for them. But after that they can use the components. However, they wish and they can do the scripting. However, they want so it's pretty much a data-driven design, and once you set those text files, the engine smart enough to pick pick those files and load them up based on um, there's a resource file that they, the artist can play around with, and that allows the Artist to say i want this preloaded, i want a memory pool of these assets, so they can control how much memory is used for entities, although generally they don't do that, I'm the one who's in control of that, since I know more about the memory and how Things need to be laid out than they do, but everything else they can control they like, I said they can write the materials they can write the shaders and control all the scripts and play animations and set the parameters. So it's pretty much a data-driven design system for the engine and if everything goes well, they won't need to talk to me, which is the best way, because that way, I don't become the bottleneck when it comes to designing the game and they can iterate that much More quickly, so they can go from Maya over here, export the data and then over here it'll get uploaded into the simulator or the iphone in a couple of clicks. So that's pretty much the basic pipeline that I have so far that goes from Maya to the iphone and over the coming weeks or months, it'll get I'll, add more features and I'll document via videos thanks and bye.