Using Skylanders In Unity

Sdílet
Vložit
  • čas přidán 26. 02. 2024
  • In this project, I take an old project and give it new life and a completely new codebase to let me connect multiple portal of powers to my computer to help make a Toys to Life game.
    If you know about the HID protocol please help me figure out the last problem in the video.
    Check it out on GitHub! - github.com/TheDevAtlas/Vortex...
    Resources
    - marijnkneppers.dev/
    - github.com/mandar1jn/
  • Hry

Komentáře • 55

  • @VeeFerns
    @VeeFerns Před 3 měsíci +21

    you're saying I could make a Skylanders vrchat avatar

    • @thedevatlas
      @thedevatlas  Před 3 měsíci +4

      That sounds both crazy and awesome and after googling it, technically yes with lots of work

  • @jackpaxton9391
    @jackpaxton9391 Před 3 měsíci +11

    Skylanders was my childhood! Best games ever

  • @sigmachopchop
    @sigmachopchop Před 3 měsíci +8

    Toys for bob would be proud

  • @Tylerdakoh
    @Tylerdakoh Před 3 měsíci +8

    This project has been one hell of a journey mate! I know how much time you've spent on it and So proud to see how far its coming!! SKYLANDERS 2 ELECTRIC BOOGALOO!

  • @asimplethievingbat5978
    @asimplethievingbat5978 Před 9 dny +2

    Huh... Why is this tempting me to make something using this program, I sense strategy rpg potential

  • @spyrosadventure
    @spyrosadventure Před 3 měsíci +8

    The superchargers portal doesnt change colours as it has no LEDs in it :) the trap team portal, if i remember correctly you should use the J command to set both sides to the colour, or just one side. Hope this helps!

    • @thedevatlas
      @thedevatlas  Před 3 měsíci +2

      Good point! But sadly the J command also did not work :( same with the others like activate and ready

  • @Texthead
    @Texthead Před 3 měsíci +6

    Instead of storing 33 independent bytes for the state type info, you can use the arraySize property for the IntegerControl with the sizeInBits set to 8. You can also use an input state callback receiver to automatically grab the Portal’s response in Unity. I would know because I’ve been developing something largely the same as this before you started, and mine largely seems to have more features as or right now, but I don’t have the time to work on it much. Currently though it works as a fully accurate figure identifier, using an algorithm to find a match instead of matching the Variant ID directly as that’s not what the games did.
    I also suggest mapping each Portal to have a child class to store relevant variables for independent data for each Portal
    Also, I don’t think Unity allows you to natively use the endpoint used for music, so you’ll need to use a dll to my knowledge to use music like I have with the Traptanium Portal.

    • @thedevatlas
      @thedevatlas  Před 3 měsíci

      Yes and no. Grabbing the input state doesn't return the bytes all of the time and sometimes clears the data back to all zeros. But my goal is to not use the dll so I can use the portal not just in Windows, but in Mac Linux and my Wii u stuff that I have been using lately

    • @Texthead
      @Texthead Před 3 měsíci +2

      @@thedevatlas You’ve had problems with the state callback? It seems to work effectively and fine for me and returns all the expected bytes. However, implementing the IInputStateCallbackReciever does seem to stop the controls from working, so I’m trying to dabble which is better

    • @thedevatlas
      @thedevatlas  Před 3 měsíci

      @Texthead Yes, mainly I think my USB stuffs are just not normal outside of unity but I want to fully flesh it out using the input system because it gives me built in ways to handle multiple portals with hotswapping portals. and I should just use the state call back with a check for the problem I was having instead. I'll test on another computer and see if it's just my computer having issues

    • @thedevatlas
      @thedevatlas  Před 3 měsíci

      I am also really interested in how you are doing it are you using the input system and the dll at the same time? Or just the dll?

    • @Texthead
      @Texthead Před 3 měsíci +2

      @@thedevatlas I couldn’t get ExecuteCommand working on my device for some reason (I’m going to rewrite it and see), but I’ve been creating a child class that envelops information about each Portal plugged in such as its ID when the Reset command is sent so the program can interpret each Portal independently. I am using the InputSystem for Portal reading and snooping when they’re plugged in and taken out. As ExecuteCommand wasn’t working, I was using a fallback with the kernel, and for audio I’m still using HidApi. It correctly communicates with the endpoint on each Portal, and you’re able to use a Unity audioclip and send the samples over

  • @Sophia_P999
    @Sophia_P999 Před 2 měsíci +3

    This is unbelievable! I had to subscribe! I’ve never seen anyone do something like this before for Skylanders! I didn’t even think it was possible.

  • @markryannugent4744
    @markryannugent4744 Před 3 měsíci +4

    The man the myth the legend is back!

  • @ExplodingImplosion
    @ExplodingImplosion Před 3 měsíci +1

    Aye thanks SO MUCH for doing this! Love to see people making strides for communities of people to make other cool stuff.

  • @silveramyknux241
    @silveramyknux241 Před 9 dny +1

    Maybe because that the Trap Team Portal and Superchargers portal has trap slots?

  • @dogedev12
    @dogedev12 Před 3 měsíci +2

    10:30 Projector facing down onto folding table with tablecloth.

  • @70aon
    @70aon Před 3 měsíci +1

    Another day another banger

  • @jeffthegod_
    @jeffthegod_ Před 3 měsíci +2

    this method (almost) works with Disney Infinity portals too

  • @machincort
    @machincort Před 2 měsíci +2

    try to make the same code for the skylanders trap team portal since it is the one with the most compatibility, maybe it is the trap thing that mess the whole thing, have you a skylanders giants portal to test my hypotesys?

  • @machincort
    @machincort Před 2 měsíci +1

    for the superchargers portal it don't have light sooooo

  • @TechHouseVids
    @TechHouseVids Před 3 měsíci +1

    I literaly am looking for this for this video for years. I want to make a remake of disney infinity and lego dimensions. Funny that the guy is from the netherlands. Me too!

  • @ExplodingImplosion
    @ExplodingImplosion Před 3 měsíci +2

    idk anything abt anything in this vid but I have a random hypothesis that the different portals might have different methods to control them? Like they updated one side of their protocol specifically, perhaps? No idea if that’s true, though

    • @thedevatlas
      @thedevatlas  Před 3 měsíci +1

      Oooooo, I'll add to the list

    • @marijnkneppers2340
      @marijnkneppers2340 Před 3 měsíci +3

      Hi. He whose name cannot be pronounced here:
      although I get your theory, the protocol on newer portals is backwards compatible with older games.
      Also, we just diagnosed the issue and it's something else

  • @SicoSiber
    @SicoSiber Před 2 měsíci +1

    yo dis pretty cool

  • @Zomboy4313
    @Zomboy4313 Před 3 měsíci +2

    Isn’t the thing at the end just because maybe the portal are Xbox ones, which don’t work on pc?

    • @thedevatlas
      @thedevatlas  Před 3 měsíci +1

      Good point! but these ones were for the Wii, I do own Xbox portals and they are marked on the bottom from Activision saying they are xbox

  • @csdgay
    @csdgay Před 2 měsíci +1

    is there any reason someone wouldn't be able to make Amiibo-landers with this? they both use the same RFID chips as far as i know

    • @thedevatlas
      @thedevatlas  Před 2 měsíci +2

      You are right, it should be possible. Just need to keep track of the differences in the chips and it should work.

  • @SillyMachina
    @SillyMachina Před 2 měsíci +1

    it would've been so cool if someone made a skylanders fighting game that's 1v1v1v1v1v1v1v1

  • @tman4899
    @tman4899 Před 3 měsíci +3

    This is very epic! Is it possible to get this to work with unreal engine?

    • @thedevatlas
      @thedevatlas  Před 3 měsíci +2

      I'm sure it is possible but it would be just as hard :)

  • @PugHutStudiosYT
    @PugHutStudiosYT Před 3 měsíci +1

    Now, how can i use my own custom NFC portal.

  • @Kalfuyama
    @Kalfuyama Před 3 měsíci +2

    wow

  • @kiwifrogg
    @kiwifrogg Před 2 měsíci +1

    Most USB ports are 500ma, the 5 devices are getting 100ma each, that is probably not enough. You would need a USB splitter with an external 5v supply.

    • @thedevatlas
      @thedevatlas  Před 2 měsíci +1

      Good point, didn't know that limitation on the USB ports. But sadly it isnt the issue we are facing

    • @user-in3br2qs8x
      @user-in3br2qs8x Před 2 měsíci +1

      @@thedevatlas Your issue is: Running out of bandwidth. You couple it via USB right? Well, modern PCs cannot cope with this. Modern PCs can only handle 3 devices max now. Such as Mouse & Keyboard + 1 other device (Such as a printer = printer-issues, or a camera or something else). After that you will begin to run out of ressources.
      OLD PCs were made to handle 4-5 USB-devices at once as they had much higher bandwidth and lower latency. Modern PCs cannot do this any longer. Especially not in realtime.
      Also note: USB on a WiiU has NO (0.00001 ms) latency. It acts in realtime and i can be detected in realtime.
      A modern PC`s USB 2.0 has like ~500 ms latency. And USB 3.0 has even ~800-1000 ms of latency.
      A WiiU´s USB is coupled with no latency and this is why it can be transformed into a "glassfiber"-connection (There is a music-program for WiiU which allows you to put in a USB-to-glassfiber-connection to connect any device in realtime to WiiU). Somehing like "Karaoke-U" or so uses this.

  • @Player-mr2en
    @Player-mr2en Před 3 měsíci +5

    w

  • @Oofinityy
    @Oofinityy Před 2 měsíci +1

    is the skylanders reverse engineering server still up?

  • @CrazyMan43Gaming
    @CrazyMan43Gaming Před 2 měsíci +2

    This sounds amazing!!! I know this is still a work in progress so no pressure on that but I tried installing your project on my machine using my Swap Force PS3 portal and it doesnt seem to be able to send commands. For example, the portal shows in the game scene but changing the color doesnt affect and only prints -1 from the executecommand and S from the most recent portal status. I can see the bytes it is feeding me through the unity input analysis tab so I I think the portal connection works but the writing/executing doesnt work. While using this tab, I tried using SkylanderGUI and it printed the right status in my unity console. Its as if the unity commands to the portal (Ex : portaldevice.executecommand(ref command) do not work it returns me -1. I tried changing HID to HIDO and I have no success. If anyone has found a fix for this please this would help alot thanks in advance!! :)

    • @wryser
      @wryser Před měsícem

      You found a fix to this yet? I have the same problem.

  • @user-in3br2qs8x
    @user-in3br2qs8x Před 2 měsíci +1

    Your problem is simply you want to handle 5 Portals on PC-hardware. But modern PC-hardware cannot handle 5 Input-devices any longer. For this reason you also cannot plug in 4 controllers on a modern PC and expect it to work flawlessly. And you also cannot use 4 wireless conrollers on a PC!
    And for this reason these Skylanderes-games also were never made for any modern machines! But only for Xbox 360 and PS3 and Wii/WiiU!
    A WiiU can do all that what you want as it has ~10 independent cpu-buses with a priority rating (WiiU´s OS is posix-compatible => being used to process input-priority), all being controlled by the middle cpu-core ("Mastercore", also called "MCP" by some people, which for this reason has a 2 Mbyte cache which for this old and low-transistor type of processor is a crazy high amount of cache). 10 cpu-buses means = 10 input-devices. Each bus is being used to control a different controller.
    Which equals to 4 WiiU Pro Controllers, 2 WiiU Gamepads (function was never used, but it works, note in this case you cannot use the touchscreen of the gamepad or the microphone or the Camera or the Gyrosensor!) and 4 Wiimotes. See? there are WiiU-games which can be played with 9 (yes, NINE!) players for this reason. And many games do support 5 players (1 gamepad + 4 WiiU Pro Conroller or 4 Wiimotes).
    A PC`s processor has only a single cpu-bus. A PC`s bandwith is very limited unlike that from WiiU which basically has nearly no limit (and also no latency).
    I can further cut this down:
    A PC`s processor has a single bus. And a low bandwidh (typically bus-bandwidh is somehing like 1-2 Gbytes/second on modern AMD/Intel-processors today).
    The WiiU however uses a 10-bus interface. Each is assigned a number, so that the processor knows wha is important and has to be handled first and what is low-priority and can be handled at last place. WiiU is not using a single ringbus-interface like used in modern processors.
    See? The WiiU´s bandwidth is ~20 Gbytes/second.Around 10x higher than any other machine. FOr this reason you can shout into the WiiU gamepad`s microphone and in realtime it will make the character jump in a UNITY-driven game. There will be no latency when you shout into the microphone, exacly less than 1 ms later your character will jump.
    Why? Because the microphone is getting assigned an own bus-interface by Unity.
    Each sensor you use on WiiU costs you one slot out of 10. You use the touchscreen => 1 slot of cpu-buses is occupied. You want to use the microphone? Another slot is occupied!
    So when you want to use all 4 features the gamepad has, such as Camera, microphone, touchscreen and the Gyro, this equals 4 seperate controllers! Being controlled by 4 cpu-busses of the cpu.No, as far as i know it doesn´t cost you one slot if you just want to use the Infrared-port (For communication with 3DS etc) or if you use the NFC-sensor.
    Since these things are controlled by own small chips which don´t occupy realtime-bandwidth.
    But as you might know: On PC you have to EMULATE the processor of the gamepad which controls WiiU´s NFC. Thus you will run out of input-bandwidth quickly. Your single cpu-bus will allways limit how fast you can talk to your computer.
    For these reasons AMD/Intel-chips are outdated.
    A WiiU´s processor has a much faster input- and output-bandwidth.
    And for this reason WiIU has 2 OSes running as well: One is a standard-OS and one is running as an "RTOS" (realtime-Operating-system capable of handling Priority-tasks and splitting tasks and doing other crazy realtime-stuff).
    The RTOS is also called the "Master Contral Program" of WiiU (which just is long for MCP).
    The MCP logs everything you do in realtime on this machine and you can even print out this log at any time!
    Btw: Did you know that WiiU even has an integrated, hidden software-based Raytracing-engine? This is also controlled by the MCP. In Unity you can enable this. This is called "Environmental Realtime-shading" or "Godrays".
    If you set the Godrays in your Unity-project to "Unlimited" you enable WiiU´s RT-software calculations. If you set it to "unlimited" this means the cpu will render, until it will run out of ressources. Even risking your game/Application will begin to stutter.
    You can input a custom number of RTs being rendered as well. Or you can use a minimum-setting.

  • @archaimbaudryal3026
    @archaimbaudryal3026 Před měsícem +1

    'Promo sm'

  • @pdbsstudios7137
    @pdbsstudios7137 Před 2 měsíci +1

    spyro frog
    skylander sucked