A downloadable game for Windows

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

Players can create their own custom games for Bitphoria just by working with a simple command-based scripting language written into text files. You can use one of the default 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 own custom game without having to externally download anything. The games you can create out of Bitphoria are limited only by your imagination.

Worlds are a 128x128x128 voxel volume that wraps-around seamlessly across its horizontal boundaries, obviating the need for players to navigate within the confines of the world in order to attack or evade their enemies, keeping the action and game play fast and ever-evolving. Simultaneously, this provides players the illusion of an infinite world, without there actually being tons of worthless and unplayable space that nobody will ever want to be in, away from the center of action. Starting a game server provides users with the controls for dictating how the world should be generated, per their preferences, along with a low-res preview of the world volume. Players who join into a game server acquire these parameters automatically, 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.

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 rewinding the game state in a hackish attempt at determining what players saw on their screen when firing away. Game play feels comparable to that of the famous Cube series of engines. 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. 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 over two years, off-and-on, and is currently in public beta 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 is dedicated-server functionality in place as well, albeit with a console rendered in OpenGL.

The goal of the public beta is to gather feedback, comments, suggestions, bugs, glitches, feature-requests, etc.. in an effort to guide and accelerate development beyond what I am capable of as the only developer working on Bitphoria. It is also to allow the public to share their experiences with Bitphoria to their friends and among their social-networks as a sort of word-of-mouth advertisement campaign.

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

Install instructions

This is a public release beta version of Bitphoria, for the sake of generating feedback concerning bugs, exploits, requests, etc. 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 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 logfile output).

You can manually add a Windows Firewall exception, or just run the game, quit out, and Windows should've popped 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.

If you wish to run a server and are behind a router you will need to configure port-forwarding, either by logging into your router or using a utility such as 'UPnP Wizard' for forwarding UDP packets for the port you are running a game server on (default is port '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 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.

Some routers do not support UPnP, and will need to be manually logged into and dealt with accordingly. Automatic NAT-punchthrough capabilities are being added to Bitphoria's server code and master-server, which will eliminate the need for any port forwarding in a future release.

Internet players should be able to join any visible game server without setting up any port-forwarding on their end.

I've decided that an engine guide is needed so I will be writing documentation to go along-side the scripting manual that documents the various console variables that can be adjusted, and which are not specific to scripting games for Bitphoria. The guide will be included in a future release ASAP.

UPnP Wizard can be found here: UPnP Wizard


Bitphoria v1.00 Beta (12 MB)