Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.

Difference between revisions of "Engine:MonoGame"

From PCGamingWiki, the wiki about fixing PC games
(MonoGame-SDL2 information, since MG-SDL2 is picking up traction)
 
(15 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{infobox non-game
+
{{Infobox engine
|cover         = MonogameLogo256x256.png
+
|cover=MonoGame logo.svg
|developer     = [https://github.com/mono/MonoGame/ MonoGame Team]
+
|developer=MonoGame Team
 +
|website=http://www.monogame.net/
 +
|first release=September 2, 2009
 +
|predecessor=XNA
 +
|wikipedia=MonoGame
 
}}
 
}}
 
'''MonoGame''' is an open source implementation of the Microsoft XNA Framework, specifically the 4.0 Refresh revision.
 
 
The goal of the project is to enable XNA projects to build and run on platforms beyond Microsoft Windows and the Xbox 360. While capable of running on platforms such as Mac OS X and Linux, the MonoGame team is currently focusing efforts on mobile platforms such as Windows 8 Metro, iOS and Android. [[User:Flibitijibibo|flibitijibibo]] is developing a desktop platform backend for MonoGame known as [https://github.com/flibitijibibo/MonoGame MonoGame-SDL2].
 
 
=Joysticks=
 
'''''WARNING:''''' The following section covers material not officially in upstream MonoGame. This relates to [[User:Flibitijibibo|flibitijibibo's]] MonoGame-SDL2 branch, found here: https://github.com/flibitijibibo/MonoGame
 
 
==About MonoGame joystick input==
 
XNA, being a Microsoft technology, centered its controller input around the Xbox 360 controller. Because of this, the XNA API is not cleanly compatible with custom controllers, including the Xbox 360 controller when not being read by XInput. However, a config format was developed to allow binding of joystick input values to a virtual 360 controller, which then gets read by XNA games.
 
 
==Automatic Configuration: SDL_GameController==
 
Since MonoGame-SDL2 uses SDL2 as its base library, we also get the benefit of SDL_GameController, a new subsystem added by Alfred Reynolds at Valve. This takes configurations for known controllers and automatically configures them for the virtual 360 controller, so if your controller is recognized, manual configuration is not necessary. If you run a MonoGame-SDL2 title through Steam, your controller will automatically be configured using the Big Picture Mode configuration.
 
 
==Manual Configuration: MonoGameJoystick.cfg==
 
 
===Config file location===
 
{{Game Location Table|
 
{{Game Location Table/row|Mac|~/Library/Application Support/MonoGame/MonoGameJoystick.cfg}}
 
{{Game Location Table/row|Linux|~/.config/MonoGame/MonoGameJoystick.cfg}}
 
}}
 
 
===How to configure===
 
Consider this single value, from MonoGameJoystick.cfg:
 
 
<BUTTON_START>
 
  <INPUT_TYPE>Button</INPUT_TYPE>
 
  <INPUT_ID>9</INPUT_ID>
 
  <INPUT_INVERT>false</INPUT_INVERT>
 
</BUTTON_START>
 
 
This structure represents the 360 controller value. In this case, we're configuring the start button.
 
 
'''INPUT_TYPE''' refers to the type of controller input we will be reading. It can be the following values:
 
* None
 
* Button
 
* Axis
 
* PovUp
 
* PovDown
 
* PovLeft
 
* PovRight
 
 
''NOTE THAT THESE ARE CASE SENSITIVE!''
 
 
If you want to ignore a button, just use None. Buttons and axes are, of course, Button and Axis, respectively. For DPad input, we read from each direction individually; the PovUp, PovDown, PovLeft and PovRight values.
 
 
'''INPUT_ID''' refers to the value of the controller input as identified by SDL. This is best identified with the ''[http://www.flibitijibibo.com/files/MonoGameJoystickDetector.c MonoGame Joystick Detector Thing]''.
 
 
'''INPUT_INVERT''' is available in the event that you need to flip the values given by the joystick. For example, if your left control stick's Y axis is flipped, just set INPUT_INVERT to "true".
 
 
===Configurations===
 
=====[[Xbox 360 Controller]] (wired)=====
 
This config should be used with the ''xpad'' driver.
 
 
<?xml version="1.0" encoding="utf-8"?>
 
<MonoGameJoystickConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
  <BUTTON_START>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>7</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_START>
 
  <BUTTON_BACK>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>6</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_BACK>
 
  <BUTTON_A>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>0</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_A>
 
  <BUTTON_B>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>1</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_B>
 
  <BUTTON_X>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>2</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_X>
 
  <BUTTON_Y>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>3</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_Y>
 
  <SHOULDER_LB>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>4</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </SHOULDER_LB>
 
  <SHOULDER_RB>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>5</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </SHOULDER_RB>
 
  <TRIGGER_RT>
 
    <INPUT_TYPE>Axis</INPUT_TYPE>
 
    <INPUT_ID>5</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </TRIGGER_RT>
 
  <TRIGGER_LT>
 
    <INPUT_TYPE>Axis</INPUT_TYPE>
 
    <INPUT_ID>2</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </TRIGGER_LT>
 
  <BUTTON_LSTICK>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>9</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_LSTICK>
 
  <BUTTON_RSTICK>
 
    <INPUT_TYPE>Button</INPUT_TYPE>
 
    <INPUT_ID>10</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </BUTTON_RSTICK>
 
  <DPAD_UP>
 
    <INPUT_TYPE>PovUp</INPUT_TYPE>
 
    <INPUT_ID>0</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </DPAD_UP>
 
  <DPAD_DOWN>
 
    <INPUT_TYPE>PovDown</INPUT_TYPE>
 
    <INPUT_ID>0</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </DPAD_DOWN>
 
  <DPAD_LEFT>
 
    <INPUT_TYPE>PovLeft</INPUT_TYPE>
 
    <INPUT_ID>0</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </DPAD_LEFT>
 
  <DPAD_RIGHT>
 
    <INPUT_TYPE>PovRight</INPUT_TYPE>
 
    <INPUT_ID>0</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </DPAD_RIGHT>
 
  <AXIS_LX>
 
    <INPUT_TYPE>Axis</INPUT_TYPE>
 
    <INPUT_ID>0</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </AXIS_LX>
 
  <AXIS_LY>
 
    <INPUT_TYPE>Axis</INPUT_TYPE>
 
    <INPUT_ID>1</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </AXIS_LY>
 
  <AXIS_RX>
 
    <INPUT_TYPE>Axis</INPUT_TYPE>
 
    <INPUT_ID>3</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </AXIS_RX>
 
  <AXIS_RY>
 
    <INPUT_TYPE>Axis</INPUT_TYPE>
 
    <INPUT_ID>4</INPUT_ID>
 
    <INPUT_INVERT>false</INPUT_INVERT>
 
  </AXIS_RY>
 
</MonoGameJoystickConfig>
 
 
[[Category:Engine]]
 

Latest revision as of 08:46, 9 September 2019

MonoGame
MonoGame logo.svg
Developers
Website
First release date
Predecessor

Game Developer Publisher First release
Barotrauma Undertow Games, FakeFish Daedalic Entertainment March 13, 2023
Battlepaths Key17 Games Digerati Distribution October 28, 2012
Burning Knight Rexcellent Games June 5, 2020
Carrion Phobia Game Studio Devolver Digital July 23, 2020
Chronology Bedtime Digital Games May 12, 2014
Cut the Rope ZeptoLab July 25, 2012
Dad Quest Sundae Month Excalibur Publishing August 17, 2018
DLC Quest Going Loud Studios March 18, 2013
Doom & Destiny Heartbit Interactive January 1, 2012
Draw a Stickman: EPIC Hitcents December 3, 2013
Dwarfs!? Power of 2 Tripwire Interactive May 4, 2011
Fabular: Prologue Spiritus Games Prismatika July 8, 2022
Hades Supergiant Games September 17, 2020
Hypership Out of Control Fun Infused Games September 29, 2015
Jets'n'Guns 2 Rake in Grass July 24, 2020
Link's Awakening DX HD linksawakeningdxhd December 13, 2023
NeuroVoider Flying Oak Games Plug In Digital August 31, 2016
Rogue Heroes: Ruins of Tasos Heliocentric Studios Team17 Digital February 23, 2021
ScourgeBringer Flying Oak Games, E-Studio Dear Villagers October 21, 2020
Signs of Life Sweet Dog Studios
Solar 2 Murudai June 17, 2011
Songs for a Hero Dumativa Game Studio, Castro Brothers Dumativa Game Studio March 24, 2016
Space Mega Force Man Paul Hagerty, Rob Kitson Not Your Jax February 14, 2020
Star Fetchers Svavelstickan January 17, 2020
Stardew Valley ConcernedApe February 26, 2016
Super Daryl Deluxe Dan & Gary Games April 10, 2018
Super Puzzle Platformer Deluxe Andrew Morrish Adult Swim Games May 24, 2013
The Scorchfarer Michiyuki Project April 15, 2022
The Swapper Facepalm Games May 30, 2013
Tooth and Tail Pocketwatch Games September 12, 2017
Transistor Supergiant Games May 20, 2014