#Project S-812

1 messages · Page 3 of 1

unique hill
#

💀

#

I hope that some part of godot is made with gdscript bc that'd be funny

unique hill
#

2002 messages thats crazy

muted dawn
#

wow! that cityscape is awesome

unique hill
unique hill
#

I know in 3.5, with .poll() of resource loaders, you could theoretically add a delay to smothen it out

#

but idk abt 4.1

#

I guess i could try Thread() but this will end up making me use mutexes and thats a pain in the ass supposedly

wooden grail
#

Sometimes you can use Thread() without a Mutex

#

Like when you don't have to access something from different threads

icy anchor
icy anchor
#

Which should work, i think

unique hill
#

thats so inconvenient

#

would I be able to just make a loading wheel GIF and have that there instead

icy anchor
unique hill
#

can threads run lines of code or do they HAVE to be bound to a function

#

when I added the thread system it just crashes upon startup

#

(it uses this func to load the menu)

#

(so its great for testing)

#

nevermind I think its because bind() only supports 1 argument

#

nope that wasnt it

#

ooh wtf?

icy anchor
#

One sec i'm going to write some code in Godot 4 to make sure

unique hill
#

i got it not to crash

#

but now this happens

unique hill
#

i fixed everything except one thing

#

call_deferred("instantiate") doesnt return the instance

#

how do I make it return the instance

#

it seems call_deffered doesnt return anything at all

#

major issue

icy anchor
#

It shouldn't return anything really but one sec

unique hill
#

not make changes to it sorry

icy anchor
unique hill
#

access it*

#

its in the loading code

#

the issue here is that since instantiate returns NOTHING, this code right here now just crashes the game

#

dw abt the full loading code its a mess honestly

icy anchor
unique hill
#

ill check

#

wait I cant

unique hill
#

bc it never gets added to the scene

unique hill
#

ok

#

workable

#

Ill have the loading screen always in memory

#

one sec

#

wacky workaround

icy anchor
#

Hmm, i think in your case it is reasonable to load loading screen scene in main thread

#

Because loading screens are really small and easy to load

unique hill
#

IT WORKED

#

YOOO

#

NO MORE LOADING SCREEN LAG

icy anchor
#

No lags?

#

Man you make me want to do that too

unique hill
#

ill let u know how I did it if you need to

#

i cant show code bc there are glaringd differences between 3.x and 4.x with loading code

icy anchor
#

I love glitchy visuals, but audio getting bad artifacts sometimes too

#

I think i've got how principle of code works

#

Just gotta turn it to 3.x

unique hill
#

lemme just confirm that it doesnt lag on an extremely large scene rq

unique hill
#

Damn godot lied to me

#

led me into a false sense of happiness just to strip it away

icy anchor
#

Still lags?

#

Then the cake Thread is a lie

#

That may not do the actual "thread" but something more like "co-routine"

unique hill
#

im 99% sure that its just my messed code not coded to work with thread

#

so im going to fix as much as I can

#

and tell u if it works

icy anchor
#

Sure thing

#

I honestly want it to work

unique hill
#

but i have 3 loading functions

#

1 to load something into the memory and returns it

#

another to add it to the scene

#

and a third one which uses all three

#

to add the loading screen

#

THEN the actual level

icy anchor
#

I had that problem with Python, where threading used only one

unique hill
icy anchor
#

Like, on real, OG one

unique hill
#

into another thread using call_deferred

#

call_deferred doesnt split it into another thread

#

so im lost

#

theres a call_deferred_thread_group???

#

and its not on the documentation?????????????????

iron shore
#

call deterred takes methods instead of strings

unique hill
unique hill
#

in other parts of the game

#

what does this mean???

#

you can run nodes on separate threads????????????????

#

oh my god what

icy anchor
#

I'm back, had to go

icy anchor
unique hill
#
Godot Engine v4.1.stable.official.970459615 - https://godotengine.org
Vulkan API 1.3.242 - Forward+ - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce GTX 1650
 
No save file.
Discord working: true
<PackedScene#-9223371994207091282>
USER ERROR: Node not found: "HCS_Logo" (relative to "/root/MainMenu").
   at: get_node (scene/main/node.cpp:1620)
USER ERROR: On Animation: 'reveal', couldn't resolve track:  'HCS_Logo'.
   at: _ensure_node_caches (scene/animation/animation_player.cpp:294)
USER ERROR: Node not found: "GODOT" (relative to "/root/MainMenu").
   at: get_node (scene/main/node.cpp:1620)
USER ERROR: On Animation: 'reveal', couldn't resolve track:  'GODOT'.
   at: _ensure_node_caches (scene/animation/animation_player.cpp:294)
USER ERROR: Can't add child 'Spatial' to 'root', already has a parent 'root'.
   at: add_child (scene/main/node.cpp:1393)

bc this aint english

#

the first few nodes

#

*errors

#

are there

#

intentional

icy anchor
unique hill
#
USER ERROR: Can't add child 'Spatial' to 'root', already has a parent 'root'.
``` its this mf
icy anchor
#

It reminds me of what i've seen when tried to get a hierarchy of Godot Editor

unique hill
#

see it works with the menu

#

but just doesnt with anything else

#

and it doesnt lag with the menu either

#

Hold on

unique hill
#

because the scene is calling universal.add_scene() but with load_level() it's universal itself calling add_scenes

icy anchor
unique hill
#

are u sure

#

because this suggests that they are processed differently

icy anchor
#

My game-menu works without player or other things

unique hill
#

weirddddddddddddd

icy anchor
#

Adding children to itself to show up UI

#

But maybe it's one more thing that has been added to 4.x and i don't know about it

#

Because the closest analog to singletons i've used in 3.x is auto-load of classes

unique hill
#

this is so unnecessarily stupid

#

USER ERROR: Can't add child 'Light' to 'root', already has a parent 'Spatial'.
at: add_child (scene/main/node.cpp:1393)
bro where did it get LIGHT FROM??

#

ooh wait i might know

#

damn

#

it said light mb

iron shore
#

i would love to see some actual gameplay lol

unique hill
icy anchor
unique hill
#
USER ERROR: Can't add child 'Spatial' to 'root', already has a parent 'root'.

It's attempting to add a node that already has a parent

iron shore
unique hill
#

and wouldnt make sense to do unless I needed to

unique hill
#

Spatial is the root node

iron shore
unique hill
#

thats the thing

iron shore
#

maybe

unique hill
#

the issue is its throwing an error for a stupid reason

icy anchor
unique hill
#

do u reckon

icy anchor
unique hill
#

hold on let me recheck my loading code

icy anchor
unique hill
#

like the actual resource loader

unique hill
#

expect it at some point

#

no but it wouldnt be the resource loader's fault

iron shore
unique hill
#

the resource loader is exactly what it is

#

it loads resources

#

be it .tscn, or materials or anything

#

so theres

#

ZERO

#

sense

#

to this error

iron shore
#

make a gh issue

unique hill
#

its not anengine issue

#

i know that for a fact

icy anchor
iron shore
unique hill
#

the gameplay isnt even properly finished

#

its good enough to play but certainly not where i'd like it

iron shore
unique hill
#

so im refraining from sharing it until ive gotten it all good

unique hill
icy anchor
iron shore
unique hill
#
func load_level(path) -> void:
    get_tree().get_root().call_deferred("add_child", loading_screen)
    animation_player.play("start")
    await animation_player.animation_finished
    remove_root()
    add_scene(path, false)

    
func _loading_screen_finish_loading():
    animation_player.play("finished")
    await get_tree().create_timer(0.1).timeout
    remove_collision_shapes()
    

# Adds a scene to the current scene
func add_scene(new_scene, silent = false) -> void: 
    var thread = Thread.new()
    thread.start(load_scene.bindv([new_scene, silent]))
    var packed_scene : PackedScene = await thread.wait_to_finish()
    await get_tree().create_timer(0.1).timeout
    var instantiated = false
    if packed_scene:
        instantiated = packed_scene.instantiate()
        get_tree().get_root().call_thread_safe("add_child", instantiated)
    print(packed_scene)
    
    if get_tree().get_root().has_node("Loading"):
        animation_player.play("finished")
    
    return
#

the variables you see undefined are defined are at the start of the script to be in memory at alltimes

iron shore
#

i'm questioning your usage of godot 4 for a reasonably big project

unique hill
unique hill
#

unreal engine's massive file size & performance impact

iron shore
#

less engine bugs

icy anchor
iron shore
#

i wouldn't use it for a huge project

unique hill
# icy anchor Where is `load_scene`
# Asynchronous background loading using Resource Loader.
func load_scene(next_scene, silent = false):
    
    if silent:
        var loaded_scene = load(next_scene)
        return loaded_scene

    paused = true
        
    # Instantiate the loading scene and add it
    get_tree().get_root().call_deferred("add_child", ls_instance)
    await get_tree().create_timer(0.1).timeout
    paused = true
    
    # Resource loader
    var loader = ResourceLoader.load_threaded_request(next_scene, "", true)
    if loader == null:
        quit()
        return false
    
    var progress = []
    while true:
        
        await get_tree().create_timer(0.1).timeout
        var value = ResourceLoader.load_threaded_get_status(next_scene, progress)
        var tw := create_tween()
        tw.tween_property(percentage_node, "value", progress[0] * 100, 0.1)
    
        if value == ResourceLoader.THREAD_LOAD_LOADED:
            
            await get_tree().create_timer(0.2).timeout
            var loaded_scene = ResourceLoader.load_threaded_get(next_scene)
            await get_tree().create_timer(0.2).timeout
            paused = false
            ls_instance.queue_free()
            return loaded_scene

            
        elif value == ResourceLoader.THREAD_LOAD_FAILED:
            
            ls_instance.queue_free()
            OS.alert("RESOURCE LOAD FAILED.", "Error.")
            quit()
            
            return false

unique hill
#

obviously not my only reasoning

iron shore
unique hill
#

i chose 4.0 because at the time, it looked more promising than 3.x

#

it still is promising

#

and I enjoy the fancy new features

iron shore
unique hill
#

infact, the fancy new features are in my game everywhere

unique hill
#

it was a pain to convert my first project from 3.x to 4.x

#

im not doing that again but reverse

iron shore
#

ok

icy anchor
unique hill
#

thats for sure

icy anchor
#

get_tree().get_root().call_thread_safe("add_child", instantiated)
Hmm, as i understand, this thing is called from main thread, so you can use call_deferred?

#

Probably i missed something

#

OS.alert("RESOURCE LOAD FAILED.", "Error.")
Damn i wanna use it somewhere in my project

unique hill
#

the loading code iteslf I dont believe is the issue

unique hill
#

then came back and fixed it again yesterday

#

but i didnt change much so i had those still there

#

from when I applied a very hastily made fix

#

(it did nothing in the end 😭)

unique hill
#

ive got no clue where to go from here

#

just trying things to see what happens

#

if it works then alright

icy anchor
unique hill
#

I think Ive been looking at this wrong

icy anchor
#

I feel like it will act weirdly in a thread

unique hill
#

I've been looking at add_scene this entire time, but I never looked at load_scene in depth

#

and

#

im ashamed to admit it

#

ive just realized

#

the loading screen code

#

is mostly in load_scene

#

💀

icy anchor
unique hill
#

im going to try out a thing and see what happens

icy anchor
#

I'm thinking about...

icy anchor
#

Setting second argument as true

#

Come and think about it, it is not a main thread, so there is no need to use "threaded" thingy

unique hill
#

thats code I put in there on purpose

#

to just instantly load a resource

icy anchor
#

Yea yea, i think it can be useful too

unique hill
#

which means it skips the loading screen all together

icy anchor
#

We gotta check if it works

#

If it loads everything as it should without freezing the entire game, that means you can just change logic of loading screen to avoid that method

#

For now i have nothing but theories though

unique hill
#

load() is a built-in godot method

icy anchor
#

If other threads won't freeze the main thread, that means they are actually working asynchonously, like, on other CPU core

icy anchor
unique hill
#

now

#

im going to try to run the loading screen itself

#

in a separate thread

icy anchor
#

I think you should run only loading logic there

#

Because main thread (as i understand) is rendering stuff

unique hill
icy anchor
#

Mainly you wanna load things on other thread to make it not appear freezed because of the main thread occupied with this kind of operation

unique hill
#

thats only if you have seamless loading

#

i dont have a need for that yet

icy anchor
#

But you wanna make the loading screen not laggy

unique hill
#

k so what i was doing didnt work

#

I have the issue

#

this piece of shit

#

halts the main thread

#

but its also

#

such a painn

#

to make it not

#

so now ive gotta do some weird shit

icy anchor
# unique hill this piece of shit

What if you will just place some boolean variable and change it to make some logic run in _process? It sounds like a hack, but maybe it'll work

unique hill
#

thats what im about to try

icy anchor
#

I've got to go for now, see ya

unique hill
unique hill
#

this is such an unfortunate thing ive done to myself with this loading screen

icy anchor
#

I had 3 attempts to make it, i still have code in my human model script, and... It is just broken

unique hill
icy anchor
unique hill
icy anchor
unique hill
#

more than what i already am yeah

unique hill
#

and theres just a toggle option somewhere to do what I want

#

oh my god there is

#

what the actual f

#

@icy anchor

#

nevermind I was LIED to

#

AGAIN

icy anchor
#

I start to have a really, really strong feeling that they named Thread wrong and it should be Coroutine

unique hill
#

It does start a thread its just disgustingly complicated to run at the same time

heady thorn
#

Looks cool. Just wondering how you put those buildings together? Blender then an outline shader in Godot?

unique hill
#

Models are made in blender then imported into godot, which I then use Godot Shaders to apply onto the models

#

the outline is just a screen space outline shader

#

allows for more control than the regular fake outline shader thats built-into godot

heady thorn
#

For sure, looks good. I think this is where Godot will shine even more; using it to create more stylised games, especially in the FPS space

unique hill
#

its just first person

heady thorn
#

Of course

unique hill
#

Dadaski's game is a really good looking FPS game though

heady thorn
#

Will be interesting to see how performance is maintained

unique hill
#

so I made concrete look like an oil painting but just very very faintly

unique hill
heady thorn
unique hill
#

otherwise it'd be rather unfortunate

heady thorn
#

Yeah, that's my biggest worry tbh; once you start pushing for more vfx etc.

unique hill
unique hill
#

probably

heady thorn
#

Switch on volumetric fog and global illumination 😉

unique hill
#

though volumetric fog is set to a very very low amount

heady thorn
#

Oh sweet

unique hill
#

volumetric fog is only used for like

#

Light rays of spotlights

#

well it's supposed to

#

I didnt add anything using it as yet

#

and SDFGI basically is the entire lighting

heady thorn
#

It's looking good for sure

unique hill
#

paint dot net for it's oil filter

heady thorn
#

Ah, so texturing only

unique hill
heady thorn
#

For sure, what kinda game is it?

unique hill
#

I was inspired by a blender oil painting shader which did the exact same thing

#

but in blender

unique hill
#

however

#

it is story-driven

#

and mildly open world

heady thorn
#

Sounds right up my alley 😎

unique hill
#

reposting a screenshot i already sent here so it would be at the end of the chat

#

insane 329 mb used

heady thorn
#

Would love to see a short video tbh

unique hill
#

I'm still trying to make it better

heady thorn
#

More interested to see the graphical style in movement atm tbh

thorn dome
unique hill
thorn dome
#

tbh using less memory than Discord isn't really that impressive though

#

I'm sorry I've started complaining about discord again, haven't I

unique hill
#

discord frequently uses 500-800mb on my machine

unique hill
#

so its quite astonishing

#

random fire in a trashcan on rooftops

#

dunno why I made that tbh

#

who puts a trashcan on fire on the roof of a building

wooden grail
plush turtle
unborn vale
#

✨ Electron ✨ /s

unique hill
unborn vale
#

You would think discord has enough money to make a proper desktop app

unique hill
#

what is Electron?

unborn vale
#

Javascript 🤮

wooden grail
unique hill
wooden grail
unborn vale
#

How dare you say how dare you

unique hill
#

I use javascript for discord bots

#

so

#

how dare you

wooden grail
unique hill
#

wtf

wooden grail
#

Yep

unique hill
#

and github desktop runs better than discord

#

so does skype

#

and dropbox

unborn vale
wooden grail
#

Well then they probably were smarter about it XD

unique hill
#

well idk abt skype its been 10 years since ive last used it

unique hill
#

true isnt === to 1 because === means absolutely equal

#

but == is because == just means equal

wooden grail
#

bruh

unique hill
#

but from an absolute standpoint, true is not an integer and therefore cant be 1

#

sorry I went nerdy

unborn vale
#

Rust is better 🔥

unique hill
#

how the actual

wooden grail
unique hill
#

how tf can true+true+true equal three

#

wtf

unique hill
wooden grail
#

Rustaceans assemble 😄

unborn vale
unique hill
#

weird

#

we got oil painting-like textures

#

ignore the obvious seams I need to fix that

unborn vale
#

true == 1 therfore true+true+true is the same as 1+1+1

unique hill
unborn vale
#

reflecton pwetty

unique hill
#

ikr

#

I still cant get that thread bullshit I went into 2 days ago to work

#

so im procrastinating by doing graphics stuff

thorn dome
# unique hill and github desktop runs better than discord

discord is one of the worst electron apps in existence. Electron is not very good in general, though. (Tauri is an alternative to Electron that runs much faster, uses less memory, and produces smaller apps [but you have to learn some Rust])

thorn dome
# unique hill what is Electron?

A framework for easily turning web apps into desktop apps. Except it runs an entire Chromium browser for every app leading to huge amounts of memory used, lots of cpu usage, and large cache directories + large installers

unique hill
#

horrific

thorn dome
#

Tauri just uses existing webview implementations on the system (Microsoft Edge on Windows, WebKit on MacOS and iOS, and webkit2gtk on Linux)

unique hill
#

testing out lensdirt

#

i think it looks good

#

and in that case I think im all done from a graphics standpoint

wooden grail
#

Yes but probably not for a player controllers first person view

#

For cutscenes or main menu, yes

#

It wouldn't make sense to have dirt on your fucking eyes

gritty flicker
#

Yooo this game looks beutiful
What's the gameplay gonna be like?

icy anchor
white current
#

To be fair, lens flare in games like Titanfall 2 aren't realistic either but it sure looks great!

unique hill
#

it wouldnt make sense to have dirt on your eyes

unique hill
#

story-driven

#

a few puzzles here and there

unique hill
#

or am i wrong

#

spent some time making an actual lens dirt texture rather than using godot's noise texture built-ins

icy anchor
unique hill
#

I watched some videos on it and got the MMOD mod for gmod

#

weapons were really smooth

#

sad it didnt have the lens dirt you seem to be talking about

unique hill
icy anchor
icy anchor
unique hill
#

generated???

icy anchor
#

Yea, plugin makes these

icy anchor
unique hill
#

fun fact, those keys are a displacement map

#

only 8 faces here B)

icy anchor
#

That's nice

unique hill
#

thats why there gets dirt

#

would also make sense why theres lens dirt in my game too yeah

unique hill
white current
#

Is there a link for the game?

unique hill
#

heavy wip still

#

this is still the pre-alpha version

unique hill
unique hill
#

i feel i might go all out with those outlines

unique hill
#

the player character has been rotated on its z axis by 2 degrees

#

the last time I rotated it, was months ago

#

hes been rotated on the z axis for months

open raven
#

I'm a bit confuse about all this shapes and owner ids.

  • I got an StaticBody3D
  • I add a CollisionShape3D child
  • I assigned a ConvexPolygonShape3D to the CollisionShape3D .shape
    Is it done? or do I have to add the CollisionShape3D to the StaticBody3D via an owner id (who is the owner?, is it self owned?)
icy anchor
# open raven I'm a bit confuse about all this shapes and owner ids. - I got an StaticBody3D -...

Hmm, well, as i understand, you want to make default physics collision in Godot, which is just:

> StaticBody3D
>> CollisionShape3D

And you assign a "shape" to CollisionShape3D. You can use multiple collision shape nodes if you want to use multiple convex parts to form a concave collision, for example.

The optimization i suggested allows to reduce amount of nodes in node tree just by removing CollisionShape3D, since internally, it does some sort of this code with adding a physics shape to certain physics body owner through code. Basically, you can set the physics body as owner of that shape, and it will use it

open raven
icy anchor
open raven
icy anchor
icy anchor
open raven
icy anchor
#

There is one downside of my method, though

#

You won't be able to do things like disabled property of CollisionShape3D and other stuff, on other hand, you can still do that with using those low-level methods

open raven
icy anchor
open raven
open raven
unique hill
#

trying out fancy clouds using Displacement Maps

unique hill
open raven
icy anchor
icy anchor
#

And, gotta say, 3000 objects is significant decrease. I can imagine how much you have lowered the draw-call amount

open raven
#

Now I need to do that on the collisions

icy anchor
open raven
#

It's using Jolt physics

icy anchor
# open raven My Bunny Hop sucks but you get the idea

Damn, nice graphics you've got in there. I've seen quite a lot of times when people attempted to recreate Quake-like graphics in Godot, but that definitely seems to be the best attempt simply because i wouldn't tell that was even made in Godot

open raven
icy anchor
#

If you bake them externally, how will you support dynamic objects?

open raven
#

Lightmap are generated dynamically from code (had the issue of reversed wraping) the dynamic objects will be done with a kind of shadow shader (actually it's a dark light and lot o stuff) but it simulate the world wonderfull as each map has the sun data, as such I could recreate the lightmap only for dynamic objects

icy anchor
#

That's really impressive you made your own lightmapper that doesn't look bad as well, no seams or other stuff

#

Honestly always wanted to get my hands on it, but as result decided to not work on it for now

open raven
unique hill
open raven
icy anchor
icy anchor
unique hill
#

its literally just a plane with a normal map on it

#

and some fancy displacement

#

its so cool how you can make such fancy effects

#

with so little effort

unique hill
icy anchor
# open raven Luckly no orphan nodes (yet)

I highly recommend using Performance class to gather data of your resource-usage in real time when you playing the game. It may be really useful to get info about how much draw-calls you have, how much vertices being drawn, etc

unique hill
icy anchor
icy anchor
unique hill
#

im liking that more and more people are trying typical AAA effects in godot

#

godot 4.2 dev6 brings a massive improvement

#

the new screenshots are on that build

#

drops ram usage from 500

#

to 100

#

on default settings

#

I however am not using default settings in my game

#

im using slightly above that

icy anchor
# unique hill to *100*

It makes me afraid to think what kind of optimizations next minor update for 3.x branch can bring to me...
... actually if they will make it, yea

open raven
unique hill
#

theres an app similar to hammer editor that lets you make quake-inspired maps in godot

icy anchor
unique hill
icy anchor
#

Heh, pretty sure you are talking about Qodot and Trenchbroom, these two are used for Quake-like things

unique hill
icy anchor
#

I was amuzed by amount of projects that attempt to make Quake-like stuff, but after seeing how much tools for level design exist out there... Well, not that surprising now

unique hill
#

that runs normally

icy anchor
unique hill
#

oh then its not

#

hmm

icy anchor
#

So you need to use third-party apps to make .map, such as Trenchbroom and many others

unique hill
#

whats a decent workflow for interiors

#

do you reckon blender everything or csg nodes

icy anchor
#

Blender everything

unique hill
#

hmm

#

graffiti

#

im starting to do extreme optimizations using textures, for example, this fence was previously a model

#

& this entire ac system

#

I dont know what a rooftop ac looks like so I just did something

#

it came out well right

icy anchor
# icy anchor Blender everything

But i gotta say the algorithm of my work:

  1. I make a scene in Blender
  2. Synchronize all Godot materials with Blender using my own plugin
  3. Make things, assign materials, do booleans, etc
  4. "Export collection as location blockout"
  5. In Godot, i assign a blockout name in LocationBlockout node, updating it, and that is reading exported .glb file, assigning proper materials to it, doing various fixes, turning all meshes either to LocationBlockoutMesh or occluders.

I never do stuff regarding modelling in Godot. Godot only used for gameplay setup, or, maximum for placing LocationProp things which add a little bit more detail to scenes. So, yea, i never assign materials inside of Godot, never touch geometry, none of these things

icy anchor
unique hill
#

or materials

icy anchor
unique hill
#

I added parralax

unique hill
#

besides images and uvs

#

which is done in blender

icy anchor
unique hill
#

we have an itch io now :O

open raven
#

From 1400-1500 to 68!

wooden grail
#

thats very good!

unique hill
#

u should prob create ur own forum channel tho

#

id love to follow this games journey

iron shore
#

has the game commpletely changed???

#

i have no idea what's happening

thorn dome
unique hill
#

for an odd reason we've got two game progresses going onhere

#

theyre completely unrelated to my game

#

which ill dub as

#

uh

#

Project S

#

yeah that makes sense and definitely has no relation to the name of the game whatsoever

icy anchor
# open raven From 1400-1500 to 68!

Amazing numbers dude! I'm glad to see that project not only replicates the graphics of Quake, but also such performance stats too. Btw, if you will make a new thread, don't forget to ping me

open raven
# unique hill u should prob create ur own forum channel tho

Yes sorry for hijacking the thread a bit. As I came to Godot following the Unysaster, and while doing some search on collision (shapes, owners ids, collision and CollisionObject3D), the only detail reply came from @icy anchor from an old message, that was the one that I quote to ask for help.

unique hill
#

please do make a thread because I really like where your game is going

#

and I want to follow it without being caught up in my thread at the same time with a weird mixture of the two

unique hill
#

trying out a flashlight feature to see maybe if it can be added and balanced

iron shore
unique hill
unique hill
#

but I wanted to make it like

#

you use the flashlight for vision but sacrifice blank

iron shore
#

that looks like a horror games lighting kinda lmfao

unique hill
#

very far from the games genre

#

I do want to have atleast one horror section

#

like ur being hunted by something

#

kinda like half life alyx but then again hla itself is almost entirely horror

#

yk with the

#

whats his name

#

barry

#

or something

#

who can hear but not see

unique hill
#

trying out interiors and testing out how good i am at lighting

#

no fancy volumetric lighting is going on here lmao its just one long model

thin turret
#

LOL

#

you using them 1991 tricks

unique hill
thin turret
#

i think it looks p good tho

unique hill
unique hill
unique hill
thin turret
#

ye ye

unique hill
#

honestly

#

the best thing ever in godot

#

has to be amd fsr 2.0

#

its so wild i can render a frame at 0.5x the resolution

#

and upscale it without any noticable loss of detail

#

heres another angle

frail portal
#

very convincing, that's a great strategy

iron shore
#

it's very good and fooled me though

unique hill
unique hill
#

im planning on making it

#

a massive interior

#

maybe a warehouse or something?

#

idk

unique hill
unborn vale
#

dust indeed indeed

icy anchor
unique hill
unique hill
#

should I keep this sunset-like lighting

#

or go back with daytime

#

I feel I might stay with daytime just for some variety in lighting

wooden grail
#

I feel like for sunset it needs to be more orange

#

for day more white

unborn vale
#

I like that colour you have right now... Reminds me of a late summer afternoon with icecream

unique hill
#

i might make it more white

unique hill
iron shore
#

holy crap that's good

unique hill
unique hill
unborn vale
#

You know the around 1500 draw calls you had once doesn't seem that bad anymore...

unique hill
#

what are you doing to cause that???

unborn vale
#

I am attempting to remake minecraft

#

And didn't really want to do mesh surfaces properly

#

So I just amde a new mesh per block lol

#

But I get 7 fps with just a couple thousand of blocks soooo

unique hill
unborn vale
#

I know...

unique hill
#

dont do that

unborn vale
#

I just wanted to confirm my meshes were working

unique hill
#

im more surprised at the 7 fps you have

unborn vale
#

and that the chunking system was working too

unique hill
#

if id done that my pc would simply perish

#

Im recoding a major system of my game rn

unborn vale
#

Well I have an rtx 3060 so I can run some of my bad code lol

unique hill
#

so dont expect screenshots for a bit

unique hill
#

its a good thing i have a mid laptop

#

bc now i can optimize my game

#

heavily

unborn vale
#

Wait

#

My dbd game is starting

#

will be back in like 10-15 mins

unique hill
#

assuming thats dead by daylight

unborn vale
#

I won pog

unique hill
#

as killer or innocent

unborn vale
#

killer muhahaha

#

lol

unique hill
unique hill
unborn vale
#

And only 248 draw calls lol

unique hill
#

and I still dont know how its at 200

#

its should be at 100 or something

unborn vale
#

I should be able to get my draw calls down to one (in edge cases 2 or 3(but very rare)) per chunk

unique hill
#

it'd get higher when you add textures to the mix

unborn vale
#

I don't believe so no

unique hill
#

ive really got to strategicly place the camera for these screenshots

unborn vale
#

If I bundle the texture along with the vertex, uv and normal it should just be one draw call

unique hill
#

to make sure i dont leak something important

unborn vale
#

Before calling add_surface you can add all the data in mesh_data

unique hill
#

is it gon be another generic minecraft clone

#

or something fancy to it

unborn vale
#

Idk

#

Just wanted to try

#

Maybe see if I can get better performance than minecraft

#

(Not going so well so far lol)

#

It oculd also be fun to add multiplayer with steam

unique hill
#

minecraft is so

#

horribly unoptimized

#

the java version

#

bedrock edition is optimized but sacrifices features (and bugs)

unborn vale
#

yeah

#

But like, if I add the same things at java has it will probably begin to decline at a higher rate

#

since I write in gdscript

#

Idk tho

unique hill
#

probably but still would perform better than minecraft maybe

#

it takes one mod to change my frames from 58 to 367

#

one mod

unborn vale
#

Yeah sodium

#

what a savior

unique hill
#

three mods for 800

unique hill
#

minecraft java mods to make

#

on fabric

#

nvm forgot where I was going with this 💀

unborn vale
#

Lol

#

I want to add easy mod support for my clone

#

making it so that everything is defined in json or smth

unique hill
unborn vale
#

maybem I will have to look into it when I have the base game up and running

unborn vale
#

I have now eaten

#

And I have not gotten any wiser

#

So the main hurdle right now is getting top, side and bottom textures to work

#

It's easy if you can add an surface for each block but harder when you have to share the surface over several blocks...

unique hill
#

u should make a forum channel for this

#

i wanna follow it

unborn vale
#

Sure!

unique hill
#

without mixing this game and that

#

ping me when u make it pls

unborn vale
#

Will do!

frail portal
iron shore
#

i'm gona post hamstory updates here

#

(/j)

unique hill
unique hill
iron shore
unique hill
icy anchor
# frail portal ah, so I assume no culling?

Minecraft originally has had no culling, and i can't tell if that'll help much because chunks use a lot of geometrical space anyway. Problem in Phoenix case is that there is no meshes combined together, like it is done in original Minecraft where each chunk is a separate MeshInstance3D. Damn, it reminds me of nice times when i've attempted to create a minimalistic clone of this game... just right before i got into weird violent rabbit hole

icy anchor
frail portal
#

But I've obviously never done it

unborn vale
#

I think the mean culling as in hiding the faces not visible and not chunk culling

unique hill
#

but still culling

#

like Face culling

#

and block culling

#

makes no sense rendering faces & blocks you cant see yet

#

theres also frustrum chunk culling but no frustrum block culling

#

Sodium adds a significant more amt of culling

unique hill
#

Project S-819

#

renamed this post

iron shore
#

that's not very memorable imo

unique hill
#

there is an actual name but it reveals too much

unique hill
#

better than "working on a 3D first person game in godot"

humble blaze
#

I personally dig the new codename

wooden grail
icy anchor
#

Nice one

icy anchor
icy anchor
# wooden grail Why?

For many reasons. I personally had a lot of bad experience in cases of community/communication overall, and that'll be hard to explain without providing personal examples, which i don't really want to because that'll involve describing other persons in a bad light. However, i can tell one example which is actually related to naming of my own game. When i started development of it, i kept it pretty low-key, not telling much to others, and, honestly, happy about it because earlier it used to have "Mall Purger" as naming, and only now i realize it wasn't a good idea at all. Even right now, i'd rather focus on development, rather than telling people about the project, to avoid confusion and disappointment from all sides. And, yea, this is pretty subjective, i know, just wanted to say i understand why @unique hill keeps it like that for now

wooden grail
#

Road to Vostok dev is doing pretty open development. Works good for him

icy anchor
wooden grail
#

DRG devs want to go back to open dev

icy anchor
#

I support open-dev, but that needs to be done carefully, and Road to Vostok is good example of that

wooden grail
icy anchor
#

Because the dev didn't want it to be that way, it is a really good example of being more careful with spreading information about the game, to keep it clean

wooden grail
wooden grail
#

So if OP would want to follow the RtV footsteps, he could do open dev about now

#

But i get that some people dont want to be open

#

Open development also involves less risk for the game dev

#

Because you already get feedback soon in the dev phase

#

So you can slightly adapt or consider the feedback

#

But you need to know your vision well so that you dont change the whole game based on a single feedback giver

icy anchor
#

I'd rather recommend him to take his own time and focus on development, as he does right now, i fully support the current state of the project in these terms. As i said, open-dev is not bad. It is only bad (and harmful) when done too early

wooden grail
#

Yep true

unique hill
#

i appreciate dadaskis explaining all that

#

im not going to share much until the game is in a playable state that is fun

#

ive got a playable state but it isnt fun

#

i dont know when i would be satisfied with it but im not going to put something out into the world without knowing beforehand that it is the best I did

heady thorn
#

"Oh, can you add springy-dick jump-pads?" Errr, no... 😂

icy anchor
heady thorn
unique hill
heady thorn
unique hill
#

I should add mirrors

#

hold on

#

I did add mirrors

heady thorn
#

More that you already clearly have a direction for your game and making such a drastic change based on some internet comment isn't a good development strategy

unique hill
#

though that specific comment I mentioned came from my mom

#

and does make sense

#

cant tell you why but know it does

#

though i'd be able to add it in like properly third person

#

I could do something so that the full body is seen

#

impeccable programmer art

#

its so high quality

heady thorn
#

Yeah, we were more referring to how fickle internet commenters can be, and how they'll derail your game's direction

unique hill
#

I shouldnt say that bc I might very well add that

#

yk the lil things from portal

unique hill
#

actual comment ive received from showing someone the game before I made the form

#

glad I didnt go to unity 💀

heady thorn
#

Why?

unique hill
#

Im not sure if it got reverted or not, I don't follow game engine news closely besides Godot

heady thorn
unique hill
#

very off topic question but do you reckon there is a possibility for real-time collaboration in Godot

#

I know attempts have been made already but is there a chance for it to actually be successful, like as a core engine modification rather than an addon?

heady thorn
#

Can you elaborate please?

wooden grail
unique hill
unique hill
#

github works as well but it would be much easier to say, connect to a server and just make changes whilst another person does as well

#

I believe unreal engine has it somewhat

#

the feature would work wonders for small and big teams alike

#

attempts have been made using addons/plugins but none were successful I should add

frail portal
frail portal
#

Besides, it'd be best if features were implemented with it in mind

unique hill
#

if the plugins/addons can do it kinda decent but not good but it still kinda works then the engine definitely can do it

frail portal
#

Having it in core would essentially guarantee that it stays maintained

unique hill
#

I know for my team specifically, we work best when we are all online doing something together

frail portal
#

If people saw that it works then they'd use it

unique hill
heady thorn
#

Seriously low hanging fruit imo

unique hill
#

how so

frail portal
#

I don't think many people use the blender plugins for this sort of stuff because it's too finnicky and buggy

#

I tried it once in Blender and it messed up our model lol

unique hill
frail portal
#

It did work but it broke after an hour or two

unique hill
#

Visual Studio Code has a realtime collaboration addon built-in into the software

frail portal
#

This was a while ago though

unique hill
#

and works wonders

frail portal
#

Yes VS code live share is amazing

unique hill
#

love it

frail portal
#

flawless and allows you to share the port too

frail portal
#

This was ages ago so I don't know if it's still maintained, is still working, isn't working...

unique hill
frail portal
unique hill
#

oh interesting

frail portal
#

like if 8000 was shared, i'd go to localhost:8000

#

... I think

frail portal
unique hill
#

this reminds me

frail portal
#

But I suppose vs code live share is an extension

unique hill
#

is there a reasonable way to have DLC in godot

#

using steam

#

I haven't set up anything in steam so I don't know how it works but would I upload the pck in steam or sum

#

this is purely hypotethical

frail portal
#

hmm

#

and you'd have to handle encryption

unborn vale
frail portal
#

Apparently ETS2 does not do that and the dlc files lay unencrypted in the base game folder

unique hill
#

what if the dlc is just a different game completely

frail portal
#

that would be funny

unique hill
frail portal
#

probably possible

unborn vale
unique hill
#

on the topic of encryption

frail portal
unborn vale
unique hill
#

i know you can encrypt .pck files so random people cant just dig into it and rip the entire game but like

#

how?

#

I dont get too much results when I search it up on google

frail portal
unique hill
#

and the result I did get didn't work

frail portal
unique hill
#

ooh interesting

#

what would be funny is if a full length video game with hours of content just releases for free on steam/itch

#

but the dlc is like 100 dollars each

frail portal
#

so possibly if you could encrypt and unencrypt, you could check which dlcs are owned and then unencrypt those and use them in the game

#

you would probably have to check for a set file path (aka './dlc1.pck'?)

unique hill
#

ahhh ok

unique hill
#

Instead of relying on encrypted pck files

#

cant the DLC instead download the encrypted pck files once purchased?

#

whats stopping the dlc from being just an entirely different game using the first game as a base but with almost none of the assets of the first game

unborn vale
#

Mayeb steam approval?

unique hill
#

fr?

#

yoo alright

frail portal
#

assuming

#

Looks like they have a discord so it's probable they have this figured out lol

unique hill
#

ooh okay

#

ill check that out

unborn vale
#

Maybe the almighty steam load has some answers idk

#

bruh

#

I can't send servers

#

2 sec

frail portal
wooden grail
#

@unique hill technically, someone knowledgeable could fork the engine, implement this into core and (if the PR doesnt get merged) simply maintain that fork (merging stuff from upstream) until the project is done

iron shore
icy anchor
#

Anyway, i'd rather have these .PCK as-is because that'd be fun to see these guys to dig in these files

#

No, seriously, that might become a fate worse than death for them

#

... at least in my case, i suppose

unique hill
#

i have no words besides wtf to that

#

thats such a punishment for the people at the cutting edge floor

#

cutting room*

icy anchor
#

He-he yea

unique hill
#

why you do that

icy anchor
#

Honestly i had no intention to harm modders or others because i have respect for them

unique hill
#

how you do that

#

when the game starts you just loop through everything

#

and load the files??

#

but make sure to check that it isnt running in debug mode?

icy anchor
# unique hill why you do that

I've been trying to export this game, and, sadly, i started to notice several things:

  1. It has 4 GB size in one .PCK, so, if i will try to update this game, all people will have to download 4 GB update (i think it works that way), i don't like it
  2. For weird reason, it is clamping on 4 GB and i couldn't load all the levels in this game, some assets were missing from .PCK too, that started to messing me up

So i decided to write a Python script to change export config and launch Godot executable to export .PCK of the files, and, as result... turns out that game is 12 GB ._.
But if i will remove the debug locations that'll make it a bit more light though

icy anchor
unique hill
#

Is that the same for 4.X?

icy anchor
unique hill
#

my game aint fitting in that restriction

icy anchor
unique hill
#

once I have a demo out

#

Ill try to reduce the storage but it is not fitting

unique hill
#

christ

#

you're just willing to put that out into the world

#

its so fancy

#

what ill do right is finish a demo, then try to export it and see if it works as intended

#

if not then ill do what you did

#

honestly I dont like python much, i prefer javascript

icy anchor
#

Firstly, it is changing export_presets.cfg file. You may say, like, why don't i do that using Godot plugins and... 3.X definitely has absolutely no tools to work with exports. I suppose that'd speed up the export times, but, yea... However, Godot executable supports various command line arguments that can be used to export the Godot project. So it is just changing the preset, exporting that preset, and repeating. It is tricky because sometimes things have to be included in main package one way or another (all scripts of the game are included with it), etc

icy anchor
unique hill
#

i think it might be my bad experiences making discord bots using it

#

I tried to make an OC of mine as a bot

#

failed

icy anchor
unique hill
#

so I used javascript and ive made an AI thats pure australian energy

#

i could show u it later

icy anchor
#

Lol that sounds fun

unique hill
#

very

icy anchor
#

I suppose anything that can be running command line can be used

#

Time to rewrite it in ANSI C >:)

#

Lmfao nah i'm not going to sign on this one

unique hill
icy anchor
unique hill
#

My game doesn't autoload any scripts on MacOS

#

but works on literally everything else

#

I did however test it with a dude who frequently does weird shit on his mac

#

so I would need to re-test it

#

but going from then, it just didn't work

icy anchor
# icy anchor Forgot to say! My project started to take 20 minutes to export. Should i say tha...

This script helped to lower it from this time to time dependent on type of changes i did in this project. Some changes in scripts? 1 minute and it is ready. A bunch of modules were changed? Maybe 5 minutes. You changed entire project? þ̴̋̒r̸̾͘ê̶̑̚þ̷̋́å̵̒̓r̴̛͒ê̷̌̆ ̸̏̈£̶̆͠ð̴̈r hðµr§ ð£ ̸͝͠†̴̽͛ð̷r†µrïñ̶̈́̃g̶̾͂ ̷̋̒ê̷͑̏x̵þðr†

icy anchor
# unique hill but going from then, it just didn't work

Damn, i'd really wish to fix these bugs in this case (still having that internal perfectionist that i'm trying to suppress to survive), but probably i'd rather ask him if he can send me his mac to me to replicate the bug because it is impossible to work other way

unique hill
#

I purposefully leave in things from old versions for people digging in to find

#

player_old.gd

#

with a less efficient version

#

infact

#

ill let you in

#

that script

#

is the main system im actually rewriting

icy anchor
icy anchor
unique hill
#

Im also making the VFX of it better

#

so its really fancy

icy anchor
#

Sounds great

unique hill
#

still need to work on that hud

icy anchor
#

How do you work with stairs?

unique hill
#

that you guys wont see in screenshots

unique hill
icy anchor
unique hill
#

just a simple slope for now

#

slope collision

icy anchor
unique hill
#

with a stair model

icy anchor
#

I made stair checks, and, you know what?

#

I said "fuck that shit" and using player clip slopes like earlier in Source

#

Still useful for corner cases when player needs to get up on something

unique hill
#

I'd do something similar with IK bones

#

but for some

#

ungodly reason

#

the player body model

#

has its knees

#

inVERTED?

#

when using IK???

#

????

#

and so I just didnt

icy anchor
#

Damn it even sounds painful

unique hill
#

infact the rig for the player is fucked up too

#

with Rigify

#

so Im just using

#

no ik

#

at all

icy anchor
#

I think i had something like that in my earlier IK rigs for Blender and damn i wouldn't wish this to anyone

unique hill
#

in blender

#

well im using auto ik

#

which is still messed up but not to the extent as rigify

unique hill
#

almost at 3K messages :O

#

25 to go