Lib Component #811
Replies: 5 comments 2 replies
-
What would probably be good is to have a listing of component types (shields, afterburner, reactor, etc) like we do weapons and then if that component type isn't filled allow it to be purchased. Some component types (cargo expansion, passenger compartments, etc) might get counted via volume/mass addition. |
Beta Was this translation helpful? Give feedback.
-
That's fine, though let's break as little as possible for the 0.9.x release. We can do a bigger break for 0.10 and again at later releases. |
Beta Was this translation helpful? Give feedback.
-
@royfalk Let's try to break everything down into threads; if somethings are related then it's fine to combine them for a thread. |
Beta Was this translation helpful? Give feedback.
-
Whew! That's a lot of issues. Thanks for doing all that research, @royfalk . |
Beta Was this translation helpful? Give feedback.
-
I see you've been making a lot of progress on these changes lately, @royfalk . That's cool. Thanks! I will try to take a look at your latest changes in a bit more detail soon. |
Beta Was this translation helpful? Give feedback.
-
Issues
1. General balancing - the game currently works but nothing is methodically balanced. We can now look at the numbers and define values to be consistent with our vision. e.g. fighters have fuel for about 20 minutes of gameplay time. This will require other people to contribute to the game data as I'm focusing primarily on the engine.
2. This will probably break WC. Need to figure out what's broken and fix it.
3. Upgrade code relies on macros and is very difficult to refactor. But it needs to be done.
4. We should think about component bays instead of upgrade volume.
5. The jump struct in jump_capable is opaque. For example, jump.drive = -2 probably means the drive is unavailable. However this is not documented anywhere.
6. There's auto-refueling code when docking for SPEC. This has little meaning in actual game-play.
7. The engine uses warp or SPEC. The new library uses SPEC. Better to use FTL (except it is not). Ideas?
8. There's code in the engine (firekeyboard.cpp:2180) where the pilot can be arrested if reactor is inactive. This can't happen and shouldn't happen. In the future game, if you run out energy, you die before getting arrested.
9. A lot of the current code doesn't account for mass. For example, warpto.ccp:95 has a min_enery_to_enter_warp of .33. This should be different for a capital ship obviously.
10. There are multiple places in the code that subtract energy for the same action. e.g. firing a weapon has it in mount and armed. Some of it may be due to stale networking code?!
11. basecomputer.cpp has a lot of component description. e.g. How much energy a reactor produces. This should move to a folder with a file per component. There's possibly a way to do this in a more elegant way with an external JSON. This about this.
12. The engine (and basecomputer specifically) has a lot of VS specific code regarding energy. Energy is translated to RS or MJ and it has no room in the engine. Also, developers assumed the reactor uses Lithium6 or some other element. The engine should be agnostic.
13. The engine makes weird specific decisions (basecomputer.cpp:5338) where available energy is reactor - shields.
14. Components are currently only replacement mode. There is no support for additive or multiplicative. Consider removing support.
15. Shields and other relevant components should take powered (value 0.0 to 1.0) as a parameter of how much to functionality is actually provided. It previously had a one-off sufficient_energy_to_recharge_shields parameter that was inconsistent.
16. Jump drive code is all over.
17. Mount/WeaponInfo are going to take a lot of work to refactor and probably won't be part of this effort.
18. Movable - I assumed the code doesn't take mass into account. Check if this is actually the case.
19. Afterburner cost - ???
20. Movable translate fuel mass to motion. It sounds like they just vented the mass. Probably doesn't apply to all games.
21. movable has this setting where the engines work with no fuel. why?
22. Fuel usage in afterburner - need to test it's working.
23. unitcsv.cpp:403 - uses SPEC as a random value to determine spawning???
24. unitcsv.cpp:841 - multiple issues currently described in comments. Including some mentioned above.
25. Did not implement component damage yet. Only did radar.
26. Same was repair code.
27. unit_generic:2035 SPEC refueling doesn't make sense.
28. Weapon energy consumption needs more testing.
29. cockpit_generic:540 - why does the cockpit care about shield power? Depowering should not happen here.
30. Radar class is CRadar due to collision. Fix.
31. Jump energy should not be decreased by star_system.cpp:1316 but by the jump drive.
That's it for now.
Beta Was this translation helpful? Give feedback.
All reactions