mod wants revamped

Post ideas & suggestions you have pertaining to the game here.
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

this is just my old mod wants post with some revisions and now with ratings (1) is the lowest and (10) is the hightest

1. Functions

The ability to import, overwrite, or create new functions in extensions. I would like to see functions have IDs. (1)
The ability to return a value from a function that is not in the same extension. (5)

2. Events

A event fired for the following things.
Weapon firing (5)
Weapon striking or detonating (7)
Armor taking damage (3)
AfterCreate so you can do different things just after the ship or station is created (10)
Item Equipping (5 can be added in a mod)
Item Unequipping that can return a value that allows you to not allow the unequipping (5 can be added in a mod)
a function for a system for whenever you gate in that can tell if you have been there before (10)


3. General

Allow for random stats from game to game such as 2D6 Mass or damage. (10)
Allow for a random table for images (7)
Allow the modder to access and change any stat from in code. (10)
Change frequency so it is a number so we can have more levels of rareness. (5)
Allow a way so you can have unidentified items not all cost the same for a given class. Such as a list of prices to randomly choose from. (1)


4. Weapons

Move Missiles into there own category and just list the missiles a weapon can use. (7)
Have Configuration allow for delays between the different parts of the shot. (7)
Allow modder to define the path of the weapon. Such as a curved path or a wave. (7)
Allow configuration to support repeating (already in if you allow a delay) (5)
Allow for different than standard power uses when not being fired. (8)


5. Shields and Armor

Allow the modder to add more damage types without changing every shield and armor. (8)
Allow for different than standard power use when at full and a different one at empty. (7)

6. ShipClass

Allow for random starting devices. (10)
Allow for random stats (mass, turn speed, and whatnot). (10)
Allow for random image while putting a specified image on the ship choosing. (10)
Have some more AISettings and orders such as bravery. (8)


7. StarSystemDescription

Make it able to allow for different amounts of gates. (10 but I think you are planning it anyway)
Let random choosing be able to choose predefined planets not just random ones. (10 would help spice up predefined systems alot such as the first system never has anything anymore on the outer planet)
Allow this to be put in an extension. (10 but you are planning to anyway)
Allow the modder to define what random things come through the gates and be able to specify what comes through what gate. (10 would help alot in theme systems)


8. StarSystemTopology

Allow system names to be chosen from a global pool. (10 this is the hardest thing about making a good random network that will not be memorised)
Give the topology an ID and allow multiple ones in the same extension. (10 so you can pick and choose the topology with a mod)

9. Starting ending and cinematics

disable player control (7)
pause and ignore ship (don't want ships not in the cinematic being shot at or shooting, paused ships don't use fuel) (7)
fire weapon (being able to fire a given weapon even if not equiped, this would also be useful in making robotic firing devices too) (8)
camera move (not sure how easy it would be to do this, could fake it)
disable interface (so you don't have to look at the gauges during the cinematic) (7)
play sound (7)
starting function so you can have a beginning cinematic (7)
allow for multiple endings (9)

any others that people want?
Crying is not a proper retort!
Burzmali
Militia Commander
Militia Commander
Posts: 395
Joined: Tue Aug 15, 2006 12:14 am

I figured I'd throw in a few comments on you high fliers before moving to my own.
Betelgeuse wrote:-AfterCreate so you can do different things just after the ship or station is created (10)
Ummm, is <onCreate> not enough? Even if not, you can set a timer event to trigger a tick after the ship is created.
Betelgeuse wrote:-a function for a system for whenever you gate in that can tell if you have been there before (10)
George has confirmed that he will be adding the ability to use (objSetData ...), or some variation of it, on nodes in the next release.
Betelgeuse wrote:-Allow for random stats from game to game such as 2D6 Mass or damage. (10)
This would only work if the value was only randomized when the game started. If each instance of an item had a different mass, bad things would happen.
Betelgeuse wrote:-Allow the modder to access and change any stat from in code. (10)
See above
Betelgeuse wrote:-Allow the modder to add more damage types without changing every shield and armor. (8)
More damage type? Why? There are already more than enough. How would old armors and shield cope with your new Super Sainan damage type with an attack power of over 9 THOUSAND?
Betelgeuse wrote:-Allow for random starting devices. (10)
I agree on this one, but if I really need to do this, I just handle it in the <onCreate> event.
Betelgeuse wrote:-Allow for random stats (mass, turn speed, and whatnot). (10)
Once in the beginning yes, each ship no. Same as above.
Betelgeuse wrote:-Allow for random image while putting a specified image on the ship choosing. (10)
Hmm, image variants exist for a reason you know.
Betelgeuse wrote:-Have some more AISettings and orders such as bravery. (8)
More AI makes for a slower game though.
Betelgeuse wrote:-Make it able to allow for different amounts of gates. (10 but I think you are planning it anyway)
Umm, why can't you do that now?
Betelgeuse wrote:-Let random choosing be able to choose predefined planets not just random ones. (10 would help spice up predefined systems alot such as the first system never has anything anymore on the outer planet)
There's no reason those planets have to be static. The xml is just written that way.
Betelgeuse wrote:-Allow this to be put in an extension. (10 but you are planning to anyway)
I don't think so, any changes to the StarSystemTopology would need UNIDs in the main xml.
Betelgeuse wrote:-Allow the modder to define what random things come through the gates and be able to specify what comes through what gate. (10 would help alot in theme systems)
Reoccuring timer events and ship creates can do that. But being able to use encounter tables wouldn't hurt.
Betelgeuse wrote:-Allow system names to be chosen from a global pool. (10 this is the hardest thing about making a good random network that will not be memorised)
Wouldn't hurt
Betelgeuse wrote:-Give the topology an ID and allow multiple ones in the same extension. (10 so you can pick and choose the topology with a mod)
Why do you need multiple topologies? Why not have one branched one as it is now? If you really wanted, you could throw a timer event in the <onCreate> event of Eridani station and jump the player to a different branch as soon as the game starts.

As for me, I would like to see improvements to the dockscreen UI to add windows, customizable fonts, and dynamic <Action> creation.
User avatar
evilbob
Militia Captain
Militia Captain
Posts: 555
Joined: Sun Mar 05, 2006 1:23 pm

Burzmali wrote:But being able to use encounter tables wouldn't hurt.

I think George already said that wou;d be in next version.
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

Betelgeuse wrote:-AfterCreate so you can do different things just after the ship or station is created (10)
Burzmali wrote:Ummm, is <onCreate> not enough? Even if not, you can set a timer event to trigger a tick after the ship is created.
<onCreate> doesn't work for player ships and certain stations in the first system
Betelgeuse wrote:-a function for a system for whenever you gate in that can tell if you have been there before (10)
Burzmali wrote:George has confirmed that he will be adding the ability to use (objSetData ...), or some variation of it, on nodes in the next release.
the point was more for a function to run when you enter that system. I knew about the objdata
Betelgeuse wrote:-Allow for random stats from game to game such as 2D6 Mass or damage. (10)
Burzmali wrote:This would only work if the value was only randomized when the game started. If each instance of an item had a different mass, bad things would happen.
Thats what I was hoping for randomized at the start of the game
Betelgeuse wrote:-Allow the modder to access and change any stat from in code. (10)
Burzmali wrote:See above
maybe have custom items would solve that problem. ie you can only change the stats of an one of a kind item and you can create them off of regular item templates
Betelgeuse wrote:-Allow the modder to add more damage types without changing every shield and armor. (8)
Burzmali wrote:More damage type? Why? There are already more than enough. How would old armors and shield cope with your new Super Sainan damage type with an attack power of over 9 THOUSAND?
Well I have often wanted to make something that can only be effected by one weapon and that one weapon would be inefective against everything else
Betelgeuse wrote:-Allow for random starting devices. (10)
Burzmali wrote:I agree on this one, but if I really need to do this, I just handle it in the <onCreate> event.
<onCreate> doesn't work with player ships and would be much easier just to have a table do it for us
Betelgeuse wrote:-Allow for random stats (mass, turn speed, and whatnot). (10)
Burzmali wrote:Once in the beginning yes, each ship no. Same as above.
ditto
Betelgeuse wrote:-Have some more AISettings and orders such as bravery. (8)
Burzmali wrote:More AI makes for a slower game though.
not really each ai would be seperate (just think of it as replacing normal ai with a different ai). Different ship classes would follow different ai.
Betelgeuse wrote:-Make it able to allow for different amounts of gates. (10 but I think you are planning it anyway)
Burzmali wrote:Umm, why can't you do that now?
to do that now you have to make a system with each different amount of gates, you can't make one with 2-4 gates you have to make them seperatly
Betelgeuse wrote:-Let random choosing be able to choose predefined planets not just random ones. (10 would help spice up predefined systems alot such as the first system never has anything anymore on the outer planet)
Burzmali wrote:There's no reason those planets have to be static. The xml is just written that way.
predefined planets are not chosen when putting down random stations. I would like that changed.

many things you said where me not saying what I wanted clearly or a misunderstanding on how the game works (such as the oncreate thing not working for player ships). Making it easier for modders is also a big point of many of my wants.
Crying is not a proper retort!
Burzmali
Militia Commander
Militia Commander
Posts: 395
Joined: Tue Aug 15, 2006 12:14 am

Betelgeuse wrote:
Betelgeuse wrote:-AfterCreate so you can do different things just after the ship or station is created (10)
Burzmali wrote:Ummm, is <onCreate> not enough? Even if not, you can set a timer event to trigger a tick after the ship is created.
<onCreate> doesn't work for player ships and certain stations in the first system
I doubt that the stations lack an <onCreate> event, though I guess an <InitialConditions> section as part of the <PlayerShip> tag could be helpful for dealing with setting up player credits and having them hunted by the mob and what not.
Betelgeuse wrote:
Betelgeuse wrote:-a function for a system for whenever you gate in that can tell if you have been there before (10)
Burzmali wrote:George has confirmed that he will be adding the ability to use (objSetData ...), or some variation of it, on nodes in the next release.
the point was more for a function to run when you enter that system. I knew about the objdata
Then just put an <onCreate> event on the sun in the system and have the first line be (objSetData gPlayerShip "VisitedSystem" True), in the future, george will let us store the data directly in the Node.
Betelgeuse wrote:
Betelgeuse wrote:-Allow the modder to access and change any stat from in code. (10)
Burzmali wrote:See above
maybe have custom items would solve that problem. ie you can only change the stats of an one of a kind item and you can create them off of regular item templates
Maybe, if George were so inclined, he could create a new MorphItem class that doesn't stack and is treated like a normal item only in specific cases. Of course, this would require that he code his Item class.
Betelgeuse wrote:
Betelgeuse wrote:-Allow the modder to add more damage types without changing every shield and armor. (8)
Burzmali wrote:More damage type? Why? There are already more than enough. How would old armors and shield cope with your new Super Sainan damage type with an attack power of over 9 THOUSAND?
Well I have often wanted to make something that can only be effected by one weapon and that one weapon would be inefective against everything else
Feh, that's a lot of work for something that can easily be handled by an <Invoke>. Give enemy "Shield of DOOM", but when "MacGuffin of COOLNESS" is used, the shield is disabled. I know that isn't exactly what you want, but it is quick and easy to do.
Betelgeuse wrote:
Betelgeuse wrote:-Make it able to allow for different amounts of gates. (10 but I think you are planning it anyway)
Burzmali wrote:Umm, why can't you do that now?
to do that now you have to make a system with each different amount of gates, you can't make one with 2-4 gates you have to make them seperatly
I suppose the copy-paste function is broken on you computer ;) As I said, you need to think outside the box a bit more. If you want a network, you are going to need it strictly defined. If you want branches, create the system where the branch occurs, and generate its location randomly. Massive random but connected networks take a lot of work to generate, Static one are simple, and if you randomly generate the contents of the systen, who is going to notice?
Betelgeuse wrote:
Betelgeuse wrote:-Let random choosing be able to choose predefined planets not just random ones. (10 would help spice up predefined systems alot such as the first system never has anything anymore on the outer planet)
Burzmali wrote:There's no reason those planets have to be static. The xml is just written that way.
predefined planets are not chosen when putting down random stations. I would like that changed.
So you want specific planets matched to a station? If so, just generate them as a single station type, with the planet as the primary and the station in orbit.
Betelgeuse wrote: many things you said where me not saying what I wanted clearly or a misunderstanding on how the game works (such as the oncreate thing not working for player ships). Making it easier for modders is also a big point of many of my wants.
Well, I guess I value stablity and content more. It would really suck to have great modding tools, but have to worry endlessly about compatiblity.
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

Burzmali wrote: I suppose the copy-paste function is broken on you computer Wink As I said, you need to think outside the box a bit more. If you want a network, you are going to need it strictly defined. If you want branches, create the system where the branch occurs, and generate its location randomly. Massive random but connected networks take a lot of work to generate, Static one are simple, and if you randomly generate the contents of the systen, who is going to notice?
copy paste like that is the enemy of good code. I know it isn't needed but why make 4 different copies of each system. It makes changing them later hard and makes debugging that much harder. This isn't about making a random system it is about code reuse.
Crying is not a proper retort!
Burzmali
Militia Commander
Militia Commander
Posts: 395
Joined: Tue Aug 15, 2006 12:14 am

Betelgeuse wrote:
Burzmali wrote: I suppose the copy-paste function is broken on you computer Wink As I said, you need to think outside the box a bit more. If you want a network, you are going to need it strictly defined. If you want branches, create the system where the branch occurs, and generate its location randomly. Massive random but connected networks take a lot of work to generate, Static one are simple, and if you randomly generate the contents of the system, who is going to notice?
copy paste like that is the enemy of good code. I know it isn't needed but why make 4 different copies of each system. It makes changing them later hard and makes debugging that much harder. This isn't about making a random system it is about code reuse.
Well, if you ask really nice, maybe you could convince George to include a check during system generation which erases a stargate that does connect to a node.
User avatar
goat not sheep
Militia Captain
Militia Captain
Posts: 669
Joined: Fri May 19, 2006 8:36 pm
Location: ...
Contact:

Tell you what...I do want one thing.... I wanted to create this...carrier, which launches fighters....but I don't think the AI will order it to launch fighters....just...fire the weapons it's equiped with.
>.<
Burzmali
Militia Commander
Militia Commander
Posts: 395
Joined: Tue Aug 15, 2006 12:14 am

(shpIsUnderAttack ...) + reoccurring timer event = carrier that launches fighters when under attack and recalls them when safe.
User avatar
goat not sheep
Militia Captain
Militia Captain
Posts: 669
Joined: Fri May 19, 2006 8:36 pm
Location: ...
Contact:

...wha? I don't understand thatt... so:
(shpIsUnderAttack usehangar)
or something like that...?
>.<
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

thats an idea have ai use items. (not sure how that would work though)
Crying is not a proper retort!
Burzmali
Militia Commander
Militia Commander
Posts: 395
Joined: Tue Aug 15, 2006 12:14 am

Heres a first crack

Code: Select all

<onCreate>
  (block Nil
    (sysAddReoccurringTimerEvent 120 "onLaunch")
    (sysAddReoccurringTimerEvent 1800 "onReinforcement")
    (objSetData gSource "ships" 36)
    )
<\onCreate>

<onLaunch>
  (block Nil
    (if (and (shpIsUnderAttack gSource) (geq (objGetData gSource "ships") 6)
      (block (i)
        (for i 0 5
          ('Create Ship)
          )
        (objIncData gSource "ships" -6)
      )
    )
<\onLaunch>

<onReinforcement>
  (if (leq (objGetData gSource "ships") 34)
    (objIncData gSource "ships" 2)
  )
<\onReinforcement>
User avatar
goat not sheep
Militia Captain
Militia Captain
Posts: 669
Joined: Fri May 19, 2006 8:36 pm
Location: ...
Contact:

And...we just stick that in the AI settings, right? I think instead of the useless EncounterTables, I'll edit the Xenophobe fleet.
>.<
User avatar
Karl
Militia Lieutenant
Militia Lieutenant
Posts: 219
Joined: Fri Jul 14, 2006 11:47 pm

In reference to the original post...

Betelgeuse, may I just say that: (1) I am impressed that one person could have so many good ideas and (2) that you are that organized about them.
~
[Grabs a box of batteries.] The power is mine! MINE! Ah hahaha! AHHHH HAHAHA!
george moromisato
Developer
Developer
Posts: 2998
Joined: Thu Jul 24, 2003 9:53 pm
Contact:

Burzmali wrote:Heres a first crack

Code: Select all

...
    (if (and (shpIsUnderAttack gSource) (geq (objGetData gSource "ships") 6)
...
Looks excellent! One very minor comment:

use (objIsUnderAttack gSource) instead of (shpIsUnderAttack ...).

[In a previous post you speculated that the game implemented an object hierarchy with "object" being the base class and ships, stations, etc. being derrived classes. That's totally right.

As you might expect, functions with the prefix "obj", such as (objIsUnderAttack...) work on all objects (stations, ships, etc) while functions with the prefix "sta" and "shp" work only on station and ship objects respectively.

Note that there is very little error checking in the game. If you try to pass a ship pointer to a function that takes a station pointer, you will not get a clean error--you might even get game corruption.]
Post Reply