A downloadable surreal experience 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 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 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
|Published||292 days ago|
|Release date||145 days ago|
|Tags||3D, Abstract, Action, engine, indie, Moddable, Multiplayer, Procedural Generation, Shooter, Voxel|
|Average duration||About an hour|
|Player count||1 - 5|
|Multiplayer||Server-based networked multiplayer|
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 small features that are currently being built into Bitphoria's engine and because the actual included default games only exist for purposes of testing engine functionality, and are not necessarily representative of the finished product. However, the v1.0a release does convey the broad strokes, and that is the goal.
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