Git Product home page Git Product logo

obsidian-level-maker / obsidian Goto Github PK

View Code? Open in Web Editor NEW
145.0 13.0 21.0 137.62 MB

A community continuation of the OBLIGE Level Maker, originally by Andrew Apted, combined with ObAddon.

Home Page: https://obsidian-level-maker.github.io

License: Other

Makefile 0.35% C++ 32.30% C 26.63% Lua 37.24% Objective-C 0.06% HTML 0.72% CSS 0.19% Shell 0.23% Roff 0.69% CMake 0.75% Batchfile 0.07% Objective-C++ 0.62% Python 0.15% Lex 0.01% Starlark 0.01%
doom doom-2 heretic hacx hexen strife chex-quest random-map harmony

obsidian's Introduction

IF YOU JUST WANT THE PROGRAM

https://github.com/obsidian-level-maker/Obsidian/releases

DISCORD SERVER FOR QUESTIONS, ADDONS, HELP, ETC

https://discord.gg/dfqCt9v

OBSIDIAN

by the ObAddon Community.

INTRODUCTION

OBSIDIAN is a random level generator for classic FPS titles. The goal is to produce good levels which are fun to play.

Features of OBSIDIAN include:

  • high quality levels, e.g. outdoor areas and caves!
  • easy to use GUI interface (no messing with command lines)
  • built-in node builder, so the levels are ready to play
  • uses the LUA scripting language for easy customisation

COMPATIBLE GAMES

  • Doom 1 / The Ultimate Doom / Doom 2 / Final Doom
    These are the primary target for Obsidian and have the highest level of support, with the most prefabs, modules, and available addons. New features are most likely to be implemented for these games first.

  • Heretic
    Moderate level of support, with some advanced modules and a handful of addons available.

  • Chex Quest 3 Basic level of support, with a handful of unique prefabs.

  • HacX 1.2 Basic level of support.

  • Harmony
    Basic level of support.

  • Hexen Basic level of support. Game progression is linear and episodic, with no hubs present. The game will end after the last level generated. The Death Wyvern is absent from the monster table due to the infeasibility of scripting and flight pathing with randomly generated layouts.

  • Strife Basic level of support. Quests/multiple endings not yet implemented. Progression is linear and game will end after the last level generated.

  • Wolfenstein 3D / Spear of Destiny Moderate level of support.

  • Super Noah's Ark 3D
    Basic level of support.

QUICK START GUIDE (Windows)

First, unpack the zip somewhere . Make sure it is extracted with folders, and also make sure the OBSIDIAN.EXE file gets extracted too.

Double click on the OBSIDIAN icon to run it. Select the game in the top left panel, and any other options which take your fancy. Then click the BUILD button in the top left panel, and pick a location in which to save your file.

OBSIDIAN will then build all the maps, showing a blueprint of each one as it goes, and if everything goes smoothly the output file (e.g. "TEST.WAD") will be created at the end. Then you can play it using the normal method for playing mods with that game (e.g. for DOOM source ports: dragging-n-dropping the WAD file onto the source port's EXE is usually enough).

QUICK START GUIDE (Linux/BSD/Haiku OS)

Please refer to COMPILING.md to build Obsidian for Linux/BSD/Haiku OS

About This Repository

This is a community continuation of the OBLIGE Level Maker, originally created by Andrew Apted.

A brief summary of changes:

Improved internationalization support, including fixes for accented characters in Windows filepaths and an updated translation template

Russian translation file provided for the RU locale

GUI Customization and Theming added

Modified SLUMP level builder included for Vanilla Doom usage.

ZDBSP as the internal nodebuilder, replacing GLBSP.

UDMF map output for compatible engines.

64-bit seeds and random numbers.

Migrated from Lua to LuaJIT for improved build speeds.

Patch by Simon-v for searching for .pk3 addons in both the install and user's home directories (#1)

Strings allowed for seed input (numbers with no other characters still processed as numbers).

New random number generator based on the xoshiro256 algorithm from fastPRNG (https://github.com/BrutPitt/fastPRNG).

Bugfixes as discovered.

obsidian's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obsidian's Issues

i am interested in "freedoom-ifying" obsidian

i wanna go through and change all "UAC" references in the zdoom story generation lua scripts to AGM, as well as any images or anything else that might reference doom IP, to make a a version that will be totally libre.

what is the actual status of the images in the prefabs and epic texture pack? i recognize alot of it from freedoom, and pd paintings, but i would like to help replace anything that is not free, if there is anything. at the very least i wanna make a fork that is freedoom-centric referencing AGM in story and techbase textures.

No option to turn enemy ZDoom marines off?

In older versions there was a way to turn of ZDoom Marines, but now I can only make them appear as little as 'scarce', am I missing an option or is this intentional?

Feature Request: Add Mapset Name/Subtitle to LANGUAGE lump

Hey there,

Is there any chance of the randomly-generated name (and possibly subtitle) for the mapset to be added to LANGUAGE for mods to peer at? I messed around with an OBLIGE-centric titlemap for DRLA that displays the titlepic graphic quite a while back, it might be fun to instead display the text using fancy custom fonts and tricks in a project I've been pondering...

Missing textures?

This is a map I uploaded to issue #130 which has a red-and-yelllow exclamation mark near the exit:

(Generated PWAD removed; logs indicate Modded Game Extras was enabled)

I'm uploading a new one that has the same icon right at the starting room:
(Generated PWAD removed; logs indicate Modded Game Extras was enabled)

I have the Obsidian epic resource pack module enabled, with the merge textures checkbox activated and using GZDoom g4.5.0.

Build issue within mock, builds fine with host.

I could use a hand tracking down why on my rig I can compile fine, but on my buildbox and host, using mock, it fails with a cmake populate error.

Running mock locally to simplify things I barf out at the "cmake --preset dist" part. Ill post the puke that mock spews at the end (just the %build portion). I have triple checked the deps area, and have gone to the point of invoking in the spec an rpm -qa SOMETHING | sort to check it to my host. Not finding things. In the case here I checked cmake packages and they are essentially identical (mock chroot is x86_64, but host has some i686 rpms installed). I did plop in there a ping command to make sure when I told mock to enable networking it was indeed enabled (it twas).

Anyway, regarding the beautiful bean footage:

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.oz5uDb
+ umask 022
+ cd /builddir/build/BUILD
+ cd Obsidian-Obsidian-Current-Unstable
+ cmake --preset dist
Preset CMake variables:

  CMAKE_BUILD_TYPE="Release"

-- The C compiler identification is GNU 11.2.1
-- The CXX compiler identification is GNU 11.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Module support is disabled.
-- Version: 8.0.1
-- Build type: Release
-- CXX_STANDARD: 17
-- Performing Test has_std_17_flag
-- Performing Test has_std_17_flag - Success
-- Performing Test has_std_1z_flag
-- Performing Test has_std_1z_flag - Success
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS - Success
-- Performing Test FMT_HAS_VARIANT
-- Performing Test FMT_HAS_VARIANT - Success
-- Required features: cxx_variadic_templates
-- Looking for strtod_l
-- Looking for strtod_l - found
-- CPM: adding package [email protected] (v1.7.0)
CMake Error at /usr/share/cmake/Modules/ExternalProject.cmake:2666 (message):
  error: could not find git for clone of format.cmake-populate
Call Stack (most recent call first):
  /usr/share/cmake/Modules/ExternalProject.cmake:3716 (_ep_add_download_command)
  CMakeLists.txt:23 (ExternalProject_Add)


-- Configuring incomplete, errors occurred!
See also "/builddir/build/BUILD/Obsidian-Obsidian-Current-Unstable/build/dist/_deps/format.cmake-subbuild/CMakeFiles/CMakeOutput.log".

-- Configuring incomplete, errors occurred!
See also "/builddir/build/BUILD/Obsidian-Obsidian-Current-Unstable/build/dist/CMakeFiles/CMakeOutput.log".
CMake Error at /usr/share/cmake/Modules/FetchContent.cmake:1075 (message):
  CMake step for format.cmake failed: 1
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FetchContent.cmake:1216:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake/Modules/FetchContent.cmake:1216 (cmake_language)
  cmake/CPM.cmake:811 (FetchContent_Populate)
  cmake/CPM.cmake:628 (cpm_fetch_package)
  CMakeLists.txt:47 (cpmaddpackage)

Build Dependencies (note in the Empire of Red Hat, g++ is named gcc-c++)

BuildRequires:  gcc-c++, binutils, clang, make, cmake

BuildRequires:  fltk-devel, libXft-devel, libXinerama-devel, libjpeg-turbo-devel

BuildRequires:  libpng-devel, fontconfig-devel, flex

BuildRequires:  xdg-utils, extra-cmake-modules, iceauth

Add a prefix to generated files to identify how many levels it contains

In Oblige/Obsidian, Doom maps can be generated in a .wad of 1, 4, 11 or 32 maps.

I use them all, but each time I do, I need to manually add a prefix to the generated file's filename. Otherwise I usually forget after a week of returning to play more doom whether this was a short mappack or a longer more epic one.

Would be awesome if the generator did this automatically for each generated wad it creates.

I propose these prefixes:

ob1_
ob4_
ob11_
ob32_

i.e.
ob32_Doomed_Catacombs_Electric_Boogaloo.wad

ideas for some challegne trails

hit a button and get teleported to different types of rooms. (there would be some sort of logo/symbol to indicate it a challenge room [it could just be, say, a trophy which would be a mystery to the player, or if you want, you could add specific symbols for each]
room 1: A chasm ledge style room where the player has to make it past the obstacles in order to get a reward
room 2: riddles/trivia questions. have a big wall with text on it asking the question and your possible answers
room 3: dodge and survive for x time (probably like a minute) without allowed to shoot

(Request) Appimage and/or Flatpak support for Steam Deck

I've read in other issue pages that flatpak experimentation is happening, but I'd honestly appreciate an official statement about when/if Obsidian will have an appimage or flatpak, as Steam Deck users cannot compile source code themselves without making significant changes to the immutable filesystem that get erased immediately following a SteamOS update.

Error on Build "attempt to index field 'wide halls' (a nil value)"

Initial episode list =
{
1 = deimos
2 = hell
3 = tech
4 = flesh
}
Grown episode list =
{
1 = deimos
2 = hell
3 = tech
4 = flesh
}
Theme for level E1M1 = tech
Sky generator:
Forced sky: sky_default
Sky theme: urban
1 = BROWN_CLOUDS
+ TAN_HILLS
Special levels:
none
Initial size for E1M1: 27
size_multiplier: 0.5
area_multiplier: 1
size_consistency: normal
Game title: Hexa Doken's Doom
Game sub-title: Billions of Potential Levels!
Episode 1 title: Fire With Fire
Planned weapons:
E1M1
new = { plasma, bfg, launch, shotty, chain }
start = { shotty }
other = { plasma, bfg, launch, shotty, chain }
secret = NONE
quota = 3
Planned monsters:
E1M1
level = 4.89
new = { shooter, zombie, imp }
pal = { imp, shooter, zombie }
skip = {}
b_quotas = { 0, 0, 0 }
bosses = {}
Level 1 title: Mexbruniko Research Compound

****** ERROR OCCURRED ******
Stack Trace:
  1: func() @ zdoom_armaetus_epic_textures.lua:825
  2: ob_invoke_hook() @ oblige.lua:1610
  3: Level_make_level() @ level.lua:2695
  4: Level_make_all() @ level.lua:2767
  5: ob_build_cool_shit() @ oblige.lua:1778
Script Error: attempt to index field 'wide_halls' (a nil value)
Writing WAD directory
Closed WAD file

Suggestion: include option for Wadsmoosh as the choice of iwad

Because it'd be really neat to see Oblige generate hundreds of levels across multiple "games", each using their original themes.

The previous maintainer said no, but as this is a fork of Oblige, it can do so without issue, assuming the engine can handle that many randomly generated levels in one wad.

Failing an automatic generation of all maps, it'd be nice to have a way to generate a mapset for a given base game and have the maps and campaigns renamed/reordered to match Wadsmoosh's file order, so that I can just keep Wadsmoosh as the active iwad at all times and simply swap out individual campaigns within wadsmoosh with Oblige mapsets.

[SOLUTION IN COMMENTS] Script Error: attempt to concatenate a nil value (local 'text')

-- CONFIG FILE : OBSIDIAN V20"Unstable"
-- Build 2022.03.04
-- Based on OBLIGE Level Maker (C) 2006-2017 Andrew Apted
-- https://github.com/dashodanger/Obsidian/wiki

-- Obsidian (C) 2018-2022
-- MsrSgtShooterPerson
-- Armaetus
-- Garrett
-- Caligari87
-- Frozsoul
-- Simon-v
-- Beed28
-- Craneo
-- MogWaltz
-- EpicTyphlosion
-- Tapwave
-- Swedra
-- Demios
-- Scionox
-- josh771
-- dashodanger
-- Phytolizer
-- https://github.com/caligari87/ObAddon/

seed = 5117749799049339094

---- Game Settings ----

game = doom2
engine = zdoom
length = game
theme = bit_mixed

---- Architecture ----

float_size = Mix It Up
float_level_upper_bound = 75.0
float_level_lower_bound = 10.0
level_size_ramp_factor = 0.66
level_size_bias = default
mixin_type = normal
bool_prebuilt_levels = 1.0
outdoors = mixed
caves = mixed
liquids = mixed
hallways = mixed
teleporters = less
steepness = mixed
zdoom_vista = sky_gen_smart
zdoom_skybox = random

---- Map Build Options ----

bool_build_nodes_edge = 0.0

---- Combat ----

float_mons = Progressive
float_mix_it_up_upper_range = 2.0
float_mix_it_up_lower_range = 0.0
float_strength = 2.5
float_ramp_up = 1.0
bool_pistol_starts = 1.0
bool_quiet_start = 1.0
mon_variety = heaps
mon_variety_jumpstart = default
bosses = medium
bossesnormal = no
traps = mixed
trap_style = default
trap_qty = default
cages = rare
cage_qty = default
secret_monsters = no

---- Pickups ----

health = heaps
ammo = heaps
weapons = very_soon
items = more
secrets = less
secrets_bonus = heapsest

---- Map Build Options ----

bool_build_reject = 0.0

---- SLUMP Architecture ----

float_minrooms_slump = 15.0
float_bigify_slump = 50.0
float_forkiness_slump = 50.0
bool_dm_starts_slump = 0.0
bool_major_nukage_slump = 0.0
bool_immediate_monsters_slump = 1.0

---- SLUMP Monsters ----

slump_mons = normal

---- Map Build Options ----

bool_build_nodes_udmf = 1.0
map_format = udmf

---- Other Modules ----

@armaetus_epic_textures = 1
bool_custom_liquids = 1.0
custom_trees = zs
environment_themes = random
bool_include_package = 1.0
bool_include_brightmaps = 1.0
bool_no_env_theme_for_hell = 0.0

@debugger = 0

@doom_item_control = 0

@doom_mon_control = 0

@doom_weapon_control = 0

@export_map = 0

@fauna_module = 1
bool_flies = 1.0
bool_rats = 0.0

@gzdoom_marine_closets = 0

@iwad_mode = 0

@jokewad_module = 1
bool_fireblu_mode = 0.0
bool_pandemic_mode = 0.0

@misc = 1
float_oblige5x_grammar = 0.0
float_layout_absurdity = 10.0
float_linear_mode = 0.0
float_nature_mode = 15.0
float_streets_mode = 15.0
bool_urban_streets_mode = 1.0
room_size_multiplier = 1.5
room_area_multiplier = mixed
room_size_consistency = mixed
room_size_mix_type = normal
room_area_mix_type = normal
big_rooms = more
big_outdoor_rooms = some
room_heights = tall
parks = more
natural_parks = none
park_detail = mixed
windows = mixed
passable_windows = not_on_vistas
passable_railings = never
symmetry = mixed
beams = mixed
fences = mixed
porches = some
scenics = mixed
corner_style = themed
liquid_sinks = yes
darkness = mixed
float_minimum_brightness = 0.0
float_maximum_brightness = 256.0
barrels = more
doors = mixed
keys = mixed
trikeys = mixed
switches = mixed
local_switches = mixed
bool_road_markings = 1.0
street_traffic = mixed
bool_exit_signs = 1.0
linear_start = default
dead_ends = some

@modded_game_extras = 1
bool_hn_markers = 0.0
bool_custom_actor_names = 0.0
bool_qcde_lootboxes = 0.0
bool_d4t_ents = 1.0
bool_trailblazer = 0.0
bool_complex_doom = 0.0

@prefab_control = 1
bool_alt_starts = 0.0
bool_foreshadowing_exit = 1.0
bool_autodetail = 1.0
point_prob = fab_default
wall_prob = fab_default
group_wall_prob = fab_default
float_single_room_theme = 50.0
float_limit_wall_groups = 50.0
bool_peered_exits = 1.0
steppy_caves = yes
pf_crushers = 1
pf_dexterity = 1
pf_gamble = 1
pf_sight_ambushes = 1
pf_mirror_mazes = 1
pf_dark_mazes = 1
pf_stair_ladders = 1
bool_jump_crouch = 1.0
pf_damaging_halls = default
bool_fab_match_theme = 1.0

@procedural_gotcha_zdoom = 0

@sky_generator = 1
force_sky = 50
force_hills = hs_random
force_hill_params = hp_random
cloud_color = default
terrain_color = default
nebula_color = default
bool_influence_map_darkness = 0.0

@stealth_mon_control = 0

@stealth_mons = 0

@theme_ctl_doom2 = 0

@zdoom_ambient_sound = 1
snd_start_id = 20000

@zdoom_marines = 0

@zdoom_specials = 1
fog_generator = no
fog_env = all
fog_intensity = subtle
bool_fog_affects_sky = 1.0
bool_dynamic_lights = 1.0
bool_glowing_flats = 1.0
mapinfo_music_shuffler = yes
story_generator = none
bool_custom_quit_messages = 0.0
generic_intermusic = $MUSIC_READ_M
bool_episode_selection = 1.0
bool_no_intermission = 0.0

-- END --

More involved secrets

Most of the secrets in Obsidian are just "notice a thing, immediately get a reward". I'm wondering how feasible it is for a hidden switch to be hidden across the room from its associated item. For example, you see a suspicious wall, but the switch to open it is hidden in some other prefab. Maybe it would be too confusing, but I think secrets could get some more love in this area.

Chain link 'window' fencing is completely passable

This is from the current unstable release from a few days ago.

Various forms of chain link window areas that have solid map geometry at the top of the fence, allow both monsters and players free movement past the fence, acting as though they were intended to be vines. This occurs with any window or railing setting in the map generator, but I have mine set to no movement for both. The fencing in question that I've seen affected (so far,) is the small and large chain link that runs diagonal squares/diamonds, and the other would be the thick, silver girder-esque ones that run cardinally.

LOGS.txt

On a side note, could the bug report wall texture be set to the debug mode so there's a way to turn it off?

Linearity slider

I have no idea how realistic an option like this is but I've been finding myself trending more and more towards big one-off levels rather than full WADs. They feel pretty good as-is and most maps are fine but one downside is that there's a lot of potential for backtracking - and while that comes with the territory, obviously, and I don't mind some backtracking, it doesn't feel good to have 3 keys and be searching for forever for that 3-key door you probably missed way-back-when on a tiny alcove behind a box or something.

Most maps turn out just fine even on the higher-ends of the level sizes but if there was a "linearity" slider that could be adjusted to ever-so-slightly nudge the map into less individually-branching paths to curb on some of that overwhelming complexity and backtracking, it would be very welcome - either as a slider or one of those options where you can simply select "slightly more" or "slightly less" (linear).

I apologize if I missed anything (other than "linear mode" which really is not the same idea) but with new settings like "symmetry" and "room size/area count" soft-sliders, perhaps this will fit right into the direction Obsidian is going.

I guess ,ideally if you turned this hypothetical setting to max you'd get basically the same results as a "linear mode" map.

theme settings "Digger"

I just would like to see a new theme in the "theme settings" called "Digger" in which only metro, mines, stairs and elevators were generated. and nothing else. Is it possible to do this?

Batch command not working with Obsidian

When I try using a bash script like this:

#!/bin/bash
./obsidian --install . --batch /home/starx555/doomresources/oblige/doom_complete_multiwads/doomrla_randommap_doom2.wad --load ./obsidian_default_doom2.txt

It gives the following error:

./doomrla_obsidian_doom2_mapgen.sh: line 2: 438136 Segmentation fault (core dumped) ./obsidian --install . --batch /home/starx555/doomresources/oblige/doom_complete_multiwads/doomrla_randommap_doom2.wad --load ./obsidian_default_doom2.txt

It worked fine on the old versions of Oblige, though those actually had the install tag applied automatically. For whatever reason, it doesn't work. The error is incredibly cryptic too, with no real log explaining WHY it can't do that.

Any chance of a fix soon?

Feature Requst: The ability to automatically append the compatibility level to the end of the WAD name.

Eg. If I generated a megawad for PRBOOM say, let's call it Deathly Shadows.

normally OBSIDIAN would do something like this:

doom2_deathly_shadows.wad

I would have to add -PRBOOM- to the end for me to tell what it was generated for.
eg. doom2_deathly_shadows-PRBOOM-.wad

The problem is that doing that manually is a pain.

I would like OBSIDIAN to have an option to do that automatically. It would save a LOT of time.

Installation support

Tracking issue to encourage me to actually get this working with CMake. Once it works, releasing will be as simple as:

cmake -DCMAKE_INSTALL_PREFIX="$PWD/install" --preset dist
cmake --build --preset dist
cmake --install build

and then zipping up the resulting folder.

Single map WADs: Episodic progression within a singular map

Referencing #122

See if the following things can be done within a single, sufficiently large map:

  1. Transition themes, i.e. Tech->Hell as one traverses the map. Not mix-ins, but one consistent theme to another.
  2. Same as above, but with a gradually tougher monster palette.

"IWAD style mode" overrides "level size" setting

Hi, not a bug in itself but more probably what I like to call a procedural-generation "blunder" (when things just go wrong for whatever reason). Thought you guys might like to look into it and see if it's just an odd case or something that can be improved.

Basically it's a Huge single-map (my first ever created with Obsidian! :D ) which can be finished by basically taking a couple right turns and reaching the exit. Beat it in literally a minute or two after launching... certainly doesn't feel "Huge" as advertised lol

(Attached PWAD removed)

Obsidian binary is incovenient to run on Linux

This is a very small nitpick but I thought I'd make note of it anyways: the only way I can execute Obsidian's binary on Linux is to open up a terminal emulator, then cd to the proper directory and execute it (./obsidian). That's fine really but almost every other executable binary I can run straight from the file manager by clicking on it (after setting +x, which is sometimes necessary of course).

This might be related to the obsidian file showing up as Shared library rather than Program in its "File type". It should probably be very simple to solve with a compiler flag or something but sadly I wouldn't know exactly how to do it.

More enjoyable single map wads

My suggestions:

  • Single map wad should begin with weak monsters and end with tough ones (and a boss or a gotcha)
  • Different parts of large map should look different (use different fabs)
  • Powerful things (like a backpack or a chaingun) should not be placed at the beginning of such map (except secrets of cource)

Just 2 things about the hexen wads

Hello, I have been testing Hexen wads with Obsidian, and I do understand they are experimental, but still its really good! But 2 things I have noticed... There seems to be an issue with the height of the chandeliers. Sometimes they are lower than the ceiling. Also, there seems to be an issue with teleporters not working. These are the only things I've noticed so far. Obsidian is so awesome though! (I hope it is ok to post this kind of thing here. Please tell me if it is not.)

Procedural Gotcha Bosses: split away monster selection and traits given in Boss Difficulty setting

In "ZDoom Procedural Gotcha" module, I noticed in the Boss Difficulty setting the description says that selecting between easy/medium/hard/nightmare will influence which monster will spawn (i.e Easy: zombieman/imp vs Hard: cyberdemon etc) BUT it will also influence the extra special scripted traits/abilities the boss will get, namely "reflect projectiles", "teleport dashing" and "temporary invulnerability" that I noticed the harder settings tend to have.

I wish traits and monster selection were seperate, so that I could get a cyberdemon or any other high-tier monster as the final boss, while another seperate option would then determine if they will have the crazy unfair superpower traits or not.

For reference, this is the setting I'm talking about:
GotchaBosses

Compile error, and potential fix

On linux I had a compile error after doing a clean git pull (wiped my old dir and started fresh).

The error was:

Building CXX object CMakeFiles/obsidian.dir/source_files/obsidian_main/ui_window.cc.o
/home/andrew/workspace/git_repos/Obsidian/source_files/obsidian_main/ui_window.cc: In constructor ‘UI_MainWin::UI_MainWin(int, int, const char*)’:
/home/andrew/workspace/git_repos/Obsidian/source_files/obsidian_main/ui_window.cc:82:18: error: call of overloaded ‘add(const char [14], NULL, void (&)(Fl_Widget*, void*))’ is ambiguous
   82 |     menu_bar->add("Help/Tutorial", NULL, menu_do_tutorial);
      |     ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/FL/Fl_Choice.H:25,
                 from /usr/include/FL/Fl_Color_Chooser.H:32,
                 from /home/andrew/workspace/git_repos/Obsidian/source_files/obsidian_main/hdr_fltk.h:31,
                 from /home/andrew/workspace/git_repos/Obsidian/source_files/obsidian_main/ui_window.cc:21:
/usr/include/FL/Fl_Menu_.H:114:8: note: candidate: ‘int Fl_Menu_::add(const char*, int, void (*)(Fl_Widget*, void*), void*, int)’
  114 |   int  add(const char*, int shortcut, Fl_Callback*, void* = 0, int = 0); // see src/Fl_Menu_add.cxx
      |        ^~~
/usr/include/FL/Fl_Menu_.H:116:8: note: candidate: ‘int Fl_Menu_::add(const char*, const char*, void (*)(Fl_Widget*, void*), void*, int)’
  116 |   int  add(const char* a, const char* b, Fl_Callback* c, void* d = 0, int e = 0) {
      |        ^~~
gmake[2]: *** [CMakeFiles/obsidian.dir/build.make:860: CMakeFiles/obsidian.dir/source_files/obsidian_main/ui_window.cc.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:258: CMakeFiles/obsidian.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2

I went into the source and changed the aforementioned null to 0 and things built. Not sure if its the best way to do the fix, but it built. I had coded ages ago, and have forgotten damn near all of it, so this may or may not be a good remedy, but it worked. And nice job on the new tutorial! Looks nice.

Nil value error

Getting a consistent WAD generation failure at Map 30 consistently, with the current unstable build (from 16 hours ago,) along with the version just prior. Happens with the default config or my usual tweaks.

Log is attached.
Unstable Build Crash.txt

Windows that are translucent textures rather than translucent glass

The keycard generator (large machine that dispenses a keycard of unknown color) and the small prefab entrance rooms for sewer/underwater turbine sections, both have windows that aren't actually windows, but are instead just translucently textured open air sectors; while I believe both have linedefs to block player and monster movement, they don't stop line of sight nor block hitscan or projectile attacks. And in the case of the keycard generator, you can pick up the bottom row (possibly higher up too, depending on the mod) of keycards through the 'glass' when playing with any mod that utilizes a ranged 'use' command, such as Hideous Destructor, or the Use to Pickup mod (and, by extension, any other mod with Use to Pickup incorporated into it, such as Scavver's Paradise.)

Could this be changed to a solid, translucent wall sector like the randomly generated window sections that can make up the walls of rooms?

Map gen fails when "Export MAP File" option is selected

From existing logs:
-snip-
****** ERROR OCCURRED ******

Stack Trace:
1: c-function format()
2: export_printf() @ export_map.lua:23
3: add_entity_func() @ export_map.lua:139
4: raw_add_entity() @ brush.lua:68
5: Fab_render() @ prefab.lua:789
6: Fabricate() @ prefab.lua:2316
7: Render_chunk() @ render.lua:2735
8: visit_chunk() @ render.lua:2834
9: Render_all_chunks() @ render.lua:2849
10: Room_build_all() @ room.lua:4197
11: Level_build_it() @ level.lua:2762
12: Level_make_level() @ level.lua:2901
13: Level_make_all() @ level.lua:2975
14: ob_build_cool_shit() @ oblige.lua:1429

Script Error: bad argument #3 to 'format' (number has no integer representation)

[Request] mridlen's Oblige_Realm667 Addon for Obsidian

I noticed a while ago when I tried to run the Realm667 Addon by mridlen for Obsidian, but for some reason, it had an unexpected error upon startup.
Is there any way that mridlen's Realm667 Addon can be added to Obsidian in the next build?
I would gladly appreciate it.
Keep it up.

Diff to make Obsidian compile on OpenBSD

Hi! here i leave a small diff to make Obsidian compile on OpenBSD 7.2 stable with same commands stated on COMPILING.md

Thanks in advance!

`diff --git a/source_files/zdbsp/tarray.h b/source_files/zdbsp/tarray.h
index 06f387e2a..54f9e883a 100644
--- a/source_files/zdbsp/tarray.h
+++ b/source_files/zdbsp/tarray.h
@@ -38,8 +38,10 @@
#include <assert.h>
#include <stdlib.h>
#ifndef APPLE
+#ifndef clang
#include <malloc.h>
#endif
+#endif
#include

// TArray -------------------------------------------------------------------`

[BUG] Script Error with Themes

I tried to generate levels using Obsidian Beta 20 Preview, but it threw an error at the start of making the MAP01 Plan.
It gave me this error:

Attempt to index a nil value (global 'THEMES')

Is there any way to fix that?

Windows Build ZDBSP failure when renaming temp file after nodebuilding

IN NAME: Z:\home\dasho\Desktop\pwad\TEST.tmp
----MAP01----
BSP: 100.0%
0.370 seconds.
The output file could not be renamed to Z:\home\dasho\Desktop\pwad\TEST.tmp.
You can find it as tmp.daw.

A tmp.daw will exist in the same location that obsidian.exe is executed in, and upon inspection is a working WAD complete with nodes. Unknown at the moment why this is failing.

NOTE: Z: drive root is from WINE, but the same issue has been reported by native Windows users

ZScript Generated Boss - add option choose which monster will be boss

Currently the scripted boss is a random monster. There is no way to specify a which monster it will be - atleast not without messing up all the other levels to spawn only that monster too.

Would be great to add an override drop down menu to select a Doom 2 monster to be the zscript boss for all procedural gotchas.

Shop/closet dropdoown

I thought I had seen something related to this but I can't seem to find it again. I like both the "shop" (where you press the button to pick which item you want) and the "closet" where you simply walk in and the other options are blocked but if I could choose between either, I'd just go with "closet" every time as this doesn't break the pacing of the game and has less options to choose.

The "shop" is a technical marvel to behold for someone who knows nothing about Doom modding and it definitely offers interesting decisions to make but I just like the "closet" better, personally. A drop-down where you could pick "closet, shop, both or none" would be great. It could also be implemented as two "less/some/more..." options too like most of the other level features.

Again, I thought I had seen something like that at some point already, so I apologize if I'm missing something.

Show command line generator options?

I like running Obsidian over the command line vs the gui. But it's hard to tell what the valid generator options would be without going through the lua files. I'd love if we had a separate terminal command just to show the generator options instead of just the command line options.

"Arena" fights

Just wanted to formalize this as an issue as I've seen it discussed a couple of times. I believe the fight would look like an empty region at first, then upon grabbing a key/hitting a switch/etc you are locked in and forced to fight a mob of teleporting or closet demons. Seems like a fun idea if it is feasible.

Single map WADs: Tweak placement and range of provided weapons

Referencing #122

Need to see if two things can be done, or if they are already possible:
1: It seems that, unless you disable weapons via Weapon Control, a single map will always end up giving you every weapon. This feels a bit overkill most of the time.
2: See if there is some sort of way to place the more powerful weapons provided closer to the exit, barring a reward for finding a secret.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.