Giter VIP home page Giter VIP logo

steam2pcgw's Introduction

  • 👋 Hi, I’m @phyziyx
  • 👀 Cross Curricular Developer & Avid Gamer
  • 👨‍🎓 Computer Science Undergrad 2025.
  • 📫 You can contact me on phyziyx.
  • ✨ Fun Fact: I wrote my first piece of code back in 2014, and since then I've not stopped!
  • 💻 Technical languages and tools I'm familiar with include C/C++, Docker, Git, Go, GraphQL, Java, JavaScript, Lua, MongoDB, NextJS, PHP, Python, ReactJS, Redis, Rust, SQL, TypeScript and more.
  • 🎨 Also familiar with Blender, Filmora, FL Studio, GIMP, Photoshop and more.
  • ✍ Working on couple of projects, including my Final Year Project.
  • 🧠 Using the commit graph to determine how active I am on GitHub is a useless metric!

steam2pcgw's People

Contributors

dandelionsprout avatar phyziyx avatar

Stargazers

 avatar  avatar

Watchers

 avatar

steam2pcgw's Issues

[0.0.68] Early Access and System requirements issue

Ran the program on Marauders and noticed a few output issues. This was tested using 0.0.68 version.

  • As an early access title, the program put "Early Access" into the genre taxonomy field, although this is not a valid parameter in the template. Instead, the correct way to denote a game as early access is in the infobox release date row field with the parameter "EA" as stated in the editing guide.
    https://www.pcgamingwiki.com/wiki/PCGamingWiki:Editing_guide/The_infobox#Release_date_rows

  • I also noticed a few errors in the System requirements table output,
    There is an added plain text output for the "Network" specification on the Steam page, due to their likely being no relevant PCGW specification to apply it to. This entire line can probably safely be ignored by the program, or potentially repurposed for some other use.

    • The program is unable to differentiate correctly when more than one CPU or GPU device is specified in Steam. Ideally, it would be smart enough to detect more than one has been specified, and split them up between the two fields correctly, as he current output simply output both onto the single "2" line.
    • Whenever a parameter is duplicated across both the minimum and recommended tables such is most common with the OS field, the best practices for the wiki is that only the minimum parapter is recorded, while the recommended parameter is left blank. Here, the program just copie both when it should know to ignore one in the event of a duplication.

Additionally, when a DirectX version is specified in the system, requirements box on Steam, aside from mirroring that to the PCGW system requirements table, it should also be safe to add to the API table under "direct3d versions" field.

Possible tips for 0.0.69

v0.0.68 allowed me to make https://www.pcgamingwiki.com/wiki/Rocket_Inc in a fairly impressive 3m42sec. The tool is certainly getting somewhere now. Though I have some ideas to shave off another half-minute from the timer:

  • The |(min|rec)(CPU|GPU) = rows are currently being rendered as e.g. |minCPU = |minCPU2 = 1 GHz, which should be changed to e.g. |minCPU = 1 GHz to prevent unnecessary newlines in those boxes.
  • Change |OSfamily = Mac to |OSfamily = OS X
  • Add {{Infobox game/row/date| for all OSs that a game has been released for, and not just for Windows. It'd be okay to use the same date for all OSs.
  • Remove {{Infobox game/row/taxonomy/genres values that PCGW consider to be invalid, e.g. Casual, Indie, and (from what I remember) Free to Play
  • Add an extra \n before |steam cloud notes
  • Change the <!-- PAGE GENERATED BY PCGW2STEAM --> text to <!-- PAGE GENERATED BY STEAM2PCGW -->
  • |steam appid side with DLC IDs seem to be rendered as:
|steam appid side = 
1836570||gogcom id    = 

which should most likely be changed to:

|steam appid side = 1836570
|gogcom id    = 
  • (Optional:) Convert e.g. |minGPU = OpenGL 3.1 (...) to |minOGL = 3.1
  • (Optional:) A lot of the generated game descriptions are a bit too long and game-self-advertising to be relevant to PCGW, though I'm not eligible to judge whether they'd be against PCGW rules or not.
  • (Optional:) Remove one of the two newlines above {{References}}

The .exe seems to struggle with the API section

Testing with the app IDs 2124570 and 2178170, there seems to be some problems.

Command line log:
PS C:\Users\imree\Downloads\steam2pcgw-main\steam2pcgw-main> .\steam2pcgw.exe
Running Steam 2 PCGW Converter v0.0.62 ( https://github.com/phyziyx/steam2pcgw )
Insert the Steam app ID: 2124570
Sanitised text: '2124570' (len: 7)
Fetching game app details...
Cached the game...
* [1/24] Adding stub
* [2/24] Adding app cover
* [3/24] Adding app developers
* [4/24] Adding app publishers
* [5/24] Adding app release date
* [6/24] Adding reception score
* [6/24] Skipped Metacritic
* [7/24] Game is F2P
* [8/24] Taxonomy...
* [9/24] Processing introduction...
* [10/24] Processing Availability!
* [11/24] Processing Monetization!
* [12/24] Processing Microtransactions!
* [13/24] Processing DLCs!
* [14/24] Processing Config File Location!
* [15/24] Processing Save Game Location!
* [16/24] Processing Save Game Sync!
* [17/24] Processing Video!
* [18/24] Processing Input!
* [19/24] Processing Audio!
* [20/24] Processing Languages!
* [21/24] Processing API!
panic: runtime error: index out of range [1] with length 0

goroutine 1 [running]:
main.GetExeBit(0x698901, 0x6dbfb1, 0x7, 0xc000000101, 0xc000180ff0, 0x0, 0x0)
        D:/Programming/steam2pcgw/steam2pcgw/utils.go:45 +0x2cf
main.main()
        D:/Programming/steam2pcgw/steam2pcgw/main.go:477 +0x3a45
The .txt file that was generated for 2124570
{{stub}}

{{Infobox game
|cover        = GAME TITLE cover.jpg
|developers   = 
{{Infobox game/row/developer|EPIC LEAGUE PTE. LTD.}}
|publishers   = 
{{Infobox game/row/publisher|EPIC LEAGUE PTE. LTD.}}
|engines      = 
|release dates= 
{{Infobox game/row/date|Windows|14 Oct, 2022}}
|reception    = 
{{Infobox game/row/reception|Metacritic|link|rating}}
{{Infobox game/row/reception|OpenCritic|link|rating}}
{{Infobox game/row/reception|IGDB|link|rating}}|taxonomy     =
{{Infobox game/row/taxonomy/monetization      | Free-to-play }}
{{Infobox game/row/taxonomy/microtransactions | }}
{{Infobox game/row/taxonomy/modes             | Singleplayer }}
{{Infobox game/row/taxonomy/pacing            | }}
{{Infobox game/row/taxonomy/perspectives      | }}
{{Infobox game/row/taxonomy/controls          | }}
{{Infobox game/row/taxonomy/genres            | Action, Free to Play, RPG}}
{{Infobox game/row/taxonomy/sports            | }}
{{Infobox game/row/taxonomy/vehicles          | }}
{{Infobox game/row/taxonomy/art styles        | }}
{{Infobox game/row/taxonomy/themes            | }}
{{Infobox game/row/taxonomy/series            | PCGW Templates<!-- CHANGE TO THE ACTUAL SERIES NAME IF ONE EXISTS --> }}
|steam appid  = 2124570
|steam appid side = 
|gogcom id    = 
|gogcom id side = 
|official site= https://darkthrone.epicleague.io
|hltb         = 
|igdb         = <!-- Only needs to be set if there is no IGDB reception row -->
|lutris       = 
|mobygames    = 
|strategywiki = 
|wikipedia    = 
|winehq       = 
|license      = commercial
}}

{{Introduction
|introduction      = <strong>▶Dark Throne◀</strong><br>The heroes of the human world begin a great adventure to bring peace back to Izendar, the human land occupied by the Demon Realm.<br>Enjoy a variety of gameplay options, such as ever-growing demons, epic items, three different game modes, etc.<br><br>■ Authentic 'hack and slash' action role-playing game with<br>Battles with intense actions with thrill <br>Exhilarating pleasure of sweeping enemies away at once with exquisite skill action!<br><br>■ Various missions and hidden traps with:<br>Captivating battles in the demon world imbued with intricate plots and missions to complet<br>New dungeons being changed with infinite combinations<br>Boss stages requiring unique strategies<br><br>■ Charming heroes with various characteristics <br>Paladin, Assassin, Demon Hunter and more<br>A variety of weapons and armors, and action-skills<br><br>■ AAA quality game<br>Jeehyung Lee as Art Director, who is also the cover artist of renowned comic books<br>Dark Throne OST featuring K-Pop top producer Keeproots<br>Sound effects that maximize the immersion of the game<br><br>■ In-depth gameplay experience with<br>'Stress-free' game control with simple and easy operation<br>Meticulous UX designs

|release history      = Released on 14 Oct, 2022

|current state     = 
}}

==Availability==
{{Availability|{{Availability/row| Steam | 2124570 | Steam |  |  | Windows, MAC }}
}}
<!-- PAGE GENERATED BY PCGW2STEAM  -->


==Monetization==
{{Monetization
|ad-supported           = 
|dlc                    = 
|expansion pack         = 
|freeware               = 
|free-to-play           = true
|one-time game purchase = 
|sponsored              = 
|subscription           = 
}}

===Microtransactions===
{{Microtransactions
|boost               = 
|cosmetic            = 
|currency            = 
|finite spend        = 
|infinite spend      = 
|free-to-grind       = 
|loot box            = 
|none                = None
|player trading      = 
|time-limited        = 
|unlock              = 
}}

{{DLC|
<!-- DLC rows goes below: -->
}}

==Game data==
===Configuration file(s) location===
{{Game data|
{{Game data/config|Windows|}}
}}

===Save game data location===
{{Game data|
{{Game data/saves|Windows|}}
}}

===[[Glossary:Save game cloud syncing|Save game cloud syncing]]===
{{Save game cloud syncing
|discord                   = 
|discord notes             = 
|epic games launcher       = 
|epic games launcher notes = 
|gog galaxy                = 
|gog galaxy notes          = 
|origin                    = 
|origin notes              = 
|steam cloud               = 
|steam cloud notes         = 
|ubisoft connect           = 
|ubisoft connect notes     = 
|xbox cloud                = 
|xbox cloud notes          = 
}}

==Video=={{Video
|wsgf link                  = 
|widescreen wsgf award      = 
|multimonitor wsgf award    = 
|ultrawidescreen wsgf award = 
|4k ultra hd wsgf award     = 
|widescreen resolution      = unknown
|widescreen resolution notes= 
|multimonitor               = unknown
|multimonitor notes         = 
|ultrawidescreen            = unknown
|ultrawidescreen notes      = 
|4k ultra hd                = unknown
|4k ultra hd notes          = 
|fov                        = unknown
|fov notes                  = 
|windowed                   = unknown
|windowed notes             = 
|borderless windowed        = unknown
|borderless windowed notes  = 
|anisotropic                = unknown
|anisotropic notes          = 
|antialiasing               = unknown
|antialiasing notes         = 
|upscaling                  = unknown
|upscaling tech             = 
|upscaling notes            = 
|vsync                      = unknown
|vsync notes                = 
|60 fps                     = unknown
|60 fps notes               = 
|120 fps                    = unknown
|120 fps notes              = 
|hdr                        = unknown
|hdr notes                  = 
|ray tracing                = unknown
|ray tracing notes          = 
|color blind                = unknown
|color blind notes          = 
}}

==Input=={{Input

|key remap                 = unknown
|key remap notes           = 
|acceleration option       = unknown
|acceleration option notes = 
|mouse sensitivity         = unknown
|mouse sensitivity notes   = 
|mouse menu                = unknown
|mouse menu notes          = 
|invert mouse y-axis       = unknown
|invert mouse y-axis notes = 
|touchscreen               = unknown
|touchscreen notes         = 
|controller support        = false
|controller support notes  = 
|full controller           = 
|full controller notes     = 
|controller remap          = unknown
|controller remap notes    = 
|controller sensitivity    = unknown
|controller sensitivity notes= 
|invert controller y-axis  = unknown
|invert controller y-axis notes= 
|xinput controllers        = unknown
|xinput controllers notes  = 
|xbox prompts              = unknown
|xbox prompts notes        = 
|impulse triggers          = unknown
|impulse triggers notes    = 
|dualshock 4               = unknown
|dualshock 4 notes         = 
|dualshock prompts         = unknown
|dualshock prompts notes   = 
|light bar support         = unknown
|light bar support notes   = 
|dualshock 4 modes         = unknown
|dualshock 4 modes notes   = 
|tracked motion controllers= unknown
|tracked motion controllers notes = 
|tracked motion prompts    = unknown
|tracked motion prompts notes = 
|other controllers         = unknown
|other controllers notes   = 
|other button prompts      = unknown
|other button prompts notes= 
|controller hotplug        = unknown
|controller hotplug notes  = 
|haptic feedback           = unknown
|haptic feedback notes     = 
|simultaneous input        = unknown
|simultaneous input notes  = 
|steam input api           = unknown
|steam input api notes     = 
|steam hook input          = unknown
|steam hook input notes    = 
|steam input presets       = unknown
|steam input presets notes = 
|steam controller prompts  = unknown
|steam controller prompts notes = 
|steam cursor detection    = unknown
|steam cursor detection notes = 
}}==Audio==
{{Audio
|separate volume           = unknown
|separate volume notes     = 
|surround sound            = unknown
|surround sound notes      = 
|subtitles                 = unknown
|subtitles notes           = 
|closed captions           = unknown
|closed captions notes     = 
|mute on focus lost        = unknown
|mute on focus lost notes  = 
|royalty free audio        = false
|eax support               = 
|eax support notes         = 
|red book cd audio         = 
|red book cd audio notes   = 
|general midi audio        = 
|general midi audio notes  = 
}}{{L10n|content={{L10n/switch
|language  = Korean
|interface = true
|audio     = false
|subtitles = true
|notes     = 
|fan       = 
|ref       = }}{{L10n/switch
|language  = English
|interface = true
|audio     = true
|subtitles = true
|notes     = 
|fan       = 
|ref       = }}{{L10n/switch
|language  = Japanese
|interface = true
|audio     = false
|subtitles = true
|notes     = 
|fan       = 
|ref       = }}{{L10n/switch
|language  = Simplified Chinese
|interface = true
|audio     = false
|subtitles = true
|notes     = 
|fan       = 
|ref       = }}}}\n\n

==Other information==
===API===
{{API

Tested with PowerShell 7.2.7 on Windows 11 22H2 x64.

There's other problems too, including lack of newlines where there should be some, "OS X" being rendered as "MAC" in all-caps, and that it'd probably be better to remove the "PCGW Templates" series name by default.

Plans

  • Re-do the System Requirements parsing:

    • If the min. and max. requirements are same. Remove the duplicated rows from max. table.
    • For notes row, strip the same data and merge, and move it to max. table.
  • VR Support:

    • Figure out how to handle this.
  • Language Sorting:

    • Multiword Languages need to be sorted properly, i.e. Simplified Chinese should be sorted by C instead of S. Same for other languages such as Canadian French (F), Brazilian Portuguese (P), Latin American Spanish (S) and Mexican Spanish (S).
  • Add other stores (using IsThereAnyDeal):

    • This would require scraping the website - untested.
  • Game Cover Download:

    • This could be made an optional/extra feature.
  • Taxonomy:

    • Filter through application tags, and set different taxonomy tags for Pacing, Category, Genre, Controls etcetera.
  • Re-design the core:

    • Should we fetch all the data, process and assign it to a Data struct, sanitise and then just directly get values from there?
    • Templates should be easy to update and maintain rather than being hard coded. Assign a template, set up search terms and then run 'Search and Replace' those terms?

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.