๐ฎ Advanced Script Engine for Overwatch Workshop with Typescript
From Republic of Korea to Hong Kong
The D.Va Engine was developed by Korean. And we're 100% on Hong Kong's side. We are aware of the recent issue. Hong Kong gamers have shown their love for their country in interviews since the end of the tournament.
Of course, We can understand Blizzard's position to remain politically neutral on the issue. However, Blizzard not only suspended the player's qualifications, but also reduced the prize money to zero, and then removed all that game match videos from the Internet. Does it make sense that the player will forfeit the prize money for suspension because of the actions he made in the post-game interview?
Blizzard can of course punish the competition player. However, given the usual level of fines, Blizzard's consistency in action should have been a light fine. Even the one who posted the notice on Blizzard Reddit was a user who had mocked the Hong Kong protests.
Consideration of Chinese people should be as same as that of Hong Kongers. Should have been as careful, and heedful in disciplinary proceedings, Blizzard was afraid of China and chose to keep Hong Kongโs mouth shut.
๐ฌ Democratic Senator Ron Wyden said:
โBlizzard shows it is willing to humiliate itself to please the Chinese Communist Party,โ Sen. Ron Wyden (D-OR)
๐ฌ Republican Senator Marco Rubio said:
โRecognize whatโs happening here. People who donโt live in China must either self censor or face dismissal & suspensions,โ Sen. Marco Rubio (R-FL)
Isn't Blizzard a company that values political correctness? Is this right as an American company? Blizzard had the opportunity to defend his players and democracy, but they did not. So it's time for gamers and custom game developers to tell Hong Kong instead of Blizzard.
Hong Kong is a totally different country from China, and it needs to be protected as a democratic country. many people will not be silent and all society's eyes are in Hong Kong. D.Va engine developers pray for Hong Kong's freedom.
๐บ Advanced Script Engine for Overwatch Workshop
- Overwatch Workshop Ruleset with Typescript (+JavaScript)
DVA-ENGINE: Transfiler engine for advanced developers.
Recently, under the name of Workshop in Overwatch, a custom game mode has been created where users can program game rules. Workshop can be developed by setting up Event and Condition and Action in Rule.
But the ruleset of an overwatch workshop can be modified by default only within the game. for this reason, IDE with many functions is not available. (This is certainly not good news for modern developers.)
That is why the D.VA Engine (Before name: overwatch-workshop-javascript) is being developed. Overwatch's workshop code is saved as an extension file called .ows
, and the editor code can be extracted or inserted through copy and paste from the editor. The goal is to redefine the code of these existing .ows
files as typescript interface and run them on the web editor.
D.Va Engine has been written of 100% Typescript!
We purposed to make it possible to obtain the overwatch workshop code through typed or javascript coding on the web. This process will be provide automatic completion or exposure to interface descriptions so that even those who do not know javascript can easily use the basic grammar with a little knowledge.
D.Va engine can be used directly on the web browser!
It's also available on mobile through the latest Chrome app.
To use the D.Va engine on a regular PC (Windows, Mac, Linux), the following SW's must be installed:
Node.js is a language runtime system that operates JavaScript on a PC (without browser). Please complete the installation on the Node.JS website. (It is recommended that you receive the latest possible version.)
Some OS doesn't have Git (version management system) and Bash (standard UNIX command system) by default. Therefore, it is recommended to install Git-SCM.
VSCode is an IDE(Integrated Development Environment) development tool that supports Typescripts. It is safe to use various development tools such as Atom and Bracket. (The main project contributor has recommends VSCode.)
Run Terminal or Git Bash to enter the following command in the folder where you want to download and install (it also can be done in VSCode):
git clone https://github.com/hmmhmmhm/dva-engine
cd ./dva-engine
Enter the command below to run the engine. (It has be provide automatic install & initialize)
(You do not need to pre-running commands such as
npm install
.)
npm start
Everything is now done! It may take 1 to 2 minutes for the first run. (Engine is require time to download sub-modules and generate other source codes for the first time.)
When the D.Va Engine is Starting, it'll be automatically check that it available to update. You can choose whether to run the update with Y (Yes) or N (No).
Many developers thought that they would be burdened with engine updates each time. So I implemented the built-in engine auto-update feature. (This update system uses This Github Repo data. So I don't have any network traffic pressure.)
In this page, We'll describe the process of coding on the development tool (VSCode).
The engine must be running before following the instructions below. (Files that have been converted to a pastable format are saved as 'release/script.ts'.)
If executed via the command 'npm start' the file 'release/script.ts' is always recreated as soon as the code is saved. (Only at the beginning is slow, after which the conversion will require a speed of less than 1 second.)
src/script.ts
When the engine is fully running, a file 'src/script.ts' is created. If you open the `src/script.ts' file, you can see the following source code:
If you look at the end of the second line, you can see that the name of the language is written. You can modify this section and choose which language to use.
In VSCode, you can check the list of available functions automatically or you can check the description of the variable or function directly through a feature called Intellisense.
When there is a function or variable that you don't know, you can find a description of the code by placing the mouse at that location.
You can also see that the multi-lingual language description is well displayed.
When you type dot(.) after entering any class or namespace, you can see the list of available functions.
While typing a generic word, you can check the list of available variables through Ctrl+Space
or Ctrl+Alt+Space
.
If entering Ctrl+Space
or Ctrl+Alt+Space
does not provide a hint, enter Ctrl+K
and Ctrk+S
and reset the hint shortcut by searching for triggerSuggest
.
When using a workshop function, be sure to check which function is available in the parameters hints on the list.
The parameter classification name that you can enter at that location, such as Type.*
is displayed as a hint. If you enter it the same way, you can see the list of functions available at that parameter.
The sub-parameter is also fully described.
The Rule consists of a class. When you type like a new Rule ({...})
, the information you need to enter is displayed.
// BlaBla
or /* BlaBla */
in our scripts.RuleEvent.
condition: [...]
)==
, !=
, <
, <=
, >
, >=
, ===
Value.
Action.
action: [...]
)This is the most basic set of functions of the typescript workshop interface.
A collection of functions classified according to the parameters of an overwatch workshop.
Overwatch Workshop functions classified for use as the default data type.
Any function that returns a numeric value or a numeric value can be computed using the operator of an existing typescript. (It fully functional!)
TODO: D.Va Engine is developing a plug-in system that allows other users to re-use user-generated rules. After downloading scripts like 'myRuleset.ts' through 'npm', we are developing a structure that can be distributed over the Internet to other users.
TODO: This feature is currently in the process of working.
The targets for which the engine binds typescript to workshop grammar are specific files with the following naming conventions: Files that do not conform to the naming conventions below will not bind to workshop grammar.
If you want to write a code that is not relevant to the Overwatch Workshop, it must be written in a separate file that is not included in the naming convention below.
*
.ts*
.tsProcedure for applying the conversion result of the engine code to the overwatch workshop is as follows.
Copy the contents of the 'release/script.ows' file.
Enter the GAME BROWSER
from the game play.
Click the CREATE
button.
Click the WORKSHOP
button.
If you don't have any set rules, create a rule with the +
button.
Click the SELECT ALL
button.
Click the PASTE RULE
button. (If the Paste button does not appear, please copy the contents of the 'release/script.ows' file once more.)
The following commands are the most basic user commands.
npm start
(or npm run start
)
npm run build
npm run build:fast
The commands below are for developers developing the inside of the engine.
npm run lint
npm run clean
npm run generate
bin/release
folder for the engine. If the bin/release
folder already exists, delete it and recreate it from the beginning.Script commands for developers who maintain inside the engine.
A command that can be modified if the function name of the overwatch workshop has been changed or is incorrectly recorded on the engine.
npm run maintain:rename
This folder contains the automation scripts that are available when new functions or events are added to the Overwatch Workshop.
npm run maintain:event
npm run maintain:value
npm run maintain:action
npm run language:extract
npm run language:extractor
command is entered. In the folder bin/release
, all comments written in the interface file of a specific language that has already been created are extracted in JSON format, and all interface comments are extracted from the interface file that has been replaced by the language code. These extracted files are extracted to the folder /dist/_extracted
.npm run maintain:run
The commands below are reused within the command.
npm run install
npm install
. If there are no modules to install, the command will be completed immediately.npm run update
git pull
. If there is no update, the command will be completed immediately.src/*
folder and the node_modules/*
folder, they will all be deleted.npm run generate:silent
npm run generate
. If there is no update, the command will be completed.npm run ttsc
The main project contributor cannot read languages other than English and Korean. It means that no other language can be supported by Engine without the help of other contributors.
Go to read the Language/README.md file
If you want to contribute to the development of this project, please read the CONTRIBUTING.md file.
Go to read the CONTRIBUTING.md file
Translation data is owned by Blizzard (Only source code is guaranteed MIT License).
MIT Licensed.