Welcome to The Small Step Engine.



Learning Materials

Further Development




Used Tools and Technologies

Microsoft Windows Vista 32bit / Windows 7 64bit
These two Operating Systems were used as a development platform for familiarity and application domain reasons as further discussed with the choice of graphical development kit.

Primary Programming Language - C++
With performance and flexibility being the prime considerations for language adoption, C++ was chosen for all programming requirements. The benefits found for other languages (C#/Java/Python/Visual Basic) were far outweighed by the availability of greater control in management (Garbage collection), performance (Less of an API, the faster), tutorials and support (~20+ years old) and flexibility with graphical API use. This limits the highest risk aspects of the project, as well as potentially opening newer avenues for future development.

Data Structures - XML
As a hierarchical structuring system, XML is a prime standard to adopt for user editable options, profiles and statistics due to its ease of implementation, readability and scalability. Implementation of an XML reader and writer was coded from scratch, as it is largely an unwieldy process, to avoid performance and COTS (Commercial Off-the-shelf) integration issues, amongst others.

Graphical Development Kit - DirectX 9.0c (June 2010)
The selection of SDK (Software Development Kit) for graphical development remains a topic of great debate within the real-time visual development sector. Although the prospect of OpenGL cross-platform development is enormously alluring, especially given recent market share developments, scheduling for new semantic learning would increase the risk of project failure. Whilst my DirectX knowledge is not far advanced, the reference material available is much greater, especially for DirectX V9.0c which has been a market leader for almost eight years. Evaluation of the risk versus reward also has to factor the increased complexity of cross-platform considerations for the programming language itself which are personally unquantifiable. For this reason, DirectX was chosen to reduce project risks and timeframe for baseline development. DirectX 9.0c was chosen over newer versions for graphics card compatibility in educational use.

NVIDIA FX Composer 2.5
This HLSL Debugging Tool proved to be invaluable for warning highlighting and error elimination as HLSL files are extremely cumbersome to debug during runtime.

NVIDIA Direct3D SDK 10
This SDK proved to be useful in highlighting areas for potential aesthetic improvement. Whilst no code was directly used, the displayed images available gave ideas for implementation which may otherwise not have been found.

Microsoft Visual Studio 2005
MS Visual Studio 2005 was used for the development of testing programs, designed and built with limited stability and re-use considerations in mind. Primarily these programs do not feature within this Thesis but for rapid development of largely trivial systems, especially for language testing, familiarity of the development kit aided this choice.

Microsoft Visual Studio 2010
MS Visual Studio 2010 was used for the initial prototype for Direct3D display as a familiarity development tool with DirectX libraries, prior to undertaking the main program deliverable. It was soon found to be inadequate for a final solution as support for GUI development tools within the API have been relinquished by Microsoft for this program release.

Nokia Qt Creator 2.3.1 (Based on Qt 4.7.4) 32-bit
Nokia’s version of Qt Creator (prior to the Digia takeover) was used as a fundamental basis of system design and development due to HCI concerns regarding individual development (Multiple methods of accessing a desired ‘function’ with just a single linked implementation). The time cost of restructuring UI components is vastly reduced using the provided QLayout and Spacer systems, along with many component customisation benefits over direct GNU licenced rivals. Despite not utilising one of the Qt Creators main benefits of cross platform development, system performance versus other APIs was found to be of little concern for applications with less than one hundred visibly active Widgets at any given time.

DOxygen 1.8.3/Graphviz 2.28
DOxygen, coupled with the Graphviz plugin, allows for a GNU Public Licence and Open Source respective implementation of managed UML (Unified Modelling Language) development, providing any potential future developers or code inspectors to assess code fragments with relative ease. The produced documents were updated as per each version release and are distributed with the coding version of the final suite for each of the three created programs.

Adobe Photoshop CS4/Microsoft Paint V6.0
Basic use of Adobe Photoshop and MS Paint V6.0 was adopted for ‘Sky Sphere’ texture production. This method was preferred to manual generation due to the potential time and quality costs of developing a non-critical system in a cumbersome manner.

Autodesk 3D Studio Max 2008 V11.0
Autodesk 3DSM was used for simple mesh creation with linked textures as it provides many of the required baseline structures for manipulative display. An attempt to manually create these structures proved to be extremely time consuming and outside of the general scope of procedural terrain generation (See Appendix D – TSSE Suite Code, The bottom of file Display_CreationProcs.cpp for further information).
Copyright ©TSSE 2013. Contact via support@tssengine.com