User Tools

Site Tools


monogame:monogame

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
monogame:monogame [2023/12/17 18:14] – [History of Microsoft XNA] mrvalentinemonogame:monogame [2024/10/10 13:58] (current) – [Tool Engine] mrvalentine
Line 7: Line 7:
 ===== History of MonoGame ===== ===== History of MonoGame =====
  
-You can read about the history of MonoGame here: https://monogame.net/about.html+You can read about the history of MonoGame here: https://monogame.net/about/
  
 ===== History of Microsoft XNA ===== ===== History of Microsoft XNA =====
  
-You can read about the history of Microsoft XNA here: +You can read about the history of Microsoft XNA here: https://en.wikipedia.org/wiki/Microsoft_XNA
 ===== The Pillar of Linkages ===== ===== The Pillar of Linkages =====
  
Line 41: Line 41:
  
 You can read more about the GamePad [[monogame:gamepads:gamepads|here]]. You can read more about the GamePad [[monogame:gamepads:gamepads|here]].
 +
 +===== Where Does MonoGame Sit =====
 +
 +==== Tool Engine ====
 +
 +**Unity**: A widely-used game engine that supports C# scripting. It offers a comprehensive suite of tools for game development, including a visual editor, asset management, and a robust physics engine. Unity is ideal for both 2D and 3D game development.
 +
 +**Unreal Engine**: Primarily uses C++, but it also supports C# through plugins like UnrealCLR. Unreal Engine is known for its high-quality graphics and is often used for AAA game development.
 +
 +**Godot**: An open-source game engine that supports C# scripting. It provides a flexible scene system, a visual editor, and a variety of tools for 2D and 3D game development.
 +
 +**FlatRedBall**: A game development platform built in C# that is perfect for 2D game development. It includes tools like Glue, which generates boilerplate code, and supports integration with popular formats like Tiled and Spriter.
 +==== Game Engine ====
 +
 +**Unity Engine**: The core of Unity, which runs the game and provides essential services like rendering, physics, and input handling. Unity's engine includes internal tools for debugging, profiling, and performance optimization.
 +
 +**Unreal Engine**: The core of Unreal, which handles rendering, physics, and other low-level operations. It includes powerful internal tools for animation, AI, and networked multiplayer.
 +
 +**FlatRedBall Engine**: The core of FlatRedBall, which focuses on 2D game development. It provides efficiency, stability, and features refined over two decades.
 +==== Game Framework ====
 +
 +**Unity Framework**: The underlying structure that supports game development in Unity. It includes components like the GameObject system, MonoBehaviour scripts, and the Unity API, which provide the building blocks for creating games.
 +
 +**Unreal Framework**: The underlying structure in Unreal Engine, including systems for actors, components, and blueprints. It provides the foundational elements needed to build complex game logic.
 +
 +==== Framework ====
 +
 +**MonoGame**: A framework for building cross-platform games using C#. It provides a simple API for handling graphics, input, and audio, making it a popular choice for 2D game development.
 +
 +**Raylib**: A simple and easy-to-use library for game development, primarily using C. While it doesn't natively support C#, it can be used with C# through bindings like Raylib-cs⁵.
 +
 +**FNA**: A reimplementation of the Microsoft XNA Game Studio 4.0 Refresh libraries. It supports C# and is designed to be a high-performance, cross-platform framework for 2D game development.
 +
 +**Stride (formerly Xenko)**: An open-source C# game engine for realistic rendering and VR. It provides a full suite of tools for game development, including a visual editor and asset management.
 +
 +==== Raw Calls ====
 +
 +**C++**: When performance is critical, developers might use C++ for low-level operations. This involves writing code that directly interacts with hardware or the operating system, bypassing higher-level abstractions.
 +
 +==== Bare Metal Coding ====
 +
 +**Machine Code/Assembly**: The lowest level of programming, where developers write instructions directly for the CPU. This is rarely used in modern game development due to its complexity and the availability of higher-level tools.
 +
 +==== Effort Required ====
 +
 +- **Tool Engine**: High effort for initial setup and learning the tool, but it significantly speeds up development once mastered.
 +
 +- **Game Engine**: Moderate effort to understand the engine's architecture and optimize performance.
 +
 +- **Game Framework**: Moderate effort to implement game logic and mechanics using the provided framework.
 +
 +- **Framework**: Moderate to high effort, depending on the complexity of the game and the framework's capabilities.
 +
 +- **Raw Calls**: High effort due to the need for detailed knowledge of the hardware and low-level programming.
 +
 +- **Bare Metal Coding**: Very high effort, requiring expertise in assembly language and hardware architecture.
 +
 +By focusing on C# and using C++ only where necessary, you can leverage the strengths of both languages to create efficient and high-quality games. Yes, you can use C++ in C#.
monogame/monogame.1702836887.txt.gz · Last modified: 2023/12/17 18:14 by mrvalentine