RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    How to begin new "game" development?

    Scheduled Pinned Locked Moved Ideas and Development
    robotgame creationnative retropie
    6 Posts 3 Posters 896 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      slomobile
      last edited by

      It is a question.  How does one begin new "game" development with Retropie as the target system?

      I'm hoping to hear answers detailing specific tools and ordered steps to set up an environment for new "game" development.

      I'm assuming the process involves selecting some "generic" emulator for Emulation Station at some point.  "Generic" is in quotes because I don't know what else to call it.  Substitute whatever emulator I should use in place of the word "generic"

      "Game" is in quotes because what I really want is a graphical program with all the same IO and simulation resources as a game.  It might be an actual game, or a robot controller program which can swap simulated environments for a live camera feed, but function much like a game.

      I want a Raspberry Pi into which I can plug any combination of Retropie supported controllers.  I want both realtime programmatic access to manipulate the live gaming controller inputs and a configuration profile to condition those inputs, turning them into keystrokes, analog with custom scales, D pad, null, etc... before passing them to 
      EITHER a game engine running on the Pi
      OR to a Rpi USB device port (not host port) 
      so that the Pi is emulating one or more USB HIDs (Human Interface Devices).

      In this way, the Retropie can serve as a hardware game controller to a game engine running on a more powerful PC, or to a real hardware console.

      Example:

      Physical controllers: Logitech MOMO Forcefeedback wheel w/pedals (PC) and
      Nintendo Switch Pro Controller (Wired USB-C) and                                      Rpi pico or Arduino supplying any additional or custom input channels.

      Emulated controllers: Logitech - G923 Racing Wheel and Pedals for PS5, PS4, PC and
      Keyboard, Mouse, Serial.

      Pico or Arduino can supply a hardware switch for selecting whether the Keyboard, Mouse, and Serial devices are enumerated. 
      Or the switch can be virtual based on whether the device is
      plugged into a genuine Playstation console(disable enumeration of additional devices) or
      PC(enable enumeration).

      Pico or Arduino can also supply the USB device port to be enumerated in case the Retropie device does not have a native device port available.

      In real life the example configuration is plugged into my power wheelchair which can accept a Playstation controller for driving. 
      I also build robots as a hobby and would use this as a means of blending autonomous and teleoperated control.

      I did not think those specific use cases would be of as much general interest as "game" development.  So I tried to fit my needs within that framework.  Simulation is a real need I have which is handled nicely by game engines.

      I am only an amateur developer with very little commercial experience, mostly around Arduino.

      Getting Started with ES Development resonated with me and was helpful.  But, I don't even know if ES is where I need to start. 
      A higher level overview describing the domains of each Retropie component would be instructional.

      Is what I describe possible within the current framework?

      My first experience with Retropie was frustrating and ended by basic UI problems like Why the hell doesn't RetroPie come with an On-Screen Keyboard?
      The official response fails to acknowledge that every single workaround described REQUIRES A KEYBOARD on another computer.   If I don't have a keyboard handy, why is it OK to assume I have a whole other computer with keyboard? I'm back to try again.

      In the interest of avoiding that nonsense, lets assume I've already heard "If you want it, build it yourself",  I've already spent a week reading the documentation(I have), I really do want the thing I asked for, not something else that you find easy, I am willing to put in the effort, I am still confused and asking for guidance. Please.

      Pi Model or other hardware: pico, zero W, 1B+, 3B, 400
      Power Supply used: Various, measured 5.1v or above under 3A load.
      RetroPie Version Used: 4.6
      Built From: Pre made SD Image on RetroPie website
      USB Devices connected: Teensy 4.1 or Pico with 4 switch gated joystick, arcade buttons, quadrature encoders, linear pots, force feedback motor controllers, I2C status screen 128x64
      Controller used: Nintendo Switch Pro Controller, Google Nexus Player Gamepad, Logitech MOMO, Logitech F710, Saitek ST290Pro
      Error messages received:  None yet
      Verbose log:  I'm so verbose I bet you wish you were reading log files instead.
      Guide used: Lost track of which ones, but followed several different guides
      File: Need to know which files to change.
      Emulator: Need to know which emulator to use.
      Attachment of config files: It would be helpful if the sticky post containing this "Read before posting" included the expected path and name format for config files.
      How to replicate the problem:  Want all the stuff above, but not know how to get it.

      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by

        RetroPie is not a 'gaming' framework, it's just an installation/configuration utility for emulators, that sits on top of a Linux distribution (RasPI OS for RPI, Ubuntu/Debian for other systems).

        There's no 'RetroPie game development' SDK. EmulationStation is just a front-end used to organize your games' library and launch emulators. The games are all played by the various emulators installed by RetroPie - RetroArch is most prominent one, but there are others too. Check the Emulators section in the docs.

        If you wish to start game development, start with any game engine that's supported by Linux and the Raspberry PI. There are a few such engines supported out of the box in RetroPie, like Solarus, Pico8, AGS, but you can use any engine that's available on the Pi - PyGame, Godot.
        You can also check out Wireframe, a dedicated Raspberry Pi video gaming publication.

        S 1 Reply Last reply Reply Quote 1
        • S
          slomobile @mitu
          last edited by

          @mitu said in How to begin new "game" development?:

          RetroPie is not a 'gaming' framework

          It is certainly not a major intent of the project, but the RetroPie project has gathered many of the elements needed to make what I want possible. I'm looking through the many different emulators and game engines, but without experience I'm likely to hit many false starts. Looking for any related projects to start from.

          Is anyone aware of a project using elements of Retropie to "pretend" that a group of gaming input devices is a different group of gaming input devices? Emulating not the game, but the input hardware.

          FloobF mituM 2 Replies Last reply Reply Quote 0
          • FloobF
            Floob @slomobile
            last edited by

            @slomobile
            Bliss box products are hardware controller adapters if thats what you mean.
            https://bliss-box.net/

            Please read the Docs before asking a new question.
            RetroPie Help Guides: https://goo.gl/3gcNsT

            1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator @slomobile
              last edited by mitu

              @slomobile said in How to begin new "game" development?:

              Is anyone aware of a project using elements of Retropie to "pretend" that a group of gaming input devices is a different group of gaming input devices? Emulating not the game, but the input hardware.

              What elements of RetroPie are you referring to ? We don't include any input translation layer (like RetroArch's RetroPad abstraction). We have some 3rd party GPIO drivers that emulate a joystick (see here), but other than that each program is responsible for it's own input handling.

              If you're looking for a software solution akin to the Bliss-Box that @Floob mentioned, you may want something like MoltenGamepad or maybe something based on Linux's UInput module (python-evdev can create virtual devices and generate events programatically, see an example in the Xbox360 Python controller).

              S 1 Reply Last reply Reply Quote 0
              • S
                slomobile @mitu
                last edited by

                @mitu and @Floob thank you! That gets me lots closer, maybe all the way. Probably a combination of bliss-box hardware and python-evdev as I learn it for different use cases will be what I use.
                Solved.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.