Skip to content

SheridanR/BSDL

Repository files navigation

Welcome to Bubbenstein/SDL (aka BSDL)!

----- FEATURES -----

1) Support for multiple platforms, including Windows and Linux (it's probably possible to compile the engine for MacOS X too without any modification, but I cannot test this)

2) 24-bit graphics at 640x400 resolution

3) Accurate grid-based collision detection

4) A complex heightmap world format (stairs, platforms, windows, and buildings are all possible constructions)

5) Scaling sprites of any shape and size

6) Wall, floor, and ceiling textures (dimensions must be a power of 2)

7) Depth based lighting effects

8) A complex entity subsystem for in-game objects, particles, and actors

9) A direction and position based sound system using the SDL_mixer library

I personally have a makeshift world editor to make game maps, but the interface is nasty, the code is ugly, and the thingy can only be built on Linux. I'd be willing to pass any interested person some builds/code if they really wanted it, but to tell the truth, I'd be far more interested if said person were willing to work with me to build a new set of tools from scratch. :)

----- ARGUMENTS -----

A selection of arguments can be passed to the BSDL executable file which will modify the way it initializes the game engine.
-w#				-	Specifies horizontal screen resolution, where # is a number (320 is minimum)
-h#				-	Specifies vertical screen resolution, where # is a number (200 is minimum)
-windowed			-	Specifies that the engine will run in a window rather than fullscreen mode
-config=xxx.cfg	-	Specifies a user config to use; default.cfg is the default

Arguments can be typed in any order, and later arguments will override previous arguments of the same type.

Any argument that does not use the above prefixes will be interpreted as the filename of a .bsm map file which you wish to load.

Example:
bsdl -w320 -h200 doom.bsm -config=lefty.cfg

The above command starts BSDL at a screen resolution of 320x200 using the "lefty" config and loads the "doom.bsm" level.

----- IN-GAME CONTROLS -----

The controls can be modified by supplying your own user configs to the BSDL engine. The default is default.cfg, which contains these bindings:

Escape				-	Close the program
W, A, S, D			-	Move forward, left, backwards, and right, respectively
E, Q				-	Move up and down (only relevant when fly/noclip mode is active)
Shift				-	Speed movement modifier
Alt				-	Strafe movement modifier
Space				-	Jump key
Mouse				-	Look up, down, left, and right
Mouse Button 0			-	Attack
F6				-	Throw a screenshot to the "shots" folder
N				-	Toggles noclip+fly mode (reports status)
P				-	Toggles thirdperson mode (reports status)
I				-	Spawn an actor
K				-	Print the value contained in some variables
G				-	Genocide all actors
0-9				-	Select weapon
B				-	Test sound effect (reports result)
M				-	Toggle music (reports result)
End				-	Recenters camera's vertical component

Also supplied is a lefty.cfg file which swaps the primary movement controls from W, A, S, D, E, Q to Arrow Keys + Page Up/Down.

----- CONTACT -----

All suggestions, comments, and questions should be sent to: sheridan.rathbun@gmail.com

No matter who you are, I would very much like to hear from you. :)

About

BSDL is an advanced 3D raycasting game engine written in C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published