1.) What are indie games?
In short, indie games are video games developed by small studios, with little financial means, but usually produced with a lot of originality and creativity. They often offer a refreshing counterpart of the great mainstream games. For the most part, many independent game developers are not owned by a publisher. Independent developers retain operational control over their companies, pipelines, and organizations and often may work with proprietary engines or other proprietary software. These teams may range in size from single individuals to major companies with hundreds of employees. Independent developers may choose to work with one or more game publishers or to self-publish their titles.
2.) What program(s) or tool(s) are you using to create your game(s)?
I am not necessarily "using" programs, I am writing programs. I get asked this question a lot if I am using UDK (Unreal Development Kit), the Unity Game Engine or Unreal. I am creating my own game engine called the Cyclone Game Engine. I am doing so primarily to learn and educate myself about game engine development. The Cyclone Game Engine was developed in XNA, mostly from scratch. It utilizes a few third party libraries such as JigLibX for physics. It is tailored and optimized for the creation of any kind of game. The engine is not cutting edge in any aspect. Nonetheless, it is more than just the sum of it’s part. It is light weight, optimized, and it more than does it’s job for the needs of my game. My goal with the engine is to also make sure it runs well on older graphics hardware.
As a game developer, you are not using programs for the most part, you are writing programs. So if you are interested in programming, learning to program or writing your own, this website blog might be of interest to you. Game Development is one of the most difficult of programming applications out there. You are going to be learning a graphics API, a game development library, or anything like that on top of your actual game logic. Things like learning how to test for collision detection and how to create artificial intelligence. However, if you are interested in creating artwork for games, I use a variety of programs to help me. See the Game Art section from the Resources page if you are wanting to learn concept art, 3D modelling and animation. This website blog for the most part covers the game development or game programming side of creating video games. The other side to that is game art, which I touch on some in this blog. I use Sketchup and Autodesk Maya 2013 to create my 3D models. Programs like Photoshop for instance, helps me polish up the textures for my 3d models. Illustrator helps with creating vector based art.
In short, indie games are video games developed by small studios, with little financial means, but usually produced with a lot of originality and creativity. They often offer a refreshing counterpart of the great mainstream games. For the most part, many independent game developers are not owned by a publisher. Independent developers retain operational control over their companies, pipelines, and organizations and often may work with proprietary engines or other proprietary software. These teams may range in size from single individuals to major companies with hundreds of employees. Independent developers may choose to work with one or more game publishers or to self-publish their titles.
With that said, my goal is to work independently from
publishers. The reason why is once a publisher is involved, you normally have
to give up control of the game in some way. The publisher may require you to
make changes to your game that you don't want to make. Since they are the ones
with the money, you usually have to do what they say. When this happens, that's
when you are no longer an indie in my opinion. When someone else can control
how and what to have or not have in your game, that's when you're no longer
independent. I want to develop my games with open doors, so gamers can track my
progress.
2.) What program(s) or tool(s) are you using to create your game(s)?
I am not necessarily "using" programs, I am writing programs. I get asked this question a lot if I am using UDK (Unreal Development Kit), the Unity Game Engine or Unreal. I am creating my own game engine called the Cyclone Game Engine. I am doing so primarily to learn and educate myself about game engine development. The Cyclone Game Engine was developed in XNA, mostly from scratch. It utilizes a few third party libraries such as JigLibX for physics. It is tailored and optimized for the creation of any kind of game. The engine is not cutting edge in any aspect. Nonetheless, it is more than just the sum of it’s part. It is light weight, optimized, and it more than does it’s job for the needs of my game. My goal with the engine is to also make sure it runs well on older graphics hardware.
As a game developer, you are not using programs for the most part, you are writing programs. So if you are interested in programming, learning to program or writing your own, this website blog might be of interest to you. Game Development is one of the most difficult of programming applications out there. You are going to be learning a graphics API, a game development library, or anything like that on top of your actual game logic. Things like learning how to test for collision detection and how to create artificial intelligence. However, if you are interested in creating artwork for games, I use a variety of programs to help me. See the Game Art section from the Resources page if you are wanting to learn concept art, 3D modelling and animation. This website blog for the most part covers the game development or game programming side of creating video games. The other side to that is game art, which I touch on some in this blog. I use Sketchup and Autodesk Maya 2013 to create my 3D models. Programs like Photoshop for instance, helps me polish up the textures for my 3d models. Illustrator helps with creating vector based art.
3.) Why is it taking so long to develop and publish your game(s)?
I can't believe I even get asked this question sometimes. First and foremost, Steel Cyclone Studios LLC along with its products and game engine is currently all ran and created by one person; myself, with no track record, no tech, and no funding. I am an independent developer with a low budget and not a whole lot of background experience. While creating my first game, I am also teaching myself game design, art, and development in my spare time outside of my job since I couldn't go to school for it. Since my time is limited, I need to be realistic, so my first game will be fairly small but my goal is to have some fun gameplay integrated. Many of the major games we play have enormous budgets in the millions of dollars. My goal is to keep my budget as low as possible.
Secondly, I refuse to allow my games to become another game that fades into obscurity because of a premature Alpha/ Early Access launch. We have seen an over abundance of this on STEAM with Asset Flip Games. In short asset flip games are created with minimum to low effort. This is done by purchasing pre-made starter kits and art assets from other developers, and re-selling them as the final product with barely any changes or alterations. I would rather fail and learn from my mistakes from being original rather than taking that approach. However, there is nothing wrong with buying assets to help you not only learn but save development time. I am taking the time and effort to make my games fun and enjoyable rather than rushing a game out as quickly as possible for a quick cash grab. My goal is to also deliver experiences free from microtransactions and ensure my game releases go smoothly. The longevity of my games relies heavily on the first impression that the gaming community outside Steel Cyclone Studios see. A delayed game is eventually good, however a game that is rushed out at launch can potentially be deemed forever bad.
Secondly, I refuse to allow my games to become another game that fades into obscurity because of a premature Alpha/ Early Access launch. We have seen an over abundance of this on STEAM with Asset Flip Games. In short asset flip games are created with minimum to low effort. This is done by purchasing pre-made starter kits and art assets from other developers, and re-selling them as the final product with barely any changes or alterations. I would rather fail and learn from my mistakes from being original rather than taking that approach. However, there is nothing wrong with buying assets to help you not only learn but save development time. I am taking the time and effort to make my games fun and enjoyable rather than rushing a game out as quickly as possible for a quick cash grab. My goal is to also deliver experiences free from microtransactions and ensure my game releases go smoothly. The longevity of my games relies heavily on the first impression that the gaming community outside Steel Cyclone Studios see. A delayed game is eventually good, however a game that is rushed out at launch can potentially be deemed forever bad.
- Support
You would think somebody or a small company would get support for taking on an ambitious task like creating their own engine. Instead I was bombarded with feedback online full of comments like:
--"You're just wasting time!"
--"Make games, not the game engines"
--"Why create your own, when there are so many examples around you who have failed?"
--"You're going to spend so much time on your engine until you burn out."
To start, the engine is already built and all of what I've accomplished thus far would not have been possible had it not been made. While making my own game engine may not be the most popular route to many, this is the best route for me. Everyone's paths are different. With the help of the XNA and MonoGame Frameworks, online tutorials and many books, it has made this seem less of a burden. Also, I recently found a way to get my source code working inside the Unity Game Engine which is great and also kind of ironic. The foundations of my 3D game has been made, so now I can focus on things I want like gameplay functionality. Check out my Engine Overview. Also, if you are wanting to create your own engine without having to spend tons of money and weeks searching over the internet for resources, check out the Developer's Survival Kit. The average gamer this day in age from what I have seen does not find this whole development process appealing. They want to see all the actual game made up and shiny and stuff. This is why I am considering looking into a Kickstarter campaign eventually but not right at the moment.
Right now, my game engine is still a baby. I have two goals with this website. First, is to show my game engine being developed and to watch this baby grow and evolve through my eyes; the eyes of its creator because I find it fascinating. Second, is to help others along their journey creating their own games and or game engines. This website blog is to serve as a useful resource to anyone pursuing any type of artistic dream both from a hobbyist and a developer perspective. Many game companies will not show such early stages in development as I am, primarily because they fear their audience will judge their work too quickly and face rejection. Already I have had harsh comments like, "Wow, that looks like crap!" when my work does not represent final gameplay and graphical footage because it isn't actually finished. Also, I'd like to point out that a game engine doesn't necessarily have to be completed in order to have a finished game. Game Engines can evolve as technology advances and some game engines don't have to because they serve smaller purposes.
Gaining support from family and close friends can be crucial to indie game developers. Some might decide to live with parents in order to save money and devote full-time to their work. Others live in two worlds, working either a part-time or full-time job and then coming home to work on their games. Although I am not concerned about my projects since I can port my source code to MonoGame and Unity, to answer the question of why is simply passion. Simply put, this is what I enjoy doing. There's a lot of constant failure, trial and error that people go through to do these things, and often we don't talk about the failures as much as the successes. My goal is to also share my own experiences through it all and how I overcame them when at times I felt like giving up.
- Development Time
Long hours of uninterrupted development time is critical for a games success. Many indie game developers don't do this job for a living, so they lack the time or commitment, which could lead to either poor or unfinished results in the finished product. This is why gaining support is so critical to developers. To ensure that their games get finished and at the quality they want to achieve, many indie game developers have to truly dig down and focus, even if it means quitting their day jobs. Unfortunately, my biggest challenge has not been the creation of my game engine or game(s) itself believe it or not. My biggest challenge has been finding the time I need to work on it all. In the past, I had to put it off for weeks, sometimes months since I was in college full-time and working. There were times I had to put my game development efforts on hold because I was taking care of a family that was not even my own and could only devote a few hours so many days a week; sometimes none at all.
I was studying game development in my spare time outside of college and my job. I was never actually learning it in college which so many of my family and peers assumed at the time. College was only hindering my efforts by taking time away, so most of my studies and work was accomplished during college breaks. A twist of unfortunate events with universities, family matters, etc., made me sideline my game development efforts for a few years. Unfortunately, just when my game progress was starting to take off, Microsoft announced they were shutting down its XBLIG Program for Xbox 360. As an indie developer you also have to make a living too. Because time has been so challenging, I have looked into open-source tutorials and helpful information to help speed up this process. I gathered all of my resources and any information that I could find and posted them on this very blog here under the Resources tab. These resources are not only there to help me save time in areas of my game development, but for others as well.
- TeamsUnfortunately, I get asked the question above quite often. Majority who have asked me that question don't understand that it takes teams of experienced people to create the games they often play. Making a game on the scale of Halo or Fallout for instance takes hundreds if not thousands of people with different skill-sets, a singular vision and TIME. Lots and lots of time! For example there are professional artist who create all of the visuals, developers who write the programs to bring that art to life, designers, writers, actors (who do voice-overs for characters) and stuntmen help motion-capture for realistic character animations. All of these different areas are traced in periods of deadlines. These games are created for a huge audience. It took hundreds of thousands, if not millions of dollars to create those highly popular titles. Fortunately, I am not making my first 3D game on that kind of scale. I explain more below:Creating games works through stages. These are the following stages game companies go through to create their games and eventually publish them.
1.) PREPRODUCTION: "Preproduction" is the first phase game companies go through before anything. It deals with the initial stages of videogame design. This stage is one of the most crucial. This stage is where the bare bones of the game, its story, and key gameplay mechanics are laid out. It also covers the essential process of pitching the game (to a publishing company) to secure financing to take the game into the next stage. My goal is to self-publish the game.
2.) PRODUCTION: "Production" is the main phase in the life cycle of any modern game in development. This is where the vast majority of level design, programming, art, audio, etc. are carried out to take the game from its initial concept to finished product. It is essential to test your initial game ideas and technology before full production can start. This is where I am currently for the most part.
3.) POSTPRODUCTION: "Postproduction" covers the life cycle of the game after the main production phase is over. It also often takes place after the game is initially released and covers such things as localizing the game for release in other territories and planning ahead to sequels and expansions if the game is successful.
4.) "BUSINESS & FINANCE": "Business and Finance" goes into detail on two final components of game development. The first of these is the marketing and PR required to make the public aware of a game, and of course how good it is. The second looks at alternative models that are currently emerging, such as cellphone games and massively multiplayer online games for example.
- Iterations
Development of an engine is a process of endless iterations through all your code and components. Surely I needed to build the fundamentals first, and build from there up, but during the process, with each new brick I lay out, I have to adjust the underlying and surrounding bricks at least a bit as well. Maybe even surrounding bricks of the surrounding bricks, and so forth. At least it was so in my case. I guess the amount of iterations needed is lower the more experience you have, and the more detailed your planning before you start coding is. So, don't try to make everything 100% perfect and polished immediately upon creation. After the basics are done, I learned to see how it fits in the big picture and how it works with other “team members” in the future. Only then, delve into perfecting out the details and optimization.
I am telling you this because I wasted some time that way. I wanted everything to be perfect from the start, spending a lot of time on polishing things, that would prove useless by the next step already.
- Optimization
If you want to actually finish your project/engine/game (and have the time to eat and sleep;)) you will have to accept it: not all of your code will be ultra optimized, using the best, most optimal, top notch solutions possible at all times. And guess what, it doesn’t matter, seriously. What matters is, that your code as a whole, the sum of it’s individual components, work well. You can easily spend hours, days, even weeks, trying to optimize some part of your code, only to discover that in the big picture, that optimization you almost died doing, means exactly nothing. Even more, I believe, it is more important, for the code that is not performance-critical, to be more readable, and thus easier to manage and less error-prone, than to be super optimized.
- Publishing
I am constantly asked, "When will your game come out for Xbox or Playstation?" This is by far one of the most frustrating of questions. You can't just put a game you've created on these platforms for sale to the mass market without obtaining a license, rights to their dev kits, and sometimes a publisher. A game goes through a long process before it even reaches store shelves or an online marketplace. Initially, I was planning on developing my fist game as an XBLIG for Xbox 360 because anyone with a membership could self-publish on the platform. I am ways off from publishing so this is the least of my concerns at the moment. For more reasons why I was hesitant to publish an XBLIG, see question number 13. Being a independent developer allows me to self-publish and work at my own pace. This day in age, so many games are rushed and released too early to satisfy publishers. As a result, players are left disappointed because there are all sort of issues with the game they purchased that could have been avoided if the developers had more time. Publishers want to make money right away and it becomes a strain on developers working on the game because they are on a tight schedule. Anything great takes time and I'm not trying to rush a product out.
4.) What is a game engine?
People have different definitions of what a game engine actually is. Simply put, I define a game engine as a system designed for the creation and development of video games. Think of a game engine as a tool to help create games which serves as the skeleton or the backbone of a game. The leading game engines provide a software framework that developers use to create games for video game consoles and personal computers. Their core functionality typically includes the following:
People have different definitions of what a game engine actually is. Simply put, I define a game engine as a system designed for the creation and development of video games. Think of a game engine as a tool to help create games which serves as the skeleton or the backbone of a game. The leading game engines provide a software framework that developers use to create games for video game consoles and personal computers. Their core functionality typically includes the following:
A rendering engine (“renderer”) for 2D or 3D graphics
A physics engine for collision detection (and collision
response)
Sound
Scripting
Animation
Artificial Intelligence
Networking
Streaming
Memory Management
Threading
Localization Support
A Scene Graph.
Often today, many game engines are designed for more
specific things like creating a menu system or level editing. Many game
companies and studios reuse or adapt the same game engine to create different
games, or to make it easier to "port" games to multiple platforms. I
am creating my own game engine which will help save time creating other game
titles in the future for Steel Cyclone Studios. Programming and designing your
own engine from the ground up is a lot harder than using one that already
exists. It takes a long time to problem solve and come up with my own solutions
to getting certain things working. I have created many 3D models but I am being
cautious about what content I put in my videos so that I don't give away any
game ideas and only show the engine's features. I am also trying to improve the
quality of my videos.
5.) Why develop a game engine on your own rather than use an existing one?
I simply wanted to understand how game engines work, not necessarily just how to use them. I unintentionally started developing my own game engine as I began merging and putting my programs together. The engine is tailored and built for primarily my needs and intended for strictly my use, not necessarily for everyone else because their needs and wants varies greatly. In the beginning, I started picking up on XNA and learning how to write basic programs. Game engines like Unity and Unreal at the time weren't readily available as they are now. In order for me to help with the game engine's programming for a company, I needed to demonstrate it and show some of my work. Just because I am building my own engine, does not mean I can't use an existing one. For example, I found a way to import my engine's source code into Unity and got some working samples which further helps cut-down development time. Unity also has Mono built into it, which made this possible. For the most part, I am developing my own engine for the following four reasons:
6.) What platform will your first game be made for and when will it release?
7.) What is XBLIG?
XBLIG is an abbreviation that essentially stands for Xbox Live Indie Games, which was previously known as Xbox Live Community Games. These were videogames created by individual developers or small teams that were released on Microsoft's Xbox Live Marketplace for the Xbox 360. The games were developed using Microsft XNA and created by developers who were registered with App Hub. Microsoft changed the name to "Xbox Live Indie Games" with the hopes that it would increase their audiences' understanding and discoverability of user-created games. A good majority of these games were created by students and hobbyists, who invested a minimal amount of money, including the yearly fee for the App Hub membership, to develop their games.
8.) What is XNA?
9.) XNA is Dead! Now what?
So now it's official. XNA is no longer a platform under active development by Microsoft. However, that does not make it dead or mean it will stop working tomorrow. XNA is still a supported and perfectly valid platform for developing windows desktop PC games. I was able able to get it up and running on Windows 10 with Visual Studio installed. For my game projects, the fact that there is not going to be any future releases of XNA by Microsoft, is actually irrelevant. My programs so far is flawlessly running on all systems it was meant and designed for which are: all windows desktop systems with the XNA Framework installed. Initially, my game(s) were never planned to be released on platforms such as phones and tablets. For some of my projects, the gameplay works better with the mouse, keyboard and gamepad controller in mind such as the Xbox 360 controller. However, there are some projects that might work well on these touch-screen devices. Fortunately, XNA lives on through an open-source platform called MonoGame. In short, if you want to run your XNA games on other platforms, you can do so by porting them over to MonoGame. MonoGame takes over from where Microsoft left off with XNA. I explain more below.
I simply wanted to understand how game engines work, not necessarily just how to use them. I unintentionally started developing my own game engine as I began merging and putting my programs together. The engine is tailored and built for primarily my needs and intended for strictly my use, not necessarily for everyone else because their needs and wants varies greatly. In the beginning, I started picking up on XNA and learning how to write basic programs. Game engines like Unity and Unreal at the time weren't readily available as they are now. In order for me to help with the game engine's programming for a company, I needed to demonstrate it and show some of my work. Just because I am building my own engine, does not mean I can't use an existing one. For example, I found a way to import my engine's source code into Unity and got some working samples which further helps cut-down development time. Unity also has Mono built into it, which made this possible. For the most part, I am developing my own engine for the following four reasons:
- To Learn
Since I didn't end up going to a University to learn game art, design or development, I had no other option but to learn everything on my own and teach myself the development side in my spare time. Instead of using an off the shelf engine, I decided to create my own in order to learn how game engines work. I wanted to understand the internal workings of XNA, so I chose to build my own engine around the XNA and MonoGame Frameworks. By game development, I am referring to the programming side and not so much on the art side. Game Programming involves things like LOD (Level of Detail), Lighting, Artificial Intelligence and the math behind the physics. In short, I was not actually building a game to start with. As I continued making progress developing the Cyclone Game Engine, I decided to use it as an addition to my portfolio to help me acquire a job in the gaming industry as a software developer. As I continued making more progress on the engine, I later realized I could make an actual game with it. At the time I figured a playable game would help my portfolio far more.
As far as the art side, I am still continuously learning and improving. I am furthering my skills in 3D modeling with Autodesk Maya and am picking up on Sketchup to create low poly assets. I am currently learning animation and rigging for my creatures and characters. I have created an incredible amount of 3D models and assets which I have yet to show, primarily to set the groundwork for game projects later on for my future team. For now as far as the design side, I am keeping it brief. I am doing all of this is my spare time outside of work. My goal is to somehow find a way to devote full-time to my studies as well as my business.
Building a game engine gave me a difficult challenge but provided me an amazing opportunity down the road. This helped me build up experience and focus on the individual aspects that make up a game. I also chose XNA and MonoGame because it simplified access to DirectX. XNA was more intuitive than DirectX in my own opinion, so it saved development time. My game engine is programmed in C#.NET. I took C# over C++ because the game compiled faster, the code seemed easier to read and understand (with the help of my comments), there were already existing .NET libraries, most of the game could be spent on the GPU, and finally it was easier porting and debugging to Xbox 360.
- Freedom
Building my own technology gives me immense amounts of freedom and flexibility, but at the cost of doing the grunt work myself which I don't mind. It just takes persistence, perseverance and dedication. For the most part, its a personal preference. I want more control, more so than what many game engines would ever be able to provide. Its the sort of control, you can only really get with your own engine. I also chose this route because in many cases, one cannot modify another engine's source code unless you have paid to acquire the rights to the source code. With XNA and MonoGame, I have free reign over all of the features implemented on that level. Having my own engine made me less dependent on other tools and provides me more options.
- Costs
Making games cost a lot of money and my goal is to keep my budget as low as possible and not have to worry about paying for engine updates and art assets. Instead, I am investing in time so that I can further educate myself. My goal is to get as much created and developed without going over my budget. Luckily, everything that I have created thus far cost me zero dollars. Although I found a way to get my source code working inside of the Unity Game Engine, there is a vast difference between the indie and paid-for versions of that engine.
For hobbyist, you can cope with the Unity logo splash screen and reduced feature set, but the moment you want to render to an off-screen surface to perform post-processing, you will need to drop $US1500 on the Pro version. Also, you must purchase a license for each member on your team using Unity Pro. If you want to develop for the iPhone or other platforms, you have to drop an additional $1500 per platform. Many of Unity's crucial features are not included. So in my honest yet humble opinion, this is pretty pricey for indie developers on a tight budget. I am not criticizing Unity by any means. It is a fantastic game engine but these are things I have to take into consideration.
- Cross-Platform Support
Thanks to MonoGame, I was able to expand the game engine to support more platforms beyond PC, Xbox 360 and Windows Phone. This enables me to utilize the Cyclone Game Engine to build a wide range of games.
6.) What platform will your first game be made for and when will it release?
Originally my first game was
being developed for the Xbox 360 as an Xbox Live Indie Game but that has come to past. My goal is to make my first early game builds published and playable on my website at steelcyclonestudios.com. I am currently looking into publishing on PC through a browser game platform created by Crazy Games as well as itch.io. Later I will look into early access on STEAM. I want to make sure majority of the bugs have been patched and fixed before branching out to new platforms like consoles.
7.) What is XBLIG?
XBLIG is an abbreviation that essentially stands for Xbox Live Indie Games, which was previously known as Xbox Live Community Games. These were videogames created by individual developers or small teams that were released on Microsoft's Xbox Live Marketplace for the Xbox 360. The games were developed using Microsft XNA and created by developers who were registered with App Hub. Microsoft changed the name to "Xbox Live Indie Games" with the hopes that it would increase their audiences' understanding and discoverability of user-created games. A good majority of these games were created by students and hobbyists, who invested a minimal amount of money, including the yearly fee for the App Hub membership, to develop their games.
8.) What is XNA?
XNA Game Studio is a freeware programming environment
that allows you to use Visual Studio to create games for Windows Phone, Xbox
360, and Windows. XNA Game Studio includes the XNA Framework, which is a set of managed
libraries designed for game development based on the Microsoft .NET Framework. For more information on XNA, check out the Resources page.
9.) XNA is Dead! Now what?
So now it's official. XNA is no longer a platform under active development by Microsoft. However, that does not make it dead or mean it will stop working tomorrow. XNA is still a supported and perfectly valid platform for developing windows desktop PC games. I was able able to get it up and running on Windows 10 with Visual Studio installed. For my game projects, the fact that there is not going to be any future releases of XNA by Microsoft, is actually irrelevant. My programs so far is flawlessly running on all systems it was meant and designed for which are: all windows desktop systems with the XNA Framework installed. Initially, my game(s) were never planned to be released on platforms such as phones and tablets. For some of my projects, the gameplay works better with the mouse, keyboard and gamepad controller in mind such as the Xbox 360 controller. However, there are some projects that might work well on these touch-screen devices. Fortunately, XNA lives on through an open-source platform called MonoGame. In short, if you want to run your XNA games on other platforms, you can do so by porting them over to MonoGame. MonoGame takes over from where Microsoft left off with XNA. I explain more below.
- MonoGame
The XNA style of programming lives on cross platform with MonoGame for those who wish to continue using it. MonoGame doesn't use the XNA framework; its a re-implementation of the XNA framework. The difference is that all of the code inside MonoGame has been re-written to behave identically to the XNA framework. You're probably wondering why someone would want to re-implement something that already exists. Well, you're correct in saying that XNA is "dead" so to speak. You can in fact still use the XNA framework if you want but it's no longer supported by Microsoft on Windows 8 or above. The real reason MonoGame came about was because XNA only works on Microsoft platforms (e.g. Windows, XBox, Windows Phone). MonoGame's purpose is to allow existing XNA code to be easily ported to other platforms.
MonoGame not only supports DirectX but also OpenGL and can target Linux, Android, and a variety of other platforms. With MonoGame 3.4 for Visual Studio 2015, it is now possible to create a game for Universal Windows Platform (UWP). This also makes it possible to get your XNA project to run on Windows 10 with UWP. Since the Xbox One dev kit supports UWP, it might also be possible to get a MonoGame project running on it. In late March of 2016, Microsoft announced that the Xbox One dev kit supports MonoGame. See more information here. MonoGame is also no longer dependent on XNA which makes things less complicated. You can see more information here. MonoGame will continue to support more platforms in the future. - Unity
Many developers have moved onto Unity, Unreal and other gaming tools. I have found a way to import my source code into Unity and get some working samples. This is possible because Unity has Mono integrated into it. To see an example of how this works, check out UnityXNA. - STEAM
Steam accepts game submissions created in XNA, even Flash and Adobe Air. With that said, if your game is made in Flash, it needs to be wrapped so that they launch from a stand-alone executable. When my game is near complete, I will look into posting it to Steam Greenlight. To see more information regarding Steamworks, click here.
10.) Why make games in XNA or MonoGame?
I had some previous knowledge of XNA, so it made sense to give MonoGame a chance. With MonoGame, I was overwhelmed with joy as it enabled me to revive my XNA game projects from the dead and allow me to continue working on them. Both XNA and MonoGame have excellent documentation. XNA and MonoGame might seem like an odd choice for a game that uses fairly high-end graphics and physics features. However, I settled on XNA and MonoGame for a few important reasons. I wanted a framework that took care of the hardware specific differences while providing a unified API out of the box. In that regard, XNA definitely fits the bill where it sits nicely at a level slightly above where DirectX or OpenGL would sit in a C++ project. It is still generic enough that it allows me to implement out-of-the-ordinary graphics features while handling the boilerplate code one would have to write otherwise. Combine this with the fact that for my game I effectively started from scratch, the need to get up to speed and maintain that momentum of development was paramount.
The convenience of .NET and the physics libraries such as JigLibX helped immensely. As I stated earlier, I chose this framework because one cannot modify another engine's source code unless you have paid to acquire the rights to the source code in many cases. With XNA and MonoGame, I have free reign over all of the features implemented on that level. Many game companies have their reasons as to why they choose middleware and they each vary. There is no definitive answer as whether to develop them internally, or to consider buying those that have been developed by third-party vendors. You will find the best solution to this answer in the pre-production phase of game development. From there, you can weigh the benefits of both options in order to carefully determine which features are needed the most for your game that matches your budget.
11.) When is it a good idea to build your own engine vs using an existing one?
If you are looking to making a game right away, I recommend using an existing game engine rather than building one. My game engine itself was not a team based project to begin with. Originally, I created the game engine to learn game development and to use as an addition to my portfolio by showcasing my skills and accomplishments. Now I am an independent developer and the purpose of this blog is to document and highlight some of the issues I encounter during my game development efforts, potential solutions to these issues, and provide a general discussion. My hope is that with many of my efforts, my findings, and what I have accomplished thus far; will perhaps serve of use to others in their game development as well.
12.) Why don't you have a team yet?
You want to make sure everyone on your team is truly and fully committed. Unfortunately, that was not the case in my experience, as I often found myself getting frustrated at times (which was not always entirely bad). There will be times you are going to want to work and apply yourself and your team members are going to want to screw around. Its okay to goof off and have fun but when it comes to creating a game, everyone on your team including yourself has to put forth the work. A team is a collective effort and in my past experience, I found myself doing majority of the leg work. My mistake was joining a team who weren't willing to really contribute anything. Many thought they could help simply because they play games. So make sure your team each carries their own weight. This is why commitment is so important. Another reason is making sure the people on your team have the necessary skill sets for your game. Even if they don't, that is fine if everyone including yourself are always willing to learn new skills and contribute in some way shape or form. Add a member only when the situation demands it. Back in college, I along with many others decided to join a group where they were using the Unity Game Engine to create a game. In short... teams suck! I have made the mistake of trying to get some friends together to make a game. This is a bad idea! If you are just beginning, even if you think you can do it yourself, don't get into a team or start a team. There are many reason for this.
13.) Why did you originally decide to make Xbox Live Indie Games for Xbox 360?
This was one of the most often asked questions. Prior to Xbox Live Indie Games on the Xbox 360, getting a game on a major gaming console like the Xbox at the time was a horrendous and monumentally expensive undertaking. It was such and undertaking that it wasn’t really feasible for an Indie developer. There are publishers involved, a lot of money, a middle man and then the whole approval processes. At the time, this was sort of a barrier for many independent game developers. With the release of Xbox Live Indie games, for the $100 a year subscription fee, why would anyone NOT want to use that method to getting their game on a major console gaming platform?
This was one of the most often asked questions. Prior to Xbox Live Indie Games on the Xbox 360, getting a game on a major gaming console like the Xbox at the time was a horrendous and monumentally expensive undertaking. It was such and undertaking that it wasn’t really feasible for an Indie developer. There are publishers involved, a lot of money, a middle man and then the whole approval processes. At the time, this was sort of a barrier for many independent game developers. With the release of Xbox Live Indie games, for the $100 a year subscription fee, why would anyone NOT want to use that method to getting their game on a major console gaming platform?
- First Reason: PIRACY At the time, games for PC were probably the easiest games to pirate. You could not pirate Xbox Live Indie games and that's why I went that route. Back then, it was becoming a growing issue for game companies; even for games marketed on STEAM. STEAM has grown overtime and now its DRM is extremely difficult to crack through making it safer for developers to publish their games on it.
- Second Reason: VISIBILITY Many people criticized Xbox Live Indie Games' lack of marketing. For developers like myself with minimal connections and a low budget, having your game show up on the New Arrivals list ensures that hundreds; maybe thousands of gamers will see it. Many XBLIG (Xbox Live Indie Games) get criticized for lack of "professionalism" but the great thing about Indie Games is that we can take risks. There are so many popular Xbox Live Indie Games most people have never even heard of or get overlooked. If the indie game looks good to people, they will download it. If it turns out that they liked the game and its fun; chances are they will buy it.I am keeping Steel Cyclone Studios' visibility at a minimum as of now because I don't have a ton of experience and I am still learning. Everything I have accomplished thus far; I've taught myself for the most part while provided with a few good tips from some successful indie game developers like Sick Kreations. To help me market my first product eventually, I created a Facebook page to help build up a small audience staring out. I am showing work-in-progress videos on my YouTube Channels and posting 'tweets' on my Twitter pages.
- Third Reason: SUPPORT To release a game on PC, you have to make sure the game is capable of running. Everyone does not have a gaming PC with an awesome graphics card and there are a variety of System Requirements that might be needed to support your game. On Xbox 360, if it runs on your Xbox; then it will surely run on everyone else who owns an Xbox 360 (unless you had the RED RING OF DEATH). If there were some sort of performance issues with your game made in XNA, you can always update it with patches and fixes and let your audience know.
- Fourth Reason: PAYMENT PROCESS The payment process on the App Hub website to market and publish games on Xbox is smooth and user-friendly. Many developers use PayPal on PC. Many payment processor site specific systems can be a hassle to go through. To buy your game, users will have to enter their credit card and other sensitive information. They might even have to create another account or two. I understand that customers do not like doing this. On Xbox Live, the account is already there and the points are there. The Microsoft Point System works very well and eliminates a huge degree of worry. Microsoft points works great if you don't have or don't want to use a credit card. Purchasing points is like putting money into a special account that you can use on Xbox Live Marketplace. Points can be purchased on your console dashboard, on Xbox.com or from a video game store or online retailer. Basically, you are making it easier for people to purchase your game. Check out information on XNA & Tax once your game has been approved on Xbox Live Marketplace on Xbox 360 at Stevepro Studios' blog.
- Fifth Reason: POSSIBLE LARGE NUMBER of PLAY-TESTERS On the App Hub website, you can select if you wish your game to be submitted as a playtest or a release. If submitted as a playtest, the game will be downloadable on the App Hub by members of the App Hub for a period of one week. The App Hub members can provide constructive feedback and really help you make your game better. Many developers skip this step, but I believe it is very crucial. After the playtest has been concluded, the game may be resubmitted. If submitted as a release, the game will enter the Peer Review process. If it passes the Peer Review, it will become available for purchase on the Xbox Live Marketplace and Xbox.com.
- Sixth Reason: COMPETITION: See question 17
14.) So then what went wrong with Xbox Live Indie Games?
15.) So what made XBLIG so special?
Xbox Live Indie Games was an amazing stepping stone for anyone whether it be a hobbyist or professional to get recognition and allow us to setup great deals and show off our work and talents. For the first time ever, anyone with the ambition and drive to create could publish their work on a major console platform. The "barrier to entry" was lower which raised more possibilities to have your work shown. Microsoft made this possible with the XNA Creator's Club Program.
16.) Were there any developers who found success on XBLIG?
18.) What are some solutions you would propose?
XBLIG was a great platform that got a bad rap but is also
had a lot of serious problems. People have always been quick to chide XBLIG for
being a cesspool of low quality fart apps, avatar games and Minecraft clones,
but the problems ran much deeper than that. I am not going to sit here and say
there weren’t low quality games on the system, but marketplaces like the ios
app store have them as well and have been far more successful.
- Xbox Live Indie Game Submission was too hard & frustrating
- The game submission process was too cheap
- Game Submissions were limited to 500MB
- The Review System limited the quality of games released
- An 8-minute trial period was enforced on all published games
- The System had lots of problems
- The platform itself was very limiting
- Developers were not getting paid in a timely manner
- Microsoft treated Xbox Live Indie Games with no respect
15.) So what made XBLIG so special?
Xbox Live Indie Games was an amazing stepping stone for anyone whether it be a hobbyist or professional to get recognition and allow us to setup great deals and show off our work and talents. For the first time ever, anyone with the ambition and drive to create could publish their work on a major console platform. The "barrier to entry" was lower which raised more possibilities to have your work shown. Microsoft made this possible with the XNA Creator's Club Program.
16.) Were there any developers who found success on XBLIG?
Absolutely!
Check out these unique popular indie games in this video below.
17.) Are there any successful games made using MonoGame?
With thousands of titles shipped across desktop, mobile and console platforms, the MonoGame framework has been used in several popular games. The list continues to expand. Dust an Elysian Tail is an example of such a title originally coded in XNA 4.0 and then converted to MonoGame. Just to name a few, other games that have used MonoGame include Bastion, Towerfall: Ascension, Axiom Verge, Apotheon, and Square Heroes.
17.) Are there any successful games made using MonoGame?
With thousands of titles shipped across desktop, mobile and console platforms, the MonoGame framework has been used in several popular games. The list continues to expand. Dust an Elysian Tail is an example of such a title originally coded in XNA 4.0 and then converted to MonoGame. Just to name a few, other games that have used MonoGame include Bastion, Towerfall: Ascension, Axiom Verge, Apotheon, and Square Heroes.
18.) What are some solutions you would propose?
- Don't Get Rid of Xbox 360 Just Yet! At the very least, allow XBLIG developers, hobbyist and students to keep their dev kits for Xbox 360 to test their games locally on the platform. I for one still need the dev kit because I am learning optimization and performance programming. Like myself, this would be great for students as well to test the performance of their games on older hardware. I cannot express how extremely important this is. I realize XNA Connect requires a Creators Club membership. I propose that the membership should be removed in order for hobbyist, students and developers to test their game projects locally. They can also test online play by debugging their game projects to other Xbox 360 consoles with XNA Connect downloaded. So the games are not necessarily being published on Xbox Live Marketplace by letting people test their game projects locally.
- Revive the DreamBuildPlay competition for indies on Xbox One
One way for Microsoft to truly show that they support independent game developers is to bring back the Dream-Build-Play game development competition. Dream Build Play was an annual and global contest Microsoft created encouraging independent developers to create innovative projects initially with XNA Game Studio. They offered up to $75,000 in prizes. I propose that the competition should be brought back and open to all indie developers using the Xbox One dev kit. Only this time, Microsoft can let developers use their own tools and middle-ware of choice besides XNA. Like the "good old days" Microsoft can pick up to four winners to receive a share of $75,000 ($40,000, $20,000, $10,000 and $5,000 depending on their ranking) and an opportunity for an Xbox One publishing contract. - Developers can register for free at the Dream Build Play website. Once registered, they will have a deadline to submit their playable projects to the contest. After entry period closes, the competition judges can review submissions and choose their top 20 favorites. The final four prize-winning games will be posted later. Who knows, Microsoft might could propose more than four winners because they might struggle making up their minds. By reviving this game development competition, it will help independent developers (especially those in the top 20) earn more exposure they need. Bringing back this competition will not only make Microsoft look good, but also indie game developers looking to get their foot in the door and a low-barrier entry into the game industry. Dream Build Play would help indie developers build up experience and to use their game projects as a great addition to their portfolios.
- (Update: See blog post 49! My wish has been granted - the Dream Build Play game development competition has returned)
19.) Are you competing with other popular major game companies and titles like Call of Duty?
I was never making a Call of Duty or something the size and complexity of Portal or Skyrim. I have to be realistic and not overly ambitious. I must consider the fact that I am one person and that those games were created with large teams of people and million dollar budgets. Early on, I was planning on competing with the other Xbox Live Indie Games. At the time, I chose this route because it seemed realistic in terms of my competition and to also build up more experience. My first game I actually plan on publishing will not be something overly complex like an MMO, or something that requires huge amounts of artwork and story. I like FPS games and I started making one in XNA out of curiosity and to see if it were possible at the time. After what I've accomplished thus far, now I am currently focused on finishing some games, although my first game projects are very small. With my first game, I knew there might be many bugs and glitches. Xbox Live Indie Games was a great option because they allowed game updates. This would allow me to learn from my mistakes, fix them and create patches. My goal now is to enter my game(s) into indie game competitions starting out after some bugs have been fixed. This will help my game(s) get more noticed, possibly promoted and make more of a profit for Steel Cyclone Studios. In all honesty, I am not trying to compete with anyone else. I am running my own race. I am in competition with myself and aimed to improve by becoming better than I was.
20.) How do you plan on funding your games in development?
Currently I am working on a unique strategy to fund my game partly with the gaming community. For now, once my first game is near completion, I am considering creating a Kickstarter page for it. Overall, my hope is that I won't have to.
21.) What does the future hold for Steel Cyclone Studios and the Cyclone Game Engine?
Steel Cyclone Studios can go anywhere with the help of the community. The community is more powerful than any game publisher and through their support my crazy ideas can take off. As of right now, part of the success of my projects simply depends on interest. Steel Cyclone Studios was founded on the dream that anyone with a great idea for game, and the ability and will to conceptualize it, can approach the community and find out if there's and interest and a market for their project. There's an old fashion notion to it. Two guys in basement asking friends and fools for money to develop the game of their dreams. Steel Cyclone Studios starting from nothing more than that. Only now, friends and family can be anyone in world who shares the vision to make a great game.
Open-Source
After I have a few games released and the Cyclone Game Engine is further developed, I plan on making it available to other hobbyist and developers for their own projects. The game engine is not perfect by any means. As of right now, the Cyclone Game Engine is in its infancy stages of development. It would be awesome to see how others will use this tool; possibly in ways I never thought of or imagined.
21.) What does the future hold for Steel Cyclone Studios and the Cyclone Game Engine?
Steel Cyclone Studios can go anywhere with the help of the community. The community is more powerful than any game publisher and through their support my crazy ideas can take off. As of right now, part of the success of my projects simply depends on interest. Steel Cyclone Studios was founded on the dream that anyone with a great idea for game, and the ability and will to conceptualize it, can approach the community and find out if there's and interest and a market for their project. There's an old fashion notion to it. Two guys in basement asking friends and fools for money to develop the game of their dreams. Steel Cyclone Studios starting from nothing more than that. Only now, friends and family can be anyone in world who shares the vision to make a great game.
Open-Source
After I have a few games released and the Cyclone Game Engine is further developed, I plan on making it available to other hobbyist and developers for their own projects. The game engine is not perfect by any means. As of right now, the Cyclone Game Engine is in its infancy stages of development. It would be awesome to see how others will use this tool; possibly in ways I never thought of or imagined.
If you have any other questions you would like to ask that aren't listed above, click on the Contact tab. Thanks for reading and I hope you continue supporting Steel
Cyclone Studios.