#dusk-modding

1 messages ยท Page 88 of 1

ancient depot
#

The BSP tree is used for collision basically

lament ore
#

ah

ancient depot
#

Basically it stores references to a bunch of faces defining a collision mesh of sorts

#

And then it specifies what it is, water, solid, etc

#

Not too hard to generate probably

lament ore
#

time to read up on bsp trees again oh boy

#

actually y'know what I've actually taken my data structures class since the last time I looked at anything BSP related maybe it won't be so bad this time lmao

#

anyway tl;dr vriska brushes i.e. convex solids are not represented by simple triangles/face and vertices in the .map format, but rather a solid is formed by the intersection of infinite planes

ancient depot
#

For reference, what you suggest would likely work in og quake and hl too

still raptor
#

the biggest issue i see with this is that theres very little added functionality here

lament ore
lament ore
#

although I recognize the extreme level of jank to achieve something that would be relatively easy to add with access to the codebase lmao

still raptor
#

a perfection of a model format into .map data would be more ideal tbh

lament ore
#

no thank you CryLaugh

#

I will not be working with infinite planes today good sir thank u very much

#

I made that mistake before LOL

still raptor
#

well its the exact opposite really

#

you are defining finite planes

lament ore
#

yeah I suppose you're right but you're limiting yourself to convex solids exclusively which is not really easy to guarantee in blender

#

at that point the vertex tools in JACK/TB are fine enough

still raptor
#

and tbf a lot of that legwork has been done, its just needs work

lament ore
#

it's not so much that it just needs work, it's moreso that convex solid limitation isn't something that can really be worked around. It's non-trivial to convert a potentially non-convex non-solid arbitrary 3d model into something that HAS to be a convex solid

still raptor
#

thats correct,like i said, it needs work

#

it can completely be done

#

the tooling has to have strong design however

lament ore
#

in theory but idk I doubt I'm smarter than the people who already took a crack at it with things like obj2map and bsp decompilers

still raptor
#

obj2map is a mess

lament ore
#

my point stands CryLaugh

still raptor
#

thats khreathor's work

#

and i promise, youre just as smart as him

lament ore
#

lmao

honest stag
#

im a simple user that doesnt understand shit but obj2map caused monstrous amounts of pain and crashed TB at least 12 times

lament ore
#

still, bypassing the convex solid requirement is something I see as highly preferable, so I personally wouldn't go down that route

still raptor
#

i think thats a lazy approach tbh

lament ore
#

correct

#

Realistically I have to figure in how much time and effort I am both able and willing to dedicate to this

#

I am not paid to do this after all

still raptor
#

i think its a not great idea considering the dozens of issues with it, and the improvements that are on the way for it

#

one of the most obvious issues being lightmapping

lament ore
#

do we have a timeline on custom model support? if it were within like, six months then yeah I wouldn't bother

still raptor
#

i think youll have it in 6 months, but thats by no means a commitment or even an estimation

#

and that still doesnt solve the lightmapping issue which is shitty

lament ore
#

hmmm

#

I'll see how my free time allows

#

I'm by no means opposed to working on fruitless projects as long as they improve my learning, which this will

still raptor
#

theres the possibility that you could precompile a lightmap and bake it into your models uv2 or something along those lines

ancient depot
#

You could just run light on it after adding the models in

#

Shouldn't even be an issue

lament ore
#

oh would it really be that easy lmfao

#

oh yeah it would I forgot light operates on the bsp not the map

still raptor
#

yeah its a bsp compiled step

lament ore
#

yeah heck that makes things a lot easier

#

my only real concern for myself is handling bsp tree collision but hey that'll be a learning experience

bold orbit
#

wait what are we trying to convert to map

still raptor
#

no

lament ore
#

nothing by me good sir CryLaugh

bold orbit
#

no is a good thing to convert to map

still raptor
#

its a difficult problem

ancient depot
#

The sample app will just take a bunch of BSP files as an argument and spit out copies of them through the API

lament ore
#

anyway since quake mdls are supported by assimp that could provide a pretty decent workflow. The custom fgd entry would both provide the filepath to my tool and also tell JACK/TB to render it as a preview model in the editor

lament ore
#

If I can be assed I could even automatically collect all the textures from the mdls and pack them into a WAD

#

wouldn't be a bad workflow tbh

still raptor
#

wouldnt be a great one either lmao

lament ore
#

listen I'm making this for me specifically okay lmao

still raptor
#

yeah i mean, jank has its drawbacks

#

but if it works, it works

ancient depot
#

Aside from lightmaps, this'll be largely superceded by place_model in the end

lament ore
#

ye

ancient depot
#

But even if only for the lightmaps, it could be useful

#

The problem is defining how the models are placed in the BSP and where

still raptor
#

thats both the main drawback, and benefit

ancient depot
#

Are you going to have dummy entities that it looks for or something

lament ore
#

just an fgd entry

#

then it's displayed like any other entity with an MDL preview

bold orbit
#

Bry what specifically are you trying to convert over to a map file

ancient depot
#

I mean from the perspective of the tool

still raptor
#

they arent

ancient depot
#

how will it know where to insert the vertices, etc

lament ore
#

Oh, yes, I misread your message. The dummy fgd entry would give me the file path and location, rotation, scale, etc

#

then I just delete the dummy entry before outputting the final bsp

ancient depot
#

You'll need to write a .map parser then, since entities in the BSP are just a copy of the .map with the brushes removed

still raptor
#

qbsp.exe is open source anyways

#

so

lament ore
ancient depot
#

Oh I think I'm seeing what you're saying now

#

You're just going to generate the .mdl and the .fgd and let qbsp shove the model in

still raptor
#

yes

#

you could either do it with qbsp

lament ore
#

correct, the bsp compiler doesn't know the difference

still raptor
#

or post process the bsp

ancient depot
#

I was thinking you were going to inject the mesh data itself into the compiled BSP

#

As a post-processing step

still raptor
#

yeah that was my initial thought as well

lament ore
#

well yes but the entity entry tells me where to do that

#

i.e. the entity entry will contain the filepath to the model file (ideally mdl so editor can display it) and location, rotation, and scale in worldspace

#

I could fork qbsp to do this I discussed that as a potential possibility way earlier in the thread

still raptor
#

thats probably the best path

ancient depot
#

If it were me I'd do the mesh injection approach since it'd mean I could use any BSP compiler with the map

#

but that's also a lot more complex

still raptor
#

significantly so

#

you have to resize everything etc that way

lament ore
#

the only non-trivial part really is the bsp tree stuff

still raptor
#

right, it is, but its extra work for no benefit

ancient depot
#

Yeah the harder part is definitely adding the collision info

still raptor
#

other than choice of compiler

lament ore
#

so it's worth taking a look at

#

for me, that is lol

ancient depot
#

I'd definitely recommend spending a bunch of time embedding the Quake specs into your brain first

still raptor
#

qbsp is not too bad

ancient depot
#

It's an invaluable source of info

still raptor
lament ore
#

Oh I definitely wouldn't use vanilla qbsp, there's too many limitations with it. I'd want to fork one of the "modern" qbsp forks

#

I forget the name of the one I was using when I was mapping last

still raptor
#

for sure

#

its probably ericw's

lament ore
#

yup that sounds right

still raptor
#

again though, the important part is the spec

bold orbit
#

Good ol Ericw

still raptor
#

you can extend it however you want, thats why i linked the original

lament ore
#

icic thx

still raptor
#

Eager to see what you come up with

#

Could result in some neat maps

#

Or some really lazy ports

#

You know, like ones that get exported from another game as a giant mesh, then imported into a bsp via your tool

honest stag
#

"hey guys i recreated the entirety of doom 2 BY HAND check this out"

#

i'd still play that though

still raptor
#

lol

honest stag
#

reading that many terms that i dont understand led me to actually trying to read on what bsp is and how it works at least on a surface level

#

wow whoever came up with this is a genius

ancient depot
#

It's a lot simpler than it's made to sound

still raptor
#

its just a data collection

honest stag
#

yeah i'm starting to understand what you people were talking about

ancient depot
#

Like if you break up the words "binary space partitioning" it's like

#

"huh, it makes sense now"

honest stag
#

yup
it took a visual demonstration on top of that but i think i got it

still raptor
#

so its important to nope

#

note*

#

bsp and .bsp arent the same thing

#

bsp is the concept, binary space partitioning

#

where .bsp is a storage format, that makes use of that concept

ancient depot
#

Yeah, a .BSP is just a collection of models split by a BSP tree

honest stag
#

yeah i figured as much
wouldnt make sense if all these games had so many maps made in the same format

#

i sitll have a lot to figure out about it but things certanly became much clearer

ancient depot
#

wouldnt make sense if all these games had so many maps made in the same format
Man, figuring out how to make DUSK accurately detect what game a BSP is from was absolute torture

#

Source and SiN BSP were definitely the most annoying

honest stag
#

huh? they're different?
sin just seemed like a half life 2 mod to me

ancient depot
#

Check out the first ~120 lines or so in BspUtility.cs in that code archive above

#

SiN Episodes is on Source

#

SiN is on modified Quake 2

honest stag
#

ohhhh you mean the og sin

#

got it

ancient depot
#

but shit like this is just

#

why valve

honest stag
#

oh jesus christ
why wouldnt they at least name them differently or something

ancient depot
#

It's insane because other than that, it's impossible to detect the difference

#

L4D2 is Source BSP v21, but no other BSP v21 game has that change

#

I don't even get why that change was made because there's no benefit to it

still raptor
#

hmm

still raptor
#

the only possible reason i can think of is actually console ports

ancient depot
#

Even then it's weird because this data is all packed together and is always read in sequence anyway

#

SiN and Raven (SoF2, Jedi Academy, etc) BSP both start with RBSP so that one was a fun bit of CBT too

still raptor
#

i cant say i know enough about the consoles it was ported to , but its like the only possible thing i can think of

#

thats not lol whoops

honest stag
#

you know, i barely understand things like that
but even i wouldnt name 2 different projects by the same name

ancient depot
#

In this case it was a total coincidence

honest stag
#

i'd at least add a number or something to make sure to tell them apart

ancient depot
#

SiN developed by Ritual

#

therefore RBSP, Ritual BSP

honest stag
#

oh well a coincidence is gets a pass ofc
but that valve stuff like
wtf

ancient depot
#

Titanfall BSP could've been another mess too

#

but they seem to have known that RBSP was in use

#

so it's rBSP instead

honest stag
#

CBTSP

still raptor
#

yeah id imagine that was the case

ancient depot
#

(no dusk cannot load titanfall maps, it can only recognize them)

sleek ore
#

can it run hl2 maps?

ancient depot
#

The next update can

still raptor
#

actually, i recently learned that they used DarkRadiant to make titanfall

sleek ore
#

oh my fuckin god

still raptor
#

as in, the editor for the Dark Mod

ancient depot
#

huh, I assumed they used a customized hammer or something

still raptor
#

nope

#

customized darkradiant

sleek ore
#

will the broken stuff like models and switches be fixed?

ancient depot
#

Yeah

still raptor
honest stag
#

switches are broken?

sleek ore
#

(cause the models instead of the hl1 ones switch to the regular dusk ones)

sleek ore
ancient depot
honest stag
#

ohhhh

still raptor
#

pretty wild for them to be using a mod's editor for their commercial game

honest stag
#

is anything NOT broken in the campaign lol

still raptor
#

but if it works, it works

sleek ore
#

some map switches are broken

ancient depot
#

The campaign was never intended to be in this version of the SDK

sleek ore
#

like they go through a wall after being pressed

ancient depot
#

but people wanting to make texture mods and stuff would've been mad if it wasn't there

#

lmao

sleek ore
ancient depot
#

broken in what way

sleek ore
#

after being pressed

#

they go through a wall and disappear

#

its funni

ancient depot
#

Yeah that's because func_button is implemented to the Quake spec

#

not the HL spec

crimson patrol
#

When are we getting scrolling textures

sleek ore
#

also, the loading triggers are replaced with end level screens

honest stag
#

yeah because trigger_changelevel do be like that

ancient depot
#

That will probably not be fixed any time soon

lament ore
#

but this was a year and a half ago

crimson patrol
#

So I don't have to use func doors rapidly switching on off in the same place to simulate a moving object

sleek ore
#

theres also sky problems

ancient depot
#

Support for those skyboxes is coming later yeah

sleek ore
#

as in goldsrc and quake maps, it gets replaced by dusk

ancient depot
#

Dusk has its own skybox system

honest stag
#

you mean they "slap a sky texture on a celling brush" skyboxes will be a thing?

#

the*

ancient depot
#

Yeah

honest stag
#

that's... actually awesome

#

and the scrolling sky HOOO BOY

ancient depot
#

Light styles might be in the next update too

#

It's complicated but I've been working on it

still raptor
#

lol

crimson patrol
#

Scrolling sky?

sleek ore
#

will hl1 weapons also work?

honest stag
#

seen a quake sky?

#

that

sleek ore
#

and quake weapons

crimson patrol
#

Yea yea

ancient depot
crimson patrol
#

With the clouds and shit

lament ore
#

I thiiiiink potentially if you set the lip value to the distance it WOULD move then the button won't move on a func_button

ancient depot
#

I assume you mean replacing the pickups

sleek ore
#

yes

ancient depot
#

but I like to imagine you mean the actual hl1 guns

sleek ore
#

and viewmodels

still raptor
#

hl1 weapons will have to be implemented as mod weapons

#

if you want them to work

#

like the guns themselves

ancient depot
#

The idea isn't to just have HL1 running in Unity lmao

#

that'd be boring

still raptor
#

yes and a ton of work

#

that we get no benefit from

#

if you want to do the legwork to add hl1 weapons, by all means, youll be able to

honest stag
#

that makes me think why doom 1-2 were ported into unity by bethesda

lament ore
ancient depot
#

Unity was more like an outer shell in that example

honest stag
#

is it just to make them run on moder systems without using a community source port?

ancient depot
#

The game itself was still the usual C code

still raptor
#

yeah think of Unity as almost a VM

lament ore
#

How does that port even work? Does it emulate x86?

#

ah

ancient depot
#

Unity was a layer on top providing input and displaying the rendered view

lament ore
#

that is.....an interesting decision

honest stag
#

ah huh alright

ancient depot
#

basically using Unity as if it were something like SDL

honest stag
#

that makes more sense now
i thought they actually ported doom into unity and was very confused for a long time

still raptor
#

no lmfao

ancient depot
#

A lot of people did, especially since there was a lot of evidence pointing to that

#

but in time it was shown to be false

lament ore
#

probably just didn't want to deal with licensing issues with using a community sourceport commercially

#

but still a strange decision nonetheless

still raptor
#

well about that

#

lmao

honest stag
#

ye that's what i thought too

ancient depot
#

I imagine it's more of a "we get all these ports for free" thing

lament ore
#

surely would've been easier to build their own SDL port

lament ore
ancient depot
#

Unity already runs on a shitload of platforms

still raptor
#

there was some code that wasnt supposed to be there iirc

ancient depot
#

I dunno if anyone actually knows about that lmao

#

or even if it was removed yet

still raptor
#

i believe it was removed

#

thats my recollection

honest stag
#

...huh

still raptor
#

it wasnt actually being used

#

but it was in the compiled rom

honest stag
#

by "wasnt supposed to be there" do you mean "it's from somewhere else"

sleek ore
#

i hope doom maps might have compatibility, but theres a doosk mod so, idk

still raptor
#

yes

ancient depot
#

Basically someone on Doomworld several years ago posted some code for loading doom stuff into Unity

honest stag
#

wow

lament ore
ancient depot
#

And all that code was just... in there

honest stag
#

what the fuck

ancient depot
#

I assume the Unity port started out as playing with that idea

#

and then it became a proper port later

still raptor
#

and , importantly, the license wouldve required bethesda to open source the port

ancient depot
#

but the old stuff wasn't removed, and Unity failed to strip it from the build

lament ore
honest stag
#

imagine being the guy that wrote that

ancient depot
still raptor
#

i doubt that guy even knows its in there

ancient depot
#

It's a native dll that gets compiled and they call functions in it

still raptor
#

afaik the list of people who know about that is extremely short

honest stag
#

well it just expanded a bit

ancient depot
#

So they just have a DLL that exports functions like Update, Render, etc or whatever

#

and they just run those from Unity and then display the result

#

also yeah there are zero plans to support doom maps in the SDK

lament ore
#

okay now that's even stranger since they're porting the DLL to the platforms anyway

ancient depot
#

supporting BSP is exhausting enough already

still raptor
#

also once the sdk gets open sourced you can add your own doom map loader

honest stag
still raptor
#

or use one thats available already

ancient depot
lament ore
ancient depot
#

Since Unity does that for you

still raptor
#

no theres no timeline

ancient depot
#

It's being open sourced when it's finished

still raptor
#

when its done โ„ข๏ธ

ancient depot
#

Maybe slightly sooner if a near-final build is tidy enough

still raptor
#

there are several major landmarks to go

ancient depot
#

but I don't think they're BSP at all

still raptor
#

extremely unlikely theyre bsp

ancient depot
#

They're basically just .map files

#

The game loads them raw because >dynamic lighting

still raptor
#

especially given the nature of the lighting

#

yep

honest stag
#

oh god yeah i forgot doom had dynamic lighting

#

doom 3*

still raptor
#

its impressive for its time

ancient depot
#

It'd be funny to support doom 3 maps but the game can load enough gimmick formats as it is lol

honest stag
#

i just thought the level designers forgot to put lights at all WILDWOODY1

ancient depot
#

wait until you see the long list of games it can load maps from in the next update

#

it's comically long

still raptor
#

its real silly

honest stag
#

got i cant wait

bold orbit
#

Less than 20?

ancient depot
#

A lot more than 20

lament ore
#

Doom 3 map format is clearly an evolution of the earlier BSP formats but it isn't strictly a .bsp ye

bold orbit
#

May I ask why

#

There are more than 20?

lament ore
#

also @ancient depot to be clear does the new version use the clipnode tree for collision or the BSP tree?

ancient depot
#

The BSP tree

#

clip nodes, as I understand it, are just an optimization technique

lament ore
#

ye

#

okay good to know

#

I'm thinking my project would better be left as a separate application rather than bodging the functionality into qbsp. Looking through the qbsp source I'd pretty much be doing everything separate and then just coming in at the end and writing my extra stuff to the bsp anyway

#

workflow would be entirely unchanged anyway other than instead of qbsp->rad->vis you'd set JACK/TB to run qbsp->myapp->rad->vis

#

and that obviously enables allowing any qbsp compiler so long as I take the format differences into account

#

the only extra work I'd be doing is creating my own data structures to represent the bsp which is entirely trivial

ancient depot
#

yeah

lament ore
#

I'm very glad you gave me the duh moment of not needing to deal with lightmaps lol that makes this all much easier

ancient depot
#

Trust me, nobody hates dealing with lightmaps more than I do

lament ore
#

oh I know, I remember those corrupted lightmaps early on in the dusk sdk CryLaugh

ancient depot
#

and the dynamic lightmaps for Gloomwood

#

and now light styles in the SDK again kozueDAMAGED

lament ore
#

I do not envy thee

#

someday I'll learn how lightmaps work. today is not that day

ancient depot
#

They're conceptually simple

#

It's just that the things I've had to do with them get brain meltingly complex fast

honest stag
#

man

ancient depot
#

What fucked me up was learning that Darkplaces actually had the same issues

#

tfw we currently produce better lightmap results than DP

lament ore
ancient depot
#

I'm pretty sure Quakespasm was the only port that managed to get the lightmaps correct for arxeternal (or whatever the final map was called, I always forget)

honest stag
#

i've never used anything aside from quakespasm and never felt the need to

#

does doom or quake have more source ports?

lament ore
#

I'd bet money on doom

honest stag
#

prolly

sleek ore
#

yeah i think its doom

lament ore
#

I'd not only attribute that to doom running on far more platforms but also there being several "enhanced" versions of the doom engine

sleek ore
#

it has a long linage

lament ore
#

i.e. Boom and Zdoom and such

sleek ore
#

In this video, I explore the history of Doom's source ports, beginning with the release of the source code in 1997. I also talk about some of the earliest source ports that came from this release, particularly the ones that still have active descendants to this very day! In addition, I catch up a bit with some multiplayer ports I talked about in...

โ–ถ Play video
#

extremely condesed history of source ports

lament ore
#

and then even for boom and zdoom there's at least two or three different ports implementing the enhancements

honest stag
#

and 20 years down the line we'll get dusk source ports too

ancient depot
#

It's criminal that the best Quake port died though

sleek ore
#

the main "popular" ones rn are prboom+, crispy doom and gzdoom

lament ore
#

20 years down the line we'll still be waiting for the rewrite Kappa

ancient depot
#

Engoo will live on in our hearts

sleek ore
#

gzdoom is the most popular

#

lots of games run on its engine

#

and theres so many mods

lament ore
#

also there's things like chocolate doom

sleek ore
#

doosk, as a example

sleek ore
lament ore
#

yeah there's so many more doom ports than quake ports lmao

ancient depot
#

Quake probably wins out in engine derivatives if you count all engine versions

sleek ore
#

wrath is probably the only game that uses the quake engine on steam probably

ancient depot
#

With GoldSrc, Source, IW Engine, etc being based on it

sleek ore
#

it uses darkplaces

lament ore
#

oh for sure

sleek ore
#

true

ancient depot
#

In general though doom wins no question

lament ore
#

I'd consider source ports a different ball game than derivatives for sure

lament ore
#

like heck isn't the modern CoD engine a derivative of Quake for that matter

sleek ore
#

there are less "foancy grophics ports" for doom, makes sense as its a 2.5d game and it wouldnt work
quake on the other hand well, darkplaces

lament ore
#

obviously Source and Source 2 and so on as well

ancient depot
#

I don't think modern CoD is still Quake

#

I could be wrong

#

but I know at least Modern Warfare (the og) still had Quake roots

#

In fact it still uses the Quake 3 Arena weapon bobbing code

honest stag
#

nothing new was ever invented since the quake engine tbh

#

(obviously joking but still)

lament ore
#

yeah Modern Warfare is derived from Q3A and thus Quake that's probably what I was thinking

honest stag
#

im just shocked how manu things have some bits and pieces of quake in them

crimson patrol
#

Quake is like the bacteria life evolved from

honest stag
#

lmao

sleek ore
#

what happend to mark 5?

#

quake port

ancient depot
#

Mark 5 evolved into Quakespasm, I believe

lament ore
#

honestly if you look at the quake source code you can see why. there's a ton of fundamental stuff in quake that basically boils down to "if it ain't broke, don't fix it"

crimson patrol
#

Man I should make cookie cutouts of my other brush trees

lament ore
#

and it's flexible enough to be adapted into pretty much anything that's a first person shooter

ancient depot
#

Okay no I was thinking of FitzQuake

sleek ore
#

i use vkquake, which is basically a port that adds vulkan rendering to quakespasm, made by Axel Gneiting

still raptor
#

the newest cod engine is no longer based on q3a

honest stag
#

be a lot cooler if it was

still raptor
#

they broke it off finally with modern warfare

sleek ore
#

hes now the engine programmer of doom recently

ancient depot
#

I wonder how much IW BSP differs from Q3BSP

#

I don't plan to support it, but I'm curious

#

I know that it uses IBSP which could cause conflicts with idBSP (which also uses IBSP)

#

but I don't think it shares any version numbers with any idBSP formats so that could disambiguate it

lament ore
#

imagine if BSP magic numbers were standardized by ISO

ancient depot
#

It's a real can of worms

lament ore
honest stag
ancient depot
#

I agonized for a long time figuring out a nice way to model the evolution of the BSP format in the code

#

Since Q1 & GoldSrc don't even have magic numbers

#

they just have a version number

#

Like normally you get a magic number, then the version followed by the lump directory

lament ore
#

ahhh the beauty of supporting many slightly different versions of essentially the same thing

honest stag
#

fucking allied assault? wow

ancient depot
#

yeah that's one of the "we can recognize it but not load it" formats

#

in the code it's treated as a separate BSP format because I haven't actually looked into it yet

#

so I don't know if it derives from Q3BSP, for example

honest stag
#

ah alright

lament ore
#

joke idea: if it's a recognized but undersupported format, just load de_dust2

ancient depot
#

Heavy Metal FAKK 2, Elite Force 2 & Titanfall are the other "I recognize this but I can't load it" cases

honest stag
#

crash the game if someone tries to load Heavy Metal FAKK 2 maps

ancient depot
#

Hilariously, I could actually support DOOM 2016 & Eternal maps to an extent

#

They're closer than you'd think format-wise

#

I won't, but the thought is funny

lament ore
#

can't wait for the "Big John rips and tears his way through Doom 2016" mod

ancient depot
#

It'd make for some pretty funny news articles

lament ore
#

zombie how big was your fear of releasing the sdk and nobody being able to figure it out

ancient depot
#

I wasn't worried about that at all tbh

lament ore
#

because just a few days ago I developed a whole app for a guy for my job and I made it literally a single drag and drop operation and he still can't figure it out

ancient depot
#

imo it's less complicated than Source modding and people figured that out

honest stag
#

im shocked that people actually understand anything about modding source

#

aside from garrys mod

lament ore
#

i'm shocked I managed to do it in my preteens PEPW

ancient depot
#

My vision for the SDK has always been combining the best parts of Quake and Doom modding

lament ore
#

to be fair there's much nicer tools even for source 1 nowadays

#

mdl compilation in the olden days was SO fucking complicated

ancient depot
#

Like look at texture replacements

#

doesn't get much easier than plopping a png in there

honest stag
#

i'll be honest
i've looked at how people make quake mods and stuff
talked to people in that community too
and i dont want a quake community tbh :)

lament ore
#

I do wonder if the source ever gets released how many people will choose to create mods at the unity level rather than at the sdk level

honest stag
#

doom dudes are so nice

lament ore
#

as much as I love Quake SDK tools once the source is available I'll probably just do my own thing from within Unity since I'm just as experienced with Unity stuff if not moreso

ancient depot
#

I'm more interested in whether or not people will base new games on it

honest stag
#

i will, that is a PROMISE

#

ever played cry of fear? yeah

hard pollen
#

I imagine Titanfall, Titanfall 2, DOOM 2016 and DOOM Eternal maps are too mesh based to really be able to be imported without data loss.

lament ore
#

that'd be a cool thing. dusk-engine derivative games lmao

ancient depot
#

them being mesh based is exactly what makes them easy to import

hard pollen
#

O.

lament ore
#

yeah lol non-mesh stuff is the hard stuff

hard pollen
#

Okay.

ancient depot
#

the hard part is just figuring out the formats themselves

hard pollen
#

Yeah that makes sense I guess.

ancient depot
#

being mesh based makes them hard to decompile

#

but not load

#

or rather, hard to decompile into a brush format

#

a BSP itself is actually pretty heavily mesh-based

lament ore
#

yea if games don't care about the bsp tree info you could just as easily edit the bsp mesh and re-export it, but obviously the bsp tree info is important

ancient depot
#

the brushes are moreso just what those meshes are authored with

#

and depending on the format, the brushes might also be used for collision

#

the main level in a BSP for example is actually just one big static mesh

#

and the BSP contains information on how you can split it up if you want to render it cheaply

crimson patrol
#

What are the differences between mesh and brushes

honest stag
#

ok so i've been trying to figure this out but i'd better ask
when you said "dusk throws out the bsp tree info" do you mean it renders everything ahead in the field of view without considering if the player can see it or not, right?

hard pollen
#

Yeah that makes sense, I knew most BSP formats these days are meshes of polygons Just kinda dodgily authored ones

ancient depot
#

a brush is just a set of planes that define a convex shape

#

a mesh is just a 3d model

#

bunch of vertices and triangles

hard pollen
#

and faces.

#

And normals.

lament ore
hard pollen
#

And seams, just a bunch of other things.

ancient depot
#

triangles = faces

crimson patrol
#

Thx

hard pollen
#

Whoops didn't realize you said triangles.

#

Oops.

ancient depot
#

(although in Q1BSP you have to generate triangles yourself, the faces are just polygons)

lament ore
#

Which is honestly fine given that the BSPs we're talking about here are in the single digit thousands of triangles

honest stag
#

which is what you mean by says it throws out the bsp tree info right?

#

by saying*

lament ore
#

not entirely

crimson patrol
ancient depot
#

The BSP tree splits up the map into segments that define what each segment is (water, solid, etc) and also connects the geometry to visibility data so you can cull it when it's out of view

#

DUSK simply just doesn't use that stuff in the current build

lament ore
#

bsp tree also defines collision data but I assume Dusk currently just puts all the triangles into a collision mesh

honest stag
#

ok yeah that makes more sense

ancient depot
#

The lag spike is likely not caused by that though

#

There are... a lot of inefficiencies in the current build

honest stag
#

was wondering about that too

ancient depot
#

on a modern GPU it's usually more efficient to just render the whole map

#

modern GPUs like static data

crimson patrol
#

I'm gonna guess dusk loads the battery array of explosive barrels and teleporters under the map

lament ore
#

unless your maps are ridiculously high detailed (like hundreds of thousands of triangles or millions) it's very unlikely

honest stag
#

it's
um

#

i've seen his map

lament ore
#

uh oh

honest stag
#

it's fucking massive and very detailed

ancient depot
#

is it ad_sepulcher tier

lament ore
#

still it probably wouldn't necessarily benefit from utilization of the bsp tree

honest stag
crimson patrol
ancient depot
#

this is ad_sepulcher's main map mesh

honest stag
#

0h DEAD GOD

#

dear

#

wtf

lament ore
#

by far the slowest part of rendering things is buffering data. modern gpus have more than enough VRAM to just hold millions of triangles in VRAM

#

oh my

ancient depot
#

on that note, ad_sepulcher loads in around a second or two on my PC now

lament ore
#

how the hell does he even open that in any Hammer-like editor

honest stag
#

is it in the default arcane dimensions?

ancient depot
#

just to put into perspective how slow the old SDK code is

honest stag
#

because i will try to load it if it is

ancient depot
#

ad_sepulcher used to take several minutes to load

#

mostly due to lightmap atlasing time

lament ore
#

Did he make that in Trenchbroom? I honestly can't imagine opening that in JACK let alone Hammer lmao

crimson patrol
ancient depot
#

I wrote my own texture packer to replace Unity's and now the atlasing is only a fraction of the load time

honest stag
#

im downloading and trying it out on my crappy laptop
let's goooo

ancient depot
#

ad_sepulcher is a separate map from main ad

#

it's like an addon

honest stag
#

ye im downloading it rn

ancient depot
#

and it requires its own build of Quakespasm (or at least, it did at the time) because the map is so huge it goes past the engine limits

honest stag
#

oh jesus

#

i hope i can run it

ancient depot
#

I use it to benchmark things in the SDK

#

because it's like the most complex map out of anything we support lmao

lament ore
#

why the hell is it so huge did he model a bunch of trees in the editor

ancient depot
#

it's just ridiculously detailed

lament ore
#

cripes

honest stag
#

ok wow it loaded almost instantly

ancient depot
#

like here it is without textures

honest stag
#

and i have my browser open

ancient depot
#

it's MASSIVE

crimson patrol
#

JESUS

honest stag
#

holy fucking shit

ancient depot
#

I'm pretty sure even quakemash is smaller

#

(every quake 1 map combined)

lament ore
#

I feel like this is some sort of war crime

crimson patrol
#

How many fucking rooms are there

honest stag
#

this must have taken AGES to make

#

im playing it right now

crimson patrol
#

I'll be back in like 6 hours

#

Cyall

honest stag
#

that's a long piss

ancient depot
#

here's quakemash

#

hard to judge since ad_sepulcher is very bunched up

#

but file size wise, ad_sepulcher is nearly 2x as large

honest stag
#

absoluetely insane

#

it can take me up to a month to make a small shitty map

#

and that's when i have free time

#

cant even begin to imagine how long it must have taken

sleek ore
#

i need to play quakemash

honest stag
#

how tf do they handle keys

sleek ore
#

doommash when hm

ancient depot
#

already exists

lament ore
ancient depot
#

it might include its own progs.dat

#

so it can take keys away etc when needed

lament ore
#

o nice didn't know that was a thing in Quake

honest stag
#

makes sense

#

man

ancient depot
#

this is even cooler

honest stag
#

the fucking compiling of that quake map honestly kind of scares me

ancient depot
#

the tool that does it loads Source engine maps so you can do this with HL2 as well

#

the compiling doesn't scare me, the lightmapping time does

lament ore
#

wasn't there something with the HL2 in one map thing where it was like "wait a minute we need to add a massive bridge to the coast otherwise it just appears out of nowhere" lol

honest stag
#

that's what i meant lol

#

it's always the light that takes a g e s

sleek ore
honest stag
#

and he used soft lights too

sleek ore
#

its different from vanilla doom, adding some stuff

lament ore
#

OpenCL/Cuda accelerated RAD WHEN

ancient depot
#

I think it's dead now but they at least finished doom 1 iirc

sleek ore
#

ohhh

lament ore
#

btw zombie is that ubershader project still on the backburner? Kappa

ancient depot
#

yes, I'm not even sure if I'll go through with that lol

#

it's an insane idea to solve a problem that shouldn't exist

#

I might do something on a MUCH smaller scale to support quake 3 material definitions though

lament ore
#

Honestly, if you just provide a nice library of relatively flexible shaders, that's probably more than enough for modding tools

ancient depot
#

yeah

lament ore
#

and then if/when source eventually gets released it'll be easy enough to add in shaders there

ancient depot
#

even without that, there are ways we could let people add shaders through asset bundles or whatever

#

as much as I hate those

lament ore
#

ugh god asset bundles

#

Unity really isn't the best engine for mod support

ancient depot
#

Out of the major engines it is

lament ore
#

Yea I was just typing Unreal is even worse

ancient depot
#

lmao

lament ore
ancient depot
#

I've ranted so much about Unreal with regard to mod support that I couldn't stomach doing it again

lament ore
#

also it's a shame because unity USED to support runtime shader compilation, albeit probably unintentionally

#

back in Unity 4 you could do new Material({shader_code_here});

ancient depot
#

It was very limited and only supported certain types of shaders

lament ore
#

Oh really? I thought it supported p much anything GLSL

ancient depot
#

I don't remember the specifics

#

but I know it had limitations that made it unsuitable for a lot of cases

lament ore
#

eh doesn't matter, it's long been deprecated and removed

ancient depot
#

You can still sort of hack in runtime shader compilation

#

but it's so much work

#

You need to invoke the Unity shader compiler (which requires IPC to interface with) and then compile the shader

#

then generate an asset bundle in-memory with the shader

#

and load it through that

lament ore
#

yea I mean realistically how many Half-Life 2 mods, which do support custom shaders, actually use custom shaders

#

almost none of them

ancient depot
#

yeah exactly

lament ore
#

Given, though, HL2 had a pretty nice library of shaders to choose from to start with

ancient depot
#

I ultimately decided that if someone wants custom shaders, a better approach might be to ask them what exactly they want to do

#

and just offer that built in

lament ore
#

yea p much

#

although ubershaders are totally one of those projects that are just so insane you want to do it just because lol

ancient depot
#

the structure of the SDK would let us then give that user a dev build while they waited for the update to come out proper

#

since we don't have to distribute actual game files

lament ore
#

yee

#

wouldn't be worth the effort but it would be cool to see some kind of blender cycles node editor type of thing

#

i.e. a bunch of flexible built-in shaders that can be combined in unique ways with a visual scripting sort of thing

ancient depot
#

I just want to see a new shader language to replace GLSL/HLSL

#

something a bit more modular

lament ore
#

LOL wouldn't that be nice yeah

ancient depot
#

Like imagine how much nicer it'd be if I could just "override" a shader's function for sampling the lightmap or whatever

#

and then it'd compile to the equivalent of doing it manually

lament ore
#

would be nice if nvidia stopped being pricks about open source tech they didn't produce themselves. even if AMD or someone else came out with a better way to do shaders, nvidia would just have to do their own and then you'd have to support both

ancient depot
#

Not if it just compiled to SPIR-V or something

#

The GPU manufacturers wouldn't even be part of the process

lament ore
#

oh interesting never heard of that. I'm not as well versed in shader tech

ancient depot
#

SPIR-V is basically a bytecode format for shaders

#

It's what Vulkan uses

lament ore
#

ahh I see

ancient depot
#

It replaces the antiquated concept that OpenGL had where you submitted shader source code to the API

lament ore
#

the extent of my graphics programming knowledge pretty much starts and ends with N64 microcode CryLaugh

ancient depot
#

Which required drivers to have their own parsers, which meant you'd have driver-specific bugs from parsing shaders

#

but now the actual compilation happens in software and you pass the binary along

lament ore
#

nice nice

ancient depot
#

You can also now just use SPIR-V for everything because there are cross compilers for it

lament ore
#

I briefly dabbled with Vulkan before getting distracted so I somewhat knew of this but not the name of it

#

ooo nice

ancient depot
#

Not that SPIR-V is perfect or anything, but it's a MASSIVE improvement over just submitting shader sources

lament ore
#

SPIRV must be pretty extensive if you can produce readable GLSL and etc from it

ancient depot
#

Yeah

still raptor
#

just throw modern gpus out, replace them with massive fpga arrays

#

submit shaders as bitstreams

ancient depot
#

based

lament ore
still raptor
#

highly performant

#

completely independent

#

replicatable regardless of mfg

#

runtime configurable

lament ore
#

but imagine how much worse crypto miners would be if GPUs were just ultra powerful FPGAs

still raptor
#

probably less so?

ancient depot
#

but yeah speaking of SPIR-V, the ubershader idea was to implement SPIR-V in a shader

still raptor
#

thats why they already buy ASICs

ancient depot
#

since a SPIR-V module can actually be sent pretty easily as a texture, since they're just a binary file filled with nothing but 32-bit integers

still raptor
#

god shit like that always reminds me of that one dudes project where he encoded time into textures

lament ore
still raptor
#

absolutely based

gritty forge
#

how do I remove the only x to go text on counters again?

#

is it a spawnflag

honest stag
#

i dont think you can

gritty forge
#

I was told you can

#

before

honest stag
#

check the spawnflags i guess

#

but i dont rmemeber that being a thing

#

i hope im wrong

gritty forge
#

Someone said to me that I can remove it for my arena with the enemies

honest stag
#

@gritty forge i've checked the quake wiki and it says spawnflag 1 should do it
but i don't know if it works in dusk

gritty forge
#

will try it

honest stag
#

i swear i tried to do that same thing before and couldnt

#

but it's neat to know if it works

ancient depot
#

the no message flag is implemented, yeah

honest stag
#

wow i really missed out then

karmic kestrel
#

Are there doom styled mods for dusk?

#

Iโ€™d like to jam out to Andrews other works.

honest stag
#

none that i'm aware of

karmic kestrel
#

Darn.

honest stag
#

good change to be the first

karmic kestrel
#

I like the Brutal Doom music stuff.

honest stag
#

oh wait actually there is a recreating of E1M1 from doom 2

#

recreation*

#

but it's old

karmic kestrel
#

interesting

#

Itโ€™ll be short tho.

honest stag
#

yea

crimson patrol
#

There is also doosk

karmic kestrel
#

Isnโ€™t that for doom 2 tho?

honest stag
#

ye

karmic kestrel
#

I forgot

#

Darn

crimson patrol
#

DOOM IS DOOM

karmic kestrel
#

Dusk is Dusk

#

Dusk is just quake

crimson patrol
#

I consider doom 2 not all that different from 1

karmic kestrel
#

but you shoot cultists

#

yeah

#

Just extra weapons and a couple more monsters

#

doom 2 is more of an addon than a sequel

gritty forge
#

hohoho booy

#

I love this new arena

#

so excited to see people play it

crimson patrol
#

cant wait to see

lament ore
#

Just realized something - in both Quake and HL, mdl props inserted into maps don't have collision, do they?

#

If that's the case then my utility inserting mdls with collisions could actually have utility for quake and hl as well

#

for more advanced mesh-based maps

#

hell this could even be a really janky way to have mesh-based terrains in HL1 lmao

gritty forge
#

kinda lost motivation for my 2nd map before but now it's completely back

#

I was planning to just do some small finalizing touches and now I'm like rebalancing and fixing a bunch of errors and adding more cool stuff

#

is fun

ancient depot
#

Man, d1_trainstation_01 looks so messed up without all of the trains and entities around

honest stag
#

cursed image

#

this is giving me some liminal space shit vibes

gritty forge
#

does func_detail actually improve performance

honest stag
#

i don't think so

#

well

#

considering we don't have VIS support

#

but hey that's just a guess

ancient depot
#

I believe it should help in some form

gritty forge
#

aight

#

why is it that my level appears a bit jittery when I move my mouse even though it says ~100fps

ancient depot
#

before the update I might throw out a little BSP viewer or something for testing the expected performance of the patch

#

simple answer is that the public build has a lot of missing optimizations

gritty forge
#

so its the SDK?

ancient depot
#

chances are the issue isn't your map or your pc, it's the sdk

#

yeah

gritty forge
#

anything I can do to improve it a bit for now?

#

I dont use candles

#

lol

#

(by the way)

honest stag
#

fucking candles god

ancient depot
#

Probably not, the bottlenecks aren't really solvable from the user end

honest stag
#

look so good but chug so bad

gritty forge
#

agreed

#

yeah personally I can't imagine how awesome it would be to have particles and fog

honest stag
#

too awesome to explain

gritty forge
#

whole new dimension of immersion

honest stag
#

yup

gritty forge
#

though I will say, for being a huge map with 125 enemies my level has really good performance lol

#

80-140fps on my pc

#

though I have a good gpu

honest stag
#

so correct me if im wrong here
but i THINK enemies with particle effects affect performance more than those without them

#

like mages

gritty forge
#

yes

#

It does

ancient depot
#

they do, yeah

gritty forge
#

I reduced the amount of mages for that reason

honest stag
#

but also

gritty forge
#

in favour of soldiers mostly

honest stag
#

the low spec mode should turn them off anyway right?

ancient depot
#

it should, but for all we know custom maps might not work with it somehow

honest stag
#

pretty sure it does considering i use it all the time

#

crappy laptop and all

ancient depot
#

With the new SDK update you might not even need to use it

#

It's on track to running better than the base game

honest stag
#

what a blessing that would be wow

gritty forge
#

oh wowie

#

thats awesome

ancient depot
#

I've been thinking about testing vis support for the update after it, too

#

the new codebase makes it WAY easier to do

#

I mean, the fact that ad_sepulcher loads in like 2 seconds now should say it all lol

tepid python
#

will maps be broken after said update

ancient depot
#

Some will, but there's an automatic mod updater tool in the works

#

So you can just run your mod through that and release a new version

tepid python
#

dope

gritty forge
#

what will be broken in terms of old maps? Or is that case by case

ancient depot
#

For the most part just some entities

#

Properties being renamed etc

gritty forge
#

cause if there are specific things I'd like to avoid doing those things for the sake of futureproofing

ancient depot
#

The biggest break will be texture, model, etc mods

#

Since all the assets have been reorganized

gritty forge
#

ah

#

Guess I will avoid using textures and entities from now on DACON

ancient depot
#

lmao

honest stag
ancient depot
#

lmao

#

hey you can't leave out finally fixing the fucking model/sound/etc replacements picardy

honest stag
#

god i can't wait

#

rip the bandaid off

gritty forge
#

the what

honest stag
#

the new

gritty forge
#

you mean that some models only make sounds the first time you start the map when booting the SDK?

ancient depot
#

That too

gritty forge
#

once particles come out someone is going to have to physically restrain me otherwise I might just overuse them and create a black hole somehow

honest stag
#

hl2 spark effect x10000

gritty forge
#

I just want to add flies and electricity for substations and shit

#

gosh

#

flies on gore textures

#

and STINK CLOUDS IN BATHROOMS

honest stag
#

cigarette smoke

#

fugggg

ancient depot
#

exposing the campaign's particle effects is pretty easy

#

but custom particle effects will be annoying

#

mostly because I don't even know how I want that to work

gritty forge
#

I mean, couldn't you theoretically make some kind of "node" like the light nodes for example, then link a texture like you would link music to a changemusic trigger for it and then set things like particle count, width, height etc manually inside said node

#

you wouldn't see particles in the editor but it would be a pretty good way to do it I think

ancient depot
#

Yeah but that wouldn't allow for the level of customization that we could provide with Unity particles

gritty forge
#

that is probably very true

#

it would be images appearing

ancient depot
#

I was thinking maybe having a json file that defines a particle effect, and then making a separate particle editor program

#

could be something generic enough for other games to use too

gritty forge
#

idk how unity operates but can't you like make the particles and get a particle file via unity and then use it?

#

instead of making a dedicated editor I mean

ancient depot
#

Unfortunately it isn't that simple, and even then I wouldn't want to require people to install Unity just to make particles

gritty forge
#

fair enough

#

will the sdk update be out by this year?

ancient depot
#

That's the plan

gritty forge
#

pog

ancient depot
#

It was meant to be out a while ago but some personal stuff happened which slowed things down a bit

gritty forge
#

Ah, I see

#

Well the current one works well enough for now

karmic kestrel
#

Melee is shit in Dusk

ancient depot
#

I dunno if I'd go that far

karmic kestrel
#

Besides the sword

gritty forge
karmic kestrel
#

The sickles arenโ€™t good in later missions lol

gritty forge
#

well it is your "last resort" weapon

karmic kestrel
#

Its pointless to use on duskmare

ancient depot
#

The sickles are extremely useful because they can deflect projectiles

gritty forge
#

so I guess it is just for when you're out of ammo

#

you can deflect projectiles

karmic kestrel
#

Oh yeah

ancient depot
#

The sword can deflect projectiles but it requires armor

karmic kestrel
#

Forgot about that

#

but it aint good for attacking enemies

ancient depot
#

Yeah it's more of a defensive weapon

karmic kestrel
#

i love the sword charge

gritty forge
#

you know... A meathook for the SSG would be insane for dusk

#

as an avid doom eternal enjoyer

karmic kestrel
#

oh yes

#

Would fit in itโ€™s combat style.

gritty forge
#

maybe throw off some balancing but like it would be fun as hell

karmic kestrel
#

Iโ€™m tired of using the jump pads

gritty forge
#

I like jump pad

#

jump pad go boing

karmic kestrel
#

Bounce

gritty forge
#

Can't wait for Dusk โ„ข๏ธ The Zombie Rewrite โ„ข๏ธ Version 16.3.4

gritty forge
#

the way func_detail & it's variants works is that it improves on compiling time, not performance

#

in most situations

#

plus its dusk not quake so i doubt there's any way it'd improve performance

#

if you wanna go insane use func_detail on everything that isn't necessary for sealing, the Hammer way

#

it'll cause overdraw on lighting but it'll give the compiler a little break

#

LETS FUCKING GO

#

see yall in 6 months laugh

#

well I mean we're not even half way thru the year yet

sour hollow
gritty forge
lament ore
# gritty forge does func_detail actually improve performance

Per my understanding the point of func_detail is to stop the func_detail entity from splitting the BSP tree around it, meaning potentially less faces to render and a more efficient BSP tree. Obviously the latter doesn't matter in Dusk (currently) but the former might help in some cases. It's also just good practice.

#

the bottom case is, as you may imagine, relatively unideal for the BSP tree

#

this is also why func_detail helps with compile times

#

again just good practice to do and probably worth it if only for the compile times

#

func_detail on the right, world brush on the left

frigid cypress
#

Is that a different level editor?

#

than trenchbroom?

honest stag
#

And now imagine making a very intricate detail onject like a small gun from a dozen brushes and not making it a func detail

#

Throughout the entire map

#

I did that and bitched about the compile times

gritty forge
#

func_detail is used liberally there

#

also, found some very good stuff on level design

#

first words has "starcraft" and "halo" so you know its worth a read

#

now i go back to recording blocking out that otex map pog

lament ore
#

I think you could do it where each time the tree is split you could have the main thread continue down the left branch and optionally a new thread continue down the right branch

#

and just do that for an arbitrary number of splits to start an arbitrary number of threads to handle bsp tree generation

gritty forge
#

ahhh feels gud to actually be able to place objects & props correctly in dusk maps

#

feels real good

lament ore
#

I can't believe all this time we just had to ask the right person for the models KEKWlaugh

honest stag
#

Porting them wasnt easy though

#

Well it was easy but super tedious

lament ore
#

what tools were you using?

honest stag
#

Blender .obj exporter, noesis to adjust scale and port into .mdl

lament ore
#

oh jeez

#

yeah no I see why it took you a while

honest stag
#

And rotations were fucked 80% of the time

#

Like blender would export and turn thd model 90 degrees

lament ore
#

My workflow would've mostly just been export smd from blender -> use a generate qc to compile -> mdl done

honest stag
#

And noesis would flip it

lament ore
#

yeah that's fixed with the proper blender SMD exporter

#

I remember you mentioned using an MDL exporter which is not what ya wanna use generally

honest stag
#

It was fucked but i dont remember why

lament ore
#

did noesis generate compiled MDLs for you or SMDs?

honest stag
#

Mdls

lament ore
#

yeah, so how MDLs work is they're not like OBJs or FBX files or whatever

#

the equivalent to obj/fbx/whatever in this workflow is the smd file

#

which is the actual mesh and animations and whatever

honest stag
#

Noesis loads smds?

lament ore
#

probably but I wouldn't use noesis here, no point

#

you compile the MDL by having the SMDs and textures and then using a qc file to tell the mdl compiler how to make an mdl from the smds

#

so all the issues you had with the models would've been fixed basically automatically by exporting proper SMDs from Blender then using a proper qc file

#

if you decompile an mdl you can check out the smds and a generated qc to recompile it

#

what you were doing basically was letting blender or noesis generated a compiled MDL for you, and they were malformed because it didn't know how to handle what you were giving it properly. that would be something you define in a qc file

#

traditionally this is done with the classic command line tools but there's a great all-in-one tool someone made for HL1 and HL2 MDLs (maybe quake too?)

#

OOOO there was a crowbar update as recently as december 2020 hell yeah

honest stag
#

Fuck

lament ore
#

Yeah I hate to say it but that process could've been mostly automated KEKW sorry bud

gritty forge
#

GOD DAMN

#

F

honest stag
#

Oh well i knew that it could be kibda automated but

lament ore
#

That's why I was so eager to get my hands on the models I could've pumped out the MDLs in like a day or two cuz I already have a whole workflow for Blender -> Half-Life MDLs set up

honest stag
#

A lot of objects were of different size and rotation from tge start, adjusted afterwards in unity

#

Some were .obj from tge start, some were .blend that zom gave me, some i had to rip from the game and had tgeir own problems

lament ore
#

So here's an example of a really simple qc file to compile an mdl with a single "body" (i.e. smd file). It's just a soda can

#

You can define things like rotation, scale, position, etc from it

#

so you would've only had to open the model in blender then export it to smd once

#

and then all the adjustments could've been done in the qc

#

then you just click "compile" in crowbar or what have you and then you have an MDL with the adjustments

honest stag
#

Considering my non existent knowledge of qc - that was way beyond me

#

And i was quick enough with my way anyway

lament ore
#

yea tru but it's probably worth learning for when custom model support is a thing

honest stag
#

Eh i already port them witgout much trouble with the .iqm exporter

#

Still should learn thus stuff

#

This*

lament ore
#

for simple models it's p trivial. you could just adjust that can qc to pretty much any static model really. MDL decompilation through crowbar is really good so it's super helpful for referencing qc files

#

highly recommend crowbar

#

you can adjust origin of the model and whatnot too

#

Given all my knowledge is based on Half-Life MDLs but Quake MDLs should be mostly the same apart from animation stuff

#

once you start wanting to do animated stuff or stuff with different skins and etc etc you can't rely on noesis or blender or what have you to automatically export a working MDL for ya

honest stag
#

So uh forgive me if this is a dumb thing to say but

#

Would any of this mdl stuff be useful to me considering we use iqm

lament ore
#

OH WAIT iqm!

honest stag
#

For dusk models

lament ore
#

We have iqm support now?

#

that's pretty pog

honest stag
#

Its the only format dusk suppoerted for custon models yea

lament ore
#

For anything mapping related both Trenchbroom and JACK do not yet support iqm so MDLs are preferred there

#

otherwise you won't be able to preview the model in the editor

honest stag
#

Yea i figured as much bu

lament ore
#

yeah that's up to you whether or not it's worth pursuing learning lul

honest stag
#

Zom said hell make a custom fgd tool that just ports them

#

The custom models into the editor

lament ore
#

huh interesting

honest stag
#

Basically automate the process ll

#

So uh phew no learning for me today

lament ore
#

At one point I considered forking Sledge to just add iqm support but I never went through with it, partially because I prefer JACK to sledge anyway

#

JACK is closed source and doesn't get updates anymore unfortunately

honest stag
#

Thank fuck the j.a.c.k "enthusiast" got muted lmao

lament ore
#

oh god was someone being annoying about it lmao

honest stag
#

Uhhhhhhh well

#

He was here for like a week, amd posted "J.A.C.K > trenchbroom" over 20 times while shitting all over tb because he spemt 10 minutes on it, refused to look up how to use it and uh yeah

lament ore
#

lmfao nice

#

yeah I'll fully admit I did exactly that and that's why I don't use TB but like I don't care if other people use TB lmao

#

I use JACK because I'm used to Hammer and JACK is just better Hammer

honest stag
#

Thats fine by me, at least you dont smear modders for trying to learn something

lament ore
#

yea nah people should use what they want

#

and I'll fully admit TB is probably better for beginners

#

Hammer paradigms are etched into my brain stem so I can never leave

#

I really want to give Source 2 Hammer a try I hear it's a treat

#

wonder if we'll get Source 2 BSP support Kappa

#

half the reason I bought Half-Life Alyx was just for the sdk KEKWlaugh

ancient depot
#

IQM is great except for its animation support which is disappointingly lackluster