Note: I started my game a week early. This a retrospective look at my progress rather than an indication of current work. If I continue to work on my game, I'll make a follow up post with details of my "post-7dfps" changes, and builds will be clearly marked.
A bunch of other commitments ate up the morning of my second day, leaving me with a late afternoon start.
To warm up, I spent some time researching ballrooms and looking for styles and elements which hadn't occurred to me. I also started to think about how I'd like to be able to tune the scale of everything once I had the core mechanics in place and decided that a tile based approach to building the environment would be the way to go.
The other big advantage here, which is something I'd come back to was that I would be able to create my bare minimum of necessary tiles to get my environment made, but then come back and add additional ones in if I ended up with spare time. This approach to designing for modularity and scalability makes staying on target (the target of having something playable) a lot more achievable and hurdles like getting bogged down in details more avoidable.
To get a clearer picture of what I needed to do, I worked out a rough work breakdown structure covering both assets and features that I wanted to achieve. I made care to highlight stuff that was of lesser importance or that I wasn't sure about so that I could easily identify the core stuff I needed to achieve.
Since I wanted to make the NPCs in Dance have a bit of character, I decided that I'd like to have them voiced with a minimal greeting and goodbye, crowdsourcing these from friends and fellow community members. I also thought it would be nice if I could manage to cover EFIGS (English, French, Italian, German and Spanish
) as well as Russian, Japanese and Finnish.
When I was happy that I'd covered most of what I wanted to achieve, I wrote a quick post for the 7DFPS site which outlined the hurdles I was expecting to face and my reasons for starting early.
At that point, I decided it was time to do some research on jMonkey Engine, which I figured 7DFPS would be a good excuse for checking out (When I'd previously tried it, it was pretty lacking in features, but I'd heard that it had come a long way in the past few years
). I watched a few tutorials and made a couple of small example projects, tested importing assets from Blender, and everything seemed pretty usable.
For reasons which I can't recall (a missing feature of some kind, most likely
), I had upgraded to Blender 2.66, which featured some UI changes from the previous version I'd been using. Most notable was the removal of the option to switch behaviour of dragging and panning with the mouse (both are middle mouse drag, but one requires the shift key as a modifier
). Since I work mostly with stuff that aligns to an axis view, I do more panning than rotating and prefer to have panning as the one that doesn't require shift. Unfortunately, I wasn't able to get any help aside from "You're wrong if you're panning more than rotating," and Blender's shortcut customisation requires knowledge of UI operators (which took a fair bit of trawling to find - for anybody who is hunting for it, the operator for panning is not view3d.view_pan(), but view3d.move()
Once I'd gotten my environment in shape, I started modeling up some environment tiles for my ballroom and imported those into jMonkey Engine. In spite of my previous optimism, I found that the the jMonkey Engine IDE started ro run very slowly and was crashing pretty frequently after I'd imported a my placeholder tiles and I decided it would be better to fall back to some more familiar tech (it's possible that some configuration adjustments or migrating to Oracle's JDK could have resolved these, but with the timeframes involved, I didn't want to invest that effort
Before heading to bed for the day, I spent some time trying out Linux builds of SteelRaven7 and Sophie Houlden's 7 Hour FPS games (Saloon Shootout Simulator 2013 and Grapple Dash respectively
Check here for downloads (when they become available) and other posts.