|
A Message from FRB's Founder
Thanks for stopping by FlatRedBall. We are a community dedicated for game developers and gamers. We provide both original games and an efficient, stable, easy to use game engine for anyone who is looking to get into game development for the first time or is looking for an alternative to learning another (harder to use) game engine or DirectX.
What is a Game Engine?
I've heard many valid answers to this question, but I prefer to think of a game engine as a set of specific tools. If you were to build a car, you'd need a lot of tools. It is possible - although not very efficient or easy - to build a car with general-purpose tools. Even doing so, you'd need to order car parts to assemble the car. But of course, the first cars were built before the first assembly lines, so you can build cars at a "low level".
Similarly, you can develop games at a "low level" using general purpose tools like a programming language and some libraries for displaying graphics on the screen. In many cases, these tools have become advanced enough that creating a game using them isn't that difficult. For example, picking up a DirectX book and working through it and then developing a game can be challenging, but not impossible.
To return to the car analogy, as time has passed, car manufacturers have developed tools specialized for building cars. Car factories have countless machines, each doing their specific job in building the car. When we consider this factory as a whole, we could consider it as a "Car Building Engine". With a little tweaking and modifying, the car factory can produce a variety of cars; furthermore, the factory can be modified so that different cars can be produced as newer models are developed.
A game engine is a collection of tools, each of which helps create, initialize, or manage particular parts of the game. There may be a component for handling input (keyboard, mouse, joystick), a component for drawing things to the screen, and a component for managing in-game objects (movement, collision, physics, AI). These tools combined create a game engine. With some tweaking, modification, and application, the game engine can be used to create an infinite number of games (theoretically, of course).
The above explanation may skip over some details, but the general idea is there. The game engine is your set of specific tools which are designed for efficient game development. Or in more practical terms, a game engine is something that makes game development easier and faster.
Why use the FlatRedBall Engine?
Originally, the FlatRedBall engine was not designed for distribution. It was a set of files used by one person to simplify the initialization of DirectX. The philosophy of simplicity followed in the creation of this engine led to extremely rapid game development. As the engine developed, it became evident the game development community would benefit from the engine's distribution.
Since the engine has always focused on the game developer rather than the raw technology, it is the most intuitive and easiest game engine to program with. Our primary concern is the developer; game development is difficult enough without having to wrestle to get an engine to do what you want it to do. You will find that the FlatRedBall Engine is easy to get into and easy to use.
Many game engines tend to shine at a particular skill level and project size. Some drag-and-drop game development software simplifies programming by eliminating some or all of the programming, but in doing so, limits the developer in attempting more difficult projects. Other software focuses on advanced graphics and features, but can confuse many programmers who are just starting out. The FlatRedBall Engine stretches to be an effective game development solution for all skill levels and sizes of games. As stated in the tutorials, "the first two lines of code that you will write will produce an object on screen, and the third line will move the object." However, the engine uses many advanced programming features allowing for experienced programmers to develop powerful graphical applications and games.
Similarly, small games can be developed easily and efficiently; the engine provides a starting template so that users can get into programming right away. However, the full template is exposed allowing for modifications and extensions such as networking and 3D graphics. Furthermore, the FlatRedBall Development Kit (FRBDK) is a set of graphical applications used to create files which can be easily loaded in code to create levels and animated characters.
However, no engine is complete without support. There are many ways to get help. First, we provide a series of tutorials that introduce many of the features in the engine. A growing list of articles cover some of the finer points to help further you knowledge. Our forum is also a great place to turn to for assistance. We actively moderate the boards and any question will be answered generally within a few hours. Finally, the FlatRedBall Engine is also thoroughly covered in a comprehensive documentation file. Here you can find even more detail about every function in the entire engine.
Sounds Great, But How Do I Start?
There are a number of ways to get involved in game development. If you are not a programmer but have other talents such as developing visual arts, music, or sound effects, feel free to post on our Project Proposals forum. Include some samples of your work and you will surely get an interested programmer or two. This forum can also be used for programmers looking to build a team.
If you are looking to get into the programming side, there are a few things that you need to do before starting with the FlatRedBall engine.
1. First, you'll have to decide on a language and IDE (Integrated Development Environment - what you actually program in). The engine is built in C# so it can be used from any .NET programming language. The two most common are C# and VisualBasic.NET. Currently, we focus on the C# programming language, so that is a good choice if you don't have any previous programming experience. You can either purchase an IDE like Visual Studio or you can download free ones in our Links page.
2. Learn the language and IDE. This takes time and practice. We also link to programming tutorials in our Links page.
3. Download DirectX. Again, this can be found in our Links page.
4. Download the template or engine. If you are using Visual Studio, the template can be opened simply by clicking on the solution file. Otherwise, you will have to create a project in your particular IDE with the template files. The latest engine can be found in the FRB Engine thread.
The list is by no means a quick checklist, especially #2. It's best to work through the C# tutorials in the links page and familiarize yourself with the language and IDE before moving onto game development. It will pay off in the long run.
Let's Make Some Games!
Considering all of the software we provide and link to is completely free, you have all of the tools required to make the games you've always dreamed of making. Now the only think keeping you from starting is this lengthy document, so I'll end it now and wish you good luck!
--Vic--
|