FPS Example, Video, comments and progress.

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.
  • Video link to current progress:
    Please login to see this link.

    Ok, so I picked up Firefly yesterday, ran the tutorials, downloaded and checked out the examples.

    Decided the best test of the engine would be to try and make a really simple FPS. Crappy graphics and models, but get to grips with the new systems in FF

    The goal was to load a simple level, add player movement and camera control (2 axis) and add enemies with animations and some basic AI.

    I was initially going to go for a DOOM style enemy system, with the enemies rendered as camera facing billboards, but since Firefly has no support for animated billboards*, I plumped for using an animated mesh for the enemies instead.
    *I realise I could write my own system that flipbooks between multiple materials to create animated billboards, but this isn't an extensible solution that could be used to make a whole game. You'll end up with 100s of materials, the library is clunky to update etc. It's a hacky solution, not a good one.

    Anyway, I eventually managed to get an animated mesh into the game - for reference, I'm using .X format, exported from Milkshape3D using the DirectX exporter with default settings on the exporter. This was the only way I could get a decent import.
    No support for FBX (?!), MD2 and MD3 are really old (Quake2&3 era formats) and while I could import animated MS3D files, the animations were corrupted, so .X it is.

    Here's where I started hitting some weird quirks of the Firefly setup (which I welcome some help/feedback/clarification on if anyone knows, I'm new to this and probably doing it wrong).
    Early on I hit an issue where I couldn't use the LoadMaterial command within a fastloop or ForEach loop. This meant that batch loading and setting up meshes as part of a Level-loading loop was not possible. I could load and position the meshes in the fastloop, but the assignment of the materials had to be done externally from this. I made a separate post about this here:
    Please login to see this link.!
    Any help there appreciated

    Anyway, when I came to setting up the enemies I started hitting a similar problem.
    Seems that if you're defining animations as a range (i.e. play frames 5-12), you can't set this inside of a fast or foreach loop. This throws a bit of an issue if you want to control multiple (identical) enemy meshes in a fastloop (which is, as far as I was concerned the MMF standard way of dealing with multiple instances of the same enemy). You can move and position in the AnimatedMeshes in a fast loop like you would for Actives in a normal MMF game, but I had to come up with weird ways to set the animation. It seemed to me that if I have 3 instances of the same animated mesh, I can only set the animations on 1 of them per frameupdate?

    So like, is the update of the Firefly engine separate from MMF? Is that why things in Fastloops don't always work?

    I'm always open to working with something new, and admitting that initially any new thing in game dev is frustrating and difficult, but with the pitfalls I've been hitting so far, I'm not sure about continuing.
    If anyone's interested in taking a look at the project so far and giving some input, I'm happy to share. I'd really like to take this further and try to make something that pushes FF a little, but if there's no interest from anyone else, then I'm not gonna bother!

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

  • Well done, I am still stuck with chockobreak 3d tutorial - 2d to 3d repositioning is just pissing me off, can't believe that they didn't make a proper way of positioning the 3D assets inside firefly.

    From your video I can notice that you can't aim up and down with your player, and also there are some glitches when you move and rotate the camera at the same time. Don't know if it's cuz of screen capturing or something else.

  • Well done, I am still stuck with chockobreak 3d tutorial - 2d to 3d repositioning is just pissing me off, can't believe that they didn't make a proper way of positioning the 3D assets inside firefly.

    From your video I can notice that you can't aim up and down with your player, and also there are some glitches when you move and rotate the camera at the same time. Don't know if it's cuz of screen capturing or something else.

    Thanks for the reply :D

    Not aiming up and down is by choice - I'm going to for a DOOM1/Wolf style game initially, so no vertical aim and no changing floors.. Personally, I don't think theres enough functionality in FF (raycasting, navmesh etc) to make decent 3Axis AI and combat, so 2Axis seems to be the way to go for now.

    The jitter is the screen cap more than the movement in game. I'm making it on a MSSurface, so it stutters when recording and playing. Plus, since I can't scale the viewport I have to set the render area to 1920x1080 just for it to be a decent size on my 3000x2000 screen!

    I feel your pain with the positioning.
    I abandoned the idea of using the inverted thing (was driving me nuts). If you want to translate a 2d position (in the MMF frame), to a 3D position, like, to position a 3D object at a 2DActive in your scene,
    xpos of 3D object = Xpos of 2D Active
    ypos of 3D object = Whatever you want, it's vertical space!
    zpos of 3D object = Frame Height - Ypos of 2D active.

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

  • Well done, I am still stuck with chockobreak 3d tutorial - 2d to 3d repositioning is just pissing me off, can't believe that they didn't make a proper way of positioning the 3D assets inside firefly.

    From your video I can notice that you can't aim up and down with your player, and also there are some glitches when you move and rotate the camera at the same time. Don't know if it's cuz of screen capturing or something else.

    for a start - YOU CAN!

  • On a separate note, another little discovery.
    I think you need to export animations with a keyframe in EVERY frame.
    I've been struggling to get something to loop properly for the afternoon, and once I changed the mesh to have a keyframe in every frame, my loop issues clearer up.

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

  • Quote

    *I realise I could write my own system that flipbooks between multiple materials to create animated billboards, but this isn't an extensible solution that could be used to make a whole game. You'll end up with 100s of materials, the library is clunky to update etc. It's a hacky solution, not a good one.

    I came up with a solution to this, try to atlas all of your enemies onto one texture. You end up with 8 directions * number of frames * animation sets, for all of your characters.
    Obviously this would be better if like Doom you could just load them all in from a single atlas. I'm not entirely sure but I think you could move UVs around using shaders, since Tri's water demo actually showcases the movement of textures without having to change to a new texture, but it was a little bit convoluted to figure out how the shader was actually working. But yeah atlasing all your characters is a good idea, especially because I found doing the flipbook method ended up eating all the ram eventually. Having multiple characters per texture was more economical and meant I was able to keep the overall cache to under 1GB, avoid going to the max (1.7GB) because Fusion tends to crash once you reach the 32Bit memory limits.

    Sticking to 2Axis is wise, Whilst its entirely possible to do 3Axis, and I've tried and got it working but Fusion 2.5 has issues with float values. If you feed it too many it slows the engine to a crawl. If you can use a hitscan as much as possible, it'll be better. Projectiles don't work well because of the reliance of Floats. Recommend avoiding floats entirely if you can get away with it. Obviously you'll need it for the movement.

    If you want to change over to animated meshes its preferable. You can always use Mixamo to animate your characters, the results work great in Firefly. .x can be exported using Blender, just take an Obj/Fbx and import it into Blender. (to enable .x format you have to enable an addon- search for DirectX in the addons list).

    Good luck with your game. Its looking great so far.

    Professional Game Developer

Participate now!

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