Comments (10)
As for the movement:
moving ships is the first thing to process and will therefore always happen even if some targeted ships are destroyed afterwards.
from space-tycoon.
removing the ship from the database is not possible as that would violate foreign keys in some other tables (eg. combat reports).
i will probably add wrecks, even if they will not be used for any game mechanics.
from space-tycoon.
I would prefer avoiding having wrecks because then bots have to differentiate wrecks from ships that are alive. I see this as added complexity without added value.
I think it's okay when my ship stops because the target was destroyed. But it should not happen in the middle of the tick - i.e. all movements valid at the start of the tick should be evaluated even if the target dies during the tick. (Is this how the evaluation order works already in the DB?) At the end of the tick, the invalid commands should be cleared from the DB so that bots can easily see that the ship has nothing to do.
Imho cargo on destroyed ships should be lost. Being able to steal cargo would be too much motivation for attacking others and it adds more complexity to the game. Destroying the cargo is simple and it works imho.
from space-tycoon.
I am not sure I understand your first paragraph.
Currently, when a ship is destroyed, it is kept in the database as actual ship with zero life. Any assigned command is always removed. Its cargo is preserved and other ships (same player) can take it.
I do not like that bots have to check if their ship is alive or not, hence the question.
What I meant by wrecks is to have another type of objects (planets, ships, wrecks). Therefore bots would not have to differentiate their ships from wrecks.
In summary, I see these options:
- keep the ship (with zero life) and its cargo (current behavior) - allows the original owner to recover the goods, but the bot has to differentiate between alive and dead ships.
- completely remove the ship - its cargo is permanently lost and affected commands have to be addressed.
- change the ship into a wreck, preserving ownership - cargo is preserved and can be recovered by the same player only. some commands become invalid, some are ok.
- change ship into a wreck, removing ownership - cargo may or may not be preserved, but it would be recoverable by anybody. some commands become invalid.
from space-tycoon.
I am not sure I follow your first paragraph.
I didn't realize how it's currently implemented. I though that ships are currently not sent to players once destroyed so having the concept of wrecks at seemed like added complexity. Now I see that having separate wreck objects is "simpler" (for bots) than what we currently have.
I do not like that bots have to check if their ship is alive or not, hence the question.
Yeah, agreed.
completely remove the ship - its cargo is permanently lost and affected commands have to be addressed.
I think I prefer this one because it's very simple. No complexity for bots, no complexity in visualization, etc.
change ship into a wreck, removing ownership - cargo may or may not be preserved, but it would be recoverable by anybody. some commands become invalid.
I fear that this will give people too much motivation for aggressive strategies. I think that damaging others is enough reason for aggression since destroying ships (and cargo) lowers net worth of players.
change the ship into a wreck, preserving ownership - cargo is preserved and can be recovered by the same player only. some commands become invalid, some are ok.
This is also okay imho. But honestly I think I would prefer the players to spend their time writing attack/defense/trading logic instead of logic of when it is safe enough to go back and pick up cargo. But maybe the wrecks would make the game less punishing and they would add something extra. I can imagine some fun situations where wrecks would work as traps - you leave a strong ship to guard the wrecks and you kill the ships that come to pick up the cargo. Now I'm thinking that maybe having wrecks would be fun.
from space-tycoon.
Maybe original owners could recover wrecks with shipyards and restore them into new ships of the same class at reduced price?
from space-tycoon.
The more I think about this the more I like the simple solution - i.e. completely remove the ship
.
If we find out that the game is too simple during testing we can add this feature later.
from space-tycoon.
Suggestion: add ship class 'Rogue' that can steal cargo from other ships.
from space-tycoon.
Further idea: leave cargo with some probability or ratio of life.
from space-tycoon.
Accepted solution: ships are fully destroyed. Cargo is lost.
from space-tycoon.
Related Issues (20)
- prepare final example bot HOT 2
- test all commands HOT 1
- history visualization HOT 1
- score over all seasons HOT 2
- consider compressing history data jsons for the database HOT 2
- shorter seasons HOT 1
- visualization: move with coordinates
- deploy HOT 2
- visualization: modal windows content should update automatically
- network compression HOT 2
- generated wrong colors and positions
- logout returns 500 in some occasions
- visualization: ships shouting HOT 1
- attack command on wreck is incorrectly accepted
- consider moving database filesystem data outside docker
- visualization: graph with ships classes per player
- visualization: modal window improvements
- fast tick mode
- visualization: page with all ships for each player
- visualization: changing map to graphs cancels replay occasionally
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from space-tycoon.