Map Database  •  FAQ  •  RSS  •  Register  •  Login

Feature lockdown for upcoming release

<<

Lewin

User avatar

KaM Remake Developer

Posts: 3821

Joined: 16 Sep 2007, 22:00

Location: Australia

KaM Skill Level: Skilled

Post 16 Sep 2014, 01:27

Feature lockdown for upcoming release

Hi beta testers,
Release candidate 2 seems to be working well and I've reached the end of my todo lists. This release is already much later than we wanted, and unless we decide it's ready soon we could go on making minor changes for months without making much progress. I plan to create RC3 within the next week or so, and after that I don't want to add any more features, I just want to test for bugs, make minor fixes, update maps, and get the translations updated. So now is the last chance to get minor features/changes added to the upcoming release!

Are there any dynamic script commands which aren't implemented yet which you need for a map you have planned? We've added a lot of stuff recently including terrain modification. You can view a list of implemented, accepted (will probably be implemented one day), and suggested commands here:
https://code.google.com/p/castlesand/so ... ipting.txt
If there's a command you want implemented write about it here.

You can view a list of bugs fixed since RC2 here: (items marked with a +)
https://castlesand.googlecode.com/svn/t ... elease.txt

Any bugs or features I forgot about?
<<

Esthlos

User avatar

Knight

Posts: 675

Joined: 23 Jun 2013, 16:02

KaM Skill Level: Beginner

Post 16 Sep 2014, 10:24

Re: Feature lockdown for upcoming release

Lewin wrote:If there's a command you want implemented write about it here.

Well... I didn't find a command to do this, so I'm posting it here: a way to change the passage permission of a tile from script would be nice.

About "Allow storing data between campaign missions somehow (without breaking replays)": the data stored could be saved in each replay too; this way, even if the "general" data changes, the replay would still have the original values of when it was created, which should let it play out like it should... would this work?
Just when you think you know something, you have to look at it in another way, even though it may seem silly or wrong. You must try! - John Keating, "Dead Poets Society"
<<

Lewin

User avatar

KaM Remake Developer

Posts: 3821

Joined: 16 Sep 2007, 22:00

Location: Australia

KaM Skill Level: Skilled

Post 16 Sep 2014, 14:51

Re: Feature lockdown for upcoming release

Esthlos wrote:Well... I didn't find a command to do this, so I'm posting it here: a way to change the passage permission of a tile from script would be nice.

You can use the block object (61) like the red square in the map editor :) I updated the description for MapTileObjectSet to mention this.

Esthlos wrote:About "Allow storing data between campaign missions somehow (without breaking replays)": the data stored could be saved in each replay too; this way, even if the "general" data changes, the replay would still have the original values of when it was created, which should let it play out like it should... would this work?

I'll see if I can get that implemented. Only if you promise to test it in RC3 :P
<<

Esthlos

User avatar

Knight

Posts: 675

Joined: 23 Jun 2013, 16:02

KaM Skill Level: Beginner

Post 16 Sep 2014, 15:48

Re: Feature lockdown for upcoming release

Lewin wrote:You can use the block object (61) like the red square in the map editor :) I updated the description for MapTileObjectSet to mention this.

Thank you.
Another thing: could it be possible to check each player's camera position, zoom level, and maybe manipulate both?
(Let's say someone wants to know what area can the player see, or move the camera so that something else is seen)
If it isn't possible, would it be difficult or long to add?

I'll see if I can get that implemented. Only if you promise to test it in RC3 :P

That I should be able to do. :)
Just when you think you know something, you have to look at it in another way, even though it may seem silly or wrong. You must try! - John Keating, "Dead Poets Society"
<<

RandomLyrics

User avatar

Sword Fighter

Posts: 295

Joined: 21 Jul 2013, 02:15

KaM Skill Level: Fair

Post 17 Sep 2014, 18:19

Re: Feature lockdown for upcoming release

Hmm for AI script i using a lot of ClosestEnemyUnit etc.
ClosesetEnemyUnit(aGroup, X, Y, Radius: integer); - returns cloesest enemy unit in radius for aPlayer or aGroup.
ClosestEnemyUnitGroupType(aGroup, aType, X, Y, Radius); group type = melee, ranged, mounted, antihorse
ClosesetEnemyUnitType; type from 0 to 27
ClosestEnemyHouse
ClosestEnemyHouseType
Its necessary to check position for every unit in group (player group and enemy group) for better precision, coz the distance between member=0 and member=20 cloud be very big.
If its not a big deal ill be very greatfull for that :>
Also i would change existing ClosestFunctions to ClosestFunctions with radius, it gives extra control, if i want entire map to be count just type radius=254 :) function will be more usefull.

Dont know if its easy to write, States.RoadConnected(fX, fY, tX, tY) - return true if these positions are connected.

Actions.GiveCarringWorker(type, ware, x, y, dir) - example: spawns serf with stone. It would be nice option to making caravans or some crazy traveling ideas.
or GiveWareToWorker - exmaple: changes "empty stonemason" to stonemason with stone ad forcing him to return to house (if not idle)

Map editor - it will be nice if editor will have option to save map in "open" directory by F11. For exmaple i have map KamRemake/TEMPMAPS - here i open and save map ( later i can just move to MapsSP or MP)

Actions.MarketPlaceBlockWare(house, ware) - block trade for specific ware, but still can store this ware

States.StatWaresMultipleTypesCount - return current ware count for player (count wares in storehouse and houses) - we could remove Types and leave only MultipleTypes if i want just one type just exmple: [13]

And i think it will be great improvement to let map editor copy/paste from other maps, this could take more work but it will really pays off.
Last edited by RandomLyrics on 18 Sep 2014, 17:16, edited 1 time in total.
<<

RandomLyrics

User avatar

Sword Fighter

Posts: 295

Joined: 21 Jul 2013, 02:15

KaM Skill Level: Fair

Post 18 Sep 2014, 17:13

Re: Feature lockdown for upcoming release

topic refresh up ^^
<<

Lewin

User avatar

KaM Remake Developer

Posts: 3821

Joined: 16 Sep 2007, 22:00

Location: Australia

KaM Skill Level: Skilled

Post 19 Sep 2014, 14:47

Re: Feature lockdown for upcoming release

Esthlos wrote:Another thing: could it be possible to check each player's camera position, zoom level, and maybe manipulate both?
(Let's say someone wants to know what area can the player see, or move the camera so that something else is seen)
If it isn't possible, would it be difficult or long to add?

Moving the camera is possible with: Actions.Cinematic*. However, checking the camera position is not possible, that's complicated to implement because it would need to be synchronized for multiplayer (currently other clients don't know where other players are looking). I don't think it would be useful anyway, what did you plan to use it for?

RandomLyrics wrote:Hmm for AI script i using a lot of ClosestEnemyUnit etc.
ClosesetEnemyUnit(aGroup, X, Y, Radius: integer); - returns cloesest enemy unit in radius for aPlayer or aGroup.
ClosestEnemyUnitGroupType(aGroup, aType, X, Y, Radius); group type = melee, ranged, mounted, antihorse
ClosesetEnemyUnitType; type from 0 to 27
ClosestEnemyHouse
ClosestEnemyHouseType
Its necessary to check position for every unit in group (player group and enemy group) for better precision, coz the distance between member=0 and member=20 cloud be very big.
If its not a big deal ill be very greatfull for that :>
Also i would change existing ClosestFunctions to ClosestFunctions with radius, it gives extra control, if i want entire map to be count just type radius=254 :) function will be more usefull.

There's hundreds of possibly combinations of Closest* that a scripter might want in their script. It's too much effort for us to implement all of them, when it's already possible for the scripter to implement them by using PlayerGetAllUnits and PlayerGetAllHouses. Performance will be worse in some cases but I doubt it will be a problem. Also, some of your suggestions are trivial to implement yourself in your script. For example to check within a radius, just use the existing ClosestUnit command, then check the distance to the returned unit. If it's bigger than the radius, ignore it. Otherwise accept it. That's only a few lines of code to write.

RandomLyrics wrote:Dont know if its easy to write, States.RoadConnected(fX, fY, tX, tY) - return true if these positions are connected.

That's very easy for us to implement, we have a system in the game that does that already :) I'll implement:
ConnectedByRoad(X1, Y1, X2, Y2): Boolean
ConnectedByWalking(X1, Y1, X2, Y2): Boolean

It could be useful to check if a passage has been opened by mining stone :)

RandomLyrics wrote:Actions.GiveCarringWorker(type, ware, x, y, dir) - example: spawns serf with stone. It would be nice option to making caravans or some crazy traveling ideas.
or GiveWareToWorker - exmaple: changes "empty stonemason" to stonemason with stone ad forcing him to return to house (if not idle)

It's hard to make a unit jump to the middle of a task like delivering or mining, so these probably won't be implemented.

RandomLyrics wrote:Map editor - it will be nice if editor will have option to save map in "open" directory by F11. For exmaple i have map KamRemake/TEMPMAPS - here i open and save map ( later i can just move to MapsSP or MP)

I'm not sure many people would use that... If you are saving a map, why wouldn't you want it in those folders?

RandomLyrics wrote:Actions.MarketPlaceBlockWare(house, ware) - block trade for specific ware, but still can store this ware

We already have SetTradeAllowed, and that does not stop the market storing the ware.

RandomLyrics wrote:States.StatWaresMultipleTypesCount - return current ware count for player (count wares in storehouse and houses) - we could remove Types and leave only MultipleTypes if i want just one type just exmple: [13]

I don't think this would be very useful, you could count it with GetAllHouses and HouseResourceAmount anyway.

RandomLyrics wrote:And i think it will be great improvement to let map editor copy/paste from other maps, this could take more work but it will really pays off.

That's already possible :) Run two copies of the map editor in windowed mode (the clipboard will be shared). Or you can run one copy and open a different map. The clipboard will still contain whatever you copied from the previous map.
<<

Esthlos

User avatar

Knight

Posts: 675

Joined: 23 Jun 2013, 16:02

KaM Skill Level: Beginner

Post 19 Sep 2014, 15:39

Re: Feature lockdown for upcoming release

Lewin wrote:Moving the camera is possible with: Actions.Cinematic*.

Thank you!

However, checking the camera position is not possible, that's complicated to implement because it would need to be synchronized for multiplayer (currently other clients don't know where other players are looking).

Oh, ok then.

I don't think it would be useful anyway, what did you plan to use it for?

To check the camera's position. Image

(Ok, seriously: I was thinking about the possibility to temporarily limit a player's ability to scroll over a portion of the map, without hiding it... doesn't matter, this can be worked around, by for example hiding it).
Just when you think you know something, you have to look at it in another way, even though it may seem silly or wrong. You must try! - John Keating, "Dead Poets Society"
<<

sado1

User avatar

Council Member

Posts: 1396

Joined: 21 May 2012, 19:13

KaM Skill Level: Skilled

Post 19 Sep 2014, 21:28

Re: Feature lockdown for upcoming release

Lewin wrote:
RandomLyrics wrote:Map editor - it will be nice if editor will have option to save map in "open" directory by F11. For exmaple i have map KamRemake/TEMPMAPS - here i open and save map ( later i can just move to MapsSP or MP)

I'm not sure many people would use that... If you are saving a map, why wouldn't you want it in those folders?

I use SP maps list for work in progress versions of my maps. This way I can still have the unmodified version that most of the players have, so they dont have to download my unfinished update, and I am not threatened by overwriting my WIP map by an older, more 'official' version. But a save function would help indeed, cause when I finish working on an update, I have to move it manually to MP maps. And a bonus feature - I wouldn't have to clutter SP maps list (which I dont use anyway, to be honest, but somebody else might) if I can save to an external folder.
<<

sado1

User avatar

Council Member

Posts: 1396

Joined: 21 May 2012, 19:13

KaM Skill Level: Skilled

Post 20 Sep 2014, 12:25

Re: Feature lockdown for upcoming release

Sorry for double post, but I guess editing a yesterday post won't give my post much exposure. I lost track of new scripting commands a bit, but I don't think we have peacetime detection, and that would actually be quite useful. So,

OnPeacetimeEnd: Boolean
States.PeacetimeLength: Integer
<<

Lewin

User avatar

KaM Remake Developer

Posts: 3821

Joined: 16 Sep 2007, 22:00

Location: Australia

KaM Skill Level: Skilled

Post 20 Sep 2014, 12:34

Re: Feature lockdown for upcoming release

I have added:
- States.ConnectedByRoad and States.ConnectedByWalking
- Global campaign data to store information between missions (see description near the top of the wiki)

sado1 wrote:Sorry for double post, but I guess editing a yesterday post won't give my post much exposure. I lost track of new scripting commands a bit, but I don't think we have peacetime detection, and that would actually be quite useful. So,

OnPeacetimeEnd: Boolean
States.PeacetimeLength: Integer

We already have States.Peacetime, and you can check for peacetime ending by comparing it to States.GameTime in OnTick.
<<

Esthlos

User avatar

Knight

Posts: 675

Joined: 23 Jun 2013, 16:02

KaM Skill Level: Beginner

Post 23 Sep 2014, 20:22

Re: Feature lockdown for upcoming release

I think that a function to know the map's height and width could prove useful... can it be added, please?

Also, a function to know a player's FPS and which one is the player that is using a particular instance of KaM Remake could in my opinion prove useful for improving a script's performance on older machines, but I fear they'd both send a multiplayer game out of sync if used this way... wouldn't they?
Just when you think you know something, you have to look at it in another way, even though it may seem silly or wrong. You must try! - John Keating, "Dead Poets Society"
<<

Lewin

User avatar

KaM Remake Developer

Posts: 3821

Joined: 16 Sep 2007, 22:00

Location: Australia

KaM Skill Level: Skilled

Post 24 Sep 2014, 01:39

Re: Feature lockdown for upcoming release

Esthlos wrote:I think that a function to know the map's height and width could prove useful... can it be added, please?

Good idea, that useful for making scripts which work on multiple maps. I've added MapWidth and MapHeight.

Esthlos wrote:Also, a function to know a player's FPS and which one is the player that is using a particular instance of KaM Remake could in my opinion prove useful for improving a script's performance on older machines, but I fear they'd both send a multiplayer game out of sync if used this way... wouldn't they?

FPS and ping are not synchronised with the gameplay. We could do that somehow but I don't think it's very useful.

Return to Feedback / Discussion

Who is online

Users browsing this forum: No registered users and 3 guests