That said, I personally hope that LotV will improve GUI support for this features as well. Its nice to have them available in script, but since GUI is the "official" Tool to program provided by Blizzard it would be nice to get access to the full feature set. I imagene its difficult for things like funcref though as it needs a function prototype as template parameter. Other things like structref should be pretty simple to do in GUI though.
Also, GUI currently does not allow creating local structs.
Interresting. Would you clarify on how you got this information? I read a thread on hive ages ago where this one famous WC3 guy (cant remember his name) debugged the VM of the SC2 beta and first found out about all the limitations it had.
I agree with everything that was said, plus I personally would never recommend using "inofficial" extentions to the language because almost all of them will be outdated and unsupported at one point. You may also run into bugs and performance issues that at the end of the day may cost you more time than the new language features can save.
Do not work against the language, instead, try developing practises which are using it to its full potential.
Quote:
Many existing extensions have got around this using the data table functionality to provide dynamic memory but this drops performance closer to interpreted languages so is not recommended for performance critical tasks.
I'm a little bit confused by this statement. To my knowledge, Galaxy is an interpreted language, so it cannot really get "closer to interpreted performance". In my own benchmarks mathematical calculations were about 400x slower than in C, and there seems to be no compilation of the code, just syntax checking.
Quote:
What ImperialGood has stated is true, however, as an addendum, the galaxy VM and scripting language is being upgraded and some of the limitations he has listed will no longer apply when we get Legacy of the Void. Specifically, you will be able to pass, store and return struct, function and array references.
Interresting, can you provide more information? By "Store" do you mean there is some sort of new type that allows storing references in data tables? Passing and storing references in form of variables is already possible.
EDIT: Okay so i made some tests, and all this appears to already work in the current build of Starcraft.
The biggest problem of local banks is that players get confused about their stored data.
All battle.net related stuff is stored server side (Ladder rank, Achievements, etc.) but custom game achievements are stored locally. Players are surprised that all their progress is gone after formatting the hard drive or switching computers.
This is especially bad for RPG games where players really develop a relationship to their characters and achievements.
Also, even though hacking can be made fairly hard, it still makes it possible to backup a save-file and restoring it at any point once understanding the very basics, making concepts such as trading in Arcade games impossible to implement without major drawbacks. In addition it allows players to "roll back" to any point in time, for example after failing a risky move.
I agree that if they ever implement server side banks they should have a seperate API though.
Wow, really impressed so far. The campaign preview looked amazing and as a person watching professional SC2 since a long time I think those radical multiplayer changes are exactly what we need for the game right now.
The reddit thread pointed out a couple factors that actually decrease the chance of a LotV reveal...
- The SC2 Events are not on the main stage
- "Whats next?" is pretty short.
- Last years Blizzcon also had a SC2: Exhibition, even though it was slightly shorter and there was just one instead of two
- However, its also possible that this years exhibitions will have to do with WCS round of 16 matches
According to that its likely that we may see a LotV announcement this year, there is quite some SC2 stuff planned this time! (Starcraft II: Whats next?, two Starcraft II Exhibitions, Starcraft II: Multiplayer, etc.) :D
No guarantees of cource... Draw your own conclusions, but this got my hopes up!
First of, you are not creating new data tables, you are just adding key - value pairs to either the global or the local data table. In your case you are probably only using the global data table.
To answer your question: Data tables can hold a lot of values (Not sure how many exactly, but its alot), however, you should make sure to remove no longer needed values from the data table. The more key-value pairs are stored in the table, the slower it will become (this is, inserting new elements or getting a key value).
So for example if a unit dies or gets removed, you should make sure to remove all data table values linked to that unit from the datatable as well. I also recommend implementing some sort of datatable debugging mechanism, such as: print whole data table, get amount of data table values, etc
0
Thanks for those very informative insights.
That said, I personally hope that LotV will improve GUI support for this features as well. Its nice to have them available in script, but since GUI is the "official" Tool to program provided by Blizzard it would be nice to get access to the full feature set. I imagene its difficult for things like funcref though as it needs a function prototype as template parameter. Other things like structref should be pretty simple to do in GUI though.
Also, GUI currently does not allow creating local structs.
0
@ImperialGood: Go
Interresting. Would you clarify on how you got this information? I read a thread on hive ages ago where this one famous WC3 guy (cant remember his name) debugged the VM of the SC2 beta and first found out about all the limitations it had.
0
I agree with everything that was said, plus I personally would never recommend using "inofficial" extentions to the language because almost all of them will be outdated and unsupported at one point. You may also run into bugs and performance issues that at the end of the day may cost you more time than the new language features can save.
Do not work against the language, instead, try developing practises which are using it to its full potential.
I'm a little bit confused by this statement. To my knowledge, Galaxy is an interpreted language, so it cannot really get "closer to interpreted performance". In my own benchmarks mathematical calculations were about 400x slower than in C, and there seems to be no compilation of the code, just syntax checking.
Interresting, can you provide more information? By "Store" do you mean there is some sort of new type that allows storing references in data tables? Passing and storing references in form of variables is already possible.
EDIT: Okay so i made some tests, and all this appears to already work in the current build of Starcraft.
0
The biggest problem of local banks is that players get confused about their stored data.
All battle.net related stuff is stored server side (Ladder rank, Achievements, etc.) but custom game achievements are stored locally. Players are surprised that all their progress is gone after formatting the hard drive or switching computers.
This is especially bad for RPG games where players really develop a relationship to their characters and achievements.
Also, even though hacking can be made fairly hard, it still makes it possible to backup a save-file and restoring it at any point once understanding the very basics, making concepts such as trading in Arcade games impossible to implement without major drawbacks. In addition it allows players to "roll back" to any point in time, for example after failing a risky move.
I agree that if they ever implement server side banks they should have a seperate API though.
0
I'm impressed by the amount of negativity in this thread, considering its pretty much 100% positive news.
0
Players ARE integers in sc2. They are represented by their ID.
So for example you can just do: "(Owner of (Triggering unit)) Equal to (P_Int)"
0
I demand that Ahlis demand gets fulfilled.
0
Wow, really impressed so far. The campaign preview looked amazing and as a person watching professional SC2 since a long time I think those radical multiplayer changes are exactly what we need for the game right now.
Cant wait.
0
Rather random but nevertheless important info: Some catalog fields are read only and can not be modified by catalog field value set.
0
If I recall correctly there should be planty of hero selection tutorials somewhere on this site.
0
Thanks guys, much appreciated! :)
0
Man I wish I could go this year! Have fun everyone! :D
0
The reddit thread pointed out a couple factors that actually decrease the chance of a LotV reveal...
- The SC2 Events are not on the main stage
- "Whats next?" is pretty short.
- Last years Blizzcon also had a SC2: Exhibition, even though it was slightly shorter and there was just one instead of two
- However, its also possible that this years exhibitions will have to do with WCS round of 16 matches
So yeah, no idea.
0
Hey,
Blizzard just released their Blizzcon 2014 event shedule: http://us.battle.net/blizzcon/en/blog/16071434/check-out-the-blizzcon%C2%AE-2014-map-and-schedule-10-7-2014?cid=social_20141008_33158916
According to that its likely that we may see a LotV announcement this year, there is quite some SC2 stuff planned this time! (Starcraft II: Whats next?, two Starcraft II Exhibitions, Starcraft II: Multiplayer, etc.) :D
No guarantees of cource... Draw your own conclusions, but this got my hopes up!
0
First of, you are not creating new data tables, you are just adding key - value pairs to either the global or the local data table. In your case you are probably only using the global data table.
To answer your question: Data tables can hold a lot of values (Not sure how many exactly, but its alot), however, you should make sure to remove no longer needed values from the data table. The more key-value pairs are stored in the table, the slower it will become (this is, inserting new elements or getting a key value).
So for example if a unit dies or gets removed, you should make sure to remove all data table values linked to that unit from the datatable as well. I also recommend implementing some sort of datatable debugging mechanism, such as: print whole data table, get amount of data table values, etc