#Project S-812
1 messages · Page 3 of 1
2002 messages thats crazy
wow! that cityscape is awesome
ty
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
Sometimes you can use Thread() without a Mutex
Like when you don't have to access something from different threads
I did it, and, yea, still having glitches. Honestly? I'm fine with it, especially because it is not interrupting the loading screen music too
Potentially you won't even need mutexes i think. They are needed only if you need to synchronize 2 threads in certain cases, when you don't need them "stuck" and etc. In your case, you need to just launch the logic on other thread, and return the loaded scene node
Which should work, i think
hmm
thats so inconvenient
would I be able to just make a loading wheel GIF and have that there instead
Animated textures are also handled by main thread
Damn
how exactly would I go about doing this
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?
One sec i'm going to write some code in Godot 4 to make sure
good news
i got it not to crash
but now this happens
Ok I know my issue now
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
It shouldn't return anything really but one sec
this means I can instantiate the loading screen, but I cant make changes to it so it basically makes no sense even having one
not make changes to it sorry
Wait a second, i can't see any code where you get result of call_deferred
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
I have a strange feeling that call_deferred won't ever call the function
wdym?
ill check
wait I cant
Also wtf
bc it never gets added to the scene
wtf
ok
workable
Ill have the loading screen always in memory
one sec
wacky workaround
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
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
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
lemme just confirm that it doesnt lag on an extremely large scene rq
ight
Damn godot lied to me
led me into a false sense of happiness just to strip it away
Still lags?
Then the cake Thread is a lie
That may not do the actual "thread" but something more like "co-routine"
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
It would in theory work
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
I hope Thread actually uses more than 1 CPU core
I had that problem with Python, where threading used only one
if it doesnt then thats going to be so unfortunate
I've a new addition like "Thread Groups", does it actually give possibility to launch logic on separate thread?
Like, on real, OG one
im trying out a workaround where I split the waiting part of the loading screen
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?????????????????
call deterred takes methods instead of strings
its been working fine with strings so far
in other parts of the game
what does this mean???
you can run nodes on separate threads????????????????
oh my god what
I'm back, had to go
Yea about that thing, what's up with it
assist me with translating these texts
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
Oh, i guess it is trying to get nodes of Godot Editor itself
USER ERROR: Can't add child 'Spatial' to 'root', already has a parent 'root'.
``` its this mf
It reminds me of what i've seen when tried to get a hierarchy of Godot Editor
see it works with the menu
but just doesnt with anything else
and it doesnt lag with the menu either
Hold on
are singletons processed differently than scenes
because the scene is calling universal.add_scene() but with load_level() it's universal itself calling add_scenes
I think you mean "auto-loads" and basically they are parented to root node, they are not really different from other nodes
My game-menu works without player or other things
weirddddddddddddd
Basically it is a node that changes it's own parameters and etc
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
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
damn
it said light mb
i would love to see some actual gameplay lol
Nah
I have a feeling you are iterating through each node of your loaded scene and parent it to "root"
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
:(
that seems a little bit inconvenient
and wouldnt make sense to do unless I needed to
copy, delete, paste
you can copy and paste a node
the issue is its throwing an error for a stupid reason
It is a problem with the code that is loading the scene
do u reckon
We are not having issues with editing the scene right now
hold on let me recheck my loading code
Loading screen on separate thread
like the actual resource loader
abt that gameplay
expect it at some point
no but it wouldnt be the resource loader's fault
nooo not the cliffhanger
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
make a gh issue
I'd wish to see entire thing. I won't criticize it because, man, you'd see my shit...
honestly and truely
in that case, you'd know the error
the gameplay isnt even properly finished
its good enough to play but certainly not where i'd like it
and whats causing it
so im refraining from sharing it until ive gotten it all good
fair point
Same reason i still didn't make a post for my game and still posting to progress dump only. In fact, i suggested mods to make progress dump lmao
worst case scenario the problem would be user error and someone would tell you how to fix it
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
i'm questioning your usage of godot 4 for a reasonably big project
unity's recent events
Where is load_scene
unreal engine's massive file size & performance impact
godot 3.5 is typically more stable
less engine bugs
Make your own engine, trust me, it is easy
i wouldn't use it for a huge project
# 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
but cool lighting
obviously not my only reasoning
LMAO
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
porting is always an option
infact, the fancy new features are in my game everywhere
I aint going to downgrade
it was a pain to convert my first project from 3.x to 4.x
im not doing that again but reverse
ok
if loader == null:
quit()
I love how it works
its very different from 3.5 loading code
thats for sure
Yep!
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
the loading code iteslf I dont believe is the issue
I recently fixed up the loading code abt a month ago
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 😭)
ive got no clue where to go from here
just trying things to see what happens
if it works then alright
ResourceLoader.load_threaded_request(next_scene, "", true)
What if you won't use the third argument?
I think Ive been looking at this wrong
I feel like it will act weirdly in a thread
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
💀
That's why i asked for it :P
im going to try out a thing and see what happens
I'm thinking about...
What if you will attempt to use "silent"?
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
Yea yea, i think it can be useful too
which means it skips the loading screen all together
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
load() does freeze the game
load() is a built-in godot method
But load_scene in this case doesn't run on main thread, right?
If other threads won't freeze the main thread, that means they are actually working asynchonously, like, on other CPU core
Btw, load is just simplified load method of ResourceLoader, as i understand
Ive been running the load_scene in a separate thread all this time
now
im going to try to run the loading screen itself
in a separate thread
I think you should run only loading logic there
Because main thread (as i understand) is rendering stuff
the entire game would be paused and stopped when loading id assume?
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
But you wanna make the loading screen not laggy
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
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
thats what im about to try
I've got to go for now, see ya
Cya
this is such an unfortunate thing ive done to myself with this loading screen
Reminds me of Source-like foot IK i wanted to make
I had 3 attempts to make it, i still have code in my human model script, and... It is just broken
at this point im postponing it and focusing on gameplay
Better done than perfect for sure
at this point im just like
Going insane?
more than what i already am yeah
im 99% sure im overcomplicating this
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
I start to have a really, really strong feeling that they named Thread wrong and it should be Coroutine
It does start a thread its just disgustingly complicated to run at the same time
Looks cool. Just wondering how you put those buildings together? Blender then an outline shader in Godot?
you guessed it
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
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
true that, though I wouldnt call my game an FPS
its just first person
Of course
Dadaski's game is a really good looking FPS game though
Will be interesting to see how performance is maintained
I started to focus more on the stylization
so I made concrete look like an oil painting but just very very faintly
hoping that it would maintain a decently high fps
Which one is that exactly?
otherwise it'd be rather unfortunate
Yeah, that's my biggest worry tbh; once you start pushing for more vfx etc.
don't know the name but he's sent some things in #1149772367682355330
im sure its fine
probably
Switch on volumetric fog and global illumination 😉
theyre already on
though volumetric fog is set to a very very low amount
Oh sweet
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
It's looking good for sure
Custom shaders?
nope, Paint dot net and simple normal maps
paint dot net for it's oil filter
Ah, so texturing only
it gets the job done imo so
For sure, what kinda game is it?
I was inspired by a blender oil painting shader which did the exact same thing
but in blender
trade secret
however
it is story-driven
and mildly open world
Sounds right up my alley 😎
reposting a screenshot i already sent here so it would be at the end of the chat
insane 329 mb used
Would love to see a short video tbh
honestly the gameplay is mid atm
I'm still trying to make it better
More interested to see the graphical style in movement atm tbh
using less than Discord
TRUEEE
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
complain away
discord frequently uses 500-800mb on my machine
ive never played a game that hasnt used 1GB of ram
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
cuz it uses Electron, which is huge
to set the building on fire for a cool fire level of course
✨ Electron ✨ /s
ive been doing so much chem I read that and deadass thought about atoms 😭
You would think discord has enough money to make a proper desktop app
what is Electron?
Javascript 🤮
its a framwork for making desktop apps
how dare you
Build cross-platform desktop apps with JavaScript, HTML, and CSS
How dare you say how dare you
Yep
Well then they probably were smarter about it XD
well idk abt skype its been 10 years since ive last used it
this is normal javascript things
true isnt === to 1 because === means absolutely equal
but == is because == just means equal
bruh
but from an absolute standpoint, true is not an integer and therefore cant be 1
sorry I went nerdy
Rust is better 🔥
how the actual
YESS
agreed
Rustaceans assemble 😄
1+1+1 :)
weird
we got oil painting-like textures
ignore the obvious seams I need to fix that
true == 1 therfore true+true+true is the same as 1+1+1
reflecton pwetty
ikr
I still cant get that thread bullshit I went into 2 days ago to work
so im procrastinating by doing graphics stuff
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])
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
horrific
Tauri just uses existing webview implementations on the system (Microsoft Edge on Windows, WebKit on MacOS and iOS, and webkit2gtk on Linux)
testing out lensdirt
i think it looks good
and in that case I think im all done from a graphics standpoint
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
Yooo this game looks beutiful
What's the gameplay gonna be like?
Jokes on you i used to love HL2 MMod for that!
To be fair, lens flare in games like Titanfall 2 aren't realistic either but it sure looks great!
ur right
it wouldnt make sense to have dirt on your eyes
the gameplay gon be fun
story-driven
a few puzzles here and there
the best hl mod right
or am i wrong
spent some time making an actual lens dirt texture rather than using godot's noise texture built-ins
HL1? Maybe. HL2? I don't know, but, damn, it was such a good addition to original game. It feels like something Valve would do
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
have you ever had the error where you accidentally set an image to a normal map and now that image is permanently yellow
Not really because i rarely set it by hand, but you can fix it with changing import settings
wdym rarely set it by hand?
I rarely work with materials directly because most of them are generated, but it is true only for location materials (there are like ~350 of them at this point)
generated???
Yea, plugin makes these
its not yellow anymore !
Yay!
That's nice
I just remembered, gordon freeman has glasses
thats why there gets dirt
would also make sense why theres lens dirt in my game too yeah
Is there a link for the game?
hoping to get a demo out rather soon
i feel i might go all out with those outlines
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
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?)
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
Ok, yes I have like 1 StaticBody3d for 9 CollisionShape3D (Convex Bezier Curves), but as you recomend it's better to have just a few nodes and a lot of CollisionShape3D?
The code i've sent basically allows you to use only one StaticBody3D and get rid of other CollisionShape3D. If you wish, i can check the code you are using to reduce the amount of nodes and tell what exactly may go wrong, since it is not really well-documented feature
So the idea is to reduce the amount of nodes?, Is there a big hit in performance with a lot of nodes?
Sadly, yes, nodes impact the performance quite much
But i'm about cases when you have, like, 4000 and more nodes, it is recommended to think how to use less. I've got, like, ~40% performance boost when i lowered it to 2000 nodes, but, once again, i have really bad hardware. It is recommended to optimize your node-count only when your project really needs it
Damn, I got around 15K-20K nodes
Hmm, sounds like you have a reason to lower amount of nodes by removing collision shapes at least for sure
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
I could also reduce them on the rendering side, as I haven't found a way to combine meshes in order to reduce drawcalls (I mean combine meshes that share the same material and shader)
Hmm, yea, sadly, they removed merge_meshes from MeshInstance3D for some reason, it could do that thing. Potentially you may need to write your own code to add data in ArrayMesh or something like that. Or, also, someone could write it as Godot plugin, but i didn't check it yet. Still wondering why they didn't add merge_meshes for now
I will take another look at adding data to the ArrayMesh. As on FPS physics right now I'm dealing with CharacterBody3D and stairs
Wow, only SeparationRayShape3D pointing down was needed https://docs.godotengine.org/en/stable/classes/class_separationrayshape3d.html
Damn I'm amazed
Inherits: Shape3D< Resource< RefCounted< Object A 3D ray shape used for physics collision that tries to separate itself from any collider. Description: A 3D ray shape, intended for use in physics. ...
trying out fancy clouds using Displacement Maps
That was a very good tip, Indeed I use just 1 common MeshInstance3D and added all the other meshes as different surfaces on ArrayMesh and use that combine total as MeshInstance3D.Mesh however I encounter another Issue I was not aware, there is a limit MAX_MESH_SURFACES that is 256, so with a Linq.Chunk(MAX_MESH_SURFACES) it WORKED, now I have 3000 object less
Clouds looking interesting
Oh, i'm glad to know it worked well for you! I definitely need to try making a node to combine several meshes, too. For now i'm doing that in Blender (loosing control after that of course), but it is impossible to work like that when i use my LocationProp which is just unique mesh instance with it's own properties
And, gotta say, 3000 objects is significant decrease. I can imagine how much you have lowered the draw-call amount
Exactly, as I try to group everything for the render call (same shader, same lightmap, same type)
Now I need to do that on the collisions
Sounds great! I wonder what kind of physics FPS you have. Always curious to see people making such stuff in this engine
My Bunny Hop sucks but you get the idea
It's using Jolt physics
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
That's the idea. Still there is a lot of shaders to be done, but the basic textured/vertex color/lightmapped shader is done.
I wonder how do you do lightmaps, they don't seem to be Godot ones, or maybe i'm wrong
If you bake them externally, how will you support dynamic objects?
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
Damn, that be really nice to see your implementation of light probes, as i understand, they were used back in Quake too
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
Thanks, I can't wait to go back to netcode, but as the damn Unity situation unfolded, I needed to migrate to Godot and started again. The idea is to be able to handle up to 8 player splitscreen.
a decrease that oddly resulted in 12 orphan nodes at all times
Luckly no orphan nodes (yet)
So you also made all of this stuff in Godot in a such short span of time? That's impressive too
Unparented nodes to scene tree, my beloved! They can be useful for optimization too
ty
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
I dont even know what they are
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
scrumptious
I love such stuff
Now you know!
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
its nicely done
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
I was looking if there was something as Render Frame Debugger as Unity had
theres an app similar to hammer editor that lets you make quake-inspired maps in godot
Yea, you gotta make it yourself. Honestly, render frame debugger was the reason i started to look into this thing because i missed it a lot in Godot. Now i have it as a part of debug HUD that can be turned on in game. Can't be sure if it will work well in exported game, though
Trenchbroom?
unsure of the name
Heh, pretty sure you are talking about Qodot and Trenchbroom, these two are used for Quake-like things
is there any 3d game in godot that has impeccable realistic graphics
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
that runs normally
I think it was Qodot
Qodot is just a Godot plugin that makes it possible to import .map format
So you need to use third-party apps to make .map, such as Trenchbroom and many others
Blender everything
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
But i gotta say the algorithm of my work:
- I make a scene in Blender
- Synchronize all Godot materials with Blender using my own plugin
- Make things, assign materials, do booleans, etc
- "Export collection as location blockout"
- In Godot, i assign a blockout name in
LocationBlockoutnode, updating it, and that is reading exported .glb file, assigning proper materials to it, doing various fixes, turning all meshes either toLocationBlockoutMeshor 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
Interesting stylized ones
why not modelling in godot?
or materials
Because it is slowing the process down, regarding to my previous experience with Unity
I added parralax
I make all materials in godot so idk
besides images and uvs
which is done in blender
To each their own, you know
Finally manged to merges the grouped meshes into 1 surface, and now with oclussion culling via PVS and BSP nodes I reduced the draw calls!:
From 1400-1500 to 68!
thats very good!
thats fancy
u should prob create ur own forum channel tho
id love to follow this games journey
TriggerCoder has their own game and they're kinda both doing progress updates in the same thread for some reason
no
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
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
same as well! ping me too
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.
its all good
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
trying out a flashlight feature to see maybe if it can be added and balanced
nights with that many stars are brighter
thats a fair point
but I wanted to make it like
you use the flashlight for vision but sacrifice blank
that looks like a horror games lighting kinda lmfao
yeah ur right
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
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
really love this, and also noticed that the orphan node count is 0
i think it looks p good tho
im using them 1991 tricks
everywhere I use those tricks
ty ty
ye ye
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
fancy
very convincing, that's a great strategy
ty
that's an incredibly dusty room lmfao
it's very good and fooled me though
i didnt add the dust particles yet
ty ty
im planning on making it
a massive interior
maybe a warehouse or something?
idk
dust
dust indeed indeed
My beloved dust motes
dust
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
I like that colour you have right now... Reminds me of a late summer afternoon with icecream
i might make it more white
holy crap that's good
ty
im making a fancier version of this
You know the around 1500 draw calls you had once doesn't seem that bad anymore...
holy
what are you doing to cause that???
Well...
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
thats very inefficient
I know...
dont do that
I just wanted to confirm my meshes were working
im more surprised at the 7 fps you have
and that the chunking system was working too
Well I have an rtx 3060 so I can run some of my bad code lol
so dont expect screenshots for a bit
gtx 1650 for me
its a good thing i have a mid laptop
bc now i can optimize my game
heavily
I won pog
hehe
And only 248 draw calls lol
it was a pain to get the fps and drawcalls like that
and I still dont know how its at 200
its should be at 100 or something
I should be able to get my draw calls down to one (in edge cases 2 or 3(but very rare)) per chunk
thats untextured tho
it'd get higher when you add textures to the mix
I don't believe so no
If I bundle the texture along with the vertex, uv and normal it should just be one draw call
to make sure i dont leak something important
ooh that makes sense
Before calling add_surface you can add all the data in mesh_data
thats interesting
is it gon be another generic minecraft clone
or something fancy to it
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
you can
minecraft is so
horribly unoptimized
the java version
bedrock edition is optimized but sacrifices features (and bugs)
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
probably but still would perform better than minecraft maybe
it takes one mod to change my frames from 58 to 367
one mod
three mods for 800
ong
minecraft java mods to make
on fabric
nvm forgot where I was going with this 💀
Lol
I want to add easy mod support for my clone
making it so that everything is defined in json or smth
i think godot has a .pck way of doing that
maybem I will have to look into it when I have the base game up and running
alr
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...
dont forget to add culling
u should make a forum channel for this
i wanna follow it
Sure!
Will do!
ah, so I assume no culling?
i love how much that happens
i'm gona post hamstory updates here
(/j)
story abt a slice of ham?
💀
hamster
ooh
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
Ping me too when you'll make it, quite interested to see development progress
In all of the Minecraft recreations I see, they always mention culling as basically a requirement for performance
But I've obviously never done it
I think the mean culling as in hiding the faces not visible and not chunk culling
I think vanilla mc has miniscule amounts of culling
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
development name
there is an actual name but it reveals too much
memorable enough
better than "working on a 3D first person game in godot"
I personally dig the new codename
D: So no open development? 😫
Nice one
Being open to people doesn't end up well at most of times really, so i'd personally wait for the time when dev will open it all up when it is actually worth it
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
So youre saying the open dev. helped you discover that that name was unsuitable? 👀 I dont see the negative thing about that
Road to Vostok dev is doing pretty open development. Works good for him
Nope, i didn't tell to anyone much about the name of the game, but if i'd do, that'd cause confusion
DRG devs want to go back to open dev
But he didn't tell anything about the project during 5 months of pre-production stage
I support open-dev, but that needs to be done carefully, and Road to Vostok is good example of that
No ofc not but I didnt view this project in PRE PRODUCTION
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
already having an internal secret name which is so "telling" that you dont even want to share it, sounds like the whole thing is already planned out.
also this sounds like its in active development
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
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
Yep true
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
He's communicating and logging his development, but I don't think he's really open to the community. Best to keep your head down and focus on your vision before others fuck up your game.
"Oh, can you add springy-dick jump-pads?" Errr, no... 😂
"Can you add nicer visuals? I really love reflections in this environment *shows a game with PBR and AAA-assets that was developed by army of artists*"
"Yeah, like Apex Legends crossed with Titanfall." 😂
"I don't like this feature. You should remove it and replace it with [other feature that doesn't fit in the game at all"
"You should totally add a 2.5d camera and make your FPS switch to a Command & Conquer mode..."
not neccessarily a stupid/bad idea but more of a "good idea but wont really mix well" and that is a third person camera to see the full body of the protagonist
I should add mirrors
hold on
I did add mirrors
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
true true
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
Yeah, we were more referring to how fickle internet commenters can be, and how they'll derail your game's direction
"What if you add laser puzzles"
I shouldnt say that bc I might very well add that
yk the lil things from portal
"Don't use Godot, use ___"
actual comment ive received from showing someone the game before I made the form
glad I didnt go to unity 💀
Why?
the whole price change thing thats occurred recently
Im not sure if it got reverted or not, I don't follow game engine news closely besides Godot
Ah that doesn't affect the majority of us tbf
yeah ur right
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?
Can you elaborate please?
Not an expert but I don't think that collaboration will be added into the core any time soon. Its a feature thats kind of a niche and how I perceive the devs, they would much rather have it as an addon/ plugin
damn
as in like what VSCode has, where you can see others' cursors and see changes they make update in realtime
I'd much rather it be a core feature, as it is the reason why i'm the only person using the engine on my team
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
Agreed, it can be very finicky as a plugin, much better in core where it can properly interface with everything and be maintained as part of the engine.
exactly
Besides, it'd be best if features were implemented with it in mind
if the plugins/addons can do it kinda decent but not good but it still kinda works then the engine definitely can do it
Having it in core would essentially guarantee that it stays maintained
I know for my team specifically, we work best when we are all online doing something together
If people saw that it works then they'd use it
exactly
Seriously low hanging fruit imo
how so
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
I didn't know there were blender plugins for that but I'd assume it would be finnicky
It did work but it broke after an hour or two
Visual Studio Code has a realtime collaboration addon built-in into the software
This was a while ago though
and works wonders
Yes VS code live share is amazing
love it
flawless and allows you to share the port too
damn
This was ages ago so I don't know if it's still maintained, is still working, isn't working...
I dare not touch that because im afraid i'll leak my ip (irrational fear)
which, vscode or the blender
I did it with an irl friend, it just shares it to the corresponding ports from memory
oh interesting
The blender addon
this reminds me
But I suppose vs code live share is an extension
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
I think godotsteam has a way to handle that
Apparently ETS2 does not do that and the dlc files lay unencrypted in the base game folder
what if the dlc is just a different game completely
that would be funny
godot has a steam addon???
probably possible
lmaow hat
No like a way to handle dlc's
on the topic of encryption
You beat me to it :(
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

and the result I did get didn't work
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
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'?)
ahhh ok
what about a different technique
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
Nothing?
Mayeb steam approval?
What I'm assuming is that steam downloads the dlc files you set (in this case 'dlc1.pck') and then you check to see what's installed and load that
assuming
Looks like they have a discord so it's probable they have this figured out lol
Maybe the almighty steam load has some answers idk
bruh
I can't send servers
2 sec
@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
that's not really an answer, and did it need the ping?
If you wish, you can make a ton of PCKs with Python script, obfuscate it in some way, you know...
Alright just kidding. And yea this is how i export my game (without obfuscation though), because that's kinda the only way to do that
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
wtf
i have no words besides wtf to that
thats such a punishment for the people at the cutting edge floor
cutting room*
He-he yea
why you do that
Honestly i had no intention to harm modders or others because i have respect for them
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?
I've been trying to export this game, and, sadly, i started to notice several things:
- 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
- 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
Yep! I thought that can cause RAM issues but none, virtual filesystem just getting new files
wait its clamped?
Is that the same for 4.X?
Oh, that's tricky hacks, so, firstly have to show Python script which is messy asf
my game aint fitting in that restriction
I don't know
So, what it does is...
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
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
I did Python just because more familiar with it, but if you are interested in some techy things i did in there, it can be useful to examine, even if it is really messy
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
For most of times it should work fine, just remember to keep track on issues related to editor virtual filesystem and exported virtual filesystem. They have weird differences in 3.X, i expect same in 4.X
so I used javascript and ive made an AI thats pure australian energy
i could show u it later
Lol that sounds fun
very
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
huh?
Forgot to say!
My project started to take 20 minutes to export. Should i say that is painful asf when i get bugs reproducible only in exported version?
bro I feel you
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
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†
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
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
The reason i still didn't remove all debug locations, they are funky. I'm planning to make a separate free DLC with these, that'd be fun to see such a weird stuff as a separate DLC. That might confuse those who hates DLCs probably lol
How's it going though? In my opinion player controller is a tricky thing that seems to be impossible to just complete, always seeing some cases that could be covered better
I had a lot of weird shit but now that im remaking it, I managed to complete systems that took me weeks to make, within just a few hours
Im also making the VFX of it better
so its really fancy
Sounds great
still need to work on that hud
How do you work with stairs?
that you guys wont see in screenshots
aint about to mess with that
Sad
But alright :P
Ha-ha that shit is cursed
with a stair model
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
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
Damn it even sounds painful
infact the rig for the player is fucked up too
with Rigify
so Im just using
no ik
at all
I think i had something like that in my earlier IK rigs for Blender and damn i wouldn't wish this to anyone