User Tools

Site Tools


proton_features

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
proton_features [2012/03/21 06:23]
seth
proton_features [2013/07/26 01:34]
seth
Line 1: Line 1:
 {{:​proton_header_black.png?​|}} {{:​proton_header_black.png?​|}}
 === Features === === Features ===
-  * Create ​2D and 3D games that run on seven platforms in C++:  OSX, Win, iOS, Android, WebOS, RIM Playbook, Linux +  * Create games and apps that run on eight platforms in C++:  OSX, Win, iOS, Android, WebOS, RIM Playbook, Linux, Flash 
-  * Entire engine based on GL (Can use OpenGL ES 1.X or GL 1.3) +  * Entire engine based on GL (OpenGL ES 1.X or GL 1.3) 
-  * In App Purchase integrated for iOS, Android, webOS through a single interface (IAPManager)+  ​* **In App Purchase** integrated for iOS, Android, ​and webOS through a single interface (IAPManager) 
 +  * Third party systems integrated: [[http://​www.tapjoy.com|Tapjoy]],​ [[http://​www.hookedmediagroup.com/​Mobile/​|Hooked]],​ [[http://​www.chartboost.com/​|Chartboost]],​ Startapp, [[http://​www.flurry.com/​|Flurry]]
   * System specifics are abstracted, hiding the gotchas and caveats of each platform, while still harnessing the full power of the native hardware (for instance, hardware audio decoding)   * System specifics are abstracted, hiding the gotchas and caveats of each platform, while still harnessing the full power of the native hardware (for instance, hardware audio decoding)
-  * Hierarchical entity/​component based system that handles game and GUI objects together (they are the same thing) 
   * Sigslot based (with boost::​signals) messaging system that lets you dynamically schedule calling entity and component functions, set variables   * Sigslot based (with boost::​signals) messaging system that lets you dynamically schedule calling entity and component functions, set variables
-  * Supports screen stretching ​to fit any screen sizemanual multiple resolution layouts, or mixture of both+  * Supports ​fake screen ​resolutions with stretching, ​so you can target only few sizes and automatically scale up/down to the closest one
   * Internal component based GUI system with menus, buttons, scrolling, text input (supporting hardware and soft keyboards)   * Internal component based GUI system with menus, buttons, scrolling, text input (supporting hardware and soft keyboards)
-  * Particle system (LinearParticle) +  * 2D and 3D Particle system (LinearParticle ​for 2d, and Irrlicht for 3D
-  * Font system supporting in-line coloring, kerning, scaling, wrapping. Imports BMFont generated fonts. +  * Font system supporting in-line coloring, kerning, scaling, wrapping. Imports BMFont generated fonts. ​(no unicode yet..) 
-  * Simple to use Sound Manager ​with smart caching ​and streaming. (Supports 6 implemenations+  * Simple to use AudioManager ​with smart cachingstreaming, and per sfx controls. (Supports 6 implementations
-  * Portrait and landscape modes support with rotation/​flip +  * Portrait and landscape modes support with rotation/​flip ​(on some platforms) 
-  * Automatic internal handling to seamlessly ​around ​power-of-2 texture limitations+  * Automatic internal handling to seamlessly ​deal with power-of-2 texture limitations
   * Socket and HTTP classes, in-game file downloading   * Socket and HTTP classes, in-game file downloading
   * Powerful 2D image handling with scaling, tinting, rotation, animation   * Powerful 2D image handling with scaling, tinting, rotation, animation
   * FileManager that transparently handles decompressing files when needed, supports mounting zips as filesystems,​ automatically mounts Android .apks   * FileManager that transparently handles decompressing files when needed, supports mounting zips as filesystems,​ automatically mounts Android .apks
-  * Touch screenaccelerometerand vibration support +  * Get abstracted input from touchmouseDInput, iCade, Xperia gamepad, 60Beat Gamepad, accelerometer. ​ Supports multi-touch on most platforms including Win7/Win8 
-  * RTPack.exe command line tool intelligently handles image conversions to .rttex format, a wrapper that handles multiple formats including jpg and powerVR compression types +  * RTPack command line tool intelligently handles image conversions to .rttex format, a wrapper that handles multiple formats including jpg and powerVR compression types 
-  * Requires minimum outside dependencies for portability+  * Requires minimum outside dependencies for portability, most are included (such as libjpg, libpng, a small subset of boost, etc)
   * Large group of cross platform utility functions suitable for stealing if you want (Such as RemoveDirectoryRecursively,​ CreateDirectory Recursively,​ LaunchURL, etc)   * Large group of cross platform utility functions suitable for stealing if you want (Such as RemoveDirectoryRecursively,​ CreateDirectory Recursively,​ LaunchURL, etc)
   * Supports premultiplied alpha, can optionally convert on load   * Supports premultiplied alpha, can optionally convert on load
   * Separate "​system"​ and "​game"​ timers make pausing the game easy   * Separate "​system"​ and "​game"​ timers make pausing the game easy
-  * Built-in database system (VariantDB) can serialize key/data pairs to/​from ​storage ​easily+  * Built-in database system (VariantDB) can serialize key/data pairs to/​from ​disk or raw memory ​easily
   * All C++ source is "right there" making debugging easier - don't know how to use a component? Look at its source   * All C++ source is "right there" making debugging easier - don't know how to use a component? Look at its source
   * 3D features provided by the optional pre-integrated [[http://​irrlicht.sourceforge.net/​|Irrlicht]] component - Proton SDK doesn'​t use any of its window setup or input code, but only the rendering pieces   * 3D features provided by the optional pre-integrated [[http://​irrlicht.sourceforge.net/​|Irrlicht]] component - Proton SDK doesn'​t use any of its window setup or input code, but only the rendering pieces
   * Liberal [[http://​www.rtsoft.com/​proton/​license.txt|open source license]]   * Liberal [[http://​www.rtsoft.com/​proton/​license.txt|open source license]]
-  * Used in the games [[http://​www.rtsoft.com/​pages/​dscroll_mobile.php|Dungeon Scroll]], [[http://​www.codedojo.com/?​p=138|Mind Wall]], [[http://​www.rtsoft.com/​pages/​bliparcade.php|Blip Arcade]], [[http://​www.rtsoft.com/​pages/​dink.php|Dink Smallwood HD]], and [[http://​www.rtsoft.com/​pages/​tanked.php|Tanked (Free 3d game)]] +  * Used in the games [[http://​www.rtsoft.com/​pages/​dscroll_mobile.php|Dungeon Scroll]], [[http://​www.codedojo.com/?​p=138|Mind Wall]], [[http://​www.rtsoft.com/​pages/​bliparcade.php|Blip Arcade]], [[http://​www.rtsoft.com/​pages/​dink.php|Dink Smallwood HD]], [[http://​www.rtsoft.com/​pages/​tanked.php|Tanked (Free 3d game)]], and [[http://​www.growtopiagame.com|Growtopia]]. 
-  * Even if you don't plan on selling a desktop version of your game, having a native desktop binary makes it a breeze to record high speed movies of your app for promotion purposes+  * Even if you don't plan on selling a desktop version of your game, having a native desktop binary makes it a breeze to debug and record high speed movies of your app for promotion purposes
  
 === The Insane Proton Sigslot based Entity/​Component System === === The Insane Proton Sigslot based Entity/​Component System ===
Line 34: Line 34:
   * No hard-coded Render or Update functions, a very different way to think about and use entities   * No hard-coded Render or Update functions, a very different way to think about and use entities
   * Loose coupling, can call functions, get/set variables without knowing anything about the entity/​class - directly or scheduled   * Loose coupling, can call functions, get/set variables without knowing anything about the entity/​class - directly or scheduled
-  * Dynamic ​function/​variable ​creation ​at an entity or component level using a variant data type+  * Dynamic creation ​and runtime binding of function and variables. Supports reflection, remote procedure calls, tweening
   * Components can share data and work together - for example, adding the RenderTrailComponent will add a '​trail'​ without knowing anything about the component (s) that is actually handling rendering   * Components can share data and work together - for example, adding the RenderTrailComponent will add a '​trail'​ without knowing anything about the component (s) that is actually handling rendering
   * Can request callbacks when data is changed or functions are called   * Can request callbacks when data is changed or functions are called
   * You can just ignore the entire entity system if you want, or just use it for your app menus/GUI   * You can just ignore the entire entity system if you want, or just use it for your app menus/GUI
proton_features.txt · Last modified: 2013/07/26 01:34 by seth