Skip to content

Commit b2bf1b4

Browse files
authored
Merge branch 'master' into master
2 parents 7dd8693 + 9da1079 commit b2bf1b4

File tree

415 files changed

+41761
-4270
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

415 files changed

+41761
-4270
lines changed

.github/workflows/main.yml

Lines changed: 62 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ on:
4646
push:
4747
branches:
4848
- master
49+
- v3.7
4950
- v3.6
5051
- v3.5
5152
- v3.4
@@ -55,7 +56,49 @@ on:
5556
types: [published]
5657

5758
jobs:
58-
59+
ScreenshotTests:
60+
name: Run Screenshot Tests
61+
runs-on: ubuntu-latest
62+
permissions:
63+
contents: read
64+
steps:
65+
- uses: actions/checkout@v4
66+
- name: Set up JDK 17
67+
uses: actions/setup-java@v4
68+
with:
69+
java-version: '17'
70+
distribution: 'temurin'
71+
- name: Install Mesa3D
72+
run: |
73+
sudo apt-get update
74+
sudo apt-get install -y mesa-utils libgl1-mesa-dri libgl1 libglx-mesa0 xvfb
75+
- name: Set environment variables for Mesa3D
76+
run: |
77+
echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV
78+
echo "MESA_LOADER_DRIVER_OVERRIDE=llvmpipe" >> $GITHUB_ENV
79+
- name: Start xvfb
80+
run: |
81+
sudo Xvfb :99 -ac -screen 0 1024x768x16 &
82+
export DISPLAY=:99
83+
echo "DISPLAY=:99" >> $GITHUB_ENV
84+
- name: Verify Mesa3D Installation
85+
run: |
86+
glxinfo | grep "OpenGL"
87+
- name: Validate the Gradle wrapper
88+
uses: gradle/actions/wrapper-validation@v3
89+
- name: Test with Gradle Wrapper
90+
run: |
91+
./gradlew :jme3-screenshot-test:screenshotTest
92+
- name: Upload Test Reports
93+
uses: actions/upload-artifact@master
94+
if: always()
95+
with:
96+
name: screenshot-test-report
97+
retention-days: 30
98+
path: |
99+
**/build/reports/**
100+
**/build/changed-images/**
101+
**/build/test-results/**
59102
# Build the natives on android
60103
BuildAndroidNatives:
61104
name: Build natives for android
@@ -69,7 +112,7 @@ jobs:
69112
with:
70113
fetch-depth: 1
71114
- name: Validate the Gradle wrapper
72-
uses: gradle/wrapper-validation-action@v1
115+
uses: gradle/actions/wrapper-validation@v3
73116
- name: Build
74117
run: |
75118
./gradlew -PuseCommitHashAsVersionName=true --no-daemon -PbuildNativeProjects=true \
@@ -81,30 +124,30 @@ jobs:
81124
name: android-natives
82125
path: build/native
83126

84-
# Build the engine, we only deploy from ubuntu-latest jdk17
127+
# Build the engine, we only deploy from ubuntu-latest jdk21
85128
BuildJMonkey:
86129
needs: [BuildAndroidNatives]
87130
name: Build on ${{ matrix.osName }} jdk${{ matrix.jdk }}
88131
runs-on: ${{ matrix.os }}
89132
strategy:
90133
fail-fast: false
91134
matrix:
92-
os: [ubuntu-latest,windows-2019,macOS-latest]
93-
jdk: [8, 11, 17]
135+
os: [ubuntu-latest,windows-latest,macOS-latest]
136+
jdk: [11, 17, 21]
94137
include:
95138
- os: ubuntu-latest
96139
osName: linux
97140
deploy: true
98-
- os: windows-2019
141+
- os: windows-latest
99142
osName: windows
100143
deploy: false
101144
- os: macOS-latest
102145
osName: mac
103146
deploy: false
104-
- jdk: 8
105-
deploy: false
106147
- jdk: 11
107148
deploy: false
149+
- jdk: 17
150+
deploy: false
108151

109152
steps:
110153
- name: Clone the repo
@@ -113,7 +156,7 @@ jobs:
113156
fetch-depth: 1
114157

115158
- name: Setup the java environment
116-
uses: actions/setup-java@v3
159+
uses: actions/setup-java@v4
117160
with:
118161
distribution: 'temurin'
119162
java-version: ${{ matrix.jdk }}
@@ -125,22 +168,20 @@ jobs:
125168
path: build/native
126169

127170
- name: Validate the Gradle wrapper
128-
uses: gradle/wrapper-validation-action@v1
171+
uses: gradle/actions/wrapper-validation@v3
129172
- name: Build Engine
130173
shell: bash
131174
run: |
132-
# Build
133-
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true build
175+
# Normal build plus ZIP distribution and merged javadoc
176+
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true \
177+
build createZipDistribution mergedJavadoc
134178
135179
if [ "${{ matrix.deploy }}" = "true" ];
136180
then
137181
# We are going to need "zip"
138182
sudo apt-get update
139183
sudo apt-get install -y zip
140184
141-
# Create the zip release and the javadoc
142-
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true mergedJavadoc createZipDistribution
143-
144185
# We prepare the release for deploy
145186
mkdir -p ./dist/release/
146187
mv build/distributions/*.zip dist/release/
@@ -305,12 +346,12 @@ jobs:
305346
with:
306347
fetch-depth: 1
307348

308-
# Setup jdk 17 used for building Maven-style artifacts
349+
# Setup jdk 21 used for building Maven-style artifacts
309350
- name: Setup the java environment
310-
uses: actions/setup-java@v3
351+
uses: actions/setup-java@v4
311352
with:
312353
distribution: 'temurin'
313-
java-version: '17'
354+
java-version: '21'
314355

315356
- name: Download natives for android
316357
uses: actions/download-artifact@master
@@ -349,12 +390,12 @@ jobs:
349390
with:
350391
fetch-depth: 1
351392

352-
# Setup jdk 17 used for building Sonatype OSSRH artifacts
393+
# Setup jdk 21 used for building Sonatype OSSRH artifacts
353394
- name: Setup the java environment
354-
uses: actions/setup-java@v3
395+
uses: actions/setup-java@v4
355396
with:
356397
distribution: 'temurin'
357-
java-version: '17'
398+
java-version: '21'
358399

359400
# Download all the stuff...
360401
- name: Download maven artifacts

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2009-2023 jMonkeyEngine.
1+
Copyright (c) 2009-2024 jMonkeyEngine.
22

33
Redistribution and use in source and binary forms, with or without
44
modification, are permitted provided that the following conditions

README.md

Lines changed: 64 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,48 +4,54 @@ jMonkeyEngine
44
[![Build Status](https://github.com/jMonkeyEngine/jmonkeyengine/workflows/Build%20jMonkeyEngine/badge.svg)](https://github.com/jMonkeyEngine/jmonkeyengine/actions)
55

66
jMonkeyEngine is a 3-D game engine for adventurous Java developers. It’s open-source, cross-platform, and cutting-edge.
7-
v3.6.1 is the latest stable version of the engine.
7+
v3.7.0 is the latest stable version of the engine.
88

99
The engine is used by several commercial game studios and computer-science courses. Here's a taste:
1010

1111
![jME3 Games Mashup](https://i.imgur.com/nF8WOW6.jpg)
1212

13-
- [jME powered games on IndieDB](http://www.indiedb.com/engines/jmonkeyengine/games)
13+
- [jME powered games on IndieDB](https://www.indiedb.com/engines/jmonkeyengine/games)
1414
- [Boardtastic 2](https://boardtastic-2.fileplanet.com/apk)
1515
- [Attack of the Gelatinous Blob](https://attack-gelatinous-blob.softwareandgames.com/)
16-
- [Mythruna](http://mythruna.com/)
16+
- [Mythruna](https://mythruna.com/)
1717
- [PirateHell (on Steam)](https://store.steampowered.com/app/321080/Pirate_Hell/)
18-
- [3089 (on Steam)](http://store.steampowered.com/app/263360/)
19-
- [3079 (on Steam)](http://store.steampowered.com/app/259620/)
18+
- [3089 (on Steam)](https://store.steampowered.com/app/263360/3089__Futuristic_Action_RPG/)
19+
- [3079 (on Steam)](https://store.steampowered.com/app/259620/3079__Block_Action_RPG/)
2020
- [Lightspeed Frontier (on Steam)](https://store.steampowered.com/app/548650/Lightspeed_Frontier/)
2121
- [Skullstone](http://www.skullstonegame.com/)
2222
- [Spoxel (on Steam)](https://store.steampowered.com/app/746880/Spoxel/)
2323
- [Nine Circles of Hell (on Steam)](https://store.steampowered.com/app/1200600/Nine_Circles_of_Hell/)
2424
- [Leap](https://gamejolt.com/games/leap/313308)
2525
- [Jumping Jack Flag](http://timealias.bplaced.net/jack/)
2626
- [PapaSpace Flight Simulation](https://www.papaspace.at/)
27-
- [Cubic Nightmare](https://jaredbgreat.itch.io/cubic-nightmare)
27+
- [Cubic Nightmare (on Itch)](https://jaredbgreat.itch.io/cubic-nightmare)
2828
- [Chatter Games](https://chatter-games.com)
2929
- [Exotic Matter](https://exoticmatter.io)
3030
- [Demon Lord (on Google Play)](https://play.google.com/store/apps/details?id=com.dreiInitiative.demonLord&pli=1)
3131
- [Marvelous Marbles (on Steam)](https://store.steampowered.com/app/2244540/Marvelous_Marbles/)
3232
- [Boxer (on Google Play)](https://play.google.com/store/apps/details?id=com.tharg.boxer)
3333
- [Depthris (on Itch)](https://codewalker.itch.io/depthris)
34+
- [Stranded (on Itch)](https://tgiant.itch.io/stranded)
35+
- [The Afflicted Forests (Coming Soon to Steam)](https://www.indiedb.com/games/the-afflicted-forests)
36+
- [Star Colony: Beyond Horizons (on Google Play)](https://play.google.com/store/apps/details?id=game.colony.ColonyBuilder)
37+
- [High Impact (on Steam)](https://store.steampowered.com/app/3059050/High_Impact/)
3438

35-
## Getting started
39+
## Getting Started
3640

3741
Go to https://github.com/jMonkeyEngine/sdk/releases to download the jMonkeyEngine SDK.
38-
[Read the wiki](https://jmonkeyengine.github.io/wiki) for a complete install guide. Power up with some SDK Plugins and AssetPacks and you are off to the races. At this point you're gonna want to [join the forum](http://hub.jmonkeyengine.org/) so our tribe can grow stronger.
42+
Read [the wiki](https://jmonkeyengine.github.io/wiki) for the installation guide and tutorials.
43+
Join [the discussion forum](https://hub.jmonkeyengine.org/) to participate in our community,
44+
get your questions answered, and share your projects.
3945

40-
Note: The master branch on GitHub is a development version of the engine and is NOT MEANT TO BE USED IN PRODUCTION, it will break constantly during development of the stable jME versions!
46+
Note: The master branch on GitHub is a development version of the engine and is NOT MEANT TO BE USED IN PRODUCTION.
4147

4248
### Technology Stack
4349

44-
- Java
45-
- NetBeans Platform
46-
- Gradle
47-
48-
Plus a bunch of awesome libraries & tight integrations like Bullet, NiftyGUI and other goodies.
50+
- windowed, multi-platform IDE derived from NetBeans
51+
- libraries for GUI, networking, physics, SFX, terrain, importing assets, etc.
52+
- platform-neutral core library for scene graph, animation, rendering, math, etc.
53+
- LWJGL v2/v3 (to access GLFW, OpenAL, OpenGL, and OpenVR) or Android or iOS
54+
- Java Virtual Machine (v8 or higher)
4955

5056
### Documentation
5157

@@ -59,3 +65,47 @@ Read our [contribution guide](https://github.com/jMonkeyEngine/jmonkeyengine/blo
5965

6066
[New BSD (3-clause) License](https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/LICENSE.md)
6167

68+
### How to Build the Engine from Source
69+
70+
1. Install a Java Development Kit (JDK),
71+
if you don't already have one.
72+
2. Point the `JAVA_HOME` environment variable to your JDK installation:
73+
(In other words, set it to the path of a directory/folder
74+
containing a "bin" that contains a Java executable.
75+
That path might look something like
76+
"C:\Program Files\Eclipse Adoptium\jdk-17.0.3.7-hotspot"
77+
or "/usr/lib/jvm/java-17-openjdk-amd64/" or
78+
"/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home" .)
79+
+ using Bash or Zsh: `export JAVA_HOME="` *path to installation* `"`
80+
+ using Fish: `set -g JAVA_HOME "` *path to installation* `"`
81+
+ using Windows Command Prompt: `set JAVA_HOME="` *path to installation* `"`
82+
+ using PowerShell: `$env:JAVA_HOME = '` *path to installation* `'`
83+
3. Download and extract the engine source code from GitHub:
84+
+ using Git:
85+
+ `git clone https://github.com/jMonkeyEngine/jmonkeyengine.git`
86+
+ `cd jmonkeyengine`
87+
+ `git checkout -b latest v3.7.0-stable` (unless you plan to do development)
88+
+ using a web browser:
89+
+ browse to [the latest release](https://github.com/jMonkeyEngine/jmonkeyengine/releases/latest)
90+
+ follow the "Source code (zip)" link at the bottom of the page
91+
+ save the ZIP file
92+
+ extract the contents of the saved ZIP file
93+
+ `cd` to the extracted directory/folder
94+
4. Run the Gradle wrapper:
95+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew build`
96+
+ using Windows Command Prompt: `.\gradlew build`
97+
98+
After a successful build,
99+
fresh JARs will be found in "*/build/libs".
100+
101+
You can install the JARs to your local Maven repository:
102+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew install`
103+
+ using Windows Command Prompt: `.\gradlew install`
104+
105+
You can run the "jme3-examples" app:
106+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew run`
107+
+ using Windows Command Prompt: `.\gradlew run`
108+
109+
You can restore the project to a pristine state:
110+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew clean`
111+
+ using Windows Command Prompt: `.\gradlew clean`

0 commit comments

Comments
 (0)