tunepunk's Forum Posts

  • cjbruce Yes I've been using Full Maya for 15+ years, but when it comes to game development Maya LT is enough. The only thing Maya LT lacks is renderer, (which you probably only need if you're doing cutscenes, or movies and stuff like that). It has a built in shader builder as well, that supports PBS etc.

    Maya LT is pretty much just a bit slimmed down version of Full Maya, and targeted for indie game developers so it should be fine.

    I'm pretty sure there is a three.js exporter for Maya LT but i havn't tried it.

    Found this link though, so it seems three provides exporter.

    http://stackoverflow.com/questions/15117186/maya-export-to-three-js-json

    Currently my next step will be to clean up some meshes to use my current models with Q3D, and as I'm not using any advanced shaders, the only thing i will bake is Ambient occlusion in the textures, as I'm going for a flat shaded look.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • cjbruce after a bit if playing around i managed to get it right last night. I'm exporting obj with Maya LT. and directly importing the obj file, placed them upside down.... turning on physics for the object helped me correct the orientation and camera because i could see which way it was falling. LOL.

  • Yes it's quite easy to use, but it's always good to have a plugin for it so you don't have to copy the functionality from this capx into your projects.

    And good to have some simple settings accessible.

  • I checked your post in the other thread and replied there. Fantastic work! If there is any easy way to turn this in to an easy plugin/behaviour for the C2 usebase, I'm happy to assist in any way I can, with tutorials, icons, artwork, models, and demo scenes.

    With background in 3D art, I can give some input of what designers might find useful in terms of simple settings.

    From what i saw so far, the only thing i would like to set is

    Light: angle / intensity / color maybe such things / ambience

    Model: Orientation.

    I don't know if any other animation support is included in the js, but for now, just simple objects like this is fine. Very useful for some level 3D level art, coins, powerups, UI elements etc etc...

    The next thing to wish for is some simple animation support for characters, but this is already way more than I hoped for...

  • Truly fantastic R0J0hound! Something like this I've been looking for for ages. I love 2D games, but sometimes you just want to have some 3D elements inline, where you're not limited to rotations only clockwise or anticlockwise. I've been playing with Q3D as well, but as you say it's quite bulky when you just want to add some simple 3D elements in a 2D world.

    If you have any plan to turn this into a C2 userbase friendly plugin/behaviour I'd be happy to assist creating some assets, Icons, tutorials and whatnot. Good job R0j0.

  • I just took the bold decision of trying to redo the game using Q3D instead. I've been playing around with that plugin again, and finally starting to understand how it works. I'm still going to keep an isometric perspective, and I can reuse much of the assets since they are already quite low-poly.

    The reason I'm going to switch over from pre rendered sprites to 3D is mainly because everything is so much harder to do in 2D isometric at this point, as construct 2 is mainly built for platform or top down perspective, i have to do a lot of heavy calculations, for arrows, and using up a lot of memory budget just for characters animations in 8 directions.

    It's a little step back in the development, but It seems like i can keep most of the game mechanics, the multiplayer functionality and much else. I'm just going to switch all the graphics and use real-time 3D instead.

    Other benefits:

    * I can easily use several color versions of the character, by just switching the diffuse-map. (instead of having multiple renders of each character)

    * Arrows are going to behave more naturally, and not so heavy calculations to get corrections for isometric perspective.

    * I can reuse a lot of assets in different angles and colors, instead of having to render 1 sprite for each object. in the orientation that I want it in.

    * I don't have to worry about too many draw calls and Z sorting.

    * Character can now rotate freely, and I'm not limited to 8 steps, which doesn't feel natural in a precision archery game.

    Performance would be pretty much equal or better, depending on how detailed I do the map, but as I'm not using complex shaders with bump, normals, specularity etc etc, It's going to be pretty fast.

    Visual Quality is going to be pretty much the same, except the characters which I have to use a bit more low poly version of, but It should be fine, since they are quite small.

    Wish me luck... I'm keeping the old version of the project for rollback if things go south, but from my tests so far I think Q3D will be better.

  • That sounds cool. Sorry i can't help you out in that case, I'm not much of a coder.

    I'm quite curious what the cpu and fps would be if you fill the entire screen with 1 point per pixel. Basically put a screen size box of points, distributed evenly, and have the rendering disregard any points that is not closest to "camera". That's just curiosity, what kind of load you would get.

    To explain little bit my reason for this whole thread, is that I've always missed a way to put simple 3D object in 2D games made in construct 2, without having to rely on something like Q3D plugin, when it's just small objects here and there. A way to load simple objects like coins, cards, UI elements, powerups, or whatever, because i want them rendered inline in small viewports (like your tilemap approach) so you can sort them Z-index wize along with regular 2D sprites. I don't know if it's possible or not, but that's what got me investigating what could be done, and so far, converting small objects to point cloud, seemed like a quite good approach, but maybe polygons are faster if you're using webgl/javascript, no idea. Instead of using tilemap, maybe something canvas or paster would be better?

  • cjbruce I managed to import some of my models to try out. So far so good, but it seems all imported 3D objects and the camera are using a platform/side view angle. This get very confusing when you try to build a level as the axis doesn't compute in my brain. in a top down view Z should be up down movement on screen, and y would be closer/further to camera. Do you know of any way to change those settings? I think it's important i get this right otherwise the physics of the arrows are going to go bonkers.

  • i was just asking for something like a resizable iframe that loads a 3d object, but a 3d layer would be amazing, it will be really cool just to be able to import 3d objects to C3 and the idea of the "3d layer" its cool.

    I've been hoping for something like this as well. Even if you make 2d games, it would be nice with an option to maybe add some small little neat 3D elements. Maybe for the UI, or coins or boxes, cards that can flip with a bit of 3D feel. It doesn't have to be full feature 3D, with shader engine, etc etc... Just the 3D effect. maybe load a simple model in some cases, that you can rotate in more than one axis.

    Or Like when flipping a card. Currently if you want this effect, you would have to pre-render a sprite animation of X amount of frames. For a simple effect like that you would be using a lot of memory budget.

    Even CSS can do these kind of effects. So would be very nice to have it in games HTML5 games as well.

    I'm making my game in 2D isometric, but the characters I would prefer to have in 3D, so I wont be limited by 8 direction pre-rendered sprites. I love 2D but sometimes you just want a little bit of 3D effect, or small 3D objects in games. I'm considering recreating my entire game using Q3D or Babylon plugin, just so i don't have to create 200+frames for each character (several walking, running, death, animations in 8 different directions). But it would be much nicer if there was some support for simple 3D objects. My main issue right now is editing levels in 2D view, using Babylon or Q3D which is a bit of an hassle, since you constantly have to preview to see how things are going to look. Tweak, preview, tweak, preview.

    If it's possible to have a 3D layer, that would be awesome, but even better would be to a 3D object, kind of like sprites, but with one more dimension.

    Anyway, I don't need full 3D support in C2/C3, but at least a better way for the plugin makers to be able to make use of a 3D viewport for editing levels in 3D.

  • R0J0hound here is an updated capx with my latest tweaks and explanations. I'm trying to shortlist the amount of data we need to show. Currently only the for each loop is the major slowdown. Is there any way to limit that? what would be nice in this case right now, would be a plugin you could feed the array data, and handles the for each loops, and renders. If you look at the capx, you will understand what I'm talking about. Commented in capx also.

    https://www.dropbox.com/s/e9it73xfhqjfuib/shortlisting.capx?dl=0

  • Do you mean like layered sprites?

    Sprite + a layer on top with a texture?

    I doubt it, but it would be a nice feature, especially if you want to color sprites in different color versions.

    Sprite with a layers, which has blend modes for each layer... i like the concept. Especially if every layer had a nice little button to use layer 0 alpha.

  • This is a pretty nice feature. Currently I'm using sprites on different animations, and frames, so when I export I get spritesheets. So if I'm understanding this right it will have the benefits of tilemap object, but not restricted to power of two sizes?

  • +1 for this one. Even if scirra don't want to support 3D, it would be nice if 3rd party plugins could have access to GUI and make their own veiwport.

  • I took a closer look at your example and group the events so i could see which was most cpu intensive.

    * The movement of all the points was by far the heaviest part at around 55% cpu usage. That's probably because they are moved individually...

    * The tilemap rendering was using around 35% cpu with draw calls of about 5% cpu.

    * Not using tilemap rendering z sorting was about 18% cpu, but draw calls at 35% cpu.

    I know these numbers are not always 100% accurate, but it gives us a hint of where to improve.

    The reason i got so high framerate before by only rotating in one axis, was because i rotated all the points as one entity. I did not need to calculate any new positions for them. I pinned them to a dummy sprite, and rotated the dummy sprite instead. Maybe somehow this could be done for each axis?

  • Yes a bit like that. But not really, as the position of a voxel is inferred based upon its position relative to other voxels. So we're don't really want to go the voxel route as it's too complex. My approach is indexing rgb values only in a grid, so we can get a 2d representation of a point cloud by searching the index, pixel by pixel.

    We only need an rgb value.

    How we search the index is where we can optimize a lot.

    Maybe some simple steps like this for the screen space index search could look like this ...pixel by pixel.

    1. is there any bounding box (index) in this pixel space.

    if no . carry on to next pixel, repeat step 1.

    if yes. get the name and the scale of the index. now we know which index to search. go to step two.

    2. search in z until we hit a point. (maybe we can do it like a ray caster/incremental or just search cell by cell)

    if no point is hit, carry on with next pixel. go to step 1.

    if we find a cell with an rgb value. Set this pixel to rgb value. Done,

    Proceed with next pixel. repeat step 1.

    Worst case scenario we need to repeat this the amount of pixels (resolution we want to render) for 100x100 would be 10.000 times.

    if we can render regular sprites we can render this... how fast we can search screen space and set rgb value is what matters. just like a regular 2d sprite moving across the screen we only need to draw one rgb value per pixel. we need to find the rgb value and draw it as quick as possible.

    possible? what do you think