All Projects → sreich → Ore Infinium

sreich / Ore Infinium

Licence: mit
Ore Infinium, Open Source multiplayer Terraria-inspired Sci-fi game, focused on technology, devices and researching. Written in Kotlin (JVM), LibGDX. Cross platform

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Ore Infinium

Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+7606.47%)
Mutual labels:  game, multiplayer, opengl, entity-component-system
Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (+182.73%)
Mutual labels:  game, game-2d, opengl, entity-component-system
Betterspades
BetterSpades, an Ace of Spades client targeted at low end systems (GL/ES 1.1). Runs on your grandmother's rig!
Stars: ✭ 112 (-19.42%)
Mutual labels:  game, multiplayer, opengl
Openspades
Compatible client of Ace of Spades 0.75
Stars: ✭ 769 (+453.24%)
Mutual labels:  game, multiplayer, opengl
Minijvm
Develop iOS Android app in java, Cross platform java virtual machine , the minimal jvm .
Stars: ✭ 127 (-8.63%)
Mutual labels:  game, opengl, jvm
Open Builder
Open "Minecraft-like" game with multiplayer support and Lua scripting support for the both client and server
Stars: ✭ 569 (+309.35%)
Mutual labels:  game, multiplayer, opengl
Teeworlds
A retro multiplayer shooter
Stars: ✭ 1,712 (+1131.65%)
Mutual labels:  game, multiplayer, opengl
Frag.exe
Multiplayer First-Person Shooter written in C++ using my own engine, Qor
Stars: ✭ 8 (-94.24%)
Mutual labels:  game, multiplayer, opengl
Sulis
Turn based tactical RPG with several campaigns, written in Rust
Stars: ✭ 338 (+143.17%)
Mutual labels:  game, game-2d, opengl
Craft
A simple Minecraft clone written in C using modern OpenGL (shaders).
Stars: ✭ 8,957 (+6343.88%)
Mutual labels:  game, multiplayer, opengl
Hinterland
2D top-down shooter game
Stars: ✭ 34 (-75.54%)
Mutual labels:  game, game-2d, opengl
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (-0.72%)
Mutual labels:  game, multiplayer, game-2d
Freeorion
Source code repository of the FreeOrion project.
Stars: ✭ 507 (+264.75%)
Mutual labels:  game, multiplayer, opengl
Lasercrabs
Launch your LASERCRAB at walls, ceilings, and enemy heads in this indie multiplayer shooter where "move" and "attack" are synonymous.
Stars: ✭ 465 (+234.53%)
Mutual labels:  game, multiplayer, opengl
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-14.39%)
Mutual labels:  game, multiplayer, entity-component-system
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-29.5%)
Mutual labels:  game, multiplayer, entity-component-system
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (+112.95%)
Mutual labels:  game, multiplayer, entity-component-system
Librelancer
A re-implementation of Freelancer
Stars: ✭ 303 (+117.99%)
Mutual labels:  game, opengl, mit-license
Imac Tower Defense
OpenGl 4.4 game made with Entity Component System
Stars: ✭ 28 (-79.86%)
Mutual labels:  game-2d, opengl, entity-component-system
Soldat
Soldat is a unique 2D (side-view) multiplayer action game
Stars: ✭ 1,199 (+762.59%)
Mutual labels:  game, multiplayer, opengl

Ore Infinium

licenseLibGDXKotlin

Join the chat at https://gitter.im/sreich/ore-infinium

Build Status

Ore Infinium, an open source multiplayer Terraria-inspired Sci-fi game written in Kotlin, with a special focus on in-game tech devices, energy generation/consumption, resources gathering and the survival through using these things.

Screenshots/Media/Reddit

World generation in the world Underwater air meter World generation Player in game

Inspired a lot by tekkit(now feed the beast) for minecraft, but I'm not a fan of its overwhelming complexity, although it has some really great gameplay ideas/mechanisms. I aim to incorporate some of these ideas, improve them where I can, improve the process and hopefully make it easier, less grueling and more fun.

I'm likely going to go the route of making energy consumption/production be a global thing. For example, placing a generator will increase your global energy generation rate/stats by that much. I'm most interested in having devices depend on resources, and use them to do neat things, assuming it doesn't make things too overwhelmingly complicated for someone like me. Having to manage fuel sources for generators, switch off devices when too much is being consumed (so that important devices like charging stations, which enable you to dig), and defenses, don't stop working.

Extremely early development!

Basically it's only a tech demo right now, no gameplay. Unless you count walking around gameplay. Then it's got lots of that.

It is planned and written for multiplayer but so far has only been tested local machine only.

It also will not have any lag compensation/prediction at all for a while until I get more functionality (functionality being more important, and lag compensation can be a bit of an after thought, as it is more time consuming and requires a lot of tuning)..not to mention the protocol will need to be optimized, eg things like block sending are very inefficient, as I work on getting other features in. It also currently spams packets like crazy, when it should be aiming for 20-30 packets/s each for client or server.

#Platforms All desktop platforms (which can run the JVM) (Linux with OpenJDK, Windows, macOS).

Requirements

You will need java 8 (jre 1.8) installed. OpenGL 3.0+ (shouldn't be difficult to meet, linux open source drivers usually meet that easily these days. Any integrated gpu in the past several years should support it).

Downloads/Builds

Regular releases are made (runnable jars) after every commit. See github releases

Simply execute it by clicking, or by command line with java -jar pathtojar

Notable Libraries used:

  • LibGDX(base cross platform game framework)
  • KTX (kotlin idiomatic wrappers around libgdx and friends)
  • artemis-odb (ECS (entity component systems) library)
  • KryoNet(networking library)
  • Scene2D.ui(GUI)**, part of libgdx
  • Joise(noise module chaining framework, for generating the game world in complex ways)
  • VisUI(further extends scene2d)
  • JCommander(command line parser)
  • gdx-ai(AI library)

Debugging/development and testing

If you wish to test and such, you'll probably want to enable assertions, as I use them all over the place to ensure consistent game state, and sane behavior. You must pass -ea ("enable assertions") to VM Options.

Should work with every IDE just fine. For IDEA, see: http://www.jetbrains.com/idea/help/setting-configuration-options.html

To build locally, just check out the code. It uses a submodule currently, for the assets. So run git clone update --recursive <the url>. If you've already checked out the main repo and forgot to run it with --recursive, you won't have the submodule located in ore-infinium/core/assets. So, do git submodule update --init --recursive

To build it with gradle, from the command line, run ./gradlew desktop:build (or just click that gradle task from your IDE. Build the executable jar with ./gradlew desktop:dist

I'm using Kotlin, so you can use Intellij IDEA or eclipse(if you download the plugin).

Be sure to set the working directory to the assets directory, or more easily, just invoke the desktop:run gradle task.

Command line arguments

There are some command line arguments that can be passed to it. Find them by running java -jar ./ore-infinium-and-what-not --help. Some of these switches are used for development, some are used for gameplay, testing etc.

License

Code is licensed as MIT, assets are(will be) licensed under permissive asset licenses. (CC0 mostly). See assets dir for more detailed license info.

Contributing and Contact

Feel free to talk to me on gitter, ask questions, get help, create issues, make patches!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].