Task - Overview
For this, I will research and look at the option for engines that we could use to develop the game in. There are tons of option in the industry for what a person could use to create games, with many positives and negatives. There are tons of options from the mainstream engines including Unity and Unreal to the smaller yet growing options like Godot, GameMaker and GDevelop. Each software has its many unique aspects and features that make it a good option for the developer. Some software have a ton of inbuilt features ensured to work along with the other features in the engine. Others require other software like IDE's. These compile the code and allow the developer to write and tweak code.
For the simplicity of this work, as there are tons of options to pick from, I will stick with four main options and break them down. For the four options, I will stick with the big engines and some of the more advanced and used secondary options. These include Unity Engine, Unreal Engine, Godot, and GameMaker. Down below, I will give a brief description of each engine and break them down to their positives and negatives. This will help show why I chose the engine I chose and why it is the best one for use. I will break down four options of IDE, but some will be analysed differently as they are included in the software.
Unity Engine:
Unity - Overview:
Unity is the first engine I will break down. It is the biggest engine in the industry currently but is being quickly matched by newer more open-source engines like Godot. Unity was first created and realised in 2005 by Unity, being an older and more well-known engine. It is a closed source and all the creation code is held behind by unity as they own it. This means adding extensions is harder but still possible, not allowing all to create add-ons. The engine is proficient in both 2D and 3D, as it has been used in thousands of released completed games. It is known to not have the most power in 3D, but it is at the top when it comes to 3D. Unity has a few payment options, but the only one that applies for use is the free tier. While it is behind on tools, it still gives the developer a wide range of tools. The other options are more suited to big industries, with Unity Plus being £147 and Unity Pro being £319. These have advanced tools but are more suited to getting a more professional workspace and result in large teams.
Unity - Positives:
The first major positive for Unity as a tool is that every person on our team has experience using it, especially all the coders from the team. This will allow us to understand what we are doing, even if it is not something we have done before. It will also allow Alex and Kyle to build anything they need to if it comes up. We also have experience using Unity's coding language C#. Having this experience will allow us to understand the code we are writing and help us advance.
The next big advantage is the multiplayer tools available for Unity. There is not only an abundance of tools from Unity's net code to Photon and Pun2. Because these tools are free and available there are tons of videos and forums available to show off the code available. This will allow an easier time researching and adding multiplayer.
Another big advantage of unity is the community around it, from a collection of tutorials from a wide range of people to a deep and vast forum community. This allows developers to find helpful videos and posts to solve any issues found. This will be a big helpful to begin and advance on this project.
Unity - Negatives
There are not many issues with Unity but one of the current issues with Unity is the fact that it is closed source. This leads to slightly fewer add-ons and tools for unity that are free and available to use. While this is the case there is the assets store to hold some available ones.
Unity is slightly weaker in 3D than some options in the industry but it is good enough for our uses as we are not pushing it to its limit. This leads to the other issue of unity, not being aimed at triple-A games.
Another issue with unity is the limited language. This is due to the fact unity is only useable with C#. While they used to support Boo (programming language) until they removed it in favour of only c~ this leaves the engine slightly limited to the capabilities of C#.
Unreal Engine:
Unreal - Overview:
Unreal is another powerhouse in the industry, being used in many triple-A games throughout the industry. It has a ton of power in, 3D, being on the leading edge of 3D and having some of the most advanced rendering and calculative power. This is a big reason for a lot of large studios using it, as it has enough power to stay at the height of 3D graphics. On the other hand, it has limited 2D capabilities leading most indie developers and 2D game developers to opt for other options. While it can do 2D as it has an engine for it, it is not the most developed in terms of tools. Unreal is a pseudo-open source as well, like Unity and Unreal owns all the code for it. While again like Unity there is a store for add-ons, because it closed source it is harder for people to modify and create with it. Unreal is entirely free, but has a revenue cut at a certain point. If the developer earns over one million in revenue, then they owe 5% to unreal after that point.
Unreal - Positives:
The first biggest positive to using Unreal is its total power as an engine. Unreal has over time been perfecting and advancing its tools to be one of if not the most powerful visual engines around. This can lead to some of the most ground-breaking and realistic visuals for games. while this is a great strength, we as a team can not take advantage of this aspect.
The next great aspect is the ease of code. As Unreal can use blueprints it allows early and first-time developers to have an easier time coding. Blueprints are easy to read and pre-made to work together. Again while this tool is powerful we are all used to coding in actual languages so this tool may be lost on use.
Unreal - Negatives
Unreal uses C++ as another programming language and can be used instead of blueprints. This gives developers more options when creating games. While this could be a powerful tool for some none of the team have experience using it.
Unlike Unity, Unreal has a smaller and less thorough community will less total tutorials and guidance. There is still guidance to be found and there are many tutorials available but less than some other engines.
The last issue I will talk about for Unreal is its licensing. If we were to release the game fully using Unreal and it went on to be popular, eventually the revenue would be split. This means we would be having a percentage of profits taken by Unreal. While this would not affect us personally as it is only a small demo it is an issue to bring up.
GameMaker:
GameMaker - Overview:
GameMaker is a classic in the industry, only being released one year after Unreal in 1999. It, also like all the other software, is free but has few payment options. GameMaker is a mostly 2D engine and has been optimised for 2D, with the 3D tools being very limited. GameMaker like the other software so far is closed source and limited in development. This means others can struggle to develop tools for the software, but it is possible. GameMaker themselves do not have an add-on store like Unity or Unreal, so the tools are slightly limited. They have three options for purchase, With one being non-commercial, while the others are. This means games made on the free tier can not be paid when released and must be free as well. The next tier is a one-time purchase of £79 with the entire engine available for commercial games with the limit of no console export options. The last tier is £63 a month or £637 a year, and it is the same as the first one but with console export options.
GameMaker - Positives and negatives:
GameMakers biggest positive is its biggest drawback when it comes to tools. GameMaker is an engine made to make 2D games. This means the tools are intended to be used in making 2D games and are very limited in 3D development. We would struggle as a team to take advange of the tools as they are not aimed for hte game we plan to make.
The biggest benefit outside of the 2D capabilities is its built-in tools like an in-engine programming tool and pixel editor. While they are helpful they would not help in making a 3D multiplayer shooter which is what we are aiming to make.
One of the issues is that the free version of GameMaker does not allow paid games to be made. That means if we wanted to make the game paid after we completed it we would have to pay for the commercial engine. This would be an extra cost to the process.
Godot:
Godot - Overview:
Godot is one of the biggest rising game engines being released in 2014. This engine has gained a ton of attention over the recent years as many indie studios and developers have converted to it. This is because of it is open source and free, leading to a smaller yet tight-knit community. Godot has great 2D features, with a limited range for 3D. While Godot has features in 3D that are well-developed, it is not at the level of Unity or Unreal for 3D. Godot is entirely free, with no added payment options. It has all the features of Godot with no limits, but it has a donation system. This allows the developer to give Godot money to aid development at no major benefit. This is not mandatory and is more of a secondary revenue system for Godot.
Godot - Positives:
The first big positive for Godot is the open-source nature of the engine. This has led to a small yet dedicated fan base making tools for any aspect of the engine. As the engine is open source it allows the developers to make tools to fix their issues by making an extension. This is easy as they can get the source code and modify the engine. As this can be done it allows them to publish these changes for anyone to use in their games and other projects.
The next big positive is the versatility of the engine. Godot can do both 2D and 3D well with a wide range of tools at the developer's disposal. While it is not the strongest in 3D it can do a ton and there are lots of fan-made functions to fix the engine's underlying issues. But this leads slightly to the first issue.
Godot - Negatives:
The first issue with Godot is the reliance on community-made assets and tools. Because Godot is relatively new and small for an engine, it does not have the community scale and accessibility of Unity leading to finding tools being harder. This means that if the engine can not do something you need it to do you have to find that feature elsewhere.
The next issue with Godot is the fact none of the team have used it a lot. Me and Mitchell have brief use of the engine, not enough to know how to use it. The rest of the team had no before use of the tools so it would have a harder time learning and using the tools. This would lead to a lesser end product.
Engine - Conclusion
To conclude on all the tools we have decided to go with Unity. There are many reasons for this but i will start with the reasons we id not pick the engines we decided against.
Unreal:
Unreal is a great choice for the type of game we aim to make, but a few of its weaknesses make it a lesser choice when compared to Unity. First is its limitation to either C++ or blueprints. As I said in the positive and negatives, we as a team have only a small amount of experience using blueprints and no experience in C++. This would make the project more about learning the basics, than learning new skills. This would hold us back from advancing. The last reason we can not use Unreal is the experience with its multiplayer. A while ago, one of our team members, Zak, made a project in Unreal. This was a multiplayer game, which is what we aim to make, but he said the available tools for multiplayer a behind the best and hard to use. This would hold our project back and give a worse final product.
GameMaker:
GameMaker is a great tool but it is not possible to use for this project so I won't go into too much detail. The main drawback to GameMaker as a tool is its near-impossible use of 3D. GameMaker is a tool mostly designed for 2D so it is limited in 3D tools. This means it would be incredibly hard to produce a game in this engine as we are standing strong with the game being 3D. Not only is it 3D but it will be multiplier so the engine would have to handle that on top of 3D development.
Godot:
The main reason Godot is not a good choice is due to its recency and lack of information. While the engine has enough power to get what we want done. It lacks the tutorials and research material. The lack of information would lead to a harder development and would hold back the end product. The next reason for not using Godot is its lack of multiplayer information. This extends from the first point but is a good point to ring up. While Godot can do multiplayer, the information on how is sparse and hard to locate. This would lead to a harder development on the team and would not ensure the final product we hope for.
Unity:
Unity is the engine we chose to use for a few main reasons that I will go into now. The first and biggest is our experience with the engine. I have years of experience in the engine, making a few big projects. We as a team know how to use the engine and have made a group project before. This will allow us to learn the tools we have no experience in while still having a base of knowledge to use. Unity also compared to the others has a large base of information on how to use it and to make mechanics. This would help us research and learn when making this project. Another positive compared to the other options is its power as it is a more powerful engine than both Godot and GameMaker. While it is weaker than Unreal it has enough power for anything we plan to add.
IDE's - Overview:
For the project, I will be doing all my coding in Visual Studio. This is due to its availability and my experience using it. First, it is the software I have used for every coding task I have done before. It is highly capable and has a great set of tools. A good example of this is the auto-complete for C# Code. This allows us to quickly complete code that is used often. An example of this is for loop as if the coder writes for then presses the tab a few times, the code program auto-completes the line.
Another reason for using Visual Studios is its compatibility when using it with Unity. There are tons of tools like the debugger which can help developers when coding with Unity. Another point on the topic is its C# tools, as Unity uses C#. The tools allow Visual Studios to work well with C# which in hand makes it work with Unity. On this point, Unity uses C# as its only option so it is the only language we can use for this project. Some add-ons allow blueprints, but the team and I are all used to coding in C#.