ryangrieb / openciv Goto Github PK
View Code? Open in Web Editor NEWAn open source civilization-like game made for the web browser.
An open source civilization-like game made for the web browser.
I don't like how units can't climb hills w/ 1 unit of movement left.
Writing:
Trapping:
Mathematics:
Iron Working:
Construction
Currently the map regenerates on top of itself b/c of this.
Right now citizen worker methods send extra unnecessary packets to the client. All the methods in general should be rewritten and be more coherent & readable.
Prevent players from connecting more than once. (Spamming connect button).
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.
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!!!).
AI Roadmap:
Melee Units: ----
Implement sequence node after we approach enemy, including HasMovementNode. Then add an MeleeAttackNode, to attack move
Approach Friendly City Node
Approach Enemy City node
Retreat Node
Patrol Node
The following are errors thrown that are hard to re-create
When the game starts, this error is rarely thrown:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.badlogic.gdx.scenes.scene2d.Actor.parentToLocalCoordinates(com.badlogic.gdx.math.Vector2)" because "child" is null
at com.badlogic.gdx.scenes.scene2d.Group.hit(Group.java:249)
at com.badlogic.gdx.scenes.scene2d.Group.hit(Group.java:250)
at com.badlogic.gdx.scenes.scene2d.Stage.hit(Stage.java:729)
at com.badlogic.gdx.scenes.scene2d.Stage.mouseMoved(Stage.java:381)
at com.badlogic.gdx.InputMultiplexer.mouseMoved(InputMultiplexer.java:146)
at com.badlogic.gdx.InputEventQueue.drain(InputEventQueue.java:76)
at com.badlogic.gdx.backends.lwjgl3.DefaultLwjgl3Input.update(DefaultLwjgl3Input.java:189)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update(Lwjgl3Window.java:394)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop(Lwjgl3Application.java:143)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:116)
at me.rhin.openciv.lwjgl3.Lwjgl3Launcher.createApplication(Lwjgl3Launcher.java:25)
at me.rhin.openciv.lwjgl3.Lwjgl3Launcher.main(Lwjgl3Launcher.java:18)```
I think it has something to do w/ RelativeMouseMoveEvent and Units being added on a different thread than libgdx
When city state's move around (And move into & attack)?
The server attempts to move dead city state units.
I don't want the world to be constrained. For very, very, long term battles (civ 5 AI battles on YT are fun as hell to watch) I want infinite terrain.
For balance
If it's a city. return -1 and use the unit's name to reference the obj.
Right now cities can be settles inside territory, and right next to other cities.
Instead of having individual classes for each unique packet. We could probably create a HashMap
in the Packet class, and assign needed variables to that.
We need to modify StatLine
, where when we addValue
, subValue
, or mergeValue
. This would include a description of what is modifying it. For instance, in the MarketBuilding
class, we would put this.statLine.addValue(Stat.GOLD_GAIN, 2, "Market");
And store that information to be referenced by the client later.
Don't allow city territory to share the same tile.
Figure out what specifically causes the error log above.
For some reason having a unit selected & clicking a city prevents the CurrentResearchWindow from reappearing.
More names need to be added in server/data/landmass_names
Something like dwarf fortress where you can view the history of your civilization and the world as the game progresses.
I need to monitor event manager & see if there are any present memory leaks client & server-side.
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
Right now city states don't defend against players. A war declaration system would handle this.
Right now the city regen amount is a static number. Change that when there are caravans going to a city.
I've neglected to check html compatibility, resulting in us not being able to compile to html.
Currently, if the city can't grow. The growth in
label shows Growth in: -1, -2, ect.
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.
This can occur when we remove a specialist from a production tile. The producing item doesn't update properly.
Right now in order to avoid concurrent modification, we would create a copy of the arraylist. This is inefficient, so I tried to use a queue, but I didn't implement it properly in this context.
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)
Implement LUA J, and then implement all my units, civilizations, tech & culture options though LUA? For example MechaUnit.lua etc.
Don't spawn created units until there is room inside the city.
Right now new players don't know which keybinds to use to move the camera, move a unit, zoom in/out. Find a way to properly display that to the user. (Through a notification menu?)
I don’t like the real time regeneration.
I assume that priority queue maintains the order, but only w/ peek()
& pull()
. Use a TreeSet instead for my intended behavior.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.