Game Engines Using Python

Game Engines Using Python 3,9/5 4832 votes

ZiPhone Zibri's tool to unlock, jailbreak, and activate. It makes use of the Ramdisk Hack and uses geohot's BL4.6 exploit to downgrade the baseband bootloader and subsequently unlock the baseband. Tool ziphone download. Download ZiPhone. ZiPhone is a free, open source and all-in-one jailbreak / unlocking tool for iPhone and iPod Touch. The latest version of the unlocking software supports the new v2.0 iPhone OS and more international networks.

Game engines are tools available for game designers to code and plan out a game quickly and easily without building one from the ground up. Whether they are 2D or 3D based, they offer tools to aid in asset creation and placement.

The SpriteCraft is small and lightweight x86/DirectX 2D game engine for shareware/freeware game development. The engine distributed for free without any fee. You may use SpriteCraft in wide range projects without any fake restrictions. Freeware, but not open source, Windows only It’s distributed in form of a dll which contains python 2.4. The players in this game can partake in diverse in-game tasks and activities, such as trading, mining, manufacturing, piracy, investigation, and combat (both player versus player and player versus environment). Both the server and the client program for Eve Online are developed using Stackless Python, a variation of the Python programming language. Sep 13, 2018  September 2018 In this chapter of our ongoing Game Engines by Language series, today we are going to look at the game engines, both 2D and 3D, available for Python. If you are interested we have already created versions for C , C#, Lua, JavaScript and the Haxe programming languages.

  1. If you're only interested in game development, then I'd recommend Godot (its scripting language is similar to Python), since it's more feature rich and nicer to use than all the Python frameworks and engines, and I heard some people even prefer it over Unity for 2D games.
  2. Game development in Python currently is a bit underwhelming compared to the other options available for other languages (Unity3D/2D, MonoGame, the non-python versions of Cocos2D). That being said, Cocos2D is probably the most mature of the Python game libraries, supporting things like tilemaps from Tiled out of the box. The documentation is.
  3. Cocos2d (Python), Pygame, and KivEnt are probably your best bets out of the 6 options considered. 'Allows for easy debugging' is the primary reason people pick Cocos2d (Python) over the competition. This page is powered by a knowledgeable community that helps you make an informed decision.
  4. It is the most popular, and portable game library for python, with over 1000 free and open source projects that use pygame to look at. The free books 'Program Arcade Games with Python and Pygame', 'Making Games with Python & Pygame' cover the basics of the Pygame library and offers the source code for several popular video game clones.

Engines[edit]

Note: The following list is not exhaustive. Also, it mixes game engines with rendering engines as well as API bindings without any distinctions.

NamePrimary programming languageScriptingCross-platform2D/3D orientedTarget platformNotable gamesLicenseNotes and references
4A EngineC++Yes3DWindows, OS X, Linux, PlayStation 3, PlayStation 4, Xbox 360, Xbox OneMetro 2033, Metro: Last Light, Metro ExodusProprietary
A-Frame (VR)HTML, JavaScriptJavaScriptYes3DCross-platformA-Painter[1]MITOpen source Entity component systemWebVR framework
Adventure Game InterpreterC styleYes2DDOS, Apple SOS, ProDOS, Classic Mac OS, Atari TOSListProprietary
Adventure Game StudioC++AGSScriptYes2DWindows, LinuxChzo Mythos, BlackwellArtistic 2.0Mostly used to develop third-person pre-renderedgraphic adventure games, one of the most popular for developing amateur adventure games
AlamoYes3DWindows, OS X, Xbox 360Star Wars: Empire at War, Star Wars: Empire at War: Forces of Corruption, Universe at War: Earth AssaultProprietary
Aleph OneC++Lua, Marathon markup languageYes2.5DWindows, Linux, OS XAleph One (Marathonremake)GPLFPS engine
AllegroCAda, C++, C#, D, Lisp, Lua, Mercury, Pascal, Perl, Python, SchemeYes2DWindows, Linux, OS X, iOS, Android, Raspberry Pi, DOSFactorio[2]zlibGraphics, audio, input
Antiryad GxC, AssemblerC, C++, GelYes2D, 3DWindows, DOS, Mac OS, Linux, iOS, Android, AmigaOS, AROS, MorphOS, NACLProprietary
AnuraC++, FFL[3]FFL[3]Yes2DWindows, Linux, OS X, iOS, Android, BlackBerry 10Frogatto & Friends, Argentum Age[4], Cube Trains[5]zlib[citation needed], feature freeze
AnvilC++, C#Yes3DWindows, PlayStation 3, PlayStation 4, PlayStation Vita, Wii U, Xbox 360, Xbox OneListProprietary
AppGameKitC++, BASICC#, C++, AGK BASICYes2D, 3DWindows, Mac, iOS, Android, HTML5, Raspberry PiEchoes, Driving Test Success Apps, SquashiesProprietary
Ardor3DJavaYes3DCross-platformzlibFork of jMonkeyEngine 2.0
Aurora toolsetC++NWScriptYes3DWindows, Linux, OS XNeverwinter NightsProprietary
BigWorldPythonYes3DWindows, Linux, Xbox 360, PlayStation 3ListProprietary
Blend4WebJavaScript, Python, C, C++JavaScriptYes3DWebGL, Windows, Linux, OS X, iOS, AndroidExperience Curiosity, Petigor's Tale, Back to the Middle AgesGPLv3 or commercialGame content, including graphics, animation, sound, and physics, is authored in the 3D modeling and animation suite Blender[6]
BlenderC, C++PythonYes2D, 3DWindows, Linux, OS X, SolarisYo Frankie!, Sintel The Game, ColorCubeGPL2D/3D game engine packaged in a 3D modeler with integrated Bullet physics library[7][8]
Bork3D Game EngineC++Yes3DIOS, OS X, WindowsListBSD
BRenderYes3DWindows, DOS, PlayStationCarmageddon, FX Fighter, I-War (Independence War).Proprietary
Build engineCYes2.5DWindows, Linux, OS X, DOSDuke Nukem 3D, Shadow Warrior, Blood, Redneck RampageCustom, free non-commercial useFPS engine; 2.5D, 2D grid base geometry
BuildboxC++Yes2DWindows, OS X, iOS, AndroidBall Jump, Sky, The Line Zen, PhasesProprietaryDrag and drop game builder without scripting
C4 EngineYes3DPlayStation 4, PlayStation 3, Windows, OS X, Linux, iOSListProprietaryRetired, no longer available for licensing[9]
Cafu EngineC++LuaYes3DWindows, Linux, OS XGPL or ProprietaryIncludes map editor and networking[10]
Chrome EngineC++Yes3DWindows, Linux, PlayStation 4, Xbox OneListProprietary
ClanLibC++Yes2.5DWindows, Linux, OS Xzlib
ClausewitzC++Yes3DWindows, OS X, LinuxAll Paradox Development Studio games since 2007Proprietary
Clickteam FusionYes2DWindows, iOS, Android, HTML5, Adobe FlashFive Nights at Freddy'sProprietary
Cocos2d, Cocos2d-x, Cocos2d-html5C++, Python, Objective-C, JavaScriptJavaScript, Java, LuaYes2D, 2.5D, 3DWindows, Linux, OS X, iOS, Android, BlackBerry, TizenHardest Game Ever 2, DQMSL, Tiny Village, Badland, Small Street, Tiny Tower, Pocket Planes, Hill Climb, Star Thief, Geometry DashMITAndroid target binds to Java; iOS target uses Objective-C
CodeaLuaNo2DiOSCargo-BotApache 2.0
ColdstoneYes2DMac OS 9, OS X, WindowsPillars of GarendallProprietary
ConstructC++JavaScript, Event SystemYes2DWindows, OS X, Wii U, HTML5 capable internet browsersProprietary, GPL Classic version
CopperCubeYes3DWindows, OS X, Android, WebGL, Adobe FlashProprietary
Core3DObjective-CYes3DWindows, Linux, OS X, iOSCoreBreach3D Engine MIT, Source Code GPL v2[11]
CoronaLuaYes2DiOS, Android, Kindle, Windows Phone 8, Apple TV, Android TV, OS X, WindowsProprietary
CPAL3DNo3DWindowsMemento MoriProprietary
Creation EngineC++PapyrusYes3DWindows, PlayStation 3, Xbox 360, Xbox One, PlayStation 4The Elder Scrolls V: Skyrim, Fallout 4, Fallout 76Proprietary
CryEngineC++Lua, C#Yes3DWindows, OS X, Linux, PlayStation 3, PlayStation 4, Wii U, Xbox 360, Xbox One, iOS, AndroidListProprietary
Crystal ToolsYes3DPlayStation 3, Xbox 360, Windows, WiiListProprietary
Crystal SpaceC++Java, Perl, PythonYes3DWindows, Linux, OS XKeepsake, The Crystal Scrolls, Yo Frankie!LGPL
CubeC++Yes3DWindows, Linux, OS XAssaultCube, CubezlibPrior generation (means it has a successor), 2D grid-based system, optimized for outdoor not indoor maps
Cube 2: SauerbratenC++CubeScriptYes3DWindows, Linux, OS XCube 2: Sauerbraten, Red EclipsezlibEfficient 6-directional height map based geometry (versus traditional Polygon soup model), hence the name Cube, FPS engine
Dagor EngineYes3DWindows, PlayStation 4, PlayStation 3, Xbox 360, Linux, OSXListProprietary
Dark EngineC++No3DWindowsThief: The Dark Project, System Shock 2, Thief II: The Metal AgeProprietaryAdvanced AI and sound features (full control of sound propagation). Edited with DromEd.
DecimaNo3DPlayStation 4Death Stranding, Horizon Zero Dawn, Killzone Shadow Fall, Until Dawn, Until Dawn: Rush of BloodProprietary
DefoldLuaLuaYes2DiOS, Android, HTML5, Windows, OSX, LinuxBlastlands, Blossom Blast Saga, Pet Rescue Puzzle Saga, Family Age, Hammerwatch ColiseumProprietary
Delta3DC++PythonYes2.5DCross-platformLGPL
Dim3C++JavaScriptYes3DCross-platformMIT
DimensioneX Multiplayer EngineJavaJava, VBScriptYes2.5DCross-platformUnderworld OnlineGPLProduces browser games with pseudo-3D views; games can be made into Facebook Apps; intended for beginners
DX StudioC++JavaScriptNo3DWindowsproprietary, Freeware
Dunia EngineC++Yes3DWindows, PlayStation 3, Xbox 360, PlayStation 4, Xbox OneListProprietaryBased on CryEngine
egoYes3DPlayStation 3, Windows, Xbox 360, OS X, Wii, Wii U, Xbox One, PlayStation 4ListProprietaryPrimarily used for racing games
Electron toolsetC#NWScriptNo3DWindowsNeverwinter Nights 2Proprietary
Elflight EngineJavaYes3DCross-platformProprietaryTargeted for web based games
EnforceNo3DWindowsShade: Wrath of Angels, Alpha Prime, Carrier Command: Gaea Mission, Take On MarsProprietary
Enigma EngineYes3DWindows, OS X,Blitzkrieg, Blitzkrieg 2Proprietary
Esperient CreatorLangLisp, CScriptNo3DWindowsProprietary
Essence EngineNo3DWindowsListProprietary
EuphoriaYes3DWindows, PlayStation 4, Xbox One, PlayStation 3, Xbox 360, iOS, AndroidProprietary
ExultC++Yes2DWindows, Linux, OS X, BSDGPLFree software re-implemented Ultima VII game engine
Flare3DActionScript 3Yes3DWeb, Windows, iOS, Android, BlackBerryListProprietary
FlixelActionScriptYes2DVarious games by Gregory WeirMITBoilerplate code for Flash games
Forgelight EngineNo3DWindowsFree Realms, PlanetSide 2, Landmark, EverQuest Next, H1Z1: Just Survive, H1Z1: King of the KillProprietary
Fox EngineYes3DWindows, PlayStation 3, PlayStation 4, Xbox 360, Xbox OneListProprietary
FreescapeFreescape Command LanguageYes3DAmstrad CPC, ZX Spectrum, IBM PC, Commodore 64, Commodore Amiga, Atari STListProprietary
FrostbiteC++Yes3DWindows, PlayStation 3, PlayStation 4, Xbox 360, Xbox OneListProprietaryUsed originally for Battlefield (series) video games
Future PinballNo3DWindowsFreeware
GamebryoC++Yes3DWindows, PlayStation 3, PlayStation 4, Xbox 360, Xbox OneListProprietary
Game EditorCustom (C styled)Yes2DiPhone, iPad, OS X, Windows (95-Windows 7), Linux, Windows-based smartphones, GP2X, Pocket PCs, Handheld PCsGPL, Proprietary
GameMaker StudioGMLGame Maker Language, JavaScript, GLSLYes2D, 3DWindows, Windows 8, Xbox 360, Xbox One, PlayStation 3, PlayStation 4, PlayStation Vita, OS X, Ubuntu, HTML5, Android, iOS, Windows Phone 8, Tizen, Amazon Fire TV, Nintendo SwitchList of GameMaker Studio gamesProprietaryLimited 3D abilities
GamePlay3DC++LuaYes3DWindows, Linux, OS X, iOS, BlackBerry 10, AndroidApache 2.0Aimed at the indie game developer ecosystem, similar features to cocos2d-x
GameSaladLangScriptYes2DiOS, AndroidProprietary
GamestudioC-Script, Lite-CNo3DWindowsListProprietaryGames can be published royalty-free
GamvasJavaScriptJavaScriptYes2DHTML5MITHTML5 canvas game engine with Box2D integration
GodotC++GDScript, C#, Visual Script, GDNativeYes2D, 2.5D, 3DWindows, macOS, Linux, UWP, iOS, Android, HTML and Web AssemblyMITOpen source. 3.0+ adds C# scripting plus other languages via modules and GDNative. PBR and Global Illumination.
Gold BoxAssembly, Pascal, C, C++Yes2DAmiga, Apple II, Atari ST, Commodore 64/128, DOS, Macintosh, Nintendo Entertainment System, PC-9801, Sega GenesisPool of Radiance, Gateway to the Savage Frontier, Champions of Krynn, Buck Rogers: Countdown to Doomsday, Neverwinter Nights, Spelljammer: Pirates of RealmspaceProprietarySSI's engine for Advanced Dungeons & Dragons role-playing games
GoldSrcC, C++, AssemblyYes3DWindows, OS X, Linux, PlayStation 2, Xbox, DreamcastHalf-Life, Team Fortress Classic, Half-Life: Opposing Force, Counter-Strike, Ricochet, Deathmatch Classic, Half-Life: Blue Shift, Half-Life: Decay, Day of Defeat, Counter-Strike: Condition Zero, Counter-Strike Neo, Counter-Strike OnlineProprietaryHighly modified Quake engine
HeroEngineC++, C#HeroScript LanguageNo3DWindowsStar Wars: The Old RepublicProprietary
Horde3DC++Yes3DWindows, LinuxEPLSmall 3D rendering engine for large crowds of animated characters
HPL EngineC++AngelScriptYes3DWindows, Linux, OS XPenumbra: Overture, Penumbra: Black Plague, Penumbra: Requiem, Amnesia: The Dark Descent, Amnesia: A Machine for Pigs, SomaProprietary, GPL version 1Cross-platform, compatible with OpenGL, OpenAL, and Newton Game Dynamics libraries; defining features include ability for advanced object interaction via use of Newton's physics code
id Tech 1 (Doom)CACSYes2.5DWindows, Linux, OS XDoom, Doom II, Heretic, Hexen, Strife, Chex QuestGPL2D-based level geometry, sprites, and particles, uses clever methods to give illusion of 3D depth
id Tech 2 (Quake)CQuakeCYes3DWindows, Linux, OS XQuakeGPLFirst true 3D id Tech engine
id Tech 2 (Quake II)CCYes3DWindows, Linux, OS XQuake IIGPLAlso termed the Quake II engine
id Tech 3CCYes3DWindows, Linux, OS XQuake III ArenaGPLAlso termed the Quake III engine
id Tech 4C++C++ via DLLsYes3DWindows, Linux, OS XDoom 3, Doom 3 BFG Edition, Quake 4, Prey, Enemy Territory: Quake Wars, Wolfenstein, BrinkGPLAlso termed the Doom 3 engine; features advanced: lighting, shadows, interactive GUI surfaces
id Tech 5C++, AMPL, Clipper, PythonScriptYes3DWindows, OS X, Xbox 360, Xbox One, PlayStation 3, PlayStation 4Rage, Wolfenstein: The New Order, Wolfenstein: The Old Blood, The Evil WithinProprietaryFirst id Tech engine to feature MegaTexture technology, starting with Rage
id Tech 6C++Yes3DWindows, Xbox One, PlayStation 4, Nintendo SwitchDoom (2016), Wolfenstein II: The New ColossusProprietary
id Tech 7C++Yes3DWindows, PlayStation 4, Xbox One, Nintendo SwitchDoom EternalProprietary
iMUSEN/AN/AIntegrated with other enginesMonkey Island 2: LeChuck's Revenge, all LucasArts adventure games afterwardsProprietaryDynamic music system
Infinity EngineYes2DWindows, Mac OS, OS X, AmigaOS 4Baldur's Gate, Planescape: Torment, Icewind Dale, Baldur's Gate II: Shadows of Amn, Icewind Dale IIProprietary
IrrlichtC++C++Yes3DWindows, Mac OS, Linux, Windows CEList of Irrlicht gameszlibOpen source, audio with extension
ioquake3CYes3DWindows, Linux, OS XUrban TerrorGPL
Iron EngineNo3DWindowsSins of a Solar Empire, Sins of a Dark AgeProprietary
IW engineC++Yes3DWindows, OS X, PlayStation 4, PlayStation 3, Xbox One, Xbox 360, Wii U, WiiCall of Duty seriesProprietaryOriginally built from id Tech 3
JadeC++Yes3DCross-platformListProprietary
Jake2JavaYes3DCross-platformGPLJava port of Quake II game engine
Java3DJavaYes3DCross-platformBSDCommunity-centric project. Last version 1.6.0 (April 2015). Used by many schools as part of course work
JediCYes2.5DDOS, WindowsStar Wars: Dark Forces, OutlawsProprietaryRumored to have been reverse-engineered from Doom engine
jMonkeyEngineJavaYes3DCross-platformBSDCommunity-centric project, used by several commercial game studios
KineticaNo3DPlayStation 2ListProprietary
Kivy (framework)PythonKvYes2.5DWindows, Linux, OS X, iOS, AndroidDeflectouch, FishLifeMITFor rapid development, can make multi-touch apps
LayaAirActionScript 3, JavaScript, TypeScriptYes2D, 3DWebGL, Windows, Linux, OS X, iOS, AndroidGPL or commercial2D/3D game engine and also VR mode, provide free tools to convert 3d assets content from FBX files or Unity scene.
LeadwerksC++LuaYes3DWindows, LinuxHoodwink, Rogue SystemProprietary
LibGDXJavaYes2D, 3DGNU/Linux, Windows, OS X, iOS, Android, Java applet, WebGLIngressApache 2.0Java game development framework, provides a unified API that works across all supported platforms
LithTechYes3DCross-platformListProprietary
LumberyardC++LuaYes3DPlayStation 4, Xbox One, WindowsProprietaryThe software is free to download and use however is works closely with amazon services.
Luminous StudioYes3DPlayStation 4, Xbox One, WindowsFinal Fantasy XVProprietary
LyNYes3DCross-platformListProprietaryIntended to scale effectively on 7th and 8th generation consoles
LÖVELuaLuaYes2DiOS, Android, Windows, Linux, OS X, NetBSD, FreeBSD, OpenBSD, Solaris,and all platforms supported by pkgsrc[12]Mari0, Journey to the Center of Hawkthorne, Move or Die[13]zlib[14]
M.U.G.E.NCYes2DLinux, DOS, Windows, OS XFreewareUsed Allegro initially, now uses on SDL
MarmaladeC++, Lua, Objective-C, HTML5Lua, 2DKitYes2D, 3DiOS, Android, BlackBerry, Windows 10, Amazon, OS X, Windows, Tizen, Roku, ChromecastList of Marmalade GamesProprietaryHigh-performance, cross-platform, with authoring tools and asset store
Moai SDKC++LuaYes2DWindows, OS X, iOS, Android, LinuxCrimson Steam Pirates, Broken Age, Lost in ParadiseCPAL
MT FrameworkC++Yes3DPlayStation 3, Xbox 360, Windows, Wii, Wii U, Nintendo 3DS, PlayStation VitaListProprietaryIntended to be 7th generation console engine, replaced by Panta Rhei
MonoGameC#C#Yes2D,3DWindows, OS X, Xbox One, PlayStation 4, PlayStation Vita, Windows Phone, iOS, Android, Windows Store, Ouya, BSDSkulls of the Shogun, Bastion, TowerFall, Transistor (video game), Fez (video game), Axiom VergeMicrosoft Public
Nebula EngineNo3DWindowsDrakensang: The Dark Eye, Drakensang: The River of TimeProprietary[citation needed]
NScripterNo2DWindowsFreeware
Odyssey EngineYes3DWindows, OS XStar Wars: Knights of the Old Republic, Star Wars: Knights of the Old Republic II: The Sith LordsProprietary
OGREC++C++Yes3DLinux, Windows (all major versions), OS X, NaCl, WinRT, Windows Phone 8, iOS and AndroidTorchlightMIT3D rendering engine used by several games
OHRRPGCEFreeBASICHamsterSpeakYes2DWindows, OS X, Linux, AndroidWandering HamsterGPLRole-playing game creation system; use of scripting is optional
ONScripterNScripterNScripterYes2DWindows, OS X, Linux, Dreamcast, PSP, iOSNarcissu, Saya no Uta, TsukihimeGPLUsed to develop visual novels and first-person adventure games
OpenClonkC++C4ScriptYes2.5DWindows, Linux, OS XOpenClonkISCEngine for 2D action/strategy platformers with 3D graphics
OpenSimulatorC#LSLYes3DWindows, Linux, OS X, FreeBSDBSDServer platform to host virtual worlds, compatible with Second Life clients
ORXC/C++CustomYes2.5DWindows, Linux, OS X, iOS, AndroidLe Magasin des Suicideszlib3D accelerated
Panda3DC++, PythonPythonYes3DWindows, Linux, OS X, iOSToontown Online, Pirates of the Caribbean OnlineBSD
Panta RheiYes3DPlayStation 4, Xbox One, WindowsDeep DownProprietarySuccessor to MT Framework for 8th generation consoles
PhaserJavaScriptJavaScriptYes2DCross-platformMIT
PhyreEngineC++Yes3DPC, PlayStation Portable, PlayStation Vita, PlayStation 3, PlayStation 4Listproprietary, Freeware
Pie in the SkyCYes2.5DDOS, Windows, OS XListProprietary
PlayCanvasJavaScriptJavaScriptYes3DWindows, Linux, OS X, iOS, HTML5, AndroidSwoop, Zombie Pac-manMITUsers can work on game at the same time via online browser and publish to multiple platforms; engine uses WebGL and includes physics
PlayNJavaYes2DiOS, Android, HTML5, Windows, LinuxAngry Birds ChromeApache 2.0
PLIBC++Yes3DWindows, Linux, OS XLGPL
PyrogenesisC++JavaScriptYes3DWindows, Linux, OS X0 A.D.LGPLDesigned for RTS games
QYes3DWindows, OS X , Linux, PS2, PS3, WiiProprietary
QfusionC/C++AngelScriptYes3DWindows, Linux, OS X, AndroidWarsowGPL
Real VirtualityC++Yes3DWindows, XboxARMA 2, ARMA 3, DayZProprietary
REDengineC++Yes3DWindows, OS X, Xbox 360, Xbox One, PlayStation 4The Witcher 2: Assassins of Kings, The Witcher 3: Wild HuntProprietary
Ren'PyPythonPygameYes2DWindows, OS X, Linux, Android, OpenBSDAnalogue: A Hate Story, Jisei, Katawa Shoujo, Doki Doki Literature Club!MITUsed to develop visual novels and first-person adventure games
RenderWareRWXYes3DWindows, Mac OS, Nintendo GameCube, Wii, Xbox, Xbox 360, PlayStation 2, PlayStation 3, PlayStation PortableList of RenderWare gamesProprietaryRenderWare script available in version 2 only
Rockstar Advanced Game Engine (RAGE)Yes3DWindows, PlayStation 3, PlayStation 4, Wii, Xbox 360, Xbox OneListProprietary
RPG MakerRuby, JavaScriptYes2DPC-8801, MSX2, PC-9801, Super Famicom, Windows, Sega Saturn, PlayStation, Game Boy Color, PlayStation 2, Game Boy Advance, Nintendo DSAlpha Kimori, Ao Oni, Aveyond series, Barkley, Shut Up and Jam: Gaiden, Corpse Party, Eternal Eden, Laxius Force, One Night Trilogy, Super Columbine Massacre RPG!, To the Moon, Yume NikkiProprietaryGame creation system, allows users to build their own role-playing games
SAGEYes3DWindows, Macintosh, Xbox 360, PlayStation 3ListProprietaryUsed for real-time strategy games
SCUMMYes2D3DO, Amiga, Apple II, Atari ST, CDTV, Commodore 64, FM Towns & Marty, Macintosh, Nintendo Entertainment System, DOS, Windows, Sega Mega-CD, TurboGrafx-16/PC EngineManiac MansionProprietaryFull name is Script Creation Utility for Maniac Mansion, from the first game it was used with; uses iMUSE and INSANE; ScummVM provides an open source re-creation
Shark 3DC++PythonYes3DWindows, Xbox, Xbox 360Dreamfall: The Longest JourneyProprietary
ShiVaC++LuaYes3DWindows, OS X, Linux, iOS, Android, Windows Phone, BlackBerry, PlayStation 3, PlayStation 4, Wii, Xbox 360, Xbox One, WebGLPrince of Persia 2: The Shadow and the Flame (Mobile remake)Proprietary
Sierra's Creative Interpreter (SCI)Yes2DAmiga, Atari ST, Macintosh, PC-9801, IBM PCVersion list with gamesProprietary
Silent Storm engineNo3DWindowsSilent Storm, Night Watch, Hammer & Sickle, Day WatchProprietaryUsed for turn-based tactics games
SithCOGNo3DWindowsStar Wars Jedi Knight: Dark Forces IIProprietaryUsed as the basis of the GrimE engine
SnowdropC++Yes3DWindows, Switch, PlayStation 4, Xbox OneTom Clancy's The Division, South Park: The Fractured but Whole, Mario + Rabbids Kingdom Battle, Skull & BonesProprietary
SourceC++Squirrel, LuaYes3DWindows, OS X, Linux, PlayStation 3, Xbox, Xbox 360, AndroidHalf-Life 2, Counter-Strike: Source, Left 4 Dead, Portal, Team Fortress 2, others (list)ProprietaryThe SDK is bundled with many Source games
Source 2C++LuaYes3DWindows, OS X, Linux, Android, iOS[15]Dota 2 (port)[16], The Lab (limited), Artifact, Dota UnderlordsProprietaryThe first game using Source 2, Dota 2, was ported over from the original Source engine. One of The Lab's minigame Robot Repair uses Source 2 engine while rest of seven uses Unity's engine.
SpringC++C, C++, Java/JVM, Lua, PythonYes3DWindows, Linux, OS XBalanced Annihilation, Zero-KGPLRTS, simulated events, OpenGL
Starling FrameworkActionScriptYes2DWindows, OS X, GNU/Linux, iOS, AndroidAngry Birds Friends, IncredipedeBSD SimplifiedRecreates the traditional Flash display list architecture on accelerated graphics hardware
StencylHaxeHaxeYes2DFlash, HTML5, iOS, Android, Linux, OS X, WindowsProprietaryFree to publish to flash and HTML5. Subscription required for publishing to desktop or mobile.
Autodesk Stingray (Bitsquid)LuaYes3DWindows, Mac, Linux, IOS, Android, PlayStation 4, PlayStation 3, Xbox 360Proprietary
StepManiaC++LuaYes3DCross-platformIn the Groove, Pump It Up Pro, Pump It Up InfinityMITA rhythm video game and engine that was originally developed as a simulator of Konami's DDR
StratagusCLuaYes2DLinuxBos WarsGPLFor real-time strategy games
SunBurn XNANo3DXbox LiveAvaGlideProprietary
Three.jsJavaScriptJavaScriptYes3D, 2DHTML5, Windows, Linux, OS X, iOS, AndroidMIT
TOSHIYes3DWindows, Nintendo GameCube, Game Boy Advance, Nintendo DS, Wii, PlayStation 2, XboxJurassic Park: Operation Genesis, Nicktoons Unite!, Barnyard, El Tigre: The Adventures of Manny Rivera, de Blob, Marvel Super Hero SquadProprietary
Truevision3DVisual Basic, C++No3DWindowsProprietary
Torque3DC++TorqueScriptYes3DWindows, Linux, OS XMarble Blast Gold, ThinkTanks, Tribes 2, Villagers and Heroes, BlocklandMITIncludes multiplayer network code, seamless indoor-outdoor rendering engines, skeletal animation, drag and drop GUI creation, built in world editor, C-like scripting language
TurbulenzTypeScriptJavaScriptYes2D, 3DHTML5, iOS, AndroidPolycraft, Save the Day, Score RushMIT
UbiArt FrameworkC++Yes2.5DCross-platformRayman Origins, Rayman Legends, Child of Light, Valiant Hearts: The Great WarProprietary
UnigineC++C#, UnigineScript, GLSL, HLSL, UUSLYes3DWindows, Linux, OS X, PlayStation 3, Android, iOSListProprietaryFocused on large open scenes: 64-bit precision of coordinates, support for geo coordintaes, round Earth model. Mainly used in enterprise and professional simulators.
UnityC++C#, Cg, HLSLYes2D, 2.5D, 3DWindows, OS X, LinuxXbox 360, Xbox One, Wii U, New 3DS, Nintendo Switch, PlayStation 4, PlayStation Vita, Windows Phone, iOS, Android, BlackBerry 10, Tizen, Unity Web Player, Windows Store, WebGL, Oculus Rift, Gear VR, Android TV, Samsung Smart TVList of Unity gamesProprietary
Unreal EngineC++GLSL, Cg, HLSL, UnrealScript, C++, BlueprintsYes3DCross-platformList of Unreal Engine gamesProprietaryUnrealScript was removed in version 4
V-Play Game EngineC++QML, JavaScriptYes2DiOS, Android, Windows, OS XListProprietaryBuilt on Qt
Vengeance EngineC++No3DWindowsTribes: Vengeance, SWAT 4ProprietaryBased on Unreal Engine version 2/2.5
Vicious EngineLangScriptYes3DNintendo GameCube, Wii, WiiWare, Xbox, Xbox 360, Xbox Live Arcade, PlayStation 2, PlayStation Portable, PlayStation Network, WindowsListProprietary
VirtoolsYes3DBallanceProprietaryUsed for game prototyping and rapid development
VisionLangScriptYes3DWindows, Xbox 360, PlayStation 3, Wii, Wii U, iOS, Android, PlayStation Vita, IE6 and up, Firefox 2.0 and up, Google Chrome, Opera 9 and upListProprietary
Visual3D Game EngineC#/.NETYes3DWindows, Xbox 360ProprietaryCommercial successor to open-source RealmForge engine
Visual PinballC++VBScriptNo3DWindowsMAME-like pre-0.172, then BSD, GPL
VRAGEC#Yes3DWindows, Xbox OneMiner Wars 2081, Space Engineers,Medieval EngineersProprietarySource code was released under a commercial license
Wintermute EngineC++C-like syntaxNo2.5DWindowsDonationware, MIT, LGPLLite version lacks 3D Actor function
World BuilderNo2DSystem 3Freeware
WorldForgeC++Lua (client), Python (server)Yes3DGPLMMORPG framework made of libraries, server, client, media
XenkoC#C#Yes2D/3DCross-platformMITSupports C# 6.0
XnGineNo3DDOSThe Terminator: Future Shock, The Terminator: SkyNET, TES 2: Daggerfall, TES Legends: Battlespire, TES Adventures: RedguardProprietary
Zest3DActionScript 3, C++LuaYes3DWeb, Windows, Linux, OS X, Android, iOS, BlackBerryBoost
Zillions of GamesZillions RulesNo2DWindowsProprietary
NamePrimary programming languageScriptingCross-platform2D/3D orientedTarget platformNotable gamesLicenseNotes and references

See also[edit]

References[edit]

  1. ^'A-Painter: Paint in VR in Your Browser'. Mozilla VR Blog. September 19, 2016. Retrieved October 27, 2016.
  2. ^'Factorio engine modernisation'. Wube Software. Retrieved March 3, 2018.
  3. ^ ab'A Gentle Introduction to Frogatto Formula Language'. frogatto.com. Retrieved February 14, 2018.
  4. ^'Argentum Age'. argentumage.com. Retrieved February 14, 2018.
  5. ^'Cube Trains'. David Roberts. Retrieved February 14, 2018.
  6. ^'Blend4Web Official Site'. Blend4Web.com. Retrieved June 22, 2015.
  7. ^'blender.org - Installation Policy'. Web.archive.org. March 25, 2009. Archived from the original on March 25, 2009. Retrieved August 21, 2012.
  8. ^'Features'. blender.org. Retrieved August 21, 2012.
  9. ^Terathon Software LLC, C4 Engine
  10. ^'Feature List – Cafu 3D Game and Graphics Engine'. Cafu.de. April 18, 2012. Archived from the original on March 4, 2012. Retrieved August 21, 2012.
  11. ^Larabel, Michael. 'CoreBreach Game Goes Open-Source'. phoronix.
  12. ^'pkgsrc.se - The NetBSD package collection'. pkgsrc.se. Retrieved August 19, 2015.
  13. ^'LÖVE - Free 2D Game Engine'. Retrieved December 6, 2016.
  14. ^Akinlaja, Damilare. LÖVE2d for Lua Game Programming. ISBN978-1782161608.
  15. ^Bailey, Dustin (March 8, 2018). 'Artifact will use Source 2, bringing the engine to iOS and Android'. PCGamesN. Archived from the original on March 9, 2018. Retrieved March 8, 2018.
  16. ^Martin, Michael. 'Valve Announces Dota 2 Reborn'. IGN. Archived from the original on June 29, 2016. Retrieved July 10, 2016.
Retrieved from 'https://en.wikipedia.org/w/index.php?title=List_of_game_engines&oldid=916768657'

Learning Python!

*This tutorial is up to date with the latest version of Blender. If you come across any errors please leave a comment below.*

In this beginner’s BGE Python tutorial you’ll learn how to use Python scripting in Blender to make a car move, increase in speed, and stop. Keep in mind the boxcar is simply used as an example of working with Python, not car physics. This tutorial will teach you the basics of Python scripting for the Blender game engine, including accessing and changing logic brick information through scripting. Before getting started, if you’re new to Python and for more general information on Python including formatting, statements, functions, blah blah, check out Beginner’s Guide To Python. None of the guides here take long to go through, and you’ll learn everything you need to know to get started in a day. The rest is learning through experience and necessity through your own projects. But even if you don’t know a single thing about Python, this tutorial is easy to follow.

Setting Things Up

I have 3 windows set up in Blender, top left is the 3d View, top right is the Text Editor, and spanning the bottom is Game Logic. Your blender should look the same for this tutorial. Once you have these windows in view we can start creating our little game. You should already have a basic understanding of how logic bricks work before reading this tutorial on using python, but it’s simple enough to follow along either way. The logic bricks are in the Game Logic window, with sensors on the left, controllers in the middle, and actuators on the right. Sensors act as triggers so that when something happens such as a key being pressed or a property value changes, an action can be performed. Controllers give you a set of options that determine how sensors are interpreted or used. Actuators make things happen when certain parameters are met.

Creating a New Python Script

In the Text Editor, create a new text file by pressing the “New” button in the header, and rename it to “cubeMove”. Before we write anything we want to check out some of our visual options. There are 3 icons next to the script name field where you just renamed your script. The first is line numbers. Click on this to enable it. This simply shows you numbers next to every line so you know what line of the script you’re typing on. This is essential for debugging because when there’s an error in your script, the System Console will tell you what line number the error is on. The other two icons are for word wrap, and syntax highlighting(which highlights python key words and such, I would enable this). One last thing we need to enable is the System Console. In older versions of Blender this was visible by default, but it’s not anymore. This is where all the script data and script errors will print out. To enable this in Windows, go into the top Window menu and select “Toggle System Console” if you don’t already have that window visible. For instructions on opening the console on Linux and Mac, click here.

Now for some actual scripting. Copy and paste the code below into your new script file:

print () is a simple command that prints out whatever is in the parenthesis into the console, in this case it prints the word hello. For the script to actually run and do that, we’re going to have logic bricks run it. So select an object in your scene(the default cube will do just fine if you didn’t make a super awesome car like me) and in the Game Logic window add an always sensor and a python controller. Connect these two by clicking on the little circle next to the sensor and dragging it to the little circle next to the controller. In the script field of the python controller, type in or select your script cubeMove.

Now hover the mouse cursor over the 3D View and press P. This starts the game. Press Esc to end the game. Check the console and you’ll see the word hello. Your first successful script! **Make a note that if you were hovered over the script window and pressed P, you would’ve written P somewhere in the script and it would’ve caused an error. Whatever window the mouse is hovered over is the active window. This mistake will happen a lot so keep it in mind!**

Getting Serious Now

Now erase that print line. Paste the following line at the top of your script:

The first line just imports all the functions we’ll need for bge scripting, and this line should be included at the top of ALL of your game scripts(as of Blender 2.74). Start the game(press p while mouse is hovered over 3D View) then look at your console. Now dir() = directory if you haven’t made the connection. The console will print out all the functions in the bge module which contains all of the functions for realtime Blender, most noteably for this tutorial, logic, which contains the functions we can use to access our logic bricks and object properties. So let’s print out the directory of bge.logic and see what our options are there. Make your script look like below:

Start the game then look at your console. The console will return all the functions in the bge.logic module.


Game Engines Using Python Number

So, you should know that not only can you print out the dir of bge, but the dir of all of its functions as well such as bge.logic and all its functions too. Find the getCurrentController() function listed in the console. This accesses the logic brick controller that runs the script. Once we access the controller we can access all of the sensors and actuators connected to it, and even access information about the object that owns the controller. This is a pretty damn important function. Now change the print line of your script to print out the dir of bge.logic.getCurrentController() now, making sure it has its own set of parenthesis at the end and making sure you have the capitalization correct because python is case sensitive. So your script should look like this:

Start the game and take a look at the console. You’ll see a new set of functions, including actuators, sensors, and owner, all of which have their own directories which can be printed out too. All the information you need can be found using dir(). If you’re ever unaware of what your options are when working with objects or logic bricks in Python, you can simply print out their directory which tells you. Make note of the capitalization, and make sure all parenthesis are closed or you’ll get errors.

Scripting for Reals

So you know about the print command and printing directories. Let’s move on to some real game scripting. Erase the print line and add two lines so that your script looks like this:

Take a look at these three lines. They’ll pretty much be at the top of every one of your game scripts and are probably the three most essential lines of code for any blender game script.

I’ll start by explaining the second line, cont = bge.logic.getCurrentController(). I told you before what the getCurrentController() function was all about. Well here we just added a line that accesses the controller and assigns that information to the variable cont. The variable name can be anything you like, but it’s typically an abbreviation like cont, and we use it simply so we don’t have to write out bge.logic.getCurrentController() every time we need it. We just write cont instead. Make sure you put the set of parenthesis at the end. You’ll get an error if you don’t.

Now onto the third line, own = cont.owner. Here we access the OWNer of the CONTroller and assign that information to a variable. Now we have access to the object that owns the python controller that runs the script, in this case your default cube(or my awesome car). This gives us access to info about the object, most notably its game properties.

Adding More Logic Bricks

Delete the always sensor and add two keyboard sensors, one for the up key, and one for the down key. Rename these sensors to “up” and “down”. The name matters because we’ll be calling these sensors by name in the python script. For the “up” sensor, also enable the “Tap” option so that this sensor only registers once when you press the key, else it also registers a second time when the key is released. Tap ensures a sensor only fires one time. Connect both of these sensors to the python controller, so that the python script runs when either of those buttons are pressed. Now add a motion actuator too and connect it to the controller. Rename the actuator to “move”. We’re going to use this actuator to move our car when the up button is pressed.


Now we’re going to add four more lines underneath own = cont.owner so we can access our new sensors and actuators in the script, and we’re creating another variable for speed. So make your script look like this by adding the bottom four lines:

Take a look at move = cont.actuators[“move”]. This accesses the actuator named “move” from the list of actuators. If nothing was defined within the brackets(ex: cont.actuators[]) then all actuators connected to the python controller would be put into this list. But in this instance, we’re just calling the one named “move”.

Now look at the lines for pressup and pressdown. These access the sensors “up” and “down” so we can detect which keys are pressed and make the script do something different for each event.

Now check out the last line, speed = move.dLoc[1]. Here we dive into the move actuator. The move actuator is a motion actuator and has different fields we can access and change with python. In this instance we are accessing the dLoc field because that’s how we’re moving our vehicle. The dLoc field is actually a list of X,Y and Z values. We want to move the vehicle on the Y axis so that’s why I’m calling the second value of the dLoc list. If you’re wondering why I typed [1] to call the second value in the list, make a note that list items start from 0, so calling move.dLoc[1] is calling the second item in that list. If I wanted to get the first value, the X value, I would write it as move.dLoc[0]. So in short, with this line of code our variable speed will now equal whatever the Y value is at the time the script is run.

Making Stuff Happen

Now that we’ve declared all of our variables we’re going to add a couple statements to determine if up or down is pressed, and then have both keys trigger different things. In brief, this is what we want to happen. Whenever the player presses up, 0.05 is added to the Y value in the motion actuator, increasing the speed more with each key press. Whenever the player presses down, the Y value is reset to 0, making the car stop.

We’ll start by defining what happens when we press up. So add in the lines beneath the speed variable so that your script looks like this:

Game Engines Using Python File

This if statement is used to detect whether or not the up button has been pressed. Make sure to keep things formatted just like I’ve formatted it. Your if statement needs a colon at the end of it, and any action part of this statement needs to be tabbed in beneath it. Now if the player presses up, 0.05 is added to whatever the speed value currently is, and this speed value is plugged into the move actuator. dLoc is the field in the motion actuator we want to change. If you want to change other fields in the actuator, to figure out what options are available you can use print dir(move). So now we simply plug the speed variable in as the Y value in the list there and it will change the value in the actuator. To make this actuator active now, we use the line cont.activate(move). Now our car moves faster.

Now we’re going to define what happens when we press down. So add in the lines at the bottom so your script looks like this:

The statement elif is like saying “else if”. So if the player is pressing down instead of up, we set the speed value to 0, deactivate the move actuator which stops the car, and finally we reset the Y value in the dLoc field back to 0.


Play the game!

Your script is complete! Start the game! Now press up repeatedly to gain speed, and press the down key to stop.

We didn’t actually use the own variable in this tutorial. But as a quick example, if you created a property for your object called “health”, you would be able to read or change this value in Python by calling it like this: own[“health”].

How to debug your scripts

There may be errors in your script that prevent if from running properly. These errors appear in the system console. So if you go to play this game and nothing is working, check the system console to see what the error might be. It will even tell you the line number of the error encountered. With line numbers enabled in the Text Editor you’ll be able to find the location of the error.