Game for All-in-one table computers.
One of my favourite activities my two boys and I did when they were young is play with their wooden trains. Building the tracks and running the trains around the layout gave us many hours of fun.
My First Train Set is a Table computer game for children of any age. It is a table-top version of wooden trains, popularized by brands such as Brio® and Thomas the Tank Engine®.
One or more participants use touch to drag, rotate, and interlock pieces of wooden track and trains onto a virtual building surface. When assembly is complete the user can watch their train ride the rails of the track layout that they designed.
My First Train Set has some benefits over the real thing:
no small parts or choking hazards
takes much less space
multiple players can collaborate easily
no mess to clean up
the layout persists between play sessions
The target age group is 2 to 6 years. This software category is sparsely populated, in part due to the lack of suitable hardware for children with immature dexterity and motor control. The software is educational and encourages/teaches:
Although it will work in any configuration, the best user experience is achieved by laying the computer on a table or floor. The user views the building surface from overhead (a birds-eye view). At the edges of the playing surfaces are pieces of track such as straight pieces, curves, bridges, and train cars. The track pieces are dragged to the playing surface by touch and the ends of track pieces snap, interlocking like pieces of a jigsaw puzzle. Likewise, train cars snap together magnetically.
The Horizon platform is ideally suited to this application.
- Unlike a tablet device, the 27" screen allows the user to view a much larger portion of the playing surface at a time. The whole layout can be viewed easily on the large screen.
- The touch surface is ideal for young children, who lack the dexterity to operate a keyboard or mouse.
- A joystick could optionally be used to control train speed in a reactive manner.
- Placed on a floor or on a small table, more than one person can sit around the device to simultaneously collaborate on a layout.
- Having a battery allows the layout to be moved around the room, rotated on the floor, or carried by mom or dad to share with friends and family.
In 2012, I successfully submitted a working app on time in round 2. I believe I can repeat this success.
When planning for development of an app on an ambitious schedule such as this, it is important to break the project into realistically achievable goals, and to determine which features are musts for the original release; which are at risk of delaying the project; and those for which the risk is an acceptable one.
These features are must-have features for the initial release:
- 2D overhead view building interface
- Photorealistic track pieces
- Track and train placement using touch gestures
- 2D overhead view animation of trains
Development of these features can be broken down into modular components.
- Create a data representation of track and train pieces
- Devise in-memory and serialized formats for layouts
- A graphical representation of pieces to/from the in-memory storage
- User interaction (building) including dragging, placement, rotation of pieces
- Enhancement of views to photorealistic rendering
- A physics engine that determines how trains interact with tracks: acceleration; movement along the track; rotation around curves; collisions; etc.
These features would greatly increase the appeal and overall user experience, but may not be realistic for the initial release; however they will be implemented once the above features are complete, ideally in the initial release:
- Photorealistic lighting and shadow effects in all views
- 3D overhead view building interface (like 2D but with some lighting and shadow detail.
- Ability to view layout in 3D from any camera angle (still)
- Animated 3D view of layout
While I am very experienced with C#, GDI+, .NET, physics, and geometry, the world of real-time 3D visualisation and rendering will be new to me. It would be unrealistic to expect to learn the intricacies of DirectX or OpenGL in such a short amount of time, even with .NET wrappers such as SharpDX.
Instead it would be prudent to use a readily available 3D abstraction kit or game engines. I am currently assessing engines well suited to the project, including Axiom Engine and Unity. Adoption of a cross-platform engine could aid in possibly porting the software to other platforms in the future.
Track layouts will be serialized to an XML document that can be shared with other users.
3D modelling will be performed using SketchUp.
Stock photography will be used for textures.
UI components will be professionally designed.
Brio is a registered trademark of BRIO AB.
Thomas the Tank Engine is a registered trademark of Gullane (Thomas) Limited.
Wooden train photograph is used with permission under licence.