Skip to content
This repository has been archived by the owner on May 10, 2024. It is now read-only.

Example Projects

JimMarlowe edited this page Apr 26, 2017 · 2 revisions

These are the examples included with the Atomic Game Engine, and listed are the engine features which each example demonstrates.


Basic2D

Basic2D

A Basic2D Scene Example [C#, Javascript]

  • Scene
  • 2D (Orthographic) Camera
  • Code scene loader
  • Code sprite animator

Basic3D

Basic3D

Basic3D Scene Example [C#, Javascript]

  • Scene
  • 3D (Perspective) Camera
  • Code scene loader
  • Code model animator

FeatureExamples

This example showcases and provides example usage of specific Atomic technology features. The examples are minimal and strive to use minimal API and concise code and many are ported from upstream Urho3D. The examples are also presented in the form of a "multi-example" so they can be easily built and tested. This also helps catch object lifetime issues, etc.

FeatureExamples

Hello World [C#, C++]

This first example, maintaining tradition, prints a "Hello World" message.

  • Add a Text element to the graphical user interface
  • Subscribe to and handling of update events

Hello GUI [C#, C++]

A simple 'HelloWorld' GUI created purely from code.

  • Creation of controls and building a UI hierarchy
  • Handle of global and per-control events

Render to Texture [C#, C++]

  • Create two 3D scenes and rendering the other into a texture
  • Create rendertarget texture and material programmatically

2D Sprite [C#, C++]

  • Create a 2D scene with sprite
  • Display the scene using the Renderer subsystem
  • Handle keyboard to move and zoom 2D camera

FeatureExamples

2D Physics [C#, C++]

  • Create both static and moving 2D physics objects to a scene
  • Display physics debug geometry

2D Constraints [C#, C++]

This sample is designed to help understanding and choosing the right constraint.

  • Create physics constraints
  • Create Edge and Polygon Shapes from vertices
  • Display physics debug geometry and constraints' joints
  • Use SetOrderInLayer to alter the way sprites are drawn in relation to each other

2D Rope [C#, C++]

  • Create revolute constraint
  • Create rope constraint
  • Display physics debug geometry

2D Spriter Animation [C#, C++]

  • Create a 2D scene with spriter animation
  • Display the scene using the Renderer subsystem
  • Handle keyboard to move and zoom 2D camera

FeatureExamples

3D Static Scene [C#, C++]

  • Create a 3D scene with static content
  • Display the scene using the Renderer subsystem
  • Handle keyboard and mouse input to move a freelook camera

3D Animating Scene [C#, C++]

  • Create a 3D scene and using a custom component to animate the objects
  • Control scene ambience with the Zone component
  • Attach a light to an object (the camera)

3D Light Animation [C#, C++]

This sample is base on StaticScene

  • Usage of attribute animation for light color & UI animation

3D Billboards [C#, C++]

  • Populate a 3D scene with billboard sets and several shadow casting spotlights
  • Parent scene nodes to allow more intuitive creation of groups of objects
  • Examine rendering performance with a somewhat large object and light count

FeatureExamples

3D Physics [C#, C++]

  • Create both static and moving physics objects to a scene
  • Display physics debug geometry
  • Use the Skybox component for setting up an unmoving sky

3D Skeletal Animation [C#, C++]

  • Populate a 3D scene with skeletally animated AnimatedModel components;
  • Move the animated models and advancing their animation using a custom component
  • Enable a cascaded shadow map on a directional light, which allows high-quality shadows over a large area (typically used in outdoor scenes for shadows cast by sunlight)
  • Display renderer debug geometry

3D Decals [C#, C++]

  • Perform a raycast to the octree and adding a decal to the hit location
  • Define a Cursor UI element which stays inside the window and can be shown/hidden
  • Mark suitable (large) objects as occluders for occlusion culling
  • Display renderer debug geometry to see the effect of occlusion

3D Character [C#, C++]

  • Control a humanoid character through physics
  • Drive animations using the AnimationController component
  • Manual control of a bone scene node
  • Implement 1st and 3rd person cameras, using raycasts to avoid the 3rd person camera clipping into scenery
  • Define attributes of a custom component so that it can be saved and loaded

FeatureExamples

3D Dynamic Geometry [C#, C++]

  • Clone a Model resource
  • Modify the vertex buffer data of the cloned models at runtime to efficiently animate them
  • Create a Model resource and its buffer data from scratch

3D Ragdolls [C#, C++]

  • Detect physics collisions
  • Move an AnimatedModel's bones with physics and connecting them with constraints
  • Use rolling friction to stop rolling objects from moving infinitely

3D Vehicle Demo [C#, C++]

  • Create a heightmap terrain with collision
  • Construct a physical vehicle with rigid bodies for the hull and the wheels, joined with constraints
  • Define attributes (including node and component references) of a custom component so that it can be saved and loaded

3D Crowd Navigation [C#, C++]

Recast/Detour CrowdNavigation

  • Generate a dynamic navigation mesh into the scene
  • Perform path queries to the navigation mesh
  • Add and remove obstacles/agents at runtime
  • Raycast drawable components
  • Crowd movement management
  • Access crowd agents with the crowd manager
  • Use off-mesh connections to make boxes climbable
  • Use agents to simulate moving obstacles

FeatureExamples

3D Water [C#, C++]

  • Create a large plane to represent a water body for rendering
  • Set up a second camera to render reflections on the water surface

3D Multiple Viewports [C#, C++]

  • Sets up two viewports with two separate cameras
  • Adds post processing effects to a viewport's render path and toggling them

3D Particles [C++]

  • Displays a fire particle

Sound Effects Sample [C#]

  • Play sound effects and music
  • Control sound and music master volumes

FBX Import [C#]

  • Imports an FBX model, Roboman.

PhysicsPlatformer

PhysicsPlatformer

Moving platforms, vines, bats, oh my! [Javascript]

  • Scene
  • TMX map
  • 2D (Orthographic) Camera
  • 2D physics
  • Spritesheet character animation
  • Prefab objects
  • Sound effects
  • Code generated UI
  • Select playing at day or night
  • Mobile ready controls

Racer2D

Racer2D

A simple 2D racing game with procedural terrain [C#]

  • Scene
  • Procedural 2D map
  • 2D (Orthographic) Camera
  • 2D physics
  • 2D particles
  • Prefab objects
  • Sound effects
  • Background music

ToonTown

ToonTown

A cartoony scene with 3D character and physics [Javascript]

  • Scene
  • 3D (Perspective) Camera
  • 3D Physics
  • 3rd person character controller
  • FBX animated models
  • Terrain
  • Sound effects
  • Background music
  • Dynamic lighting effects
  • Day and night cycle
  • Mobile ready controls

The ToonTown Example art assets are from the Frogame Village Pack and require a license for any usage. A license can be obtained from the Frogames Content Pack Store


AtomicBlaster

AtomicBlaster

A Port of ShapeBlaster for XNA by Michael Hoffman [C#]

Originally written for XNA by Michael Hoffman Ported to the Atomic Game Engine. Find the full tutorial at: http://gamedev.tutsplus.com/series/vector-shooter-xna/

  • Code generated game
  • Settings file

RoboMan3D

RoboMan3D

A Character Controller with Physics [Javascript, Typescript]

  • Scene
  • 3D (Perspective) Camera
  • 3D Physics
  • 3rd person character controller
  • FBX models
  • Prefab objects
  • Skybox
  • Mobile ready controls
  • Settings file

AtomicMutant

AtomicMutant

A Character Controller with Physics [C#]

  • Scene
  • 3D (Perspective) Camera
  • 3D Physics
  • 3rd person character controller
  • FBX models
  • Prefab objects
  • Settings file

Butterflies

Butterflies

Create Beautiful Butterflies! [C#, Javascript]

  • Code generated scene
  • 2D (Orthographic) Camera
  • 2D Particles
  • Mobile touch controls

SpaceGame

SpaceGame

An Example of simple game loop, UI, post process effects [Javascript]

  • Precache resources
  • 2D (Orthographic) Camera
  • Spritesheet animations
  • UI from layout file
  • Sound effects
  • Background music
  • Post Process effects
  • Mobile ready controls
  • Game controller, rumble

AtomicWebView

AtomicWebView

Example Chromium WebView Widget [Javascript]

  • Code generated UI
  • WebView Widget
  • The internet!
  • Tabbed interface
  • Bookmark URLs

WebView3D

WebView3D

Example rendering a Chromium WebView in a 3D scene [Javascript]

  • Scene
  • 3D (Perspective) Camera
  • 3D physics
  • 3rd person character controller
  • FBX map and models
  • WebTexture model
  • 3D Particles
  • Dynamic lighting effects
  • Day and night cycle

ParticleEmitter3D

ParticleEmitter3D

3D Particle Emitters [Javascript]

  • Scene
  • 3D Particles
  • Code generated UI

Particles2D

Particles2D

2D Particle Emitters [Javascript]

  • Scene
  • 2D Particles
  • Code generated UI
  • Custom events

Physics2D

Physics2D

Simple 2D physics example [C#]

  • Scene
  • 2D (Orthographic) Camera
  • 2D physics
  • Settings File

Breakout

Breakout

Simple version of the arcade classic [Javascript]

  • Scene
  • 2D (Orthographic) Camera
  • 2D physics
  • Prefab objects
  • Sound effects
  • Background music
  • Code generated UI
  • Custom events
  • Mobile Touch controls

CharacterAnimation2D

CharacterAnimation2D

2D Character Animation using Spriter [Javascript]

  • Scene
  • 2D (Orthographic) Camera
  • Spriter scml file
  • Character animation
  • Code generated UI
  • Custom events

CharacterAnimation3D

CharacterAnimation3D

3D Character Controller example [Javascript]

  • Scene
  • FBX model and animations
  • Code generated UI
  • Custom events

Chickens

Chickens

Animated chickens, wandering about, cluck! [Javascript]

  • Scene
  • 3D (Perspective) Camera
  • FBX models and animations
  • Sound effects
  • Prefab objects
  • Skybox
  • Mobile ready controls

CubeMapExample

CubeMapExample

Cubemap rendering and generator example [Javascript]

  • Scene
  • 3D (Perspective) Camera
  • Cubemap objects
  • Blender model
  • FBX models
  • Skybox

Light2DExample

Light2DExample

2D Lighting with shadows [Javascript]

  • Scene
  • 2D (Orthographic) Camera
  • 2D physics
  • Dynamic lighting effects

RenderToTexture

RenderToTexture

Example of rendering a scene on a 3d object [ Javascript]

  • Scene
  • 3D (Perspective) Camera
  • Render Scene
  • Generated renderable texture
  • FBX model
  • Code model animator

UISceneView2D

UISceneView2D

Example of rendering a scene to a UISceneView widget [Javascript]

  • Scene
  • UISceneView widget
  • 2D (Orthographic) Camera
  • Spriter scml file
  • Character animation
  • Code generated UI

WebTexture

WebTexture

Example rendering a Chromium WebView on a 3D surface [Javascript]

  • Scene
  • 3D (Perspective) Camera
  • Generated Webview texture
  • Code model animator
  • Settings file

WaterShip

WaterShip

Example water shader [Javascript]

  • Scene
  • 3D (Perspective) Camera
  • FBX models
  • Terrain
  • Water
  • Skybox
Clone this wiki locally