Giter Site home page Giter Site logo

gitter-badger / gamecomposer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mirkosertic/gamecomposer

0.0 1.0 0.0 47.24 MB

Projekt homepage

Home Page: http://mirkosertic.github.io/GameComposer

Java 99.44% HTML 0.25% JavaScript 0.01% CSS 0.29% GLSL 0.01%

gamecomposer's Introduction

FXGameComposer

FXGameComposer is a game authoring tool and also a game runtime environment, targeting at JavaFX2 or HTML5 capable devices.

To see it in action please visit this page

GameComposer

GameComposer is the authoring tool, the IDE. It is a JavaFX2 application. Using this tool, games can be designed and tested. Finally, they can be exported to a target runtime, e.g. HTML5.

GameEngine

GameEngine is the cross-platform game engine.

Core concepts and components of the game engine are:

Concept / component Description
Game A Game is the top level container. Each Game is split into several GameScenes.
GameScene A Scene is like a level of a game. A Scene has a collection of GameObjects, Assets and Events.
GameSystem A GameSystem defines a subsystem of the game engine. There are GameSystems for physics, sounds and other stuff
GameView A GameView is the presentation of a GameScene to some kind of consumer. This can be a screen renderer or even a remote consumer.
GameObject A GameObject is a template for visible objects. The behavior of a GameObject is defined by GameComponentTemplates
BehaviorTemplate A BehaviorTemplate defines some kind of behavior, e.g. if it is static, a sprite or driven by physics.
GameObjectInstance A GameObjectInstance is an instance of a GameObject. It inherits the defined BehaviorTemplates by copying them into a Behavior
Behavior A Behavior is the behavior status for a BehaviorTemplate and a GameObjectInstance.
Event An Event can be triggered by a consumer by sending it via the GameView to the engine. An Event can also be triggered or consumed by a GameComponent or GameSystem.
EventSheet An EventSheet is the rule engine. Each rule has a condition and some actions.
GameLoop The GameLoop drives the engine by calling the GameSystems, rendering the GameView and dispatching events.
GameProcess A GameProcess is something that takes multiple GameLoop cycles to complete, for instance playing background music or playing an animation.

Current travis-ci build status: Build Status

GameEngine-FXRenderer

This is the game presentation logic by implementing a GameView using JavaFX 2. This also includes a Soundsystem implementation based on Java Sound API.

GameEngine-GWTRenderer

This is the game presentation logic using GWT and HTML5(JavaScript) by implementing a GameView. This also includes a SoundSystem implementation based on HTML5 Media API. Currently the HTML5 renderer tries to use WebGL. If WebGL is not available, it will fallback to the HTML5 Canvas API.

GameEngine-AndroidRenderer

This is the game presentation logic using the Android Java SDK. This also includes a SoundSystem implementation for Android devices. We use an Android SurfaceView for rendering. Future versions will include OpenGL ES support.

GameEngine-DragomeRenderer

This is the game presentation logic using the Dragome Java-to-JavaScript Transpiler Framework. It will render the game view using the HTML5 Canvas API.

GameEngine-TeaVMRenderer

This is the game presentation logic using the TeaVM Java-to-JavaScript Transpiler Framework. It will render the game view using the HTML5 Canvas API.

GameEngine-Networking

Networking support is implemented as a RemoteGameView. Local events are sent between game instances to sync the distributed game models.

Networking is implemented in a very early beta state only by the TeaVM Renderer. Events are sent to a Firebase instance, which then syncs the events back to other browsers bound to the same Firebase instance. Take a look at the Networking example to see it in action. In this case, Firebase acts as a non-authorative game server. The game models and simulation is still run in the local browser. Only the game state is synchronized using events.

Example Games

TeaVM Renderer:

Bouncing block

Camera with Clock

Gravity and Mouse

Duke on the Platform

Position test

Rotating actor

Networking

GWT Renderer:

Bouncing block

Camera with Clock

Gravity and Mouse

Duke on the Platform

Position test

Rotating actor

Dragome Renderer:

Bouncing block

Camera with Clock

Gravity and Mouse

Duke on the Platform

Position test

Rotating actor

gamecomposer's People

Contributors

fpetrola avatar mirkosertic avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.