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 [2010/10/27 09:30]
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 WindowsiPod TouchiPhone, iPad, Android, ​and Palm WebOS in C++ +  * Create games and apps that run on eight platforms in C++:  OSXWiniOS, Android, WebOS, RIM Playbook, Linux, Flash 
-  * Entire engine based on GL (OpenGL ES 1.or standard Open GL modes+  * Entire engine based on GL (OpenGL ES 1.or GL 1.3) 
-  * System specifics are totally ​abstracted, hiding the gotchas and caveats of each platform +  * **In App Purchase** integrated for iOS, Android, and webOS through a single interface (IAPManager) 
-  * Scene graph component based system that handles game and GUI objects together ​(they are the same thing)+  * 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)
   * 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. (4+ implementations ​available, including AVAudioPlayer and FMOD+  * Simple to use AudioManager ​with smart cachingstreaming, and per sfx controls. (Supports 6 implementations) 
-  * Portrait and landscape ​mode support with rotatation/flip +  * Portrait and landscape ​modes support with rotation/flip (on some platforms) 
-  * Automatic internal handling to get 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 +  * 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 ​.pvrct) +  * 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 can serialize to/​from ​storage +  * 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]], ​and [[http://​www.rtsoft.com/​pages/​dink.php|Dink Smallwood HD]]+  * 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 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 ===
-  * No messy C++ hierarchy - Only a single entity type that lets you add components ​to+  * No messy C++ hierarchy - Only a single entity type that lets you add components ​and additional entities as children
   * 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 - normally ​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