Video link to current progress:
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:
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!