A downloadable game for Windows

Bitphoria is a procedurally-generated voxel-world 3D multiplayer action game that features a simple scripting system for describing *everything*, from the visual appearance of the world to the appearance and behavior of game objects and players.

Players can create their own custom games for Bitphoria just by working with a simple command-based scripting language within text files. You can use one of the default included games as a base for your own game, or create your own from scratch. From there you can start a game server and have other players be able to join in - and be playing your custom game without having to externally download anything extra, thanks to the power of procedurally generated content! The games you can create out of Bitphoria are limited only by your imagination.

Worlds are a static 128x128x128 voxel volume that wraps-around seamlessly across its horizontal boundaries, obviating the need for players to navigate within the confines of world-limits in order to attack or evade their enemies, keeping the action and game play fast and ever-evolving without missing a beat. Simultaneously, this provides players the illusion of an infinite world, without there actually being tons of worthless and unplayable space that either nobody will ever be in, away from the center of action, or that separates players from one-another. Meanwhile, starting a game server provides users with the controls to dictate the parameters for generating the voxel world, with a low-res preview of the world volume in the start-game menu. Players who join into a game server acquire these parameters automatically upon connect and the engine then generates an identical copy of the world for their side of the game's simulation. What would normally be a game's loading time is Bitphoria's generation time, and scales with however many detected CPU cores are present via multithreading.

Multiplayer networking comprises a simple and efficient event-based system that allows for solid, responsive, and smooth game play - lacking the frustrating inconsistencies and hit-registration of other games that rely on precariously rewinding the game state to hackishly attempt to determine what players saw on their screen at the most crucial of moments. Gameplay feels comparable to that of the famous Cube series of engines, where what you see is what you get. Multiplayer gaming is tolerable with a ping of a few hundred milliseconds, unlike many AAA multiplayer titles out there that push the boundaries of graphics but fall short when it actually comes to providing a multiplayer experience that is more rewarding than frustrating.

The engine is 20,000+ lines of C code, running ontop of SDL2 for platform abstraction, and rendered using OpenGL. This opens up the possibility of both Linux and OSX ports in the future. There is a lot of room for adding a lot more features to the engine, and at this point after writing so much engine I've become more inclined to see what can be done with the scripting system that games are described with. For now I am taking a break from any more major work on the engine, and focusing on making individual games for Bitphoria, which will be included with each new release of the engine.

Bitphoria has been in development for almost three years, off-and-on, and is currently in public alpha as of 08-30-16, as to allow players to begin exploring the scripting system and gather a sense of Bitphoria's potential as both a platform for creating games and playing them with other people around the world. There is a master server in place and a simple in-game server browser to allow anyone to start or join game servers and play with other people online. (There was a master server running for over a year after v1.00a was released but is no longer running as it rarely saw any use.) There is dedicated-server functionality in place as well, albeit with a console rendered in OpenGL.

The goal of the public alpha is to gather feedback, comments, suggestions, feature-requests, and find bugs and glitches, etc.. in an effort to guide and accelerate development beyond what I am capable of on my own.

For more info you can check out my blog, and follow Bitphoria's past, present, and future development - as well as other interesting projects I may dive into: deftware.blogspot.com

Install instructions

( NOTICE: Videos and screenshots are typically of newer versions of Bitphoria than the currently available release so as to show the public how development has evolved things for sake of building public interest. Be expectant of the currently downloadable version to not do or show everything that you may see in videos/screenshots. )

UPDATE: For the time being the master server has been shut off, requiring that players manually connect to one-anothers' IP address via the console (press the ~ key in Bitphoria.) Work on Bitphoria has halted indefinitely while work on another project is completed.

UPDATE: If you wish to run a server and are behind a router/firewall you will need to configure port-forwarding. Internet players should be able to join any visible game server without setting up any port-forwarding on their end. Port forwarding can be setup either by logging into your router or using a utility such as 'UPnP Wizard' for forwarding UDP packets (not TCP) to the machine and port you are running a game server on. The default server port is 13371, and can be set in the console using the 'sv_port' command before starting a game server Both the internal/external port number on the router port-forwarding should be the same port as what you have set for 'sv_port'. If you wish to run multiple servers behind a router make sure you have a different 'sv_port' set for each one, and that those ports are being forwarded to the correct local address for UDP, and not TCP. UPnP Wizard can be found here: UPnP Wizard

Some routers do not support UPnP and will require manually adding the forwarded port via the router's administrator control panel. Automatic NAT-punchthrough capabilities are being added to Bitphoria, which should eliminate the need for any manual port forwarding in the future.

UPDATE: a bug has been discovered since this release that manifests itself as a game server randomly crashing on its own accord. By my estimation it has something to do with a malformed incoming client packet causing the server to perform a memory access violation. This will be resolved in the next public release.

This is a public alpha release version of Bitphoria, for the sake of generating feedback concerning bugs, exploits, requests, etc. This version was originally declared a beta version, but has since been downgraded to alpha due to the fact that there are still many features that are currently being (and have since been) built into Bitphoria's engine. The retroactive downgrade to alpha version is also because the actual included default games exist exclusively for purposes of testing engine functionality, and are not necessarily representative of the games that will be included with the finished product. However, the v1.00a release does convey the broad strokes, and there are parts of the engine that will remain largely unchanged and so it would be useful for them to be battle-tested by as many people as possible in the meantime.

Unzip the contents of the zip file into a folder that the engine will have read-write access to, without being required to be run as an administrator, such as a folder on your desktop or Windows 'user' folder. If you decide to install the Bitphoria files into a folder that's not under your Windows user's folder then you will need to run Bitphoria as an administrator to allow it disk access (strictly for log-file output).

Bitphoria will not work without a Windows Firewall exception. You can either manually add the exception, or just run the game and quit out, and Windows should pop up the Firewall exception dialog box for you to allow Bitphoria network access. Once you do this you should be able to re-start Bitphoria and start/find games online, or over a LAN. In the future Bitphoria will force a Windows Firewall dialog popup before fully initializing and creating the rendering window.


Bitphoria v1.0 Alpha (formerly Beta) 12 MB