Final Outpost - Moddable Open Source game engine

Hey there!
Download link : https://github.com/Epicguru/Final-Outpost/releases/download/v0.0.4/Launcher.v1.jar
So I would like to start by saying that, even though this will be a game, and it is currently ‘playable’, it is not interesting as a game of any sort but is rather a framework ATM.
Sorry, I know that this is a java gaming forum but I decided to post this here because I am sure that some of you might be interested in a moddable framework. What little game there is consists of a giant tiled map (1000x1000 tiles), and a simple character. There are currently only 2 types of tile, dirt and stone, and stone is solid. You cannot interact with the world ATM simply because I am still working on framework rather than game. Stone tiles randomly spawn and are solid using Box2D bodies.
So what Final Outpost is is a game engine that is based around mods, know as Plugins in Final Outpost. These plugins add everything to the game such as tiles, menus, entities and other content.
Final Outpost uses the following libraries to achieve this :

  • Plugin Framework for Java (PF4J)
  • Commons IO
  • Box2D
  • Gradle integration to build and export plugins
  • A lot (17k lines) of my own Engine code, which brings everything together
  • And of course LibGDX

Final Outpost automatically loads any plugins, which are stored as .zip files, and extracts them. It then packs all textures into tetxure atlases, and loads all assets. This includes automatically loading Tiles and Parsers.

This project also includes a launcher, which allows the user to download any version of the game and also updates itself. This launcher works using Github Pages.

All code for this game/engine/launcher is located on github here https://github.com/Epicguru/Final-Outpost. All of the code (at least all important classes) are very well documented, so I hope that it is understandable. The repository also includes an example plugin, for those of you interested.

How to set up in eclipse
So if you wish to edit or mess around with the source code, you may want to clone to code into Eclipse. Below are the steps to do this.

  • Have a git client or command line ready. I personally use GitKraken, it is great and very visual.
  • Clone https://github.com/Epicguru/Final-Outpost into a new workspace.
  • Open up eclipse
  • Import the ‘Game’ project as a gradle project. It is very important that it is imported as a gradle project because Final Outpost depends on gradle.
  • If there is no option to import using gradle, check that you have Buildship installed in eclipse.
  • There should be at least 4 gradle projects in your eclipse view now.
  • Open up the Gradle Tasks view within eclipse.
  • Ensure that Show all tasks is enabled in the tasks menu.
  • In project Game, under Other run tasks ‘plugin’ and ‘copyPlugins’ in that order by double clicking on each of them.
  • In the Package Explorer in Eclipse, select the project ‘Engine’ and Right Click>Run As>Java Application. The main class is called FOE (Final Outpost Engine).
  • Done! You can now edit Engine code or go into Example Plugin and see what plugin code looks like. All code is documented. Please note that when you make changes to plugin code, you must run the ‘plugin’ and ‘copyPlugin’ tasks again for the changes to take place

Here are some visuals for the tricky steps.

Well thats about it for this explaination. I know that setting it up is not easy (my bad explainations do not help!) so please post any problems below. If you do take an interest in this project, please post something below to let me know, may it be a question, a problem or a suggestion. Thanks and have agreat day! :wink:

Hey, sorry I forgot the controls.
Use:

  • WASD to move character around.
  • F12 to bring up debug mode.
  • F1 to enable / disable vSync (I recommend disabled)

You can also run the game in full screen by editing the config file at Game Data/Configs/Final Outpost/Graphics.FO_Config

Also, you can configure the keys by editing Game Data/Inputs/Keys.txt