Main Page
From WorldKi
WorldKi provides developers with a powerful platform for the creation, collaboration on, and distribution of native code applications. Currently, it is focused on video games, but it has the potential to expand considerably.
Features Overview: this is an analysis of the features of the platform with links to further documentation on all the systems
Contents |
Design Goals
This is a high-level description of the design goals we used when constructing the WorldKi platform. It embodies a philosophy we have. We don't believe we are the only people capable of creating significant innovations. Our philosophy is designed to help build a powerful community by leveraging and rewarding the expertise each of us has.
Performance
- Don't force the developer to use performance degrading code.
- Use local compiling when possible to tune for the local computer
- Compile all code in one compilation unit to allow better compiler optimization
Flexibility
- Avoid building in functionality that is only useful to a particular type of program
- Build APIs which will empower the developers to create what they need
- Enable full customization of all important logic
Collaboration
- Break programs into APIs, Code, and packages to allow code re-use
- Allow meta-data and attached functionality to make it easier to document, understand, and re-use content
- Create infrastructure that allows all content to be distributed and/or sold according to whatever terms the original author wishes
Security
- Use digital signatures to ensure that the author and publisher are in fact who are listed as such
- Use sandboxing to limit what programs can do
- Use a distributed trust model to grant permissions only as needed
Cross-platform
- Make it easy to implement and optimize the WorldKi platform on any hardware and operating system
- Ensure that code that works on one platform under KiViewer will work under all supported platforms
- Provide mechanisms to allow emulation of platform-specific functionality when absolutely needed
Ease of use
- Create debugging flags to catch programming errors and report problems
- As much as possible, expose powerful features through simple APIs
- Keep the API as small as possible
