Hey everyone! Today I'm writing about a new project I have started called Pumpkin 3D, which is a (as the name implies) 3D game engine written in Python and partially Lua.

But why?


As I began work on my rewrite of ToonTown Online, I needed a game engine that could handle such a project, and yes I am aware TTO doesn't have anything hard to handle. Mainly what I mean by that is a modern game engine that could handle what I wanted and well, the obvious choice is Panda3D a game engine developed by Disney themselves in 2002 and then maintained by Carnegie Mellon University, mainly due to the fact that Disney didn't want to make their own games which also caused Walt Disney Imagineering formerly Disney Interactive to be dissolved. Although Carnegie Mellon University still maintains it, I wanted to go with something that no other TTO private server has done successfully, make their own game engine and use one other than Panda3D.

How does it work, what are the perks


Pumpkin 3D is similar to Vim it works in a terminal, however you can create plugins in Python that you can them load in to add stuff on top of it, however it doesn't entirely run in a terminal stuff like world (stage) editing works with a lightweight web UI, that you can use to move, scale and rotate elements in the world, create stages which in Pumpkin logic means a 3D world. And audio editing as well to add sound effects. Also it has built in benchmarking and performance management to make sure players don't have a bad playing experience on even lower-end devices. Along with that a built-in package manager, for updating, installing and managing packages for all your projects! It's also open source so if anything goes wrong you can even fix it yourself! These just name some of the perks of using Pumpkin 3D over other game engines on the market. Did I mention it's free :3

Enough cog speak let's begin with the real under the hood stuff!


Let's start with the tech stack, it's obvious why we chose C; it's a terminal application so we used C because it works really well for terminal applications. Now for Python, we chose Python for the more advanced parts of the editor like plugins, animations, and integrations with other applications like Discord RPC, WakaTime, etc. We also chose Lua for writing the games and apps; we will talk more about that in the section.

pump.lua


Pump.lua is a Lua framework for developing advanced 3D games; we made sure to add support for building 3D environments. It was also developed to be built upon. You can use pumpshop (our package manager) to install frameworks on top of pump.lua, to make it even easier to develop games and apps the way you want! It's all about choice; we want it to be a great experience for developers in all ways, even in our frameworks.

Cool, what about platform support?


We are planning on support for all major 3 desktop platforms: Windows, macOS/Darwin, and Linux. We also want to add support for VR and mobile and maybe even console in the near future. For the editor, you can install it on Windows, macOS, Linux, and BSD. If you can run Python, C, and Lua, you can compile it on anything; maybe even HaikuOS could work. P.S. if anyone does that, email me please!

Conclusion


To sum it all up, this game engine will be libre, free, and easy to be developed upon. Also, I am very much sorry if this is horribly structured; this is my first-ever blog post that I have ever written. I hope you enjoyed it, and feel free to contact me about whatever I messed up on, and have a good night/day/afternoon!