Calling a moth just a 'shell' is somewhat blasfemy.. But you're forgiven
While writing I realized it would maybe be a good idea to explain something about the basic structure I currently use for logic and data. This will maybe give a better idea about what's possible and what is less possible. Administrative data I will not cover.
All the data is stored as a dictionary.
What does the game do?:
1. it reads a config file, opens the necessary files from (previously selected or default) directories. This results in the menu's, customized per MOD (current only MOD is Vanilla).
2. The menu interprets the profiles, that contain data about which models to import, including corresponding data/specifications. (models like buildings, moths, cargo. Data like apartments, hangars, rooms, weapons, etc)
3. Once interpreted (and stored in THE dictionary) a script builds up the world from this profile and builds the models in the GameScene if needed (scene as in place where everything is visible and plays).
4. The GameScene runs a script every tick (30/s) and runs requested scripts that are being scheduled that tick (persons/moths/buildings can 'request' a spot to run a certain script on themselves after a certain time (immediately, 0.2 sec, 5 sec, any time).
THE Dictionary
I split the data in several main parts, that contain unique objects.
Some have models, some have not. Each item again has its own properties like 'name', 'account', 'rooms', 'health', etc
- 'Persons', categorized by name (so no double names are possible..).
- 'Buildings', categorized by an ID (number from counter). Represented in the visual world by a independant model.
- 'Hangars', categorized by an ID (number from counter). Represented in the visual world by a model, and placed as part of a building.
- 'Moths', categorized by an ID (number from counter), Represented in the visual world by a independant model.
- 'Cargo', categorized by a name (ID name, not visible name), and has a model. This includes weapons and mounts (for now).
- 'Waypoints', categorized by a name (ID from world file), and contains information like position, orientation, max speed, connected waypoints, etc.
There are ofcourse more parts, but those are used for building/checking the world or for configuration-purposes. The 'Walkways' dictionary is not yet added, but it will function similar to buildings, and will feature an automated waypoint-building system, and is easy to implement.
Now that that is told...
----------------------------------------------
Lots of ideas! I will react to most..
You're right about the necessity of a proper AI. The thing I am currently working on is in my opinion quite basic, and should work (@#*&^#!
). Although I can ofcourse make a very basic one (eg. first get bank angle right, turn to proper heading, get pitch right, gas a while.. stop. And again..). I'm willing to leave it at that to get further on other things that is more visual, if most people think that is most handy, But it has to be done either way.
Different craters are a matter for navigation, and I use more than 1 on purpose. When developing you will automatically bump on mistakes/missing items, unlike if you use 1 crater, and find out that you have to rework the whole basic system.. Anyway they are not a real burden for navigation, as it is built-in already (you have crater 'areas' which will make sure the pathfinding uses the waypoints when points lay in a different crater). For initial release you can of course only populate 1 crater.
At the moment the hangars are still in medium development stage. Parking-spots can be owned ('reserved') to certain persons (can change to/include moths), so having a pirate's nest should be doable. To clarify the naming though, i also refer to a previous post of me with the picture of a building. It can of course be implemented that rooms can be bought/rented, which then can contain a factory, bar, whatever. So that the room is not always owned by the building or apartment owner. Buildings already have owners, and contain 1 or more apartments. Apartments have owners, and contain 1 or more rooms (evt with different owners), 1 hangar with 1 or more parking-spots (evt with different owners), and 1 or more hangar-entrances (evt with restricted access to different persons).
The restriction-system can be based on person flying, or on moth. Like; only certain persons (members of that pirate-gang) are allowed in. The 'gang' behaviour has to be built in the pirate-AI though. And I didn't touch that yet
The life capsule sounds like a nifty idea
I already made it person-oriented (as opposed to moth-oriented like hardwar mostly), to also enable office-functions, walking around, and ejecting. So this 'life capsule' or 'brain clusters' is very workable. It can also be a 'remote control device' like an avatar indeed, where you are in your building/room (it would need a room for you to steer a moth, or you can sit in the moth 'live' and have the chance to die in a fight..) Not sure what you mean with the 'blood money' though..
By all means, I love crystalized idea's, since that is the easiest thing to work with for programming.. Especially now that things are still in development-stage, it can still be adapted/implemented relatively easily. I will open a request-thread for the remake. Keeping this for development.
Ps. The reason why I am not very active last month is because my CPL-class just started. This combined with living tends to eat my time as if it was honey on a hot girl.. In a few weeks the planning looks more flexible for me, so expect bigger changes then.