User Tools

Site Tools


proton_info

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
proton_info [2010/10/25 14:51] sethproton_info [2011/04/26 22:34] (current) seth
Line 1: Line 1:
 ==== What is Proton SDK? ==== ==== What is Proton SDK? ====
  
-Proton SDK is an all-in-one framework solution optimized for writing games in C++ and deploy them on many platforms.+Proton SDK is an all-in-one framework solution optimized for writing games in C++ and deploying them on many platforms.
  
 [[proton_features|Feature list]] [[proton_features|Feature list]]
Line 8: Line 8:
  
   * Engine is just source files included in the project, no separate libraries to link for debugging ease (not including system libraries like zlib and gles in some cases)   * Engine is just source files included in the project, no separate libraries to link for debugging ease (not including system libraries like zlib and gles in some cases)
-  * "almost zlib" free/open licensed GL/GLES optimized alternative to libraries like SDL - can be used and shared everywhere without worries.+  * "near zlib" free/open licensed GL/GLES optimized alternative to libraries like SDL - can be used and shared everywhere without worries
   * Components designed to be modular and loosely linked, should be possible to understand and fix bugs when you find them yourself   * Components designed to be modular and loosely linked, should be possible to understand and fix bugs when you find them yourself
   * Created to be easy to compile on many systems, a single .mak should be all that is required, avoiding the automake/configure tools   * Created to be easy to compile on many systems, a single .mak should be all that is required, avoiding the automake/configure tools
-  * Device specifics abstracted out, native UI usage avoided.  Games look and play the same on all devices, but you won't see the standard iOS buttons or dialog boxes in your game for example. +  * Device specifics abstracted out, native UI usage avoided.  Games look and play the same on all devices, but you won't see the standard iOS buttons or dialog boxes in your game for example (with some exceptions, for instance, the native pop-up keyboard is invoked for text entry if needed) 
-  * Can write raw GL/GLES code and easily import existing C/C++ source you have +  * Can write raw GL/GLES code and use existing C/C++ source you have 
-  * An (optional) entity/component system that is designed to conbat "entity bloat", subclass hell and complexity creep - an entity can be anything, an entire game, a widget, a non-rendering sound that plays every ten seconds or something that detects when the Escape key is hit+  * An (optional) entity/component system that is designed to combat "entity bloat", subclass hell and complexity creep - an entity can be anything, an entire game, a widget, a non-rendering sound that plays every ten seconds or something that detects when the Escape key is hit
  
 == What Proton SDK isn't === == What Proton SDK isn't ===
Line 20: Line 20:
   * Not easy to use for everybody - This is a bad choice if you aren't already very comfortable with reading C++, as the code is the main documentation (hey, it's always up to date!)   * Not easy to use for everybody - This is a bad choice if you aren't already very comfortable with reading C++, as the code is the main documentation (hey, it's always up to date!)
   * Not a one button solution for putting your games on Android and iOS.  You still have to understand these platforms and get your hands dirty to release to these platforms.  Otherwise when something breaks, you won't know how to fix it.   * Not a one button solution for putting your games on Android and iOS.  You still have to understand these platforms and get your hands dirty to release to these platforms.  Otherwise when something breaks, you won't know how to fix it.
-  * Not every platform is supported yet.  Looking for volunteers!  Or, [[seth@rtsoft.com|send me]] a device/SDK and I'll see what I can do. +  * Not every platform is supported yet.  Looking for volunteers!  Or, [[seth@rtsoft.com|send me]] a device/SDK and I'll see what I can do 
-  * Doesn't look and "feel" like a native app.  For games, this usually isn't a problem.  But if you are writing a spreadsheet or twitter client, this would be the wrong thing to use. +  * Doesn't look and "feel" like a native app.  For games, this usually isn't a problem.  But if you are writing a spreadsheet or twitter client, this would be the wrong thing to use 
-  * Not a full game engine, more like a toolkit.  For example, you won't find built-in pathfinding or a level editor like with [[www.rtsoft.com/novashell|Novashell]] +  * Not a full game engine, more like a toolkit.  For example, you won't find built-in pathfinding or a level editor like with [[http://www.rtsoft.com/novashell|Novashell]] 
-  * Made by [[www.rtsoft.com/pages/about.php|one guy]] who isn't charging so adjust your tech support expectations accordingly+  * Made by [[http://www.rtsoft.com/pages/about.php|one guy]] who isn't charging so adjust your tech support expectations accordingly
  
 +== What's the down size of all this entity/component stuff the framework has? ==
  
 +  * It can be slow.  It's mostly boost:signals fault.  
 +  * If you have 200 entities, you should not be using entities and components for them, you should be using one component that handles all your entities in a faster more logical form.
 +  * It's complicated.  If you aren't organized the ability to create variables and functions on the fly (and schedule same) can get out of control fast!
 +  * The syntax is sucky.  Forcing C++ to approach the features of flexible languages like lua and python just isn't a perfect solution, you'll have to decide if the trade-offs of being able to stay in glorious C++ at all times is worth it.
 +  * The good news is you don't really have to touch that stuff at all, it's optional.  But especially for GUIs it's very useful.
proton_info.1288018292.txt.gz · Last modified: 2010/10/25 14:51 by seth