fix(guide): simplify directory structure

This commit is contained in:
Mrugesh Mohapatra
2018-10-16 21:26:13 +05:30
parent f989c28c52
commit da0df12ab7
35752 changed files with 0 additions and 317652 deletions

View File

@@ -0,0 +1,10 @@
---
title: Arcade
---
## Arcade
### Game Development with Arcade
Arcade is a python library which eases the task of creating 2-D games avoiding the complexity of other libraries like pygame. It is built on top of Pyglet and openGL.
[Docs](arcade.academy)

View File

@@ -0,0 +1,44 @@
---
title: GameMaker Studio
---
## GameMaker Studio
GameMaker Studio, previously known as GameMaker, is a cross-platform game development software primarily focused on creating 2d games
using drag and drop action sequences or a scripting language known as Game Maker Language (GML).
### Overview:
GameMaker allows it's users to create and prototype games quickly without the need to learn a programming language. GameMaker games usually
consists of at least 3 things: sprites (images & animations), objects (logic & interactivity) and rooms (screens & levels).
Each game needs at least one room which is used for both menus and levels, and the transitioning between each.
GameMaker Studio 2 released on 2 November 2016.
### Supported Platforms:
* Microsoft Windows
* macOS
* Ubuntu
* HTML5
* Android
* iOS
* Amazon Fire TV
* Android TV
* Microsoft UWP
* PlayStation 4
* PlayStation Vita
* Nintendo Switch (September 2018)
PlayStation Portable and Raspberry Pi support was demonstrated but not released.
### Popular games made with GameMaker Studio:
* Spelunky
* Hotline Miami
* Hyper Light Drifter
* Crashlands
* VA-11 Hall-A
* Undertale
* Nuclear Throne
#### More Information:
* [Wikipedia] https://en.wikipedia.org/wiki/GameMaker_Studio<br>
* [YoYo Games (publisher)] https://www.yoyogames.com/gamemaker<br>
* [GameMaker: Studio | Documentation] https://docs.yoyogames.com/<br>

View File

@@ -0,0 +1,13 @@
---
title: Godot Engine
---
## Godot Engine
This is a stub. <a href='https://github.com/freecodecamp/guides/tree/master/src/pages/game-development/godot/index.md' target='_blank' rel='nofollow'>Help our community expand it</a>.
<a href='https://github.com/freecodecamp/guides/blob/master/README.md' target='_blank' rel='nofollow'>This quick style guide will help ensure your pull request gets accepted</a>.
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->

View File

@@ -0,0 +1,13 @@
---
title: Godot Scripting
---
## Godot Scripting
This is a stub. <a href='https://github.com/freecodecamp/guides/tree/master/src/pages/game-development/godot/scripting/index.md' target='_blank' rel='nofollow'>Help our community expand it</a>.
<a href='https://github.com/freecodecamp/guides/blob/master/README.md' target='_blank' rel='nofollow'>This quick style guide will help ensure your pull request gets accepted</a>.
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->

View File

@@ -0,0 +1,66 @@
---
title: Game Development
---
## Game Development
Game Development is the art of creating games and describes the design, development and release of a game. It may involve concept generation, design, build, test and release. While you create a game, it is important to think about the game mechanics, rewards, player engagement and level design.
A game developer could be a programmer, a sound designer, an artist, a designer or many other roles available in the industry.
Game Development can be undertaken by a large Game Development Studio or by a single individual. It can be as small or large as you like. As long as it lets the player interact with content and is able to manipulate the game's elements, you can call it a 'game'.
To get involved in the Game Development process, you do not need to write code. Artists may create and design assets, while a Developer might focus on programming a health bar. A Tester may get involved to see that the game works as expected.
![What first games looked like](https://i.ytimg.com/vi/ePc12V6F0ws/maxresdefault.jpg "What first games looked like")
To resolve problems that game frameworks had, tools like libGDX and OpenGL were developed. They helped game development to be a lot faster and easier, providing lots of pre-made functions and features. However, it was still hard to enter the industry or understand a framework for someone coming from a non-programmer background, a common case in the game development scene.
![3D map editor made with OpenGL](https://i.ytimg.com/vi/E0laTeycpB4/maxresdefault.jpg "3D map editor made with OpenGL")
That was when game engines like Construct, Game Maker, Unity and Unreal were developed. Generally, an engine has everything that a framework had, but with a more friendly approach by using a graphic user interface (GUI) and helping with the graphic development of the game.
In some cases, like Game Maker and Construct, the amount of pre-made functions are so big that people with no previous programming skills could build a game from scratch, really expanding the scene and making game development accessible for almost anyone.
### Game Engines
![Unity development screen](http://paulbourke.net/stereographics/Unitystereo/textureplanes.jpg "Unity development screen")
Many developers choose to develop a game using a Game Development Engine.
Game Engines can make the process of creating a game much easier and enable developers to reuse lots of functionality. It also takes care of rendering for 2D and 3D Graphics, physics and collision detection, sound, scripting and much more.
Some Game Engines have a very steep learning curve such as CryEngine or Unreal Engine. Yet, other tools are very accessible to beginners and some do not even need you to be able to write code to create your game, e.g. Construct 2.
The Unity Game Engine ranges somewhere in the middle, while it is beginner friendly, some popular and commercial games have been built using Unity (e.g. Overcooked, Superhot).
The BuildBox game engine is basically for developing hypercasual games.
### Typical Game Engines
- CryEngine
- Unreal Engine
- Unity Game Engine
- Game Maker
- Construct 2 or 3
- Twine
- Source
- Frostbite
- Buildbox
- Godot Engine
### More Information
* [Awesome-List of GameDev resources](https://github.com/Kavex/GameDev-Resources)
* [Game Programming Books](http://www.fromdev.com/2013/07/game-development-books.html)
* [libGDX Framework](https://libgdx.badlogicgames.com/)
* [OpenGL Framework](https://www.opengl.org/)
* [Construct Game Engine](https://www.scirra.com/)
* [Game Maker Engine](https://www.yoyogames.com/gamemaker)
* [Unity3D Engine](https://unity3d.com/pt)
* [Unreal Engine](https://www.unrealengine.com/en-US/what-is-unreal-engine-4)
* [BuildBox](https://www.buildbox.com/)
* [Godot Engine](https://godotengine.org/)

View File

@@ -0,0 +1,16 @@
---
title: libGDX
---
## Game Development with libGDX
libGDX is a free and open-source game-development application framework written in the Java programming language with some C and C++ components for performance dependent code.
### Overview
LibGDX supports both 2d and 3d game development, and is written in Java. In addition to Java, other JVM languages, such as Kotlin or Scala can be used to program libGDX games. At it's core, libGDX uses LWJGL 3 to handle basic game functions such as graphics, input, and audio. LibGDX offers a large API to simplify game programming. LibGDX has an informative [wiki](https://github.com/libgdx/libgdx/wiki) on it's Github page, and there are many tutorials on the internet.
#### Resources:
https://github.com/libgdx/libgdx/wiki
https://libgdx.badlogicgames.com/
https://www.reddit.com/r/libgdx/

View File

@@ -0,0 +1,62 @@
---
title: What is Minecraft Forge?
---
If you are reading this article you probably already know Minecraft. We use Forge to manipulate the game Minecraft to make it do what we want. This could be anything, ranging from new cool creatures to entire new systems in the game.
Forge is a modding api. Minecraft Forge (or Forge for short) is a layer between our code and Minecraft itself. We cannot directly ask Minecraft to add items and do special cool things. That's why we need an API (application programming interface) to handle our logic and make Minecraft recognise it.
## Sounds cool! How do I get started?
* You'll need the JDK (Java development kit) which is a set of libraries, tools and the runtime environment to make Java programs and run them.
* A Minecraft account which can be bought from their official website. (https://minecraft.net/en-us/store/)
* An IDE (Eclipe or IntelliJ are recommended for Minecraft development)
After installing/acquire these pieces of software, download your desired Forge version at https://files.minecraftforge.net/ (*TIP:* Hover over the information button and press direct download to avoid an Adfly virus!)
Once you have downloaded this ZIP you'll be able to unzip it. Do so and cd (cmd command) into the directory with all of the Forge files.
Run `gradlew setupDecompWorkspace`
Next up is picking your IDE (integrated development environment). Eclipse? `gradlew eclipse` IntelliJ? Import the build.gradle file in your IntelliJ setup!
## Okay now what? How do I add fancy new items? (Basic mod setup)
Hold your horses. There's much more to it. You'll have to texture an item of course, add code and so much more! In this article we'll only look at some simple sample code which I also use for my own mods. Here it is!
`
@Mod.EventBusSubscriber
@Mod(modid = Version.MOD_ID, name = Version.MOD_NAME, version = Version.VERSION)
public class TheMod {
public static ModMetadata metadata;
public static File baseDir;
public static Configuration config;
@SidedProxy(clientSide="com.ciphry.client.ClientProxy", serverSide="com.ciphry.common.CommonProxy")
public static CommonProxy proxy;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
proxy.preInit(event);
baseDir = new File(event.getModConfigurationDirectory(), MOD_ID);
config = new Configuration(event.getSuggestedConfigurationFile());
if (!baseDir.exists())
baseDir.mkdir();
}
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
proxy.init(event);
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
proxy.postInit(event);
}
}
`
Use this code as you please, make sure you edit for instance the proxy strings and more! This should give you a basic overview of what a basic mod class looks like.

View File

@@ -0,0 +1,26 @@
---
title: OpenGL
---
## Game Development with OpenGL
Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.
Silicon Graphics Inc., (SGI) started developing OpenGL in 1991 and released it in January 1992; applications use it extensively in the fields of computer-aided design (CAD), virtual reality, scientific visualization, information visualization, flight simulation, and video games. Since 2006 OpenGL has been managed by the non-profit technology consortium Khronos Group.
## Implementations
Mesa 3D is an open-source implementation of OpenGL. It can do pure software rendering, and it may also use hardware acceleration on BSD, Linux, and other platforms by taking advantage of the Direct Rendering Infrastructure. As of version 13.0, it implements version 4.5 of the OpenGL standard.
## Prerequisites
No special prerequisite is needed to follow most tutorials. Experience with any programming langage ( C, Java, Lisp, Javascript) is better to fully understand the code, but not needed; it will merely be more complicated to learn two things at the same time.
## Installing OpenGL on Linux
Mesa is the GL library used. Ubuntu 16.04 includes Mesa 11.2 which supports OpenGL 4.1. Just install the `libgl1-mesa-dev` and `mesa-common-dev` packages to install the development files for it.
If you really need 4.5, you will likely need to develop against the propreitary AMD or NVidia drivers, and you will need a card which actually supports 4.5 to run any software you create using that version of the API.
#### More Information:
[OpenGL Wiki](https://en.wikipedia.org/wiki/OpenGL)
[OpenGL Tutorials](http://www.opengl-tutorial.org/)

View File

@@ -0,0 +1,17 @@
---
title: Phaser
---
## Phaser
Phaser is an open source framework for developing HTML5 games for desktop and mobile.
This is a stub. <a href='https://github.com/freecodecamp/guides/tree/master/src/pages/game-development/phaser/index.md' target='_blank' rel='nofollow'>Help our community expand it</a>.
<a href='https://github.com/freecodecamp/guides/blob/master/README.md' target='_blank' rel='nofollow'>This quick style guide will help ensure your pull request gets accepted</a>.
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->
<a href='https://phaser.io/learn' target='_blank' rel='nofollow'>Official Phaser tutorials</a>

View File

@@ -0,0 +1,15 @@
---
title: Pygame
---
## Pygame
### Game Development with Pygame
Pygame is an open source, cross platform python library used for game development, written by Pete Shinners. The Pygame documentation and more information can be found on their website at https://pygame.org.
### Overview
The project started in the year 2000 as a result of the death of PySDL. The Pygame library version 1.0 was
released after six months development in April of 2001.
* [Pygame Official Website](https://www.pygame.org)

View File

@@ -0,0 +1,22 @@
---
title: Terasology
---
An open-source voxel sandbox game!
>The Terasology project was born from a Minecraft-inspired tech demo and is becoming a stable platform for various types of gameplay settings in a voxel world. The creators and maintainers are a diverse mix of software developers, designers, game testers, graphic artists, and musicians. We encourage others to join!
Source: http://terasology.org/
Terasology is an open-source platform for gameplay of any kind in a voxel world. If you read that sentence attentively you can see I did not use the word 'Game'. The reason behind that is the fact that Terasology itself is not a finished game! It's merely a platform for you to modify yourself with your own code or pre-made modules. Do not worry though, there are loads of modules constantly developed by the multidisciplinary team.
### The open-source spirit
Another really cool aspect of this game is fact that MovingBlocks (the organisation behind Terasology) participates in large events such as GCI (Google Code-In), GSOC (Google Summer of Code) and more! This makes the environment especially lively and it really empowers the community spirit. This is not some random product made by a greedy multinational, this is the work of a team. A team with a passion.
### How can I contribute?
You too can contribute! Check out the repository here on GitHub and start hacking into the code! Make sure you format everything properly, use clear code and follow all of the repository-specific conventions! https://github.com/MovingBlocks/Terasology/wiki
Loads of screenshots, content, blogs and more can be viewed on their website over at http://terasology.org/

View File

@@ -0,0 +1,62 @@
---
title: Unity
---
## Game Development with Unity
Unity is a cross-platform game engine developed by Unity Technologies, which is primarily used to develop video games and simulations for computers, consoles and mobile devices.
First announced only for OS X, at Apple's Worldwide Developers Conference in 2005, it has since been extended to target 27 platforms.
## Overview
Unity is an all purpose game engine that supports 2D and 3D graphics, drag and drop functionality and scripting through [C#](https://guide.freecodecamp.org/csharp).
Unity is particularly popular for mobile game development and much of their focus is on mobile platforms. Unity3D's 2D pipeline is a more recent addition to the engine, and is less mature than the 3D pipeline. Despite this Unity is an adaquate platform for developing 2D games even when compared to other dedicated 2D engines, particularly if you plan to release the game across multiple mobile devices.
Unity is also a good choice for VR development, although VR is a very small market at the moment. The mobile and PSVR markets are the largest in VR, and Unity is already well positioned to port games to many platforms such as PS4 and PC, or many different mobile markets.
The engine targets the following graphics APIs: Direct3D on Windows and Xbox One; OpenGL on Linux, macOS, and Windows; OpenGL ES on Android and iOS; WebGL on the web; and proprietary APIs on the video game consoles.
Additionally, Unity supports the low-level APIs Metal on iOS and macOS and Vulkan on Android, Linux, and Windows, as well as Direct3D 12 on Windows and Xbox One. Within 2D games, Unity allows importation of sprites and an advanced 2D world renderer.
For 3D games, Unity allows specification of texture compression and resolution settings for each platform that the game engine supports, and provides support for bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), dynamic shadows using shadow maps, render-to-texture and full-screen post-processing effects.
Unity also offers services to developers, these are: Unity Ads, Unity Analytics, Unity Certification, Unity Cloud Build, Unity Everyplay, Unity IAP, Unity Multiplayer, Unity Performance Reporting and Unity Collaborate. Besides this, Unity has an asset store where the developer community can download and upload both commercial and free third party resources such as textures, models, plugins, editor extensions and even entire game examples.
Unity is notable for its ability to target games for multiple platforms. The currently supported platforms are Android, Android TV, Facebook Gameroom, Fire OS, Gear VR, Google Cardboard, Google Daydream, HTC Vive, iOS, Linux, macOS, Microsoft HoloLens, Nintendo 3DS family, Nintendo Switch, Oculus Rift, PlayStation 4, PlayStation Vita, PlayStation VR, Samsung Smart TV, Tizen, tvOS, WebGL, Wii U, Windows, Windows Phone, Windows Store, and Xbox One.
Unity is the default software development kit (SDK) for Nintendo's Wii U video game console platform, with a free copy included by Nintendo with each Wii U developer license.
Unity Technologies calls this bundling of a third-party SDK an "industry first".
## Interface
![Unity Interface](https://github.com/pawelszpiczakowski/PublicStuff/raw/master/unityInterface.png)
In picture above, you will notice five section:
1) Section 1. <b>Scene View</b>: This is where you will be creating level for your game, scene or 3D project. All of your Game Objects will be placed and manipulated right here.
2) Section 2. <b>Game View</b>: This is where you will see your results, how your level or scene looks like. You need to have a Camera on the scene to see how it looks like. Sometimes its called Camera View.
3) Section 3. <b>Hierarchy</b>: This window will display all Game Objects placed directly on the scene. Basically everything that you see in Game View, needs to be listed here. This will include non-visual and visual game objects.
4) Section 4. <b>Project</b>: This is your project window. Basically it show whats inside Assets folder on your disk. Everything from Game Objects, Scripts, Textures, Folders, Models, Audio, Video and etc... will be accessible from this window.
5) Section 5. <b>Inspector</b>: This panel will display different attibutes and properties of selected Game Objects. Depending on the selection, the appropriate attributes and components will be listed.
## Noteworthy Games:
* Assassins Creed: Identity
* Temple Run Trilogy
* Battlestar Galactica Online
* Hearthstone: Heroes of Warcraft
* Inside
* Cuphead
## History
Two other programming languages were supported: Boo, which was deprecated with the release of Unity 5 and UnityScript which was deprecated in August 2017 after the release of Unity 2017.1.
Unity formerly supported 7 other platforms including its own Unity Web Player.
Unity Web Player was a browser plugin that was supported in Windows and OS X only, which has been deprecated in favor of WebGL.
Unity is the engine used by Rust, Kerbal Space Program, and Cup Head.
#### More Information:
[Unity's Official Website](https://unity3d.com/)
[Wikipedia](https://en.wikipedia.org/wiki/Unity_(game_engine))
[Official Unity Tutorials](https://unity3d.com/learn)

View File

@@ -0,0 +1,38 @@
---
title: Unreal Engine
---
## Game Development with Unreal Engine
Unreal Engine is a cross-platform game engine developed by Epic Games. The Unreal Engine was initially developed for the 1998 FPS title Unreal, but has been subsequently used for many thousands of commercial and non-commercial titles. The most recent version of the engine, Unreal Engine 4, targets PC, PlayStation 4, Xbox One, Mac OS X, iOS, Android, many VR systems, Linux, SteamOS, and HTML5, and the editor can run on Windows, OS X and Linux.
Uscript is the engine's native scripting language, used for creating game code and gameplay events before the release of Unreal Engine 4, and was designed for high level programming. The script was written and programmed by Tim Sweeney, also the creator of another scripting language, ZZT-oop.
Since 2015 the Unreal Engine has been free to use, with Epic charging a 5% royalty on sales of titles produced using the engine. Epic make the majority of their codebase freely available via their Github, although source for closed platforms such as the Playstation 4 and Xbox One is only available for registered platform developers.
### Unreal Versions
Unreal has gone through 4 major revisions. Although some code is common between releases, each major version is a separate engine and projects cannot be moved between them. Within each major engine release, there are multiple minor versions.
* Unreal Engine 1
Released in 1998 and targeted Windows PC, Linux, Mac, PlayStation 2 and Dreamcast. The engine was written in C++, and easily moddable using the Unreal Script language.
* Unreal Engine 2
Released in 2002 and targeted Windows PC, Linux, Mac, Playstation 2 and Xbox. The engine was written in C++, utilized the Unreal Script language.
* Unreal Engine 3
Released in 2004 and targeted Windows PC, Linux, Mac, iOS, Playstation 3 and Xbox 360. Development is split between Unreal Script and C++, with an additional visual scripting interface called Kismet.
* Unreal Engine 4
Released in 2015 and targets PC, PlayStation 4, Xbox One, Mac OS X, iOS, Android, many VR systems, Linux, SteamOS, and HTML5, and the editor can run on Windows, OS X and Linux. Unreal Script has been removed and replaced with dynamically reloaded C++ modules, and a more advanced visual scripting interface called Blueprints.
### Popular Games made in Unreal
- Batman Arkham City
- Mass Effect
- Bioshock
- Borderlands
- Gears of War
#### More Information:
<a href='https://www.unrealengine.com/' target='_blank' rel='nofollow'>www.UnrealEngine.com</a>
<a href='https://github.com/EpicGames' target='_blank' rel='nofollow'>www.EpicGames.com</a>