Giter Club home page Giter Club logo

scelight's Introduction

Scelight

The source code of the Scelight project with all its modules.

Scelight home page: https://sites.google.com/site/scelight/

(The Github project counts 127,000 lines. And this is without development history, just the snapshot of the current state of the project.)

Visit the Scelight Wiki to see how to contribute or how to setup your environment for developing Scelight.

Directory Structure

directory-info.html in the root explains / details the main folders / files:

File/folderDescription
/src-launcherSource folder of the Scelight Launcher module.
/src-sc2-texturesSource folder of the SC2 Textures module.
/src-sc2-balance-dataSource folder of the SC2 Balance Data module.
/src-app-libsSource folder of the Scelight Libs module.
/src-appSource folder of the (main) Scelight module.
/src-ext-mod-apiSource folder of the External Module API.
/src-toolSource folder of utility tools.
/app-folderContains the off-line files and static files/folders required to run Scelight from Eclipse.
/dev-data/Contains files related to development history and metrics
/source-statsMetrics of the Scelight project.
/*-build-history.txtBuild history of different modules.
/docs/Contains some documentation of the project.
/app-logoFirst version of the app logo.
/change-historyChanges and new features of all the public releases.
/generatedTarget folder of generated javadoc.
/eclipseContains Eclipse configuration files (code templates and source file formatting rules).
/release/Target folder for creating releases.
/resourcesStatic resource files needed to create releases.
/compiled-classesTarget folder for compiled classes of releases (used during module build).
/deployment-devDeployment files (packaged modules) of the development version.
/deployment-pubDeployment files (packaged modules) of the public version.
/ScelightComplete Scelight version assembled after module builds.
/*.properties*.properties files holding latest build numbers and build timestamps of different modules.
/war/newsNews content for the Scelight Operator web application.
/build-release.xmlScelight Builder. Can build releases and modules (with deployments) and make project backup.
/build-javadoc.xmlScelight Development Javadoc Builder.
/directory-info.htmlThis document.
/Scelight.launchEclipse launch configuration to run Scelight.
/Scelight-dev.launchEclipse launch configuration to run Scelight in development mode.

Project Status

Project is active and under development.

License

Open-sourced under the Apache License 2.0.

scelight's People

Contributors

dependabot[bot] avatar dmiller309 avatar icza avatar jlleitschuh avatar kpunto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scelight's Issues

Add example filters

Like, a common one:

1v1 ranked ladder

  • exclude unranked
  • exclude a.i.

Maybe also games where I've lost.

Figure out Command Manager introduced in patch 3.0

A Command Manager was introduced in patch 3.0 which is responsible to "hide" many commands (or rather transcode certain commands to instructions to this internal Command Manager).

They appear as CommandManagerState and CmdUpdateTargetUnit commands in the Command list in the Replay Analyzer. For example:

I   00:05   [9KingS]DakotaFannin    CmdUpdateTargetUnit target={targetUnitFlags=111; timer=0; tag=16252929; snapshotUnitLink=343; snapshotControlPlayerId=0; snapshotUpkeepPlayerId=0; snapshotPoint={x=397312; y=161792; z=40928; }; };
I   00:05   [9KingS]DakotaFannin    CommandManagerState state=1; sequence=3;

Help wanted to decode the meaning of these commands.

Live View of History of current opponent

I got this idea after reading https://www.reddit.com/r/starcraft/comments/alg9ne/blizzard_could_we_please_have_the_ability_to_tag/

We could add the ability to see the individual match-history vs the current opponent. This would make it easier to spot rematches, to see the tendencies of the player or maybe just in general remember who they were. This would solve or at least alleviate the pain induced by barcodes, but also be useful to the broader audience as it allows me to see if and when I played vs my current opponent before.

There is an API of starcraft to see the current match and the current opponent (https://us.battle.net/forums/en/sc2/topic/20748195420), I don't know if scelight uses this already. One solution would be to simply poll this endpoint, say every second, and if a change into a new match is detected a new multi-replay analyze could be triggered with the opponent id as a filter added in.

Preliminary 3.9 replay support

Scelight 6.2.13 added preliminary support for 3.9 replays.

This preliminary means 3.9 replays are parsed successfully, but invalid or unknown actions are displayed in the Replay Analyzer. The reason for this is because balance data (at the replay binary level) has changed, and the Export balance data feature of the SC2 Map editor looks buggy at the moment, and does not export all the data needed. Will fix this when Blizzard fixes its bugs.

Base Control tab displays nothing

Hi, I love the scientific approach Scelight gives to the game. I can pinpoint improvement paths.
Now in version 6.2.13, I see nothing in the Base Control tab, the one that monitors injects, Mules, and chrono-boosts.
It used to work in earlier versions, around version 6.2.10, 6.2.11.

Best regards

UI broken after a few minutes of use

Hi, after a few minutes of use which mainly consist of:

  1. Open app
  2. Open replay folder
  3. Filter replay folder
  4. Scroll the grid
  5. Open a replay (sometimes the bug starts before)

When I resize the window the UI gets fixed but as soon as I start moving the mouse around the bug returns.

screenshot - 18_3_2018 09_02_42

Support new replay version 4.2.2

I've noticed since 27/03/2018 these messages:
2018-04-01 09:25:21.989 | INFO | Unsupported Replay version: 4.2.2.63454 (base build: 63454)

Thanks.

Missing Cmd events

Hi!

I recently looked at a replay (Reynor vs Maru in IEM Katowice 2021 game 5) and noticed that not all commands (e.g. Morph to Drone) are shown. For example, according to the Event history Reynor only used "Morph to Drone" 64 times in that game, while he in fact had 139 unique Drones in total according to sc2reader. This discrepancy also makes the APM calculation incorrect, as his APM is over 700 in-game but only 581 in Scelight. What gives?

Dark theme?

Could a dark theme be added to scelight? It's hard to use right now for people with light sensitivity.

HiDPI support

Hey!

Probably relates to #21

Java on Linux is apparently hard to convince to scale its display up. Some googling suggests a newer JDK might just magically fix things, but scelight will require some shims to fill in for removed classes.

Alternatively I've seen programs like JDownloader offer a manual internal "font scale" setting.

Issue parsing games

I would like to know when the next update will be released, because I have noticed that every game I play says error in scelight so it wont parse them

Btw I'm on the Scelight™ 6.2.26 - Build 491 because the program is saying that is the newest

Fails to parse co-op replays

For example, in a replay where the Stukov commander builds a barracks, the uie : UnitInitEvent has a name "SIBarracks", but when BuildOrdersComp::rebuildTableData() makes the following call:
entity = balanceData.getUnit( uie.getUnitTypeName().toString() ); it returns null. As a result, all of the BoElements for this commander are excluded from the returned data structure.

Map Downloads stuck

Scelight stuck while downloading maps

SceLight Log

Name Value
[Operating System Linux
OS version 5.19.0-0.rc1.20220609git6bfb56e93bce.17.vanilla.1.fc35.x86_64
OS (JVM) architecture amd64
Available processors 48
Java version 1.8.0_332
User name
User time zone Europe/Berlin]
Name Value
Java vendor Red Hat, Inc.
Java version 1.8.0_332
Java home /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.fc35.x86_64/jre
Java runtime name OpenJDK Runtime Environment
Java runtime version 1.8.0_332-b09
Java spec. vendor Oracle Corporation
Java spec. name Java Platform API Specification
Java spec. version 1.8
Java start time Tue Jul 05 21:55:44 CEST 2022
Java uptime 29:35

missing support for replay packs released for AI devs

Replays from the replay pack (https://github.com/Blizzard/s2client-proto#downloads) are not parsable by Scelight. I suspect it is because of the anonymization effort made by Blizzard. Here is an example replay from the pack ex_anon_replay.zip

When looking through the code, the issue seems to be in RepParserEngine.java#L118 where mpqParser.getFile( RepContent.DETAILS ) evaluates to null.

Would it be possible to look into this issue and add support for this kind of replay files?

Crashing on startup with latest JDK on macos

Not a Java expert. Installed JDK 12.x from Oracle website and get this on startup:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXB
	at hu.sllauncher.LConsts.<clinit>(LConsts.java:52)
	at hu.sllauncher.ScelightLauncher.setUserAgent(ScelightLauncher.java:112)
	at hu.sllauncher.ScelightLauncher.main(ScelightLauncher.java:84)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXB
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 3 more
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...6 completed.

dev-skill-level-ticket Question not sufficiently comprehensive

So I am a dev for a decade and I have a huge problem understanding the task.

Here is the task you want to see:

  • Create a file "dev-skill-level-ticket.txt"
  • having the
    • hexadecimal representation
    • of the SHA-256 checksum of
    • the decimal representation of the max value of an 8-byte signed integer
    • shifted right by a value of 0x1a
    • and XOR-ed with the hex value CafeBabe.

So the way to do is:
the decimal representation of the max value of an 8-byte signed integer = 127
of the SHA-256 checksum = 922c7954216ccfe7a61def609305ce1dc7c67e225f873f256d30d7a8ee4f404c
hexadecimal representation ??? SHA-256 is already in 0x Form? Let's assume, it is 8bit char and convert from ASCII to Hexadecimal = 39323263373935343231366363666537613631646566363039333035636531646337633637653232356638373366323536643330643761386565346634303463
Shift right by a value of 0x1a : 3232633739353432313663636665376136316465663630393330356365316463376336376532323566383733663235366433306437613865653466343034631a
Hex Value of "CafeBabe" = 43 61 66 65 42 61 62 65
Xored Value = 39323263373935343231366363666537613631646566363039333035636531646337633637653232356638373366323536643330643761382604520376515606

No need to say, it didn't worked. I am pretty sure, I understand something wrong with the task... I enjoyed the task really much but it is kinda frustrating because I guess it is a comprehension issue. It is like an escape room, where the task is hard or challenging, it is just not comprehensible :D

Thank you for your assistance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.