Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
DILDOMASTER666

WindowCaster: The Shadowcaster Source Port

Recommended Posts

Version 5a856963 is now available. Download is in the first post, where you can check the text file for a detailed changelog and all the controls you'll need to play around.

Share this post


Link to post

I've never played Shadowcaster, but this might end up being my first experience with the game, at least when a full release comes out.

Share this post


Link to post

Thanks for offering an eary peek at your source port. I just gave it a try and walked around the two maps for a while. Without sprites and sounds, there is obviously hardly any gameplay going on. Nevertheless, I think it is still quite an accomplishment to be able to render these maps natively under Windows without having any access to the original source code.

I didn't find an option to resize the window or to go full screen. Is such a feature in the plans?

Share this post


Link to post

It would be very easy to add such a feature, yes. I just didn't worry about it very much since it's in such an otherwise early state. I'll add window resizing for next release.

Share this post


Link to post
13 hours ago, DILDOMASTER666 said:

I'll add window resizing for next release.

Great, thanks! I fully understand that in this early stage window resizing is not a must-have among the dozens and dozens of other functionality/features that could be added. It's just that on my laptop screen the game window has roughly the size of a postcard, which triggered the question.

I'm looking forward to seeing more of this source port in the future. Good luck!

Share this post


Link to post
8 hours ago, Arno said:

I fully understand that in this early stage window resizing is not a must-have among the dozens and dozens of other functionality/features that could be added

Seems pretty useful to me. ;) New version added with view resizing support. You can now visit every level from the floppy version, though most tilemap ids are not yet mapped to GM objects, so while every level (except one) loads correctly, they aren't very interesting to look at just yet. A few have all their walls and flats mapped correctly. The proof of concept is there; I just need to do the hard work of poking around with the "X" command and figuring out all the tileids.

Share this post


Link to post

Nice to see the world of Shadowcaster coming alive bit by bit. With a crispier image than ever before, due to the higher screen resolution.

 

BttXGuTh.png

Share this post


Link to post

There were some serious issues with the surface management of the previous version, which manifested two bugs: the game would eat up unreasonable amounts of memory (2+ GB in the worst instances) in certain instances, and the game always defaulted to 640x400 internal resolution. This is no longer the case with 0.10.0459. Since this is a critical issue, I uploaded a new version ahead of schedule (I wanted the next release to be able to view all levels correctly). As a slight bonus, a lot more cell ids are known, so more levels -- but not all of them -- will load and render mostly properly.

Share this post


Link to post

The first post has been updated with a new version. The engine is now scriptable with external files, which may be stored in pk3s like ZDoom. Additionally, OGG music support is back and as an added bonus, it can be included in a mod pk3 too. To this end, I have uploaded an example mod to show how this is done, and an OGG music pack which you should either rename to "mod.pk3" or place the raw folder in your WindowCaster appdata directory to enable.

 

EDIT: Regarding the next release, I am looking into exporting the wall and ceiling databases to the pk3s as well as the WindowCaster equivalent of "mapinfo". The script interpreter is very slow though, so don't expect the entire game to eventually be exported - what I export to scripts will depend on how much of a performance impact doing so would incur.

Edited by DILDOMASTER666

Share this post


Link to post

Robert W. Morgan III, one of the developers of In Pursuit of Greed, suggested that ShadowCaster runs on a modified Wolfenstein 3-D engine called the Raven engine, and released the version of Raven engine (for educational purposes) that Channel 7/Mind Shear Software received for the development of Greed. This version is available, along with the Greed source, from his website.

 

Maybe this could somehow help you with your project.

 

On another note, all screenshots shown above are without aspect ratio correction, does the recreation have this option?

Share this post


Link to post

The Raven engine is pretty well-known in these parts (see https://doomwiki.org/wiki/Raven_engine ). Unfortunately one of its features is that the core engine is mostly just the renderer and resource management stuff, and nearly 100% of the game code for the games that utilize it is not shared. This means that outside the basics, the IPoG source isn't that much help with figuring out the specifics of Shadowcaster.

Share this post


Link to post
8 hours ago, MrFlibble said:

On another note, all screenshots shown above are without aspect ratio correction, does the recreation have this option?

Not yet. That is a planned feature in a future release, after the "extended menu" is finished. Probably not next release.

 

While the source code to the Raven engine is not absolutely 100% going to solve the problems WindowCaster faces (the renderer is completely Direct3D anyway), it is certainly an interesting peek into the engine. Thanks for sharing.

 

edit: this source code contains a level editor and resource editor??? that was unexpected

Edited by DILDOMASTER666

Share this post


Link to post

Apologies for the the thread necromancy. This is still actively being developed. As most of the work over the past few months has been back-end and cleaning up the awful codebase, I have only one major new feature to add.

 

caster3.png.680aba6c303f14d112345728e43d9aa8.png

 

Textures and sprites can now be loaded from pk3s and can be assigned to arbitrary cell values using external scripts. This feature is very broken at the moment, but I hope that it will be ready for actual use next release. This new script format will also be adopted by the "mapinfo" equivalent system. It is very simple and uses section-key-value format, exactly like ini files:

[walls]
0 = "-1"
1 = "badflat.png"
2 = "stone1.png"
//etc...

[flats]
0 = "-1"
1 = "bigrock.png"
2 = "sewer3.png"
//etc...

[mapinfo]
thismap = 5
nextmap = 7
watermap = 6
music = "g_ruins1.ogg"
//etc...

I will post an actual release when these features are complete.

Share this post


Link to post

https://www.dropbox.com/s/wh1eq3rqj4ec373/WindowCaster_0_20_5132.zip?dl=0

 

New version. From changelog:

ver. 0.20.5132:
  * completely rewrote the entire map loading code so that it can be
    more easily modded. this constitutes a refactor of something like
    30% of the entire codebase.
  + added tile definition support. (all vanilla sc maps should fully render correctly.)
  + added mapinfo support.
  - temporarily removed music playback in maps (involves a mapinfo bug).

This will hopefully be the last version that contains no real gameplay.

Share this post


Link to post
Posted (edited)

Version 0.25-PRE-2

Version 0.25-PRE-2 source code

 

Interim release. This should not be considered a "real" update - this release is as-is for convenience purposes so you do not have to build the source in GM to see what has changed so far. Now that 99% of the Shadowcaster graphics and data that were statically linked to the executable have been removed, I feel much more comfortable releasing the source project behind it. It is designed with Game Maker: Studio 1.4.1804.

 

Be warned: this does not mean my code is at all good or pleasant to look at. It will compile and run as-is without modification, but keep in mind that I am the only person I expect to be able to follow what's happening at this point in time.

 

From changelog:

ver. 0.25-PRE-2:
  * first open-source release.
  + added back music playback support and exposed the appropriate key
    for mapinfo to define which song to play on each map.
  + added support for reading two types of graphic lumps from RAVDATA.DAT
    (for walls and flats).

Texture definition files (tile_floors.ini/tile_walls.ini) and external PNG graphic replacements are still allowed using the same method from 0.20.5132.

Share this post


Link to post
Posted (edited)

A new feature I've been working on for the "real" 0.25 release.

 

caster26.png.5cb690187335817c801b040fc5cfda38.png

 

GZDoom-style dynamic lighting in a scene can be toggled on or off at any time. There is a hard limit of 8 lights which can be visible at a time (with no prospect of expanding on this limit), which are managed automatically with excess lights simply not being drawn until previous lights are dropped from the list. By default, this feature will be disabled in vanilla maps.

Share this post


Link to post
Posted (edited)

New pre-0.25 release. As before, it is not important that you update immediately. The new test version contains positional audio playback, doors, and some patches to the way G_LoadWall/G_LoadAllWalls work. Dynamic lighting is included in this release, but disabled by default. In order to test this feature, you must manually place light objects in the room "levelarena" and set R_ENABLE_LIGHTING = true in the GM Macros editor.

Share this post


Link to post
Posted (edited)

New pre-0.25 release.

 

This version contains a map editor. Check the readme for details. This release was not planned, but I figured since I had basically finished the backbone of the editor it would be smart to test it out publicly. Please inform me of any bugs you find, show me your creations, or just give me your opinions on how the interface should expand or change.

 

I would also like to ask the community for your opinions regarding a text-based map format for WindowCaster, similar in concept to UDMF. Binary maps will continue to be supported and I will do my best to enable writing your own .lib files, with the objective of being compatible with the original DOS executable.

 

If there is interest, I would also like to consider creating a Discord server to discuss future developments of this "source port" since I am sure one Discord server in particular is tired of hearing about it.

 

ver. 0.25-PRE-5

ver. 0.25-PRE-5 source code

Edited by DILDOMASTER666

Share this post


Link to post

Have you looked at ECWolf's UWMF? It's basically UDMF for Wolfenstein 3D. It seems it'd be a good starting point since both are tile-based.

 

Do you use an online repository like GitHub, GitLab, or BitBucket?

Share this post


Link to post
Posted (edited)

Possibly buggy update that allows you to save/load custom maps. No pk3 update needed. Press F5 to save to filename or F6 to load from filename while the editor is running (M key). Maps are saved to %appdata%/WindowCaster/Maps.

 

The files it generates are text files, with a format loosely similar to UWMF/UDMF.

Share this post


Link to post
Posted (edited)

New version.

 

This version includes some fixes for various bugs in the map editor and adds door editing mode, but be aware that while maps will save properly, doors do not always get saved or loaded properly. This will require several changes in the way doors are handled by the engine and those changes should be ready for the next pre-release, whenever that is.

 

Go here if you want to talk about WindowCaster or give me bug reports or whatever.

 

EDIT: Source code updated.

Edited by DILDOMASTER666

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×