A few months back we decided to do a proof of concept for Trudy, which included mocking up a few scenes and creating a small tech-demo.
The purpose of the tech-demo was to gauge some of the technical difficulties we'd encounter, settle on a few design issues, and use as potential pitch-material for grants. Some of the key points we wanted to implement and test were:
- SDL-based rendering and input (for future ease-of-porting).
- Overall scales of tiles/units/objects and camera positioning.
- Orthographic projection vs. perspective projection with slight parallax.
- Texture pixel density/UV space.
- Pathfinding in 3D, including slopes and jumps.
- Usable and destructible objects that affected pathfinding.
- World-space indicators for movement ranges, usable objects, etc.
- Basic UI system for buttons/menus in screen-space.
- 3D particles that could collide with scene geometry.
- Basic sounds and music using OpenAL.
We started off by doing a level sketch on paper:
And then proceeded to model it in Maya along with the required props and a single unit:
It took a good couple of weeks to put it all together, but we came away from the experience with a few important lessons:
- Perspective projection -- no matter how slight -- added a lot of life to the scene. We still liked the old-school isometric look, but even a small amount of perspective (similar to Harebrained's Shadowrun Returns) made moving the camera feel much nicer.
- Being able to create levels that could be rotated freed up a LOT of options for level design. We'll most likely still add some sort of a graphical effect for units obscured by level geometry so they remain visible, but we won't limit ourselves on overall architecture.
- Texture space is worth it. Our single "mega texture" that covered the whole map looked quite blurry compared to the single character and some of the props.
- Animations played out slower than expected and the lack of blending/interpolation really showed.
- Colliding particles with level geometry worked out really well! It avoided awkward clipping issues and provided a surprising amount of polish, e.g., explosion debris splashing in water, rain drops hitting the surface of a bridge, etc.
Two GIFs of movement and attacking from our tech demo.
While we were quite pleased with the demo, it wasn't something we could build upon to make a full game. There was no proper level/scene editor, collision markers, AI, font rendering, resource allocation, etc. While individual pieces could be taken out and reused, we started on the overall engine pretty much from scratch and are currently working on expanding it.