Skip to content

Commit

Permalink
Merge pull request #113 from AlmasB/0.1.9
Browse files Browse the repository at this point in the history
release 0.1.9
  • Loading branch information
AlmasB committed Dec 26, 2015
2 parents cba1df2 + e94e78b commit 1499d1e
Show file tree
Hide file tree
Showing 177 changed files with 7,943 additions and 4,296 deletions.
105 changes: 17 additions & 88 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,10 @@
## FXGL
Simple and easy to use (hopefully!) JavaFX 8 game library<br/>
[![Release](https://img.shields.io/badge/maven-0.1.8-blue.svg)](https://jitpack.io/#AlmasB/FXGL)
JavaFX 8 Game Library<br/>
[![Release](https://img.shields.io/badge/maven-0.1.9-blue.svg)](https://jitpack.io/#AlmasB/FXGL)
[![MIT License](http://img.shields.io/badge/license-MIT-green.svg) ](https://github.com/AlmasB/FXGL/blob/master/LICENSE)
[![Javadoc](https://img.shields.io/badge/docs-javadoc-green.svg)](http://almasb.github.io/FXGL/javadoc/index.html)

## Use Case
FXGL is perfect for small to medium sized games and for beginner / intermediate programmers in JavaFX.
It is primarily aimed at people who wish to learn and practise game development.
It also takes care of the common boilerplate code, so it can be used for fast prototyping.
For larger projects the library may not be as suitable, whereas advanced programmers will probably want to work
with JavaFX directly.
If you have a use case (feature) that FXGL doesn't cover, raise an issue, carefully describing the use case.

## Prerequisites
Oracle JDK 1.8.0_40+

## Build
```bash
mvn package
```
This will generate FXGL-0.1.8.jar, sources and javadoc.

## Setup
Choose setup steps based on your IDE/build tool.

## Setup (Maven)
## Maven
```maven
<repository>
<id>jitpack.io</id>
Expand All @@ -34,77 +14,40 @@ Choose setup steps based on your IDE/build tool.
<dependency>
<groupId>com.github.AlmasB</groupId>
<artifactId>FXGL</artifactId>
<version>0.1.8</version>
<version>0.1.9</version>
</dependency>
```

## Setup (Gradle)
## Gradle
```gradle
repositories {
// ...
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.AlmasB:FXGL:0.1.8'
compile 'com.github.AlmasB:FXGL:0.1.9'
}
```

## Setup (General)
Download FXGL-0.1.8.jar from <a href="https://github.com/AlmasB/FXGL/releases">Releases</a> (or the one built yourself)
and add it to the build path in your IDE. That's it, you're all set!

## Setup (NetBeans, tested with 8.0.2)
1. File -> New Project -> Java -> Java Application -> Next
2. Choose Project Name (optional: create main class) -> Finish
3. In the Projects view, right-click Libraries -> Add Jar/Folder -> Navigate and Select downloaded FXGL jar

## Setup (Eclipse, tested with 4.5.1)
1. File -> New Java Project
2. Choose Project Name -> Finish
3. Right-click on the created project -> Build Path -> Configure Build Path ->
Libraries Tab -> Add External JAR -> Navigate and Select downloaded FXGL jar

## Setup (IntelliJ IDEA, tested with 15)
1. Create Project
2. File -> Project Structure
3. Libraries -> Add Java -> Navigate and Select downloaded FXGL jar

## Directory Structure for FXGL Applications
This matches a typical IDE directory structure. For Maven users source root is "src/main/java" and assets
should be in "src/main/resources".
This allows easy packaging and deployment, as all assets packaged into jar will continue loading with
exactly the same code.

project directory (typically project name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;src (source code directory)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assets<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textures (image files ".png", ".jpg")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;audio (audio files ".wav")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;music (music files ".mp3")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text (text files ".txt")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data (binary data files with custom extensions)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ui/css (stylesheets for customizing UI elements)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ui/fonts (fonts ".ttf", ".otf")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(your packages / code)
## Use Case
FXGL is perfect for small to medium sized games and for beginner / intermediate programmers in JavaFX.
It is primarily aimed at people who wish to learn and practise game development.
It also takes care of the common boilerplate code, so it can be used for fast prototyping.
For larger projects the library may not be as suitable, whereas advanced programmers will probably want to work
with JavaFX directly.
If you have a use case (feature) that FXGL doesn't cover, raise an issue, carefully describing the use case.

## Basic Usage / Examples
The samples/ folder will be constantly updated to include demonstrations of various features.
Video Tutorials Playlist - <a href="https://www.youtube.com/watch?v=mPE8p8p_YjQ&list=PL4h6ypqTi3RTiTuAQFKE6xwflnPKyFuPp">YouTube Link</a> <br/>
The videos will walk you through the basics.

## Notes
If certain parts of documentation are ambiguous/incorrect/missing please let me know or raise an issue.
Any testing, feedback and bug reports are welcome <br/>

3D features and port to mobile will be considered in the future. <br/>

This is only a hobby / side project (for the time being anyway), so the development progress may vary.
Most of the code follows "some" design principles and practices, but overall I wouldn't consider the code to be high quality
and as it is now it doesn't have much production value.
## Extra Info
For more information check out the project <a href="https://github.com/AlmasB/FXGL/wiki">Wiki</a>

## Latest Release Features
FXGL 0.1.8 supports:
FXGL 0.1.9 supports:
* Full JavaFX Integration (FXGL is built on top of JavaFX 8)
* JBox2D Physics Engine Integration (v.2.3.0, https://github.com/jbox2d/jbox2d)
* Basic Game Loop
Expand All @@ -117,6 +60,7 @@ FXGL 0.1.8 supports:
* Entity Component/Control System
* Time Management System
* Global and Scoped Event System
* Multithreading
* Input Bindings (Keys + Mouse)
* Automated Asset Management (".png", ".jpg", ".wav", ".mp3", ".txt", ".ttf/.otf" custom binary formats)
* Automated Collision Handling (also unified, physics collisions are hooked into FXGL)
Expand All @@ -134,21 +78,6 @@ FXGL 0.1.8 supports:
* In-game Notification System
* Other minor game dev features

## Next Release Features
The issue tracker contains information about possible features to be added in
the next release.

## Few Simple Projects So Far<br/>
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL_menu2.jpg" />
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL_cannon.jpg" />
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL_Menu.jpg" />
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL_Pacman.png" />
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL_Physics.jpg" />
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL_Platformer.jpg" />
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL_RPG.png" />
<img src="http://almasb.github.io/LearnJavaGameDev/tutorials/images/fxgl/FXGL24_FXWars2.jpg" />
Sprites can be found on http://opengameart.org/

## Contact
Email: [email protected]<br/>
<a href="https://plus.google.com/+AlmasB0/about">Google+</a>
27 changes: 25 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@

<groupId>com.github.AlmasB</groupId>
<artifactId>FXGL</artifactId>
<version>0.1.8</version>
<version>0.1.9</version>
<packaging>jar</packaging>

<name>FXGL</name>
<description>Simple JavaFX Game Library</description>
<url>https://jitpack.io/#AlmasB/FXGL/0.1.8</url>
<url>https://jitpack.io/#AlmasB/FXGL/0.1.9</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand All @@ -24,6 +24,9 @@

<!-- dependencies -->
<junit.version>4.12</junit.version>
<guice.version>4.0</guice.version>
<ehcache.version>3.0.0.m4</ehcache.version>
<slf4j.version>1.7.7</slf4j.version>
</properties>

<dependencies>
Expand All @@ -32,6 +35,26 @@
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>

<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>${guice.version}</version>
</dependency>

<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>${ehcache.version}</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>${slf4j.version}</version>
</dependency>


</dependencies>

<build>
Expand Down
Binary file added samples/assets/sounds/intro.wav
Binary file not shown.
Binary file added samples/assets/textures/explosion.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/assets/textures/life.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/assets/textures/tank_bullet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/assets/textures/tank_enemy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/assets/textures/tank_player.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions samples/assets/ui/test_ui.fxml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@


<?import javafx.scene.control.Label?>
<Pane prefWidth="1280" prefHeight="720"
<Pane prefWidth="800" prefHeight="600"
xmlns="http://javafx.com/javafx/8.0.60"
xmlns:fx="http://javafx.com/fxml/1">

<Label fx:id="labelCount" translateX="1000" translateY="200" text="COUNT" />
<Label fx:id="labelCount" translateX="400" translateY="100" />

</Pane>
Binary file added samples/assets/video/testvideo.mp4
Binary file not shown.
Loading

0 comments on commit 1499d1e

Please sign in to comment.