Platform Data Engine 0.0.1
A data-driven game engine for platformers
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 CPlatformDataEngine::AliveClass that defines an "alive" object, ie. an object that can take damage and die
 CPlatformDataEngine::GameObjectThe base container class for a gameplay related object, it's drawable, transformable and components can be added to modify the funcionality. These classes are defined by the user in a json file.
 CPlatformDataEngine::AnimationController::AnimationRepresents an animation (a collection of frames)
 CPlatformDataEngine::AnimationController::AnimationFrameRepresents a frame in an animation
 CPlatformDataEngine::AudioSystem
 CPlatformDataEngine::InputManager::AxisDefines an axis, this is usually something like a joystick slider or knob
 CPlatformDataEngine::NetworkInputManager::Axis
 CPlatformDataEngine::PlayerInputManager::Axis
 Cb2ContactFilter
 CPlatformDataEngine::ContactFilterContact filter, overrides default to prevent rockets from colliding with player
 Cb2Draw
 CPlatformDataEngine::PhysicsDebugDraw
 Cb2QueryCallback
 CPlatformDataEngine::BoxQueryCallbackNot used
 Cb2RayCastCallback
 CPlatformDataEngine::RaycastCallbackUsed when Box2d does a raycast
 CPlatformDataEngine::InputManager::ButtonDefines a button (ie. something with a true/false state)
 CPlatformDataEngine::NetworkInputManager::Button
 CPlatformDataEngine::PlayerInputManager::Button
 CPlatformDataEngine::CameraControllerHandles moving the camera and targetting gameObjects
 CPlatformDataEngine::ComponentFactoryCOMPONENT FACTORY This is a class that is responsible for creating components of different types from a string representation of the type. For example, if the component with type "AnimationController" is added in the json file, we need a way to make an object of type AnimationController so we'd call the following: ComponentFactory::create("AnimationController")
 CPlatformDataEngine::ConnectionStats
 Csf::Drawable
 CPlatformDataEngine::ComponentThe base component class, when creating components to add gameplay functionality, they should inherit from this class
 CPlatformDataEngine::AnimationControllerA component that manages playing animations on a gameObject. Precondition: the game object must have a sprite renderer component.
 CPlatformDataEngine::CharacterControllerA component that handles player input and animations (if enabled) Precondition: if animations are enabled, the gameObject must have an animation controller component
 CPlatformDataEngine::DamageHandlerBase damage handler class responsible for handling onDeath and onDamage events from the Alive class
 CPlatformDataEngine::PlayerDamageHandler
 CPlatformDataEngine::PropDamageHandler
 CPlatformDataEngine::ListMenu
 CPlatformDataEngine::Menu
 CPlatformDataEngine::ParticleSystemThe particle system component spawns a number of other game objects and applies a velocity to them
 CPlatformDataEngine::PhysicsBodyA component that enables collision and rigidbody for a gameObject
 CPlatformDataEngine::ProjectileThe projectile generic class
 CPlatformDataEngine::BulletThe MiniGun bullet projectile - currently exactly the same as the rocket projectile it will eventually have a unique sound, explosion, etc
 CPlatformDataEngine::RocketProjectileThe rocket launcher rocket projectile
 CPlatformDataEngine::Spike
 CPlatformDataEngine::SpriteRendererA component that simply holds an SFML sprite and renders it.
 CPlatformDataEngine::StatsPanel
 CPlatformDataEngine::TextRendererA very basic text rendering component
 CPlatformDataEngine::EngineStatsText
 CPlatformDataEngine::TimedDestroyDestroys the game object after a certain time useful for particles
 CPlatformDataEngine::WeaponThe weapon generic component
 CPlatformDataEngine::MiniGunThe Minigun component
 CPlatformDataEngine::RocketLauncherThe rocket launcher component
 CPlatformDataEngine::GameObjectThe base container class for a gameplay related object, it's drawable, transformable and components can be added to modify the funcionality. These classes are defined by the user in a json file.
 CPlatformDataEngine::GameWorldRepresents a game world with it's own tile map and gameObjects
 CPlatformDataEngine::MenuOption
 CPlatformDataEngine::TextBox
 CPlatformDataEngine::StatsBar
 CPlatformDataEngine::TextDrawableA more generic text render drawable that can be used outside a component context
 CPlatformDataEngine::TileMapResponsible for loading a tiled TMX file, this currently does a lot of stuff, and that's not necessarily a good thing. Beware... messy code ahead!
 CPlatformDataEngine::TilesetDefines a tileset used in a tmx map. This is what actually gets drawn when target.draw(tileMap) is called, it will loop through all the tilesets and draw them each in a separate draw call
 CPlatformDataEngine::GlobalEffects
 CPlatformDataEngine::PlatformDataEngineWrapper::HostConfig
 CPlatformDataEngine::InputManagerThe base class for an input manager, other classes can inherit this to feed input to the game. For example, if you had some hardware like a motion controller, midi keyboard or other weird device, you could make an input manager for it.
 CPlatformDataEngine::NetworkInputManager
 CPlatformDataEngine::PlayerInputManagerA basic input manager for keyboard, mouse and gamepad input from a player
 CPlatformDataEngine::PlatformDataEngineWrapper::JoinConfig
 CPlatformDataEngine::Networkable
 CPlatformDataEngine::ComponentThe base component class, when creating components to add gameplay functionality, they should inherit from this class
 CPlatformDataEngine::Connection
 CPlatformDataEngine::GameObjectThe base container class for a gameplay related object, it's drawable, transformable and components can be added to modify the funcionality. These classes are defined by the user in a json file.
 CPlatformDataEngine::NetworkHandlerBase class for a network handler, responsible for handling network operations Example: Server, Client, etc.
 CPlatformDataEngine::Client
 CPlatformDataEngine::Server
 CPlatformDataEngine::PlatformDataEngineWrapper::OptionsConfig
 Csf::Packet
 CPlatformDataEngine::PDEPacketHow networking works: The server will spawn the entire world and start a simulation, it will send out spawn game object packets to all of it's clients to replicate the same world on their computers, the server will then spawn player game objects for each client that is connected and send out "BindPlayer" packets to the clients, this will tell the client which game object it is controlling (for things like the camera controller)
 CPlatformDataEngine::PhysBodyUserDataData stored in physics bodies that are attached to a game object
 CPlatformDataEngine::PlatformDataEngineWrapperGame Wrapper
 CPlatformDataEngine::GameWorld::PlayerSpawn
 CPlatformDataEngine::PlatformDataEngineWrapper::ProfileConfig
 CPlatformDataEngine::TileMap::TilesetPair
 CPlatformDataEngine::TileTextureThe tile texture class is responsible for defining a texture and a corrosponding rect inside that texture
 Csf::Transformable
 CPlatformDataEngine::GameObjectThe base container class for a gameplay related object, it's drawable, transformable and components can be added to modify the funcionality. These classes are defined by the user in a json file.
 CPlatformDataEngine::MenuOption
 CPlatformDataEngine::TextDrawableA more generic text render drawable that can be used outside a component context
 CPlatformDataEngine::TileSpriteSince tilesets are drawn each in a single draw call, this isn't responsible for holding a texture or something like a normal sprite would hold. Instead it holds a tile index and a transform that can be referenced in a tileset
 CPlatformDataEngine::UtilityUtility class for holding helper functions