Roadblocks... Limitations with MMF

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • Well I'm stuck between a rock and a hard place. On the one hand, I feel like I've gotten really good at using MMF and I consider myself to be into pretty advanced territory. On the other hand, I'm terrible at coding in most other programming languages and I couldn't really make anything useful with them.

    So here's my roadblock:

    I need a feature that MMF doesn't have, but I can't make it. So I'm basically stuck. This, in my opinion, is the limitation with MMF. Once a person gets well acquainted with the program, they begin to discover things they just can't do, and it's really frustrating.

    I think the most frustrating part is that I've requested these features to be added in the past, but I'm basically at the mercy of Clickteam. So it's incredibly hard to create a business as an indie game developer using Clickteam products because of these roadblocks.

    I have a roadblock on a potentially great game that has caused me to stop working on it entirely, all because a feature is missing from MMF that I can't add myself. So is this a limitation with MMF or with me? I never planned on getting into serious coding, which is why I use MMF in the first place. So coding my own extension to solve the problem isn't really an option. I don't have the money to pay someone to make it right now, so basically I wait. That is, if I can even find someone to make it once I have the money to afford it.

    Without the feature, my game really can't be made. I wouldn't even really consider this a huge issue since you know... maybe I should just not make a game that requires that feature. But I see this problem cropping up again in the future. I can't possibly predict everything that MMF is and will be capable of... so the more advanced I get into MMF, the more I'm going to run into limitations like this, and the more I'm either going to have to cancel games completely, or dumb them down to a level I find unsatisfactory.

    I know it really isn't reasonable to demand that Clickteam adds every feature the users need, but some of the features I'm in need of seem like basic features of other game creation tools.

    I'm not really sure why I'm posting this, or what this thread will accomplish. I guess it's just partially me ranting, and partially me hoping I'm not alone, and partially me hoping that someone will notice and start working on the features I need.

    Until then, I guess I'll start working on another game project... and hopefully not run into another brick wall.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • Well I'm stuck between a rock and a hard place. On the one hand, I feel like I've gotten really good at using MMF and I consider myself to be into pretty advanced territory. On the other hand, I'm terrible at coding in most other programming languages and I couldn't really make anything useful with them.

    Programming is mostly the logic, strategy, and design patterns you use to write effective code. If you're effective in MMF2 you have the basic understanding of logic flow for programming, and all you need to learn is the syntax of a language and a few common design patterns.

    If you're finding you can't do something you want to do, ask for an extension to be made. Since you cannot code it yourself or offer money, just hope it will be made. Simple extensions are not too time consuming to make, generally.

    You're not at a roadblock, just an intersection with a stop sign.

    Working as fast as I can on Fusion 3

  • Well I understand that programming is mostly logic/strategy/etc. I can manage decently with javascript and simple programming, but the issue arises when I have to do complicated things... Looking at Phi's blog on extension development in C++ makes me stare off into space as saliva pools in my mouth: Please login to see this link.

    I've just never figured out C++ after many attempts... I always get stuck and can't get myself out, and it's over silly stuff like just setting up the project or getting libraries or things to compile. It's a nightmare for me, which is why I'm using MMF in the first place. To get around having to do all that complicated behind the scenes stuff.

    I've asked for someone to make the extension... No luck. That's my problem. I'm relying totally on the hope that someone might come along and finally make what I need. So this is a terrible business strategy. I can't just wait around and cross my fingers when I need to add something to my game. What if it happens later on down the road when I have my online game up and running and I need to do something extremely important but I can't because MMF can't do it and I can't make the extension myself? Tough luck? I think it is my biggest concern with MMF game development. Without coding it all myself, I run into a brick wall and I cross my fingers and hope that someone can tear it down for me. Otherwise my game is dead.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • There will always be a roadblock, even if you are John Carmack. You could master C++ or whatever and you would still find roadblocks. So don't let them stop you, there are usually several ways to get things done, so don't focus on the only one that's not working, try to find another one.

    If you told us what the problem is we could offer solutions. Chances are there's other way to do what you are not being able to do. Be patient and try to look at the problem from a different perspective.

  • Well I've already brought up my problem on the forums to no avail.

    I need an object that can load in a 3D mesh and animate it, with similar properties to an active object.

    Doesn't need to load in bones/rigs/controls. Doesn't need dynamic lighting or anything.

    Needs to have the background be transparent and I need to be able to place the object above and below other objects properly.

    Must be HWA optimized.

    There's the 3D mesh object which is similar to what I need, but it's not HWA optimized and there doesn't seem to be any chance that it will be.

    The other 3D extensions involve having a "camera" and need to load all the objects into a special window, but I need to have each mesh be it's own object so I can layer them individually... which I can't do if they all exist in one object.

    I know it is possible to do it, since the 3D mesh object exists... but it is just too slow for my purposes as I need to load roughly 12-20 characters on screen and without optimization it brings the game to a crawl.

    edit: and if I could barely make an extension that displays a button on the screen, there really isn't any chance I'll be scripting a custom 3D mesh loader any time soon. I mean maybe with a year of learning and trial and error... but that isn't exactly the kind of time I have available.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • There will always be a roadblock, even if you are John Carmack. You could master C++ or whatever and you would still find roadblocks. So don't let them stop you, there are usually several ways to get things done, so don't focus on the only one that's not working, try to find another one.


    The difference is that John Carmack might be trying to create some new technology that doesn't exist... while I'm just trying to do something as basic as loading a 3D mesh into the game without it bringing the framerate to a crawl.

    I could use Unity which does it easily, but then I really don't want the entire game to be in 3D, and I've made so much progress with the game inside MMF. I'd much rather use MMF over another tool but it's just the limitations that bug me.

    Stuff like simply being able to load graphics externally at runtime is such a process with MMF when it really should be a common feature. The current system for importing graphics is cumbersome at best.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • So, you want your 2D creation suite to be more like a 3D creation suite so you don't need to learn the 3D creation suite? You've not only answered your own questions by saying everything you don't want to do or learn, but you've confirmed your initial concern of this thread being pointless, and more likely, just a rant.

    Don't hold your breath on it. It's not a 'basic' thing to do like you think it is. And if it was, my suggestion would be that you do it. I'm not trying to be rude, but this is how I feel.

    Please login to see this link.
    Please login to see this link.

  • So, you want your 2D creation suite to be more like a 3D creation suite so you don't need to learn the 3D creation suite? You've not only answered your own questions by saying everything you don't want to do or learn, but you've confirmed your initial concern of this thread being pointless, and more likely, just a rant.

    Don't hold your breath on it. It's not a 'basic' thing to do like you think it is. And if it was, my suggestion would be that you do it. I'm not trying to be rude, but this is how I feel.


    No, I don't want it to be more like a 3D creation suite. I want it to be able to load 3D meshes... That's all. I even specified that it doesn't need a 3D camera, or importing bone rigs or controls... The game is 2D but I want 3D meshes in it. So I either learn 3D programming and learn how to do everything all over again in Unity, or MMF gets the option to load 3D meshes and I can continue using this great software that I have knowledge and experience with.

    I mean basic as in it's something that most game development software has as a basic feature. Not that it is basic or easy to add it to MMF. Don't mistake me as someone who doesn't want to put in the effort. Trust me, I spent a lot of time and effort attempting many solutions, attempting to learn extension creating, I've tried learning C++ for years. But some things just aren't meant to be. Some people will never be professional basketball players or concert pianists no matter how hard they practice. C++ programming is just not something I have skill in. I'm already doing every single other aspect of my game on my own... I don't think it's much to ask that I get some help somewhere along the way.

    But you're right about me saying it's a rant... because it can be taken that way, obviously. Yes I'm ranting... if you don't like it, then you really don't need to respond to my thread, but if you really must tell me how I should learn to do everything myself, and how I'm just complaining that MMF isn't a 3D game tool, then by all means, continue.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • How convincing is this 3d mesh supposed to be? If all the points and textures are around a central vertex and not look like its dx11, there are ways you could code it yourself using just active objects with rotations and scaling. The more limited your display is to be, the simpler the coding. People have made pseudo-3D effects in clickteam products as far back as KNP- I'd know, Ive done it myself. I even made a fully operational wolfenstein engine in TGF for purely academic purposes.


    But there has to be the reality at the end of the say that mmf2 is a 2d application IDE. Any forays into 3d, no matter how limited, are going to be an uphill battle. Given that, while developers have created a ton of extensions for mmf2, 3d meshes are a very niche usage and lots of work to generify, something nobody is going to create if it isnt for their own usage. Like said above, no matter *what* language or libraries you use for a project, you *will* run into roadblocks. I have, hundreds of times in every language, and Ive never been without a workaround.

    My suggestion is, take a good think about your feature. Is it core to gameplay? If its so vital in your specifications, starr looking at ways you could create a similar simpler-yet-convincing effect. Without knowing your details, I cant tell you. But lets say you wanted a spiffy 3d menu. Well look at the metroid prime games, I think #3. You could create such a menu easily by just using lines and circular AOs that orbit around a point. The math for such 3d looking effects is simple, cos*sin and sin*sin for x/y and cos for scale. Now if your "3d meshes" were limited to points at an offset from the origin, theres no reason you couldnt create a wireframe and even wrap textures around it, loaded from CSV files

  • As with any tool, you cannot foresee every intricate detail of the tool before starting your project, but you generally do a proof of concept before embarking on the project. One would think that the feature that you are after is fairly crucial to your game for it to be such a show stopper. The point is that MMF is not fit for purpose currently for what you want to do.

    If this is preventing your commercial efforts, have you considered making a paid work request? If you can't afford it then it may highlight the same issue Clickteam faces. It's difficult to justify an expensive feature that is requested by and is only useful to a handful of users. Everyone can appreciate the frustration of the situation, but that's reality. We all suffer from the limitations of a limited supply of time and money. Having said that, perhaps we need to start thinking about community funding extensions so that the burden of the cost of an extension is shared between all those interested and not the individual. I would like to see a platform that makes this easy to do.

  • Well I wanted it to be able to import 3D characters into my game... Which would allow for rotating the character in many directions, easy clothing/weapons/accessory swaps (as you'd just change the meshes overlapping one another) and nice smooth animations.

    The only work around is to load dozens of images stacked on top of one another and import thousands of frames of 3D rendered animation. Which is the reason why I also mentioned that MMF's graphic importing is cumbersome. Not to mention having thousands of frames of animation is going to have a massive file size, as opposed to a 3D mesh. Not to mention if I need to modify a clothing item, I need to go into the 3D app, edit it, save it, render out all the frames for all the animations in all the directions, then import each frame one by one into MMF since MMF can't load alpha channel images with box importing... (again, cumbersome)

    So just to add/change one article of clothing on a character, I'm looking at like an hour of work... which just isn't really feasible every time I want to add or modify something. That's why I either need a really easy way to import 2D images, or a 3D mesh display.

    I honestly think that importing 3D meshes is a feature that many people could find useful. I don't think only a handful of people would use it.

    Crowd funding for extensions sounds amazing. I wish we could do that. I'd be able to chip in some money toward an overall amount... The community could pitch in a couple dollars each for various extensions they would like to have.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • I understand the frustration, but you should just work within MMF2 limitations or choose another tool. Just make the game in 2D, and you can do all you need to do. You are trying to use a tool for a task it wasn't designed for. You need to be flexible, you won't always get it your way. There will always be limits.

    For every project you should always plan and foresee this kind of situations, you either find a new tool to get the job done or adjust your project to fit your current resources. Is it really important for the game to have this 3D element? Why? How else could I get similar results with 2D elements? is it worthy to change tools? How much time will I invest learning and mastering a new tool VS doing all the "cumbersome job" that's needed to get it working on MMF? (which is a work that needs to be done for virtually every game, but still). Ask yourself some of those questions and good luck! :)

  • I understand the frustration, but you should just work within MMF2 limitations or choose another tool. Just make the game in 2D, and you can do all you need to do. You are trying to use a tool for a task it wasn't designed for. You need to be flexible, you won't always get it your way. There will always be limits.

    For every project you should always plan and foresee this kind of situations, you either find a new tool to get the job done or adjust your project to fit your current resources. Is it really important for the game to have this 3D element? Why? How else could I get similar results with 2D elements? is it worthy to change tools? How much time will I invest learning and mastering a new tool VS doing all the "cumbersome job" that's needed to get it working on MMF? (which is a work that needs to be done for virtually every game, but still). Ask yourself some of those questions and good luck! :)


    I'll answer these questions now... though I'm sure some people will argue my answers:

    1. Is it really important for the game to have this 3D element? Why?

    - Character customization is a pretty large feature of my game. It isn't the whole game, but it definitely matters a whole lot. 3D is the only option that is viable because 2D would require an insane amount of time and resources in comparison.

    2. How else could I get similar results with 2D elements?

    - I could render out all of the 3D meshes as 2D frames. Except this is not very practical. As I explained above. The issue is that I have one male and one female character. Each character faces 8 directions (I could limit this to 4, I suppose, so just divide the final answer in half in that case) Lets say that I have maybe 10 animations total for each character. (idle, moving, attacking, blocking, hurt, etc) Lets say each animation has maybe 10 frames of animation. The character also wear clothes which consist of a headwear layer, bodywear layer, gloves layer, shoes layer, and equipment in both hands layers (weapons/shields/etc) Plus the body layer and hair layer at the minimum. (for different body colors/designs and for hairstyles)

    So in total we're looking at:

    for 8 directions of animation:

    10 animations x 10 frames per animation x 8 directions = 800 frames

    800 frames x 8 layers = 6400 frames

    6400 x 2 gender styles = 12,800 frames

    This is only with ONE single type of armor/hat/weapon/hair style/etc per gender. That's an enormous amount of frames to render and insert ONE BY ONE, into the game. Do you see what I mean by cumbersome?

    I could limit the clothing restrictions more, to the point where clothing is a single outfit change and maybe a single weapon, but you're still looking at thousands of frames of animation. Even if I half the directions faced to 4... even if I limit it to one gender.. even if I limit it to one outfit for the entire clothing option, and 5 animations... No amount of limiting is going to make this work. (unless I basically throw all customization out the window... which you know... is kind of important in an MMO nowadays)

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • Forgot the last question:

    How much time will I invest learning and mastering a new tool VS doing all the "cumbersome job" that's needed to get it working on MMF?

    - Too much. For example, lets say I pick up Unity. In order to get to the same level I'm at with MMF, I'd need to spend a decade using Unity. Does it seem reasonable that I spend a decade mastering a tool to be able to accomplish what I've already done in MMF, just to have the option to load in 3D objects? Maybe if you're a crazy person.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • If your game itself is in 2D, I think it would be incredibly jarring to have 3d character models in most cases. If you're using sprite-based graphics, its actually fairly easy to create character customization that would be very convincing in 2D. I've seen it done hundreds of times to great effect. Something like Maple Story, no? The real key here is how you construct your player characters. Have a baseline object with a few body shape variations, have a separate object attached to it for hair, a separate attachment for shirt, pants, weapon, shield, whatever. By having large amounts of attachments, you can create a minimal amount of graphics and combine them to give a lot of variation. If there are 5 base shapes, 30 weapons, 10 each of shirt/pants/gloves/boots/shield/helmet, you've got 150 million possible combinations. And thats with less than a hundred different sprites, all of which could be fairly small and easy to draw. For Asunder, I've done countless thousands of frames of sprites already

    Any way you split it, it winds up being appreciably less work than messing around with 3d graphics. For each mesh or model and attached set of textures, you could have just 1 sprite, and you can copy/paste sprites and make variations upon them so easily.


    One of the key things you have to realize here is that you don't need to individually render each frame of a character for each item attachment! Don't! Attach them as being separate objects, which are displayed on a simple offset from the player's position, and then you can animate those positions to match the animation of the character object. Keep those animations simple, and you can simply position your shirt/pants/boots/weapon/etc on top of the player sprite, apply a rotation angle to them and even scaling if necessary, and bam, each graphic file for a weapon, helmet, shirt, whatever- only takes a single frame. A single frame you could draw in a few minutes. All the *work* would be in animating the underlying skeleton, which wouldn't be difficult if you approach it with a comprehensive plan. It could be something as simple as making the character consist of a bunch of invisible objects with action points offset from their hotspots and simply programming the angle and scale to set them to for animations (and then position the attachments at those action points with those angles), or it could be something as coherent as storing all skeletal animations in an array and dynamically loading coordinate offsets, scales & angles from that four-tuple.


    This is how modern games, be they 2D or 3D, approach character customization. Don't try to hardcode animations or models or meshes, you have a base model or sprite, and attach other models/sprites to it. If you use an array-based solution, the only *real* work in doing the whole thing is writing the tools you use to do the motion capture / recording for the animations. The actual positioning/rotations themselves could be done in a single line of code in your game. If you try that approach, my heavy recommendation is to save your data using key frame points and linear interpolation between them (ie each frame in your array would record the x/y offset, angle, rotation, and the amount of time to elapse until the next frame, and then the game could linearly interpolate between each frame and the next for each of those values, so each animation you record might only be 2-5 points total on average, which would be incredibly easy to record, heck you could manually write them into an array at that point. Actually, if you do that, I recommend adding another value for controlling how the animation interpolates to the next point- an option dictating no interpolation vs linear interpolation vs quadratic or sin curves or whatever. They look much nicer for some things!)

    Edited once, last by Pixelthief (August 2, 2012 at 3:59 AM).

  • Thanks for the advice, but I don't think the graphics would look jarring at all.

    If you look at my game demo video, I think you'll see that the 3D characters work nicely: Please login to see this link.

    Except there I'm using a ton of rendered frames, which is just too much to continue with that way. If my game had a really simple flat looking art style, I might be able to get away with your puppeting method, but it doesn't really. I suppose I could change the entire look of the game, but I'd rather just not make the game then have to compromise the whole appearance. All of the clothing and such are already separate attachments (layers) but unless I actually break apart the torso and the limbs and all of that, I can't possibly just attach them to the character and be done... They need to have different frames for different poses.

    I actually would live with doing it all 2D if there was just a better way to load the sprites in to the game. It's just too much at the moment for me to load in each sprite manually. Loading them externally takes too much processing power at runtime, so right now the only option is to put them all inside the game... which would take me months and months of importing to add all I want to add.

    My biggest gripe is that the technology already exists. The 3D mesh object basically does exactly what I want it to do. It's just not optimized so it can't handle a lot of objects layered on each other. If someone could get a hold of it and optimize it, that would help me a great deal. Unfortunately I think the person/people who made it are totally out of the Click scene now.

    Though there's talk of a 3D package being created by Clickteam for later release... I fear that it's more aimed at actually making basic 3D games and not just adding 3D meshes into existing 2D levels. So for the people saying "MMF isn't for 3D" well you couldn't be more wrong... because it's on its way. :P

    So yeah pixelthief I'm attaching all of the gear to the base characters... but it's still thousands of frames to insert. Either MMF needs a good 3D mesh importer, or it needs an overhaul on how it loads external files at runtime... or it needs a super simple way to load in graphics. I think most people can agree that sitting there loading in each graphic one by one is not the best solution. One of the biggest issues is doing simple fixes to a graphic.

    Say for example of I have a sprite sheet that has 100 frames on it. So I edit the sprite sheet outside of MMF and I want to just replace the sprites that are in the game with the new graphic. Well I can't just "replace all" and be done. I have to go in and manually replace each group of frames for each direction/animation in the active object. It's cumbersome, as I've stated many times. I just wish MMF had a more pointer oriented way of loading graphics. So when you load up MMF, or maybe click a "refresh assets" button, then MMF would grab those image files from your folder and update any objects in the game that use those images.

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • For me the problem is simply that the rendering mechanisms are not appropriate for 3D integration in MMF2. The solution is to abandon software rendering and to use OpenGL for everything. This is the only viable solution that works cross-platform with a minimal amount of work. If it were based on OpenGL ES 2.0 it would port to pretty much every platform where OpenGL is mentioned given the existence of wrappers and thin emulators for the OpenGL ES 2.0 spec.

    My solution for 3D would be to create a new set of objects that render themselves in a new OpenGL context. Basically embedding a completely new renderer in the application. For anaconda, there would be no need to embed a context as it's already based on OpenGL.

    I know for one that the OpenGL objects you can pull off the forums can achieve rendering of meshes, albeit difficult to use. Of course this is hardware accelerated but everything lives in its own OpenGL context, which is based on a subwindow in the application. So there is no chance of merging the normal rendering mechanism with the OpenGL mechanism, so you would have to render everything inside this OpenGL context. Also the rendering mechanism itself is somewhat flawed. I don't agree with rendering objects like this with OpenGL. The renderer should be independent of the game state for performance reasons.

    If someone can get me the source code for the 3D mesh object it may be possible to render the mesh to a texture instead of reading the pixels from the GPU to a software buffer, just to be re-uploaded to the hardware (assuming that it is already using the hardware to render the mesh in the first place).

  • Ok, so I've got the source code for the extension. It uses irrlicht internally (a pretty old version at that). If I can't get the raw texture handle then it's very difficult to make this work. I'll let you know how I get on.

  • Awesome. Dude you have no idea how thankful I would be if you pulled this off. :p

    Please login to see this link.

    My examples:
    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!