A downloadable tool for Windows

CSP Game Engine V10d (aka 2021-Reloaded) release

The CSP Game Engine is a FPS 3D Engine for Windows that works all the way down to Windows 98 and DirectX 7, it may therefor be interesting for some lo-tech or legacy projects. It was developed from 2001 until 2010.

This is an update of the entire CSP game engine, several bugs (mostly related to problems that arose due to new Win/DX versions and 64 Bit architecture) in the engine, the level editor and the waypoint recorder have been fixed. Additionally some further bugs were found and fixed.

The inofficial beta v9 demo is now equipped with these latest binaries. It does contain a vehicle example and in general it's more playable than the demo level of version 10. However the latter has almost all game features demonstrated in a 2-room map and may be better to learn and also to be used as a template for new levels.

Both demos are part of this release and work independently from eachother.

I have added the sourcecode to this release. The license model for this code is Open Source, for more details read the text file in the zip.

Some Hints

When you run this the first time, I suggest the following: run engine20.exe in the v09 beta folder. After loading, press "c" and enter "cspgod", so you can explore everything without to get killed. Press F1 to get an overview over the controls. If you prefer WASD, you can easily alter that in the settings. The 2 neutral NPCs nearby your starting point (girl and leather jacket dude) are capable of dialog (RMB) but there is a better version of it in the v10 demo.

You start unarmed. There's a sniper rifle at the tree. You can grab it and draw it, but then the NPCs panic. Press "h" to hide any gun. You can test the jeep  (RMB) but I suggest to fight the hostile NPCs with the firearms and not just drive over them, this gives you an idea of the NPC attacks and "Ai" (that's an exaggeration). Whether you find the weapons in the 1st building, or just enter "c" and then "cspallguns" is up to you, but it's good to have all them available. Press 1 to 7 to select gun, or mousewheel to scroll to next weapon. Fighting these NPCs will give you a good impression on how the engine works. 

At some place there is a small water pool. Jump into it to see the engine's underwater mode with some FX. At the bottom there's a tunnel, It's a tight fit, you may need to wiggle or crouch. Follow the "no-tresspassing" sign, trough the 2nd tunnel and finally surface in the basement of a building.

There's a security lock. A paper on a wall hints the code is 4321 (followed by "A" button), so enter that by RMB. Then use the first moving platform to get to the other side of the abyss to collect the artefact and see a nice particle emmiter in action.

There are some more features, shown in the v10 demo, like a computer terminal mesh that switches to a pseudo shell when RMBed, allowing to show texts, pics and videos, that are then collected in the inventory ("i"). Like, player sneaks around and hacks into enemy computers, for further hints etc.

If you want to learn, you can use the cheat "cspinfo" to see the socalled action string of interactive level objects, for example "medi rmbbydistance:6" for a medipack (normally picked up by RMB) that is picked up automatically when the player gets close. While these action strings can also be seen in the level editor, it's sometimes useful to get the information at engine runtime.

Download

Download
csp_ngn_rel2021.zip 70 MB

Comments

Log in with itch.io to leave a comment.

Where can I find the game editor itself?

I guess there is an exe, like leveleditor.exe, inside the level folder. Notice this is not a mesh editor, it just lets you load and arrange meshes, sounds etc.

Hello, thanks for not quitting the engine, I was glad to download it again. There were several games on the old version of the engine, will you develop them? In the archive with the game, there are problems with the files that need to be solved:

- for the run_debugmode.bat file, you need to replace "engine.exe /debug" with "engine20.exe /debug"

- for the ScreenSettings.bat file, you need to replace "@echo off

engine /settings" to "@echo off

engine20 /settings"

(+1)

Thanks! Yeah, sorry about that. I don't think I'll reopen the old demo projects, even if I'd find the files. But some of them are still out there, as demos. Was a good time at blitzbasic.

(+1)

Hello, thanks for the reply. I found old projects (Twilight Of The Gods, Broccoli Never Dies, THE SECRET OF MANES...) but they don't work for me (Win7 x32), I often see "Memory access violation" error. I once ran these games on an old PC, I wanted to play them again). I am interested in the engine, it is not demanding on hardware and has a relatively good picture, as for me. In any case, thanks again and I wish you the best of luck.

(+1)

Yeah there were a couple of issues, one is DEP, data execution prevention. Older versions of the compiler executed some data segments, so that doesn't work, unless you set an exception for the EXE in windows. Also try to run in XP mode. Generally, in a 32 bit environment there's a better chance. Also because of the millisecs system timer in 64 vs 32 bit, that caused problems I fixed only in the 2021-reloaded release of the engine..

(+1)

I have Win7 x32, I tried to run games in compatibility mode, but it did not solve the problem, thanks anyway.

(1 edit)

Just for the records, and in case anybody is interested, I was playing with the thought to write a ToBabylonJS converter, so a game could be designed in this editor / kit, and then converted to WebGL using babylon.js.

However, babylon is such a freakin bummer - nothing works right away! I get frequently stuck even by the simplest things, like having cam vs mesh collision working also for loaded GLB meshes, and not just for a created box primitive from the docs. The docs are huge and badly interlinked IMHO. And only available online, which I do not like.

And then there is also the file format challenge. I'd need a batch converter, or probably I should write a B3D importer for babylon - as I'd expect, converting lightmapped multitextured meshes to GLB or gltf will fail / lose the lightmap. Anyway, as some aspects of babylon are such a pain in the automobile, I was wondering whether there may be an engine that would be easier. It should support those basics, load multitextured meshes, including rigged animated ones, have collision, linepicks, freely scriptable camera, etc. So if somebody knows a better alternative for such a job, let me know. (Don't say Unity or UE, I refuse to work with Gigabyte distros.). Most important tho, is a documentation that allows to implement something straight forward, without to hack around like unfort. in many engines including babylon.

One option would be copperlicht.js, but as Niko has taken it over and is pushing the commercial coppercube (that's based on copperlicht), I'm having a hard time finding an unminified latest version of copperlicht, let alone a complete documentation - pity. EDIT actually that's not true, see: https://www.ambiera.com/copperlicht/documentation/index.html

Also, in any case helpful would be if somebody could provide me with a B3D loader (static or animated too) written in Blitz3D, so I'd have to convert it only. 

Forget about the b3d loader, I wrote one, actually a converter. But I struggle at the implementation of simple collision. According to Niko, I have to convert the content in Coppercube to a ccbjs file and load that in Copperlicht, in order to use collision on meshes. But that's exactly what I did not want to do, but instead write my own editor for copperlicht.

In WebGL, there's always SOME thing, sucking.

(1 edit)

Another additional note: there is clearly a huge bug in the function that is supposed to calculate an evasive path around dynamic objects in the way of NPCs, for example the vehicle in the V9beta demo. If you park the jeep on the path of an NPC, he will do crazy things. So if anybody wants to get his/her hands dirty by fixing the issue - you're welcome. The same goes for doors and the inability of NPCs to open them, that should be added too.

Finally, all meshes loaded with LoadAnimMesh (except NPCs) will be parsed recursively and their children and granschildren etc. are written to an "orphan" array that has a fixed size of 100'000, so there is a max of approx. 1000 animated meshes, each one having approx. 100 children. Of course you can alter the source if that is not enough.

Keep in mind I started this 22 years ago, and I kept learning in the mean time, however, the original structure on which the engine is still based isn't ideal as I was new to Blitz3D and new to 3D at all. But personally I think, if you just watch the output of the engine and ignore all the beginner code, it's pretty decent.

Just one more thing I forgot: In case there are any userlib calls in the sourcecode that your compiler doesn't know, you'll find all my userlibs in the zip here: https://jfkeo1010etc.itch.io/blitz3d-goodies-collection

(1 edit) (+1)

BTW there's a little "bug" if you want to call it like that: Conventionally, the level editor allows to place an item right at the camera position. However, I altered the value of eye_height (or similar) in the last minute, to get the right eye height in walk-mode (in the editor) and didn't notice that a placed item will now be positioned slightly under the camera. You can alter the source if this bothers you, simply divide that eye_height variable value by 2 (because I doubled it), then it should be fine again.

This was always the way the level editor (aka interior dropper) used to work: you just walk trough (or fly trough) and drop stuff where-ever you stand (by ctrl-V, or RMB>New>File ... load mesh or sound etc.).

I remember, back then such a plain first person perspective editor was quite uncommon, if not new.

(+1)

I have not checked it out yet, but thanks for the heads up! ๐Ÿ‘

Happy Holidays ๐ŸŽ…

Thanks, the same to you!  โœจ๐ŸŽโœจ๐Ÿ•ฏ๐Ÿ•ฏ๐Ÿ””

(1 edit)

This is awesome! ๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘ 

It kinda remind me of half-life when I first saw the demos before..

First off, I noticed that the sniper rifle is always set to aim mode.. maybe a fix on that so you don't walk like that all the time and when that is the only weapon on hand.

(+1)

Thanks. The rifle and the C4 Box are not automatically "drawn" when picked up. However, you can always press h to hide the gun in your hand.

I guess the reason why it looks like Half-life-ish is because of the low poly character of the Maplet-made buildings (12-sided cylinders). But you can of course also use higher detail meshes and et a slightly more advanced look than half-life. I suggest using the huge hi-q content repositiory of the former fpsmaker asset packs, all free now, see github, fpsmaker. Also for te NPCs (they're .X, use fragmotion to convert to B3D), as the NPCs that come with this kit are really just placeholders.

(1 edit) (+1)

Great! also, I have not look closer into it, but  I presume those terrain shadows are baked? 

..and speaking of which, have you not considered using TexturePosition instead of towel mesh in your csp terrain shadows? I think this will make a good start into cascaded shadow mapping.

(+1)

Yes, my art path was: putting various meshes together (maplet, FLE etc.) and position lights in slimshady, then import and lightmap it in Gile[s]. Too bad I ain't got Gile[s] on my current machine.

The engine then taints the grass based on the underlaying ground color/darkness, and also dynamically darkens the NPCs (pre-determined based on their paths) and the player hand/gun (dynamically determined based on position).

(2 edits) (+1)

That's awesome! and say no more.. the complete gile[s] package is here ๐Ÿ˜‰

(+1)

Wow that's cool, thanks!