Pooka SDK Developer Guide
Development Overview

Development Host Platforms

 Host Platform

Recommended Host Platforms

Host platforms are the platforms under which developers design, build, debug, deploy their applications. The following two desktop operating system are recommended as host OSs for Pooka SDK® application development:     

Windows 10 64-bit     

macOS X

Alternative Host Platforms

Developers may find some other alternative host platforms for certain application development targeting on certain platforms. Since Pooka SDK® provides necessary library (.lib) and C/C++ headers (.h), this is technically possible. Though OmniGSoft© does not provide technical support for alternative development environment set-up.

Following are some samples of alternative host platforms:

  • Develop Android application: Linux, macOS with Eclipse or Android Studio as IDEs
  • Develop iOS application: Windows 10 with Visual Studio (cross-platform C/C++ module) as IDE

Target Platforms

Target platforms are the final platforms where developers' application runs. Pooka SDK® applications support following target Platforms:

Windows Desktop:

  • Windows 10 Desktop (Version 10586 and above)
  • Architecture:x86, x64
  • Typical device: Windows 10 PC

Windows UWP

  • Universal Windows Platform (Version 10586 and above)
  • Architecture:x86, x64, ARM, ARM641
  • Typical device: Windows 10 PC, phone, XBox

Android

  • Android (5.x Lollipop / API 20 and above)
  • Architecture:ARM, ARM64, x862, x86_642
  • Typical device: Android phone, tablet, ChromeBook

macOS

  • macOS 10.x (10.12 Sierra and above)
  • Architecture:64-bit
  • Typical device: macOS computer

iOS

  • iOS (11.x and above)
  • Architecture:ARM/ARM64
  • Typical device: iPhone, iPad, iPod Touch

 Note 
1 - will be available when the support for ARM64 build tools integrated in the next Visual Studio update.
2 - removed from the current version of Pooka SDK®, available upon request.

SDK Architecture Diagram

  • Core Library - the core components needed to create a full functional cross-platform application, either graphics oriented or console-like application.
    • MiniSTL - the fundamental component related to type, data structure, string utilities, as well as anything unrelated to presentation and graphics.3
    • MiniAWT - the fundamental component that encapsulate window, view, controller, low-level user input, platform hardware and services access (sensor, game pad, geolocation). Some functions in this module may not be used directly by the application, instead, application use their higher level counterparts defined in module GraphicsApp module.
    • GraphicsApp - the most direct module that a cross-platform is driven by. It encapsulate the most important functions to create a cross-platform application, such as template based content, Sprite based 2D content, scene-graph based 3D content, light-weight component, high-level user input and so on.
    • GraphicsKernal - the underlying graphics engine that undertake the task of rendering the application content to the device display through platform native graphics API, such as OpenGL or DirectX. Pretty much like a graphics driver, most part of this module is designed as opaque and application developers do not need to consume this module directly.4
  • Network Extension - the extension library adding the networking capability to the application.
    • Socket - the component encapsulates the Berkeley sockets, providing a object oriented and platform independent socket programming interface.
    • Http Client - a cross-platform Http client module make development of Web-capable application easy and efficient.
    • Html / CSS - a miniature html layout engine support a subset of HTML 5 / CSS 3 layout, together with a light-weight Web container component, help present html document in application.5
    • Multi-player Game Utility - a group of multi-player game utilities easy off massive multi-player, real-time communication apps or online game.6

 Note 
3 - The name of "MiniSTL", as a "miniature STL library", is inspired by C++ standard template library. Though the module is not implemented as C++ template library. Application developers who has strong preference on a more powerful template library can use C++ Standard Template Library or Boost together with Pooka SDK®.
4 - A small 3D vector math library is provided in this module helps complete 3D mathematic computing.
5 - This module is powered by a tiny HTML/CSS rendering engine based on a modified open source project LiteHtml Layout engine (V0.3) with BSD license. To view the original license declared by the project author, visit the project's license page.
6 - In current version Pooka SDK®, multi-player game utility is provided as an experiement module, and shipped as source code within multi-player game sample project "Mini-Dogfight".