Thread Tools
Old December 6, 2002, 07:59   #1
Rasbelin
Emperor
 
Rasbelin's Avatar
 
Local Time: 14:11
Local Date: November 1, 2010
Join Date: Nov 1999
Posts: 3,801
Scripting language
Scripting languages are something content developers seem to want as that allows them to fool around with the game and also develop more customised scenarios and modification packs. Scripting languages are something that have been mentioned several times earlier, but I assume as Kurilka mentioned it now again, that we should finally decide about the subject. CtP and CtP2 are the two titles that are most closely related to StP as for the theme, but also the issue with scripting languages. So why to have a scripting language included?

Well, after all the game is open source so the source code is anyway available and it might cause trouble, but it's also an opportunity. The options, if we go for a scripting language, is that we only have a SL for event programming (triggers, etc.) or a full scale SL like in CtP/CtP2. Of course it would require additional work.

I'm in favour for an event scripting language as I can't see the full advantage of a full scale SL.

Here's a nice quote from Immortal Wombat's signature regarding scripting languages (this was regarding SL in Civ III).

"I don't believe in giving scripting languages because the only additional power they give users is the power to create bugs." - Mike Breitkreutz, Firaxis
__________________
"Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver
Rasbelin is offline  
Old December 6, 2002, 08:10   #2
Kurilka
Chieftain
 
Kurilka's Avatar
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Dec 2002
Location: Arkhangelsk, by the White Sea
Posts: 95
As i'm quite new to this subject could anyone point me to resources about game scripting?
Kurilka is offline  
Old December 6, 2002, 08:15   #3
targon
Prince
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Nov 2002
Location: Dolgoprudny, Moscow region
Posts: 360
SL in fact is't suff for users. It's for developers, scenario editors, designers and sometimes even for graphics artists (as _real_ 3D engines need some scripting for animations and so on). It's way of removing of five-time-a-day changing things like AI or unit properties from core engine. It's a way of simplification, as SL may be very specialized and attuned to game aspects. It's way of extension, as SL may be used for easy-to-install plugins, scenario etc. BTW, almost any successful game employs some script, so we are. Game iself may be "simply" some language interpreter exposing its specific aspects (as resolution control, path finding or unit creation) for developer who writes control routines ang game logic at high level. Common way of "sandboxes" may be used to prevent some ugly presons from cheating, while others may use they occational creativity for extending game without need of reading 2Mb of Doxygen docs or hacking code itself. SCripting divides problem into two distinct parts: 1) robust game engine; 2) extensive collection of scripts that glue things together and create gameplay.
__________________
If you don't see my avatar, your monitor is incapable to display 128 bit colors.
Stella Polaris Development Team, ex-Graphics Manager
targon is offline  
Old December 6, 2002, 08:22   #4
Joeno
Alpha Centauri Democracy Game
Chieftain
 
Local Time: 13:11
Local Date: November 1, 2010
Join Date: Aug 2002
Posts: 59
If I recall the old discussions well enough, I believe there weren't going to be any extensive scripting languages. The program is open source, and so you can program in major things, while things like building definitions will be done in a format Blake can tell you more about (mainly because I can't remember everything about it).

But anyway, I remember it being agreed on from early discussions that there won't be any large scripting languages implemented.
Joeno is offline  
Old December 6, 2002, 08:24   #5
Kurilka
Chieftain
 
Kurilka's Avatar
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Dec 2002
Location: Arkhangelsk, by the White Sea
Posts: 95
One question:
as our game is client-server - will be there scripting on client side? I don't see this useful except of cheating
Kurilka is offline  
Old December 6, 2002, 08:26   #6
targon
Prince
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Nov 2002
Location: Dolgoprudny, Moscow region
Posts: 360
Your desire, but statistics is against complex enough games w/o scripting support. Read some things from Gamasutra or any other games devoloper site. Hack some successful games out there. You'll find lots of scripts, indeed.
__________________
If you don't see my avatar, your monitor is incapable to display 128 bit colors.
Stella Polaris Development Team, ex-Graphics Manager
targon is offline  
Old December 6, 2002, 08:35   #7
Kurilka
Chieftain
 
Kurilka's Avatar
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Dec 2002
Location: Arkhangelsk, by the White Sea
Posts: 95
"Your desire, but statistics is against complex enough games w/o scripting support." - was that for me?
I don't say "no" to scripting, but as i see it, client side is almost just for rendering and user input all logic will be on server
Kurilka is offline  
Old December 6, 2002, 08:47   #8
targon
Prince
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Nov 2002
Location: Dolgoprudny, Moscow region
Posts: 360
OK, but if you hack some graphics-intense engine, say, Q3, you'll find a lot of scripts regarding interface, models, animation, shaders. It's also a good idea to use the same script for both client and servers, so they may easily interoperate and share some code. Game engine must support scripting from its roots, as it may be completely useless if implemented as bag on the side.
__________________
If you don't see my avatar, your monitor is incapable to display 128 bit colors.
Stella Polaris Development Team, ex-Graphics Manager
targon is offline  
Old December 6, 2002, 09:03   #9
Kurilka
Chieftain
 
Kurilka's Avatar
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Dec 2002
Location: Arkhangelsk, by the White Sea
Posts: 95
That's quite a different story i think, i don't see much of such stuff in StP type of the game. The most obvious part for me to be implemented in SL is AI, but... stop... customizing governor behaviour could be quite interesting...
So i raise my question once again:
where do you want to use scripting?
Concrete.
I propose AI, but that's also not a small question...
Kurilka is offline  
Old December 6, 2002, 09:07   #10
targon
Prince
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Nov 2002
Location: Dolgoprudny, Moscow region
Posts: 360
BTW, advance in game development will force coders rethink their ignorance to scripts, as thousands did, so I think I need to stop advertizing and draw some nice graphics.
__________________
If you don't see my avatar, your monitor is incapable to display 128 bit colors.
Stella Polaris Development Team, ex-Graphics Manager
targon is offline  
Old December 6, 2002, 11:28   #11
Rasbelin
Emperor
 
Rasbelin's Avatar
 
Local Time: 14:11
Local Date: November 1, 2010
Join Date: Nov 1999
Posts: 3,801
Quote:
Originally posted by Kurilka

where do you want to use scripting?
I would say the AI, event and other triggers and as we get into the subject abit more deep, I would say the weather system as that would allow creating very armageddon like conditions for some nice doomsday scenarios. As the unit values are set in the text files, it's not needed for that, but how about the combat system? Maybe it could be used there for something.
__________________
"Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver
Rasbelin is offline  
Old December 6, 2002, 12:01   #12
Michiel
Chieftain
 
Local Time: 12:11
Local Date: November 1, 2010
Join Date: Nov 2002
Posts: 78
It was my understanding that the game should be completely modable. Doesn't that require a scripting language? Also, I think scripting should be encouraged. (well, not cheating off course ) It gives the game a greater replay-value if you can change all kinds of aspects of the game, or download/share mods for it.

I don't know how to prevent cheating, but maybe there could be some procedure before starting a multi-player game that checks if all players are using the same mod/script. (Cheating is fine if everyone agrees to it.)
__________________
Michiel Helvensteijn
--
SPDT Member: Helpmate
Michiel is offline  
Old December 6, 2002, 13:14   #13
Rasbelin
Emperor
 
Rasbelin's Avatar
 
Local Time: 14:11
Local Date: November 1, 2010
Join Date: Nov 1999
Posts: 3,801
Quote:
Also, I think scripting should be encouraged.
Well, that could come into question, but the idea is that the game itself is that good you don't have to make scripts ofr having a good game. This isn't buggy ol' CtP.

Quote:
Cheating is fine if everyone agrees to it.
Cheating is strongly discourage in any form as it creates more bad cheating too and any cheating scripts/mods can be easily used for negative effects too. Case closed.
__________________
"Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver
Rasbelin is offline  
Old December 6, 2002, 13:23   #14
vovan
Apolyton UniversityCivilization IV CreatorsSporeApolyton Storywriters' GuildC3CDG Blood Oath HordeC4DG The Horde
Emperor
 
vovan's Avatar
 
Local Time: 06:11
Local Date: November 1, 2010
Join Date: Oct 2001
Posts: 5,725
Quote:
Originally posted by Rasbelin
Cheating is strongly discourage in any form ...
I think it's a matter of definition. If we actually want to make a fully modable game, it will be hard to say what is cheating and what is not. After all, if the user can mod the game however he wants, it would really be hard to draw the line between "modding for fun" and cheating.

Besides, this also brings up a very important question. Since this game is going to be distributed under the GNU General Public License, as it is said to be on SourceForge, that means that we will be giving the players the source code together with the executables. Now, in multiplayer games, how are we going to ensure that the player has not modified the code to gain unfair advantage? If we are going to somehow compare the engine files or what not (by engine here I mean the game logic, of course, not the graphical engine), it would take a long time to intialize the game for one thing, and for another that would actually discourage modifying the code.
__________________
XBox Live: VovanSim
xbox.com (login required)
Halo 3 Service Record (I fail at FPS...)
Spore page
vovan is offline  
Old December 6, 2002, 14:02   #15
Rasbelin
Emperor
 
Rasbelin's Avatar
 
Local Time: 14:11
Local Date: November 1, 2010
Join Date: Nov 1999
Posts: 3,801
That's why we 1. encourage to download the latest files from official sources that are listed on the website 2. as Blake earlier suggested, files would be digitally signed with a PGP signature. That would be the proof it's a validated file release by SPDT. I agree with you that we can't have it comparing the core code as that would be almost dumb.
__________________
"Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver
Rasbelin is offline  
Old December 6, 2002, 15:14   #16
Michiel
Chieftain
 
Local Time: 12:11
Local Date: November 1, 2010
Join Date: Nov 2002
Posts: 78
Quote:
I agree with you that we can't have it comparing the core code as that would be almost dumb.
Thanx. It was just a suggestion from someone who has never programmed an online game before.

And as I said, cheating should of course be discouraged. In any form. I never cheat myself. It ruins the game for me. What I meant was, that if a group of people that want to play the game with a mod, and there is a good way to make sure those people can only play against people using the same mod, then it should be possible.
__________________
Michiel Helvensteijn
--
SPDT Member: Helpmate
Michiel is offline  
Old December 6, 2002, 15:39   #17
vovan
Apolyton UniversityCivilization IV CreatorsSporeApolyton Storywriters' GuildC3CDG Blood Oath HordeC4DG The Horde
Emperor
 
vovan's Avatar
 
Local Time: 06:11
Local Date: November 1, 2010
Join Date: Oct 2001
Posts: 5,725
In general, I think we need to think hard about how we are going to deal with multiplayer and mods.

On the one hand, as I understand our position, we don't want to discourage modding in general. Hence the whole discussion of scripting (well, scripting would also be of great help for scenario designers, but that is beside the point of this post). Now, if we want to allow people to modify their game, we need to decide how to combine that with multiplayer. If the files we distribute are digitally signed, then any change to them would render the game useless for multiplayer. (Is that right? I am not quite sure how the digital signature is supposed to work...) If that is the case, then we are essentially saying that the user has a choice: either to have two installations of the game (one, modded, for sp, the other - unmodded, for mp), or avoid modding the game at all (meaning the source code.) Neither of these sounds particularly attractive. Keeping that in mind, I don't really see the point of keeping the game open source. Since we won't allow the players to mod the game if they want to play mp, why give them tghe code in the first place? (Well, that's not entirely true, actually. They can still choose to play sp only and then would have the ability to play around with the code. Alternatively, if a person finds a bug and is able to fix it, they could send us the code snippet, we would incorporate it into the main core, sign it digitally, and publish. In the true spirit of open source.) Secondly, that would mean that we have to have a scripting language for the people who want to mod the game and still play MP.

On the other hand, I could be wrong in my assumption that the digital signature is destroyed / rendered useless when the code is modified. In that case, I don't really see how it works. Please enlighten me.
__________________
XBox Live: VovanSim
xbox.com (login required)
Halo 3 Service Record (I fail at FPS...)
Spore page
vovan is offline  
Old December 6, 2002, 16:13   #18
Michiel
Chieftain
 
Local Time: 12:11
Local Date: November 1, 2010
Join Date: Nov 2002
Posts: 78
Actually, I don't exactly know how the signature works either. But assuming that it's a switch that is turned off when the code is modified, I suggest 2 types of online games. Or you play modded (only against other people that play modded) or you don't, and can only play against other people that use the original source. People that use the original source CAN mod their game from any point in the game, but modded games can't change back. SP can be played however you want, off course.

And about online modded gaming, I suppose you'll just have to trust the other players use the same mod as you do. Short of comparing the player's entire mod-code I see no alternative.
__________________
Michiel Helvensteijn
--
SPDT Member: Helpmate
Michiel is offline  
Old December 6, 2002, 16:23   #19
vovan
Apolyton UniversityCivilization IV CreatorsSporeApolyton Storywriters' GuildC3CDG Blood Oath HordeC4DG The Horde
Emperor
 
vovan's Avatar
 
Local Time: 06:11
Local Date: November 1, 2010
Join Date: Oct 2001
Posts: 5,725
Quote:
Originally posted by Michiel
And about online modded gaming, I suppose you'll just have to trust the other players use the same mod as you do.
Yes, the idea to have two types of mp games might be a good one. Something else we could do is label certain mods as "Approved by the StP Development Team", which would basically mean that if someone comes up with a particularly successful and popular mod, we could (if the author wants) inspect it to see if there are any hidden cheat backdoors, and if we don't find any, we could label it with a digital signature as well, and distribute it. Then, on the matchmaking screen, you could see if your opponents have an unmodded version, a version modified by a "third party", or a version that is modified by an approved mod, in which case you can also see which mod it is. I think that could also help in mp.

On the other hand, it seems a little complicated to say the least. Given our ambitions about the rest of the game, I am not quite sure how much of security we want to build in, and how much to leave to the players to weed out the cheaters by themselves...
__________________
XBox Live: VovanSim
xbox.com (login required)
Halo 3 Service Record (I fail at FPS...)
Spore page
vovan is offline  
Old December 6, 2002, 16:50   #20
Michiel
Chieftain
 
Local Time: 12:11
Local Date: November 1, 2010
Join Date: Nov 2002
Posts: 78
Quote:
Originally posted by vovansim
On the other hand, it seems a little complicated to say the least. Given our ambitions about the rest of the game, I am not quite sure how much of security we want to build in, and how much to leave to the players to weed out the cheaters by themselves...
Well, in at least one online game I play (diablo 2) cheating causes a lot of frustration amongst players. From PKing to hacking/duping/etc. I think we should make this game as cheat-proof as possible. Off course, we can't stop the motivated hacker from cheating, but I hope it can be prevented a much as possible.

I think your idea about the signature for approved mods is a good idea, worth exploring. But would that ban all 'not approved' mods from the internet?
__________________
Michiel Helvensteijn
--
SPDT Member: Helpmate
Michiel is offline  
Old December 6, 2002, 17:01   #21
vovan
Apolyton UniversityCivilization IV CreatorsSporeApolyton Storywriters' GuildC3CDG Blood Oath HordeC4DG The Horde
Emperor
 
vovan's Avatar
 
Local Time: 06:11
Local Date: November 1, 2010
Join Date: Oct 2001
Posts: 5,725
Quote:
Originally posted by Michiel
Well, in at least one online game I play (diablo 2) cheating causes a lot of frustration amongst players.
It seems to me that all Blizzard games are plagued by cheating. I used to play Warcraft III MP a lot...

Quote:
Originally posted by Michiel
I think your idea about the signature for approved mods is a good idea, worth exploring. But would that ban all 'not approved' mods from the internet?
No, I was thinking more along the lines of combining this idea with yours: the rule still applies - players with modded games can play with other players with modded games. Only now they can see if their opponents' games are modded with an approved mod or not. In the latter case, they can still play, but they will realise that they are under a greater risk of being cheated against.
__________________
XBox Live: VovanSim
xbox.com (login required)
Halo 3 Service Record (I fail at FPS...)
Spore page
vovan is offline  
Old December 6, 2002, 17:52   #22
Leland
Prince
 
Local Time: 14:11
Local Date: November 1, 2010
Join Date: Jan 2000
Posts: 517
Hmm, color me ignorant but I don't see the problem of cheating... the host resolves all the game turns, right? So, if one of the clients tries to cheat with a script allowing him to build 10 units instead of 1 (for example), won't the server notice that this is against the rules and discard the orders? On the other hand, if the host wants to cheat, there's really nothing that can be done: in the extreme case, the host could disable all signature checks and recompile the code, and then forfeit a "yup, I'm legit" message to the clients.

So, to avoid cheating I think the key is to make the rules such that they can be validated on server side. Period.
Leland is offline  
Old December 6, 2002, 18:14   #23
Blake
lifer
PolyCast TeamCivilization IV: MultiplayerC4DG Gathering StormCivilization IV CreatorsApolyton UniversityApolytoners Hall of Fame
Beyond the Sword AI Programmer
 
Blake's Avatar
 
Local Time: 01:11
Local Date: November 2, 2010
Join Date: Oct 2000
Location: I am a Buddhist
Posts: 5,680
Leland is correct, all that is required is for the server to not blindly follow orders from clients. Easier said than done ofcourse, but given time the exploits should be eliminated.
Another effective way of reducing the possibility for cheating is to only send clients information on a "need to know" basis, iow if there is a fleet outside of the "fog of war" the client cant know about it, meaning a map hack would not do anything.

Server side cheating cannot be prevented, altough it should be possible to verify that a server is running good rules....
Blake is offline  
Old December 6, 2002, 18:31   #24
Michiel
Chieftain
 
Local Time: 12:11
Local Date: November 1, 2010
Join Date: Nov 2002
Posts: 78
I agree. Info on a need to know basis. It might slow down the game a bit, but I think it's needed in a game like this one.

But what about mods? Not blindly following orders from clients, OK. But there should be a mod-system. Maybe like the one Vovansim suggested in his last post.
__________________
Michiel Helvensteijn
--
SPDT Member: Helpmate
Michiel is offline  
Old December 6, 2002, 20:22   #25
Disparat
Chieftain
 
Local Time: 12:11
Local Date: November 1, 2010
Join Date: Nov 2002
Location: East Coast, USA
Posts: 42
Well, wouldn't all the clients need the same version of the game? So if one guy had a mod, in order to play with others the mod would have to be downloaded to the other clients. That would negate any "advantage" he might have. And scripting isn't cheating, exploiting bugs is cheating. So if a guy had written a mod that started him with tons of money or something like that, it would have to be downloaded by the other players. Am I missing something?
Disparat is offline  
Old December 6, 2002, 21:39   #26
Blake
lifer
PolyCast TeamCivilization IV: MultiplayerC4DG Gathering StormCivilization IV CreatorsApolyton UniversityApolytoners Hall of Fame
Beyond the Sword AI Programmer
 
Blake's Avatar
 
Local Time: 01:11
Local Date: November 2, 2010
Join Date: Oct 2000
Location: I am a Buddhist
Posts: 5,680
Generally yes, altough it breaks down when using minimal information - the host could give himself a heap of credits, and because the (other) clients dont need to know his credits they wont know.

Therfore there wont be any desync or other problems.

Fortunately automated servers fix such problems, and basically if a player is hosting there can be no real guarantee against that player cheating.
Blake is offline  
Old December 7, 2002, 05:28   #27
Rasbelin
Emperor
 
Rasbelin's Avatar
 
Local Time: 14:11
Local Date: November 1, 2010
Join Date: Nov 1999
Posts: 3,801
Quote:
Something else we could do is label certain mods as "Approved by the StP Development Team", which would basically mean that if someone comes up with a particularly successful and popular mod, we could (if the author wants) inspect it to see if there are any hidden cheat backdoors, and if we don't find any, we could label it with a digital signature as well, and distribute it.
IMO that suggestion sounds good and quite working. At least it would mean people would know it's a reliable and working code that shouldn't run any arbitary code.
__________________
"Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver
Rasbelin is offline  
Old December 7, 2002, 05:52   #28
Kurilka
Chieftain
 
Kurilka's Avatar
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Dec 2002
Location: Arkhangelsk, by the White Sea
Posts: 95
Yes it's good, but how do you implement it? Will you check all the binaries (and for all platforms...) during server startup?
Kurilka is offline  
Old December 7, 2002, 07:21   #29
Vultur
Warlord
 
Vultur's Avatar
 
Local Time: 13:11
Local Date: November 1, 2010
Join Date: Jun 2000
Location: Milan
Posts: 276
Solution
The things that can be scripted are:
1.Games Constants (food/pop,labor/pop,....)
2.AI behaviour (if(Reliability.Player[x] < y) then Player_Liar() or similar)

How to save both the open-source both the correct gaming?
Simple, we must have 2 script files:
one "official", the other "personal"

Script sended from Server
When client is connetted to the server uses "official" script flie, that can be modified only by SPDT, when the player has SP gaming session uses his own "personal" script file.
So, the players can realize his own Mods without cheating in MP.
The people will also Debugging or Modding and cooperate with us to have a better MP experience.

Script on HD, but codified
If the things that must scripted are too much to be sended is possible to have the "official" file encripted on client HD and the key is sended by the server to the client only during MP games. In SP sessions the game will use a readable script on local disk.
I think that Blake will be able to code a simple crittography algorithm... don't you?

It's all clear?
__________________
Aslo the gods are impotent against men's stupidity --Frederich Shiller
In my vocabulary the word "Impossible" doesn't exist --Napoleon
Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer
Vultur is offline  
Old December 7, 2002, 07:56   #30
Kurilka
Chieftain
 
Kurilka's Avatar
 
Local Time: 15:11
Local Date: November 1, 2010
Join Date: Dec 2002
Location: Arkhangelsk, by the White Sea
Posts: 95
Let me disagree with you Vultur,
i think that we don't need all this.
As i see it we will have:
a) server with extensive scripting for AI and other stuff. It's a matter of player to trust server hoster (but some signature will be useful though)
b) client with some scripting (maybe some parts of AI such as for governor behaviour and some graphic effects or such), but all the scripts will deal with limitations wich are true for the player (excludes cheating)
Kurilka is offline  
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 08:11.


Design by Vjacheslav Trushkin, color scheme by ColorizeIt!.
Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Apolyton Civilization Site | Copyright © The Apolyton Team