Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

XI Cast - Raycast FPS Engine

XI Cast (Zy-cast) is a first-person raycast engine like Wolfenstein 3D (But closer to Pathways into Darkness).
The engine will be modelled around Bungie's Pathways into Darkness, with an RPG-like interface with a large, expansive inventory, grow-by-experience weapon management and stat management, and the use of real-time as a gameplay element.

The engine with the editor is targeted at people new to the game development world that don't have the skill to use 3D applications yet and need that stepping stone to help them on their way, it is also targeted at game writers who want to use their skill to produce solid game stories in the style of the original Bungie shooters.

weapon.png


torchglare.png


differentrenders.png


http://www.youtube.com/watch?v=5Yf018QOtYw

Distance Lighting
Far-distances are rendered darker, but this can be effected by items the player may wield such as torches and infra-red goggles.

Scalable Rendering Resolutions - Currently removed for future scripting additions
Resolution of 1:5
- This can be used to easily create a "blur" effect in-game that can be utilised at any moment.

Editors
What's the point in an engine that no-one can edit? The data formats (Simply accessible archive files) can be editted with no tool, however it will be much easier if tools were available!
Scene editor - With 'thing' placements, including props, monsters, items and teleports. Built in grid editor and terminal placer.
Shape editor - For sprites, windows and texture importing, assigning, sequencing and manifest generating.
Physics editor - For movement speeds, knock-backs, enemy data, weapon information, item info, etc.
Sound editor - For compiling sounds and creating a sound manifest, accessible by the scene editor.
Terminal notepad - For creating "Marathon" like terminals with graphics and text with effects.

Scene Scripts
Each scene will have the ability to handle scripting that manipulates auto-movement, variables and switches, messages, item rewarding, money, and much, much more.
Scene scripts are written as text files that are compiled with the map data to be executed at certain points in game, at the start, at the end, when a tile is hit, when an enemy is dead, etc.

Contact me anyway you can if you want to be involved in production of either the engine or the pilot game, that you can read about here: viewtopic.php?f=23&t=71237
 
Started coding weapon animation, physics for weaponry not yet implemented.
weaponexample.png

It currently has the ability to reload a weapon from certain ammunition types, however I haven't made an example of this yet as I'm still going through the logic of it.

Weapon brightness will be controllable through the item scripting, so a lit torch can light up the weapon slightly as well as the room.
 
Fixed "funny" walls (Bug where walls that were near-perpendicular to the camera became squished or wide due to the ambiguity of the player's grid number)
fixedfunnywalls.png


I have 1 more big bug to fix, the player can only be in the dead centre of a grid square, the problem here is that in 2 directions the player can move into the dead centre of a wall, and in the opposite directions it seems like there's a big distance between the player and the wall face.

I first thought this was a movement error, but now I believe it's a position calculation error.

Also: Re-writing weapon code and started on a level editor, the weapon animations broke somewhere so I need to completely re-write those as well as start on the shapes format so weapon graphics are seperate to weapon physics.
 

mawk

Sponsor

this actually looks really cool, man. Pathways Into Darkness is showing its age now, but it was a really competent fps-dungeoncrawler-whatever for its time. it'd be interesting to see what can be done with the same style of gameplay nowadays.
 
Textures are still on hold.
For now I've made a map editor
screenieeditor.png

And I'm focusing on the map format a bit.

I've opted to have 9x9 grids, so doors can be thinner and perhaps chamfers will be easier to do this way.
 
Outdated
The map editor has a "Visual Preview" mode, I'm quite proud of this as it has different rendering modes.
http://i45.photobucket.com/albums/f81/x ... /rend1.png
You can toggle doors to be open or closed:
http://i45.photobucket.com/albums/f81/x ... /rend2.png
You can show pillars as semi-transparent:
http://i45.photobucket.com/albums/f81/x ... /rend3.png
And you can view where your triggers are:
http://i45.photobucket.com/albums/f81/x ... /rend4.png
All with a minimap that shows where you are on your map and your facing direction, so you don't get lost amongst moving through Voids.


EDIT: Hit a milestone with texturing, weapon images are now rendered with the raycaster
EDIT2: Weapons can now be changed in-game.

EDIT3:
Here's the top row of a texture rendered.
toprow.png

Because of the map format, I'll have to edit the code slightly so the textures aren't squished into 3 parts.

EDIT4: Drawing horizontal pixels grinds the program to a near-hault with lots of errors, at the moment i'll leave it how it is and work on other features.
 
I rewrote the engine so textures will work with fast performance (Screen buffers are used now).
So basically it's back to square 1, but now I know how to do things so things are coming a long very quickly:
enginerewriteupdate.png


EDIT: Further work
wolftexdistance.png


EDIT2: Static Overlay
staticol.png
 
Sprites work, now with added torch glaring stuff
torchglare.png


The barrels are where pillars are rendered, pillars are kept on the map database and not the object database, however they are rendered along side objects.

I did all this in just 1 day! Whew!

Will start looking into ray-cast collision (At the moment it's map collision, and it's so buggy it's ridiculous, clipping is 0.5 out in 2 directions and can't be fixed, plus the player can move through walls if facing at certain angles against corners)

Will do a demo, it'll come with the map editor so people can make their own maps.

EDIT: May I also draw attention to the pilot game with this engine (Still in concept, I've managed to get someone else on board with this idea as a writer)
viewtopic.php?f=23&t=71237
It's current name is Eleventh Hectic (May change)
 
Thanks, now that it's taking shape people seem to be more interested :)

differentrenders.png

Here's an image that shows it doesn't only do dark, spooky dungeons.

Believe it or not, this is the same map as the other screen-shots, only different textures and settings.

EDIT: 1 small hiccup, 128x128 textures load very slowly, i've optimised the loading process (They're stored sideways) and placed it on a background worker, it looks really cool watching the textures slowly draw in, but people won't want that!
Any advice?
EDIT2: Holy crap, I reduced the load time from 4 minutes to under 1 second.
That problem's out of the way!

pidtextures.png
 
weapon.png

Just added weapon rendering back in.

It bobs up and down as you move forward, backward or strafe.

Weapon bobbing is optional, you can make it optional for the user also.
Distance and speed are also modifiable.

And here's a video of the evolution of the engine (I remember those first days :cry: )
http://www.youtube.com/watch?v=UMoiWVFcuak
 

Jason

Awesome Bro

Stop making so much progress on this so quickly!

It's looking REALLY good and I'd love to see how it turns out at the end (And the game you're planning with it)

Keep it up, you've got my support anyway!
 
Relaxed a bit to work on simpler stuff.
Here's another way overlays can be used (Like in how they were used in Resident Evil 5, although I call this overlay "Call of Duty mode")
callofdutymode.png


And here's weapon bobbing:
http://www.youtube.com/watch?v=JAzpkYNR77Y

EDIT: Collision detection perfected for moving forward (Player slides on walls), now need to do moving backwards and strafing :mystery:

EDIT2:
http://www.youtube.com/watch?v=K_gSZqypMHw
Mouse-look, movement collision is now 100% working, no sticky walls, jamming points, everything is now 100% working!
So now cool content can be added :D ...

...Such as chamfers...

Any suggestions on how chamfers can be done will be greatly appreciated!
 
Here's the first build of the new map editor.
leveleditor.png


Workng features:
Drawing and selecting brush
Compiling into working map files

Improvements over last:
Can now drag brush to draw
Delete tiles with right click

Missing features:
Visual mode

Planned future features:
Edit tile preferences (Change textures, what items spawn, corpse graphic, etc)
Monster spawns
Settings generator (Settings files have their own structure)

This is what a map setting file looks like (Loads when it's designated map loads):
Code:
<name>

map

<shade>

true

<overlay>

true

<weaponbob>

true

 

***Below is the message that shows on map load

<message>

Hello World

<bobpower>

6

<bobspeed>

2

<mouselook>

true

<ceilingtexture>

8

<floortexture>

8

 

***For shadowpower - 1.0 = lightest, higher = darker, cannot be less than 1!

<shadowpower>

3.5

 

***How fast the player moves

<movespeed>

0.1

 

***How fast the player turns

<rotspeed>

0.1

 

***Starting positions

<positionx>

16.5

<positiony>

16.5

 

***Start with flashlight on?

<flashlight>

true

<infrared>

false

and this is a typical global settings file:
Code:
***IMPORTANT - It is the next line that defines a variable, don't add comments there

***Eg: Don't do this:<thingy>

***                  ***Here is my thing

***                  The value of thingy

 

***Global texture width (In pixels)

<texturewidth>

128

 

***Global texture height (In pixels)

<textureheight>

128

 

***How many textures are there

<textures>

10

 

***How many sprites are there

<sprites>

64

 

***If mouse capture is enabled for MLook

<mousecapture>

false

 

***Never include extension for map name

<mapname>

map

 

<overlay>

overlay.png

And project settings file:
Code:
***Paths are written with a backslash (\) at the end

***After the variable name, the NEXT LINE IS ALWAYS the value

<datafolder>

data\

<picfolder>

pics\

<mapfolder>

maps\

<name>

Testing Game

<author>

Xilefian

<splash>

splash.png

***Generally, three asteriks (The stars) show a comment, but a random line can be used also.

What this means is that I have re-written the map format a bit so it can be very easily editted.
So now different kinds of pillars are a possibility (As they are stored in a different config to the map layout), that gives more textures to use for maps.

Once the map editor is done, level change (Technically can be done already), objects, items and inventory will be done, then shooting and monsters and then it's ready for a public engine demo.

(This is night vision if you were wondering)
http://www.youtube.com/watch?v=5Yf018QOtYw
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top