An open source civilization like game made in LibGDX

Overview

OpenCiv tile_city

example workflow Lines of Code Discord

A turn based strategy game built on LibGDX, with a rouge-like tile set.

About

OpenCiv is a love letter to turn based strategy games inspired by Sid Meier's Civilization. The game strives to improve on certain aspects that were lacking in the series, and experiment with new features. If you like game development, Java, or pixel art, consider contributing. We can make something great.

Eventually, I'd like to add support modding through LUAJ.

Screenshot

alt text

How do I build and run this?

  • Install Java 11 or higher. NOTE: OpenJDK has problems (at least for me on linux)
  • Install GIT
  • Run -> git clone https://github.com/rhin123/OpenCiv.git
  • Open Eclipse or any other java editor, and import grade project (Eclipse is recommended, haven't tested on other IDEs)
  • To get the game running you would run the OpenCiv-lwjgl3 Lwjgl3Launcher.java class & the OpenCiv-server Server.jar To start the Client & Server

Right click -> Run as -> Java Application

run_client

Right click -> Run as -> Java Application

run_server

  • Click multiplayer & connect, then start the game.

Currently, there is no releases available as the game is still in heavy development. Once AI is re-written & singleplayer mode is implemented, a release will be available.

Keybinds

WASD or ARROW KEYS or LEFT-CLICK DRAG - Camera Movement

SCROLL - Zoom In/Out

LEFT-CLICK Unit RIGHT-CLICK Tile - Unit Movement (In 2 tile radius)

SPACEBAR - Skip turns

Special thanks to:

Contributors - Will Pewitt

Artists - lucasyoung988 brysia pratamacam

Comments
  • Religion: Limit the number of pantheons that can be founded to 8

    Religion: Limit the number of pantheons that can be founded to 8

    Currently, all players can pick a pantheon. We want to limit this number to 8, since CityReligionFollowersUpdatePacket only handles a list of 8 unique religion followers.

    We would modify the onNextTurn() method in the Server's PlayerReligion class to handle this. Where we would iterate over Server.getInstance().getPlayers() ... getReligion()with a getPickedBonuses() > 0 to get the current number of pantheons.

    help wanted good first issue Code Improvement 
    opened by RyanGrieb 13
  • Workspace: Eclipse 2021 unable to import project

    Workspace: Eclipse 2021 unable to import project

    The error states: Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-6.7.1-bin.zip'

    This is because later versions of eclipse run JDK-11, which makes our project incompatible. This article: https://discuss.gradle.org/t/eclipse-running-with-jdk-11-gradle-6-2-1-fails-to-compile-source-for-jdk-8/36577

    provides us a possible workaround for this issue, but I want to look at alternative solutions (a better IDE!!!).

    bug gradle 
    opened by RyanGrieb 2
  • GameOverlay: Show tile yield in addition to the tiles name

    GameOverlay: Show tile yield in addition to the tiles name

    Instead of just displaying the names of the tiles of the hovered tile. We should also include the tile yield in the text as well.

    Such as: Plains, Forest +2 (Food Icon)

    enhancement good first issue 
    opened by RyanGrieb 2
  • River Behavior: Increase natural length of rivers

    River Behavior: Increase natural length of rivers

    Instead of rivers stopping at the lowest tile elevation, they should still seek the lowest elevation while trying to reach the ocean in any way possible. So we would basically chose random tiles until we seek an elevation point that recedes down to the ocean instead of a tile with no water around it.

    opened by RyanGrieb 1
  • AI: Finish AI implementation

    AI: Finish AI implementation

    AI Roadmap:

    Melee Units: ----

    • [x] Implement sequence node after we approach enemy, including HasMovementNode. Then add an MeleeAttackNode, to attack move

    • [x] Approach Friendly City Node

    • [x] Approach Enemy City node

    • [x] Retreat Node

    • [x] Patrol Node

    bug enhancement 
    opened by RyanGrieb 0
  • Missing Assets - What I need to implement

    Missing Assets - What I need to implement

    The following are what assets I need to implement:

    Barbarian camp - https://gyazo.com/06bf5e24079d1e895b926b21cc1cb310
    Farm tile - https://gyazo.com/a841d2cc798c30c455209bb96099701c
    Fish tile - https://gyazo.com/db8af23805d39c16327e7f78b00e8b41
    Peals Tile - https://gyazo.com/8d6e341aa899eece0c4997512f13ec18
    Crabs Tile - https://gyazo.com/97278bdcb939fb54f97fb176fd0c211d
    Whales Tile - https://gyazo.com/8ebd339aa4453cb4633b476b09319046
    Bananas Tiles - https://gyazo.com/8c5bcb3edef51516552351d85f0323eb
    Wheat Tile - https://gyazo.com/ac508f42ced1dba821b606322a36c703
    Deer Tile - https://gyazo.com/536a374a7467bcf2099796bfd1de2668
    Oil Tile - https://gyazo.com/bcaa4a3efd30b1f72411ec0a16890393
    Aluminum Tile - https://gyazo.com/e5900bd9343ca273dca35058a182d6d0
    Uranium Tile - https://gyazo.com/668a5ffc5c4772ada2ac5328eef81382
    Spices Tile - https://gyazo.com/21c9ce202a7966756a894e414fc573c8
    Sugar Tile - https://gyazo.com/6a6b24ecb3f35441f671b6106731a862
    Furs Tile - https://gyazo.com/974b3219280d1c89bae90edf26573c1c
    Ivory Tile - https://gyazo.com/8857379f54d0d9ed69b67c41f6006d8c
    Silk Tile - https://gyazo.com/1e06e094ffc79ad88e8fe6cb996f457e
    Dyes Tile - https://gyazo.com/34ee25b4ad9783caa0e35cb5ac805935
    Incense Tile - https://gyazo.com/1a61558710336db6f4eaae6df48e89f9
    Wine Tile - https://gyazo.com/26739c8f98997168059632baac98cfa7
    Marble Tile - https://gyazo.com/f54ace6ca453f86c62a04f9885067081
    Salt Tile - https://gyazo.com/a55ab0318e9073c842d033ed438f31b2
    Lumber Mill
    Terracotta Army
    
    enhancement help wanted 
    opened by RyanGrieb 0
  • CityState: AI Appears to go into debt

    CityState: AI Appears to go into debt

    Currently our AI builds buildings without considering if their economy can handle it. We need to take account the maintenance cost of buildings and units before the AI decides to produce them.

    bug 
    opened by RyanGrieb 0
  • Events: Check for broken events after event system transition

    Events: Check for broken events after event system transition

    During our transition from an interface based event system to an annotation based event system, I had to rewrite a good amount of code. Because of this a lot of events were broken at first. On the surface level everything seems fine, but there might still be broken parts that need to be corrected.

    bug 
    opened by RyanGrieb 0
  • Chat: Implement /help command

    Chat: Implement /help command

    Currently there is no way for the player to get a list of commands from chat, the implementation of /help would fix this. For the command, the server would just sendServerMessage(...) a list of our commands to the player.

    enhancement help wanted good first issue 
    opened by RyanGrieb 2
  • Chat: Implement whisper command

    Chat: Implement whisper command

    We would simply add a WhisperCommand class & send the player the message through sendServerMessage(...).

    We could also look into changing the chat color for whispers, but that is more advanced.

    enhancement help wanted good first issue 
    opened by RyanGrieb 4
  • OpenCiv: Create standard development environment

    OpenCiv: Create standard development environment

    As it stands, it's hard for new users to setup this projects development environment. It all comes down to their version of JDK, what IDE they're using, and other variables.

    willpewitt mentions in #64 that we should look into using Docker. After spending the whole day trying to get it working I'm going to give up for now since I have no idea what I'm doing with that.

    If anyone has any suggestions to make this project more easy to contribute to, please let me know.

    bug help wanted 
    opened by RyanGrieb 1
Owner
Rhin
I like operating systems, games, and fun problems. :)
Rhin
LibGDX PSX-style render features

gdx-psx gdx-psx its a library for LibGDX designed to assist you in simulation of PlayStation 1 graphics with few simple steps! If you have questions o

Matvey 27 Dec 10, 2022
Kotlin/LibGDX port of my Unity 2D Sandbox

TileRPG Kotlin port/continuation of my Unity TileRPG game, which was in itself a rewrite of my first attempt at making a 2D sandbox game. A libGDX pro

null 1 Jan 23, 2022
Like JPremium, but free, open-source and multiplatform

LibrePremium This plugin was originally made for BeeGames, however they stepped down after the work was done. They are forbidden to use this plugin. L

null 50 Dec 30, 2022
An open source Discord Bot made in Java!

ShiShi An open source Java Discord bot Report Bug . Request Feature About The Project This is a open source Java discord bot making use of the JDA lib

kb 2 Aug 5, 2022
An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or to turn an existing project into a devops project using open source software (Git, Docker, Jenkins..)

DevOpsify Description An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or t

obaydah bouifadene 14 Nov 8, 2022
Conway's Game Of Life, but made by me in a very inefficient and unpractical way. Still, I am proud!

Conway's Game Of Life, but made by me in a very ugly and inefficient way. Still, I am proud! I want to share my appreciation to cellular automata with anyone who comes across this repo.

Ulaş Dilek 6 May 25, 2022
Spring boot backend for marble guessing game inspired by Squid Game TV series.

Back-end for marble guessing game inspired by Squid Game TV series. Built with Spring-boot and WebSocket.

Zaid 4 Sep 3, 2022
Source code of the standalone multiplayer server software of the game "Celaria"

Celaria Server This is the source code of the standalone multiplayer server for the Game "Celaria". (https://www.celaria.com) of modding the server si

Lewa 3 Nov 14, 2021
Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding

Everyone can develop projects independently, quickly and efficiently! What is spring-boot-plus? A easy-to-use, high-speed, high-efficient, feature-ric

geekidea 2.3k Dec 31, 2022
Hcode Online Judge(HOJ):An open source online judge system base on SpringBoot, Springcloud Alibaba and Vue.js !

Hcode Online Judge(HOJ) 前言 基于前后端分离,分布式架构的在线测评平台(hoj),前端使用vue,后端主要使用springboot,redis,mysql,nacos等技术。 在线Demo:https://hdoi.cn 在线文档:https://www.hcode.top/

Himit_ZH 179 Dec 31, 2022
An open source Minecraft plugin that allows operators to control who has access to the nether.

Nether Access Controller Description Nether Access Controller is a Minecraft plugin that allows operators to control access to the nether. It is essen

Daniel Stephenson 2 Feb 12, 2022
log4j-scanner is a project derived from other members of the open-source community by CISA's Rapid Action Force team to help organizations identify potentially vulnerable web services affected by the log4j vulnerabilities.

Log4j Scanner This repository provides a scanning solution for the log4j Remote Code Execution vulnerabilities (CVE-2021-44228 & CVE-2021-45046). The

Cybersecurity and Infrastructure Security Agency 1.3k Dec 22, 2022
Apache Maven artifacts for bootstrapping new open-source projects

OSS Quickstart Apache Maven archetypes for bootstrapping new open-source projects. Think Maven Quickstart Archetype and friends, but more modern, comp

ModiTect 49 Dec 31, 2022
🕊️ The world's most advanced open source instant messaging engine for 100K~10M concurrent users https://turms-im.github.io/docs

简体中文 What is Turms Turms is the most advanced open-source instant messaging engine for 100K~10M concurrent users in the world. Please refer to Turms D

null 1.2k Dec 27, 2022
open-source electronics platform

Arduino is an open-source physical computing platform based on a simple I/O board and a development environment that implements the Processing/Wiring

Arduino 13.3k Jan 4, 2023
Rivr is a lightweight open-source dialogue engine enabling Java developers to easily create enterprise-grade VoiceXML applications.

Overview Rivr is a lightweight open-source dialogue engine enabling Java developers to easily create enterprise-grade VoiceXML applications. Read our

Nu Echo Inc. 57 Jun 27, 2022
Free and 100% open source Progressive Java Runtime for modern Java™ deployments supported by a leading OpenJDK contributor

BellSoft Liberica JDK is a build of OpenJDK that is tested and verified to be compliant with the Java SE specification using OpenJDK Technology Compat

null 195 Dec 22, 2022
GreenMail is an open source, intuitive and easy-to-use test suite of email servers for testing purposes.

GreenMail GreenMail is an open source, intuitive and easy-to-use test suite of email servers for testing purposes. Supports SMTP, POP3, IMAP with SSL

null 529 Dec 28, 2022
Ethylene is a open-source, lightweight, general-purpose compatibility layer standing between the developer and the chaotic world of configuration file formats.

Ethylene Ethylene is a open-source, lightweight, general-purpose compatibility layer standing between the developer and the chaotic world of configura

Steank 7 Aug 9, 2022