Skip to content

ThomasWagner-dev/Pungeon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GreenfootGame

A simple top down Roguelike using Greenfoot.

Table of contents

General info

This a simple top down Roguelike game based on Greenfoot (not anymore).
To see the keybinds, press escape, while ingame and click on the 'Keybinds' button.

Technologies

Project created with:
Java 12
No longer Greenfoot: 3.6.0
Python 3.9.0
Way too much pain

Setup

Download the Pungeon.jar file. (includes full source code and documentation) or download the Pungeon_light.jar (only compiled code) Install Java 12 or higher from somewhere on the internet.
If you are unsure which version of java is installed on your pc, run 'java -version'.
If your defined java version is older, but you have a newer jdk present on your pc, run 'C:\path\to\jdk-version\bin\java.exe -jar Pungeon.jar'
Run the jar file either via double-click or 'java -jar Pungeon.jar'
Annotation when running the jar for the first time:
Extracting the assets may take (a literal) minute. Don't worry if nothing is happening when starting the game the first time.
If you have any idea how to improve the extraction to make it faster, message us.

The Engine

The engine used is selfbuild.
When the project was first created, Greenfoot was used as an engine, but throughout the project, we noticed the huge amount of flaws, and unavailabilities present in the Engine.
Therefore, we decided to write our own engine similar to Greenfoot but more accessible for advanced operations.
The Engine is now available on Github on Kommentators Github account.
Its functions are quite similar to the one from Greenfoot, therefore making it easy to replace code fractions to make any Greenfoot project run on this advanced Engine.
While that, the engine supports more advanced operations, which are unavailable for Greenfoot, such as async key events in addition to the sync isKeyDown() operations, or Buttons and further Image manipulation or font loading.

Addon scripts

The addonscripts (mapbuilder, nbt_injector) are scripts, written in python.
They are NOT required for the game to work, but are tools for the devs and modders to create new weapons, maps etc. more easily.
The mapbulider are tools, which convert images to .world files, which can be injected into the data.nbt file using the nbt_injector.

data.nbt

the file data.nbt stores all data except save files. This includes weapons, items, enemies, the world and a lot more.
NBT or Named Binary Tag is a File format used by the game Minecraft and can be opened using an nbteditor such as NBTExplorer
They store data in a semi-compressed state, where only the information present is written and no empty information bulks, but the file itself isn't compressed further.

Noised map generation

The rooms of the dungeon don't always look the same. They always look different, even if the connections are the same.
This is due to generation noise, which is defined in the data.nbt (inside the compound tag 'generationnoise') and is applied, each time a screen is generated by the world generation.

Contributors

-ThomasWagner-dev
Github
Discord: Screxo#9594

-Commentator2.0
Github
Discord: Commentator2.0#2755

-Klaus
Github
Discord: Klaus#0131

About

A simple top down Roguelike using Greenfoot.

Resources

Stars

Watchers

Forks

Packages

No packages published