Panda3D - review of an open source game engine
In this article, I am going to introduce you to a free and open source game engine called Panda3D. It is a simple game engine but yet powerful enough to create amazing looking 3D games. Read on to know about the features of Panda3D as well as the pros and cons of it.
IntroductionGames are interesting to play, but some are also interested in creating those games. Well, I think you are such a person. So, to create a game you need to have some game engine that does the underlying machine level work for your game. Panda3D is an amazing game engine that can do the job for you. The best part about Panda3D is that it is free to download and use even for commercial purposes which means you can sell your games online. There are a number of game engines in the market but Panda3D is a game engine that supports C++ and Python programming languages as well. So, let's get right into the features of Panda3D.
FeaturesThe following are the features of the open source game engine Panda3D:
- Graphics API and GUI: The popular graphics libraries like OpenGL and DirectX are supported by Panda3D. High-level shader languages like Cg, GLSL are accessible to the user right away. It also supports render-to-texture and multiple render targets. These capabilities can help you create 3D games with stunning graphics.
There is also a set of tools for creating your own graphical interface for the game. It supports native DirectGUI system. It also has support for the libRocket GUI library which can help you to create the GUI components that your game needs like scores, main menu, finished screen, etc.
- 3D Pipeline: Panda3D supports most of the 3D modelling formats like collada, x, lwo, obj, dxf, wrl, fit. EGG exporters are also present for Maya, Blender, and 3Ds Max. You can also convert between different 3D formats. This feature can help users coming from different 3D modelling backgrounds to get started with Panda3D without any hesitation.
- Audio: Audio is an unavoidable component in any game. So, Panda3D supports OpenAl audio engine. It also supports FMOD audio engine and Miles audio engine. These can help you create the best audio for your game.
- Physics: 3D games require powerful physics simulation to make the gamer get immersed into the game. This is the reason why Panda3D has a simple built-in physics engine. It also supports other physics engines like Bullet, ODE, PhysX. Using these engines will make your game look real.
- Particle Effects: Particles can enhance the look of the game even more. This game engine has a particle editor included with it for creating and editing particle effects. The data of the particle effects are stored in text files. You can get as creative as you want with different particles like smoke, grain, etc.
- AI: Artificial intelligence is required in your game if you are planning to create games where the gamer plays with the computer. This is the reason why Panda3D has a simple AI library called "PandaAI". This AI includes path finding, seek, flee, pursue, evade, wander, flock, obstacle avoidance, path following and more.
- Performance Monitoring: Your game may run well on a high-end computer that you are using to create the game. But it may not necessarily run that smoothly on other average systems. So, you must always do performance monitoring to see if your game bottlenecks in CPU or GPU. There are many different options in performance monitor where you can monitor the CPU time which is divided into more than 250 categories, count meshes, polygons, and textures of the models. There are also tools to merge textures and thus minimize texture switches.
- Mature System: It can be used to create package of your finished game. It contains everything that your game needs to run including fonts, and many other essential files.
Pros and consThe following are the pros and cons of Panda3D:
- Panda3D has a documentation which includes Python reference and C++ reference as well which you can use to learn about the methods and classes that are used for each task. There are also videos and sample applications that you can refer when you create your own games.
- It is open source and free to use even commercially. Since it is open source you can even contribute your new feature to the game engine. Also, you can get to know how things are really working under the hood.
- It is easy to get started. Just download the executable from the official website for your platform. No external dependency is needed except working graphics driver. The sample programs can run right from the start menu without even the need for compilation.
- The community is not as large as some of the popular game engines communities out there.
ConclusionPanda3D is a great place to get started with game development if you have a fair amount of experience with programming. With all the features it has I don't think there is any reason why you should stop from trying it once. The core areas of the game engine is written in C++ and so it is performance guaranteed. So, just go ahead and start writing your game using Pand3D.