Eldritch
gz Feb 4, 2015 @ 7:40am
[ANN] mEldritch - a build of Eldritch that supports modding
Hi,

IMPORTANT NOTICE: mEldritch currently only works with the legacy version of Eldritch, and not with versions 400 and up!

ok, strictly speaking the original Eldritch also supports modding, but mEldritch aims to make it a lot easier. So, I've taken the Eldritch source code David so generously released and did this to it:

- unified build system (Makefiles & gcc) on all 3 supported platforms (Windows 7, MacOSX, Linux)
- ported editor and all tools (except for the ContentSyncer) to Mac and Linux
- revised loader for game assets, for easy overriding of game assets in mods
- revised config file loader, with a similar purpose
- changed a few editor key bindings from the original, since they clashed with stuff on Linux or Mac. Also, made a few other keys available in the game, like Quicksave/load (using the latter will leave a mark on your game screen, though ;) )
- screenshots working on all platforms
- made all spawners that make sense available in the editor
- added a preview mode to the room editor
- and a load of smaller things to facilitate the above
- provided an example mod, and something resembling the beginnings of a documentation

new in build 128:

- can now remove _and_restore_ hands and/or HUD.
- new subtool in level editor to select the voxel set (a.k.a. world) for your level
- changed save file extension so that it does not collide with regular eldritch saves, and you don't have to give those up. Also, changesd log file name.
- the editor now remembers the last directory where you saved or loaded something, even across sessions.
- added PNG as a texture format
- added a new book an some ifrastructure to load world mods, like MoM
- added a simple world to play with. It's ugly and there's nothing to do, but it should serve as a starting point for something real.

new in build 183:

- small fix to SDL controller code (fix from https://github.com/rohit-n/Eldritch/commit/b1d2a200eac9c8026e696bdac1f7d2ca629dd38c)
- ported tools/xmlmeshexport.py to Blender 2.6x
- added more mod examples: TouristMode, SampleObjects, ExplosivePenguinInvasion
(the latter was contributed by Alex from the Steam forums)
- enabled world generation statistics
- help on all keys in room editor
- room editor now uses native file dialogs
- room editor will now ask for confirmation when overwriting an existing
room on save
- added preview mode for the room editor
- removed option to create larger rooms in the room editor (they are not
supported by the maze generator)
- added "Open Mod Dir" to opening and pause menu screen for easier access
- (some) runtime errors now show a dialog before quitting mEldritch
- Bugfixes and minor tweaks

New in build 256:

- 64-bit support
- limited scripting using the lua scripting language
- added support for steam content. Thanks go to David for providing the source code for some missing components and allowing me to distribute them with mEldritch under the same license as the rest of the Eldritch source code! This means that the Halloween and Asylum worlds are now fully supported by mEldritch, although only with local leaderboards for the Asylum.

Note that since build 256, only 64 bit builds are suported. Suport for 32 bit builds has been discontinued, though you should be able to build mEldritch for 32 bits from source. The flags for this can be extracted from the Makefiles for the older versions.

You can get binaries for all 3 supported platforms and the source code from

http://www.tset.de/meldritch/index.html

Please make sure to check the readme for installation instructions. Should be easy enough, though.

Enjoy,
Gunnar

Edit: added supported platforms.
Edit: added information abut new release
Edit: added information about release 183
Edit: added information about release 256
Last edited by gz; Jul 29, 2020 @ 3:07am
< >
Showing 1-15 of 74 comments
inso Feb 4, 2015 @ 11:12am 
This is some amazing work, great job!

It would be really cool if these changes were incorporated into the base game, maybe combined with Steam Workshop support for distributing mods somehow.

I know David is probably too busy working on Neon Struct to make that happen any time soon though.
Cobble Feb 4, 2015 @ 1:50pm 
This sounds awesome! Can't wait to see what peeps come up with :)
Nasty Peep Feb 4, 2015 @ 3:35pm 
It's about time someone with the skill did something with that source code.
Wazat1 Feb 4, 2015 @ 6:27pm 
Thank you for doing this!

BTW I tried running this (after making a copy of my Eldritch folder and copying in the new files), but it immediately crashes:

Assertion failed: "m_Size==0 || m_Offset + NumBytes <= m_Size" () in Read in src/memorystream.cpp at line 20.

I suspect this is because it's failing to read a config file. My Mods folder has mEldritch, SampleMod and Template folders. mods.cfg appears to have non-Windows endlines so notepad of course loves it. :) I'll have to grab a nicer IDE.

[mEldritchMods] NumMods = & @Mods #@@& = "SampleMod" # add a line like the above (but uncommented) per mod, where the value is # the mod's directory name

I don't see any problems. I tried uncommenting the SampleMod line but it doesn't help.


BTW, what IDE do you recommend for windows development? I'm guessing visual studio 2005 (2012 barfed when I tried to load the original project, long ago), but if there's something better, I'd love that (VS2005 hurts).
Last edited by Wazat1; Feb 4, 2015 @ 6:28pm
inso Feb 4, 2015 @ 6:39pm 
Originally posted by Wazat1:
Thank you for doing this!

BTW I tried running this (after making a copy of my Eldritch folder and copying in the new files), but it immediately crashes:

Assertion failed: "m_Size==0 || m_Offset + NumBytes <= m_Size" () in Read in src/memorystream.cpp at line 20.


It crashed for me too until I deleted main.eldritchsave main.eldritchmastersave (on Linux). Now it is working fine, not sure if your issue is the same though.

EDIT: corrected file name.
Last edited by inso; Feb 4, 2015 @ 10:26pm
Wazat1 Feb 4, 2015 @ 9:26pm 
Works. It's main.eldritchmastersave on windows. Thank you!

Edit: so it looks like this is primarily config and asset modding. It's set up for changing sounds, levels, monsters, textures, and all that good stuff, but not the code itself yet. Or am I not seeing that part?

Question is, could we create a bot entirely through config files? If not, I wonder what it would take in the engine to set that up. I still have that crazy AI contest in my head. :D
Last edited by Wazat1; Feb 4, 2015 @ 9:35pm
inso Feb 4, 2015 @ 10:23pm 
My bad, it's main.eldritchmastersave on Linux too, I just misremembered.

Also the config files seem very extensive, I think most of the game logic - including AI - is set up in them, so your AI contest idea may well be possible.
gz Feb 5, 2015 @ 2:43am 
concercing the crashes, I suppose those happen when you have stuff in your main.eldritchmastersave that meldritch does not know about. Probably from the Asylum or the Halloween extensions. Maybe I should just have meldritch use a different save file, so that would not happen again, and it would cooperate nicer with steam eldritch. For the tim being I will add that information to the readme files.

Wazat1: almost every aspect of eldritch is controlled by those config files. From what I can tell (have not examined that too closely) even the AI behaviour. Try Extras/Raw/Config/entities_ai.config and .../bt.config for a start.

Now, could someone please go and make me more eldritch, after all, that's why I did this :)
Last edited by gz; Feb 5, 2015 @ 2:53am
inso Feb 5, 2015 @ 12:27pm 
What is the best way to debug a config file?

I'm trying to add a custom spawner but the game crashes everytime I regenerate the world with the mod enabled. The error message it prints isn't very helpful:

Assertion failed: "pObj" () in operator new [] in src/customnew.cpp at line 95 Assertion failed: "NewArray" () in ExpandTo in ../../Libraries/Core/src/array.h at line 739 Assertion failed: "pChunk" () in operator delete [] in src/customnew.cpp at line 148

Also I think there's a bug: If I click while holding shift, it spawns a rock. This happens even with my broken mod disabled.
gz Feb 5, 2015 @ 1:05pm 
No, not really... better error messages are on my todo list for future versions. The problem usually is that you are refereing to something that does not exist. A spawner refers to an entity, which must exist. Any resources the entity needs must exist... entities are defined in the entity*.config files. Check, for example, the spawner for a key, look at the corresponding entity in entities.config.

And about the "bug", it's not really a bug, it is an oversight. I'll remove it. Thanks for the report.
Last edited by gz; Feb 5, 2015 @ 1:09pm
inso Feb 5, 2015 @ 1:12pm 
Originally posted by gz:
No, not really... better error messages are on my todo list for future versions. The problem usually is that you are refereing to something that does not exist. A spawner refers to an entity, which must exist. Any resources the entity needs must exist... entities are defined in the entity*.config files. Check, for example, the spawner for a key, look at the corresponding entity in entities.config.

And about the "bug", it's not really a bug, it is an oversight. I'll remove it. Thanks for the report.

Thanks, are the config file names significant? I have been putting everything in a single config file, so that might be the problem.
gz Feb 5, 2015 @ 1:16pm 
no, they're not significant. Those are just the files where you find the stuff in the original config files. If you like, you could mail me the config, my address is in the readme.
inso Feb 5, 2015 @ 3:37pm 
Ok I've made a really stupid mod.

It adds penguins to the upper library floor that explode when they die (and lag the game quite a lot). Originally I was trying to make it a power like the shoggoth summoning one, but I haven't got that to work yet.

I uploaded it here: https://www.sendspace.com/file/ayb47i

EDIT: updated version: https://www.sendspace.com/file/3xgwbm
Last edited by inso; Feb 6, 2015 @ 2:03pm
gz Feb 6, 2015 @ 1:08am 
hehe, neat :) While the mod may be useless ingame, it is a nice demo for some custom AI stuff and feature rooms.
dj___ Feb 6, 2015 @ 5:54am 
When I'm trying to launch mEldritch.exe it shows the following error:
The procedure entry point fopen_s could not be located in the dynamic link library msvcrt.dll.
What can I do?
Last edited by dj___; Feb 6, 2015 @ 6:34am
< >
Showing 1-15 of 74 comments
Per page: 1530 50