The Corsair User Forums  

Go Back   The Corsair User Forums > Corsair Product Discussion > iCUE Software > iCUE SDK

Reply
 
Thread Tools Search this Thread Rate Thread Display Modes
  #1  
Old 08-06-2019, 06:09 AM
Macca_Cool Macca_Cool is offline
Registered User
Macca_Cool's PC Specs
 
Join Date: Sep 2018
Location: Melbourne, Australia
Posts: 30
POST ID # = 1013865
Macca_Cool Reputation: 13
Big Grin Unofficial Custom Game Integration

Hey! I finally got my stuff together and released it.

I've been somewhat active on the forums in the past, mostly talking about SDKs and the potential for custom game integration with iCUE, much like FarCry5 and Metro Exodus shipped with, and I'm proud to announce that I've finished it (6 months ago) and have finally got to releasing it.

I would like to put together a tutorial video to walk through all the aspects of the software, but that's for another time. Today I've released a public download and the source code on Github with some documentation on settings/functions and some usage explaination on the Github README.

Please note: this isn't for the feint of heart, I'm providing a platform to build your own game integration from, I have not created profiles and controllers for all your favourite games and neither do I intend to. This means that programming controllers and making profiles is all up to you. That being said, I've provided enough examples and documentation to have you on your way.

The software provides access to the game-integration functions provided by Corsair for the aforementioned games via HTTP GET requests, this allows almost any language to utilise its functionality, meaning theoretically any game mods should be compatible. I've provided controller examples in Python and have implemented a number of settings to allow it to fit with many use-cases.

So here's the link, have fun, and any questions, ask them here and I'll try to get back to you. Happy integrating!
https://github.com/Zac-McDonald/iCUE...me-Integration
Reply With Quote
  #2  
Old 08-06-2019, 01:37 PM
hastegag hastegag is offline
Registered User
hastegag's PC Specs
 
Join Date: Dec 2016
Location: Northeast US
Posts: 914
POST ID # = 1013913
hastegag Reputation: 20
Default

YEET ^WOOT! Everyone get it, thanks Macca!
Reply With Quote
  #3  
Old 08-08-2019, 08:17 AM
Corsair James's Avatar
Corsair James Corsair James is offline
iCUE Product Manager
 
Join Date: Oct 2013
Location: Fremont, CA
Posts: 4,481
POST ID # = 1014073
Corsair James Reputation: 75
Default

Thread is now stickied.

Great job!
__________________

iCUE - A CORSAIR Interface
https://www.corsair.com/us/en/icue
Reply With Quote
  #4  
Old 08-08-2019, 01:04 PM
Macca_Cool Macca_Cool is offline
Registered User
Macca_Cool's PC Specs
 
Join Date: Sep 2018
Location: Melbourne, Australia
Posts: 30
POST ID # = 1014100
Macca_Cool Reputation: 13
Default

Thanks so much, James! This project means a lot to me, so I really appreciate that. I'm currently working on styling (and adding proper HTML structure to) the documentation and am gonna try to add some example configs and usages, etc. Hopefully that tutorial video for the setup and use-cases comes along too, as it's quite complex to setup and would really help users.
Reply With Quote
  #5  
Old 08-30-2019, 04:14 PM
excessive_amoun excessive_amoun is offline
Registered User
 
Join Date: Aug 2019
Posts: 1
POST ID # = 1016193
excessive_amoun Reputation: 10
Default

Hi there. Thank You so much for the SDK.
I have download all you upoload but be realy confused.
I hope i can find someone who can help me eith it.
I want to link iCUE with League of Legends and use this SDK. I am not so good at thes pogramming parts in java.
Is there anyone who can help me with the config of the SDK for League of Legends?
Thank you.
Reply With Quote
  #6  
Old 09-04-2019, 08:09 PM
hastegag hastegag is offline
Registered User
hastegag's PC Specs
 
Join Date: Dec 2016
Location: Northeast US
Posts: 914
POST ID # = 1016899
hastegag Reputation: 20
Default

@excessive_amoun you are planning on coordinating game integration with league of legends? Are you familiar with the API? I am not, but from there he/we can generally help you set game states using the game SDK integration. If you just want a single profile you can specify a game specific profile by linking to league of legends' exe inside icue.
Reply With Quote
  #7  
Old 01-07-2020, 08:33 AM
nexAdok nexAdok is offline
Registered User
nexAdok's PC Specs
 
Join Date: Jan 2020
Posts: 2
POST ID # = 1030177
nexAdok Reputation: 10
Default

Hello guys I found this thread in my good rgb sdk searching xD

Can you help me a little? Im very lost.

My keyboard k70 mk2 rgb low profile.

What im looking for.

- Default icue effects for desktop(easy)
-Good game integration with overwatch (aurora makes it nice)
-Integration for WoW and later for other games.

For 3rd point aurora its poor and Icue natively only recognize 4 or 5 five games.


Sooo this project its what I need? XD
Reply With Quote
  #8  
Old 01-07-2020, 10:15 AM
Macca_Cool Macca_Cool is offline
Registered User
Macca_Cool's PC Specs
 
Join Date: Sep 2018
Location: Melbourne, Australia
Posts: 30
POST ID # = 1030187
Macca_Cool Reputation: 13
Default

Alright, so that's a pretty loaded question. Firstly, the program can definitely help you create game integrated lighting to the same fidelity of the Corsair partnered games (Far Cry 5, Metro Exodus, etc.) for games of your choice, but you need to note that I say create. The program at its core is just giving easier access to the Corsair game integration functionality via HTTP requests as opposed to the C++ API. It is up to the user to create the integration, as such it is a very programming and DIY centric approach, that is at the mercy of the programs you try to integrate.

Linking a single profile to an application can be done fairly easily with the software, but that can also be done in iCUE itself, linking programs that dynamically change profiles is the focus of the application, as well as managing when these programs (which I call controllers) need to start/stop to provide seamless lighting between different integrated applications. My point being that if you wanted dynamic lighting for a game like WoW, you would need to find a way to extract information from the game to decide on the current lighting. For the likes of Far Cry 5, with inbuilt support for iCUE game integration, it internally listens for game events such as getting hit or touching fire and triggers a lighting profile to match, likewise it has states such as day and night with accompanying profiles. Sticking with the WoW example, this API might provide the functions you would want for your controller.

An example of a well documented and real-time game API is the CSGO one which is accessed via a local HTTP server. Something like this is pretty difficult to come by however, especially in online competitive games like CSGO and Overwatch. The CSGO API I linked provides different information depending on if you are playing or spectating a match, this is to keep the game fair so that users cannot abuse the API to gain an unfair advantage, and this is likely the main reason why these APIs are few-and-far-between. You mention Project-Aurora, which provides game-lighting integration for a number of games and hardware. If you weren't aware, you can dig through how they integrate lighting for individual games here. As a lot of these games don't provide APIs like CSGO, the game states are extracted using a variety of different methods. Integration for the likes of Minecraft and Witcher 3, among others, is provided via game mods that extract information from within the games and hands it to Project-Aurora. This kind of strategy could easily be ported to work with this software. I believe some other games read values directly out of memory (I remember seeing an old Terraria integration that did this, not so sure about Aurora). Games like Overwatch, DOOM and Factorio that have existing support for Razer Chroma are implemented by wrapping the Chroma integration DLL and extracting the lighting settings and applying them to other hardware. In the case of Overwatch, this means they can have lighting effects on each character and on different in-game events with only the lighting settings leaving the application. This means if you wanted Overwatch integration, you would need to do the same as Aurora and map the lighting from the Chroma SDK to the Corsair SDK, making it a lot more difficult than something like CSGO.

So in short, the software is built to make integration easy to create. Not to directly provide it. The results you want are achievable in most cases, but there would be an amount of work required to do so. I'm happy to help on this end of things; setting up the server and which settings to use. For most applications though, if there is no public API, and there is no modding support, then DIY dynamic lighting probably isn't going to be possible.
Reply With Quote
  #9  
Old 01-24-2020, 01:50 PM
ian351c ian351c is offline
Registered User
ian351c's PC Specs
 
Join Date: Jan 2020
Posts: 1
POST ID # = 1032683
ian351c Reputation: 10
Default

This is a really cool piece of software. Do you think it would be possible to use the HTTP server to be a general REST-like API into the SDK? Or for that functionality to be added? My use case is that I want to use RainMeter to display the information that iCUE provides about fans and sensors, but I don't have the programming experience to use the SDK itself, and kludging together a pipe from iCUE to RainMeter via sensor logs/powershell/regex/lua etc. is proving the be a pretty big challenge. A REST API would make this so much simpler.

Thanks!
Reply With Quote
Reply

Tags
custom, icue, sdk

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

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 Off

Forum Jump


All times are GMT -4. The time now is 01:24 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc.