#SLAMFIRE: 3D Movement FPS / Immersive Sim
1 messages · Page 2 of 1
i have to get going
BUT
i think i know what to do!
i have yet another viewport just checking an octahedron from above respective to the cam yaw
and i'm going to just sample the color of this cam texture
that's what the viz is in progress for
wait thats actually epic
with this i should be able to sample a light color and then use that to fake the sprite light from one static direction
and Bob is your Uncle, 3D render Sprites, With Environment Lighting, But Not Any Depth or something?
who knows
but i have to go clean ! and sleep :(
Small peak of today's work (among other things)
Giving the mapmakers a way to visually see and adjust the hinge and origin, or other properties of things
Muahahaha! What an evening of experimentation.
I present a meme.
Last night I sat down with another Quake mapper to see how the entities are typically done in a more advanced map, with real trigger setups and how exactly they do things. The goal: Teaching an engine new tricks! (https://blackwell.duke4.net/fury/2018-12-07_Dev_Blog_3_-_Teaching_an_old_engine_some_new_tricks.pdf)
info_multiplex is a trigger on fucking crack.
It can:
work like a normal trigger effect!
call multiple functions on multiple target names!
be sequenced or simultaneously apply all effects!
call general game commands and any method its targets have (open doors, spawn enemies, etc)!
broadcast to particular 'channels' with the information 'packet' (trigger sequence)!
has special programming methods to make complex logic within the trigger system itself!
it's a great pairing entity for info_area, the partner generic Area. This area3D provides some interfacing options beyond a trigger response, but also relaying an incoming signal to all bodies in the area, and much more.
With info_multiplex and info_area, basically every niche version of trigger_whatever is basically gone.
Let's talk about what trigger effects were.
This is the way of old: a unique trigger type for... a lot of the same thing when you think about it: Thing gets triggered, does another thing to a target.
Thank goodness we have such a crazy tool as... comma delimiting these days.
So, no more trigger_multiple hitting a trigger_push and a trigger_hurt and also a trigger_speaker.
It's just info_multiplex with targetfunc = "push,hurt,speaker" on "info_area_name"
interesting
heyo
today we have re-added rocket jumping
but we also integrated it with the console to let the mappers in the new fresh dev build set the values for force, radius, speed, etc
That Shit's Great
i'll post content later, my brain is Fried
redoing some console stuff, coming across a lot of useful Expression logic last night
it's neat to consider multiwindow uses
can you define that a bit more, @compact raptor ?
That's an absolute retro banger
Very cool tbh, always fun to check up on this chat
Like explain it to me like I have never heard of Slamfire and summarize where you're at
yes, it will also just work like normal and be embedded in the game
Slamfire is an FPS game that takes a lot of inspiration from older movement shooters. At the core, it's really a physics system: much like Quake is. There's a lot of weapon usage <-> playe movement tool crossovers.
It's intended to largely be a linear-story game, but I also support people loaidng their own maps and making their own levels.
Awesome
I like to call it an 'adrenaline shooter'. It's about theat feeling you get going crazy fast in a levle, or in a big ol' slaughter room
Doing a wild ass rocket jump and wahtnot
Granted, you don't have to do these things in-game, and it's fully playable in the normal sense.
"big ol' slaughter room" is a great term
it's a retro FPS classic
summary of the summary: quake go pew pew boom but fast
lol
the one liner for slamfire is Quake and Build engine has a baby in 2023
Making a more fleshed out testing map for the enemies later today. You uhh, might feel like you've been here before 😂
The textures are awesome
haha just some quick prototype ones i whipped up. here they are if anyone wants+
also includes a trigger, clip and skip texture for anyone who uses those
doing light ents proper today and dang it's fun
oh right, you should totally look into light smoothly disappearing when you go far away from them
same with lights having shadows only when you are close to them
those are very simple yet effective ways of optimizing lighting
do you plan on supporting baked lighting?
i can't do that sadly because i intend on supporting runtime map building custom levels and we can't bake in GD 4 outside editor, which is a non-starter. I don't want my mappers or players to have to touch Godot editor.
fake GI at min, but if i can find a way to make voxGI work then there's an option for stronger PCs. but not required
very useful property, that
I didn't consider having shadows enabled for only close objects though and was considering just using them sparingly. That's a good idea however, you typically use an area or
oh my god i am embarrassed to admit how long it took before i realized
guh.
so anyway....
i have my sound muted and yet I can still hear the explosions and shovel hitting sound effects
ah yes
the sweet sounds of the tf2 battlefield
so calming
Oh yeah baby.
hahaha
tony hawk pro skater 6
The movement looks so fun and fluid and snappy
view model bobbing, swaying, idle - roughly complete now. of course, will be disablable
need to smooth the stair velocity hit on the weapon pos tho
and then the actual animations and not a generic one for all of 'em
looks smooth af, you're doing sick work here
the power of procedural animations and math
old half life WON trickery
had some really complex but neat bob algos
glad to see the work, was in the vc yesterday watching the work, good progress so far!
Damn, you really cooked with that console 👀
it's so powerful i'm considering hiding or flat out removing features when i release for security purposes
if you wanna know how more was done look at panku console. great example plugin
i fixed it a liiitle bit since that video but it largely still works the same, just more complete feature-wise
making the guns actually do stuff besides fling the player
fun to set up the gib vs death logic
oh, retro tool brushes
yeah, simple to make and i was getting tired of the old ones that look pretty rough
have a lot of other special ones for slamfire too
crouch jumping back in
it's always so weird to think about how to do it and keep the camera pos stable in the air
...oh no
well, see you guys later, i'm going to the code dungeon to fix that
you know what's really funny
Planes: The dot product has another interesting property with unit vectors. Imagine that perpendicular to that vector (and through the origin) passes a plane. Planes divide the entire space into po...
did anyone ever notice this little bit....
i certainly didn't when i first read these pages and it's worth going back to even if you know vector math
of course i knew this idea from reading quake code and math research papers but like
wow how did we miss that one? why does nobody use the Plane class??
gahhh i'm frustrated in a good way, i needed to rewrite the collision code anyway because there are still weird bug cases (this shits hard ok the finer details are insanely annoying) and thats not happening now but damn
also this thing needs a model proper
it's important the home defense rocket launcher shoots home defense rockets
indeed
she will literally do anything but finish coding the basic AI
✨ 🌈 _procrastination _🌈 ✨
lmfaooo
To be fair I fix some of the health bugs this morning and rewrote that code
lol
Awesome
✨💖Refactoring💖✨
always important
i've been busy
weapon system got messy, so i've been exploring component architecture more..
and also, lots of bugs to fix today before i go out of town for a week
hopefully when i'm out the work i can get done is more story and aesthetic, rather than just programming . . .
much needed break though :)
GO COMPOSITION
Your new weapon structure looks very nice
thanks, except lol it's totally not worked out yet. i've been fidgeting around in some off time here in a 2d playground to set up how these components might interact
but i feel like in the end, it'll be easier to work with on my end, and with a slight change in mind / approach for modders it'll be just as powerful as one would hope to allow new stuff
My game will not have mod support :P
But hopefully a level editor...?
If you know what my game is you get why
overall it's relatively simple but i do want to connect up a few 'operational' things like differet actual fire modes/interaction (a charged up attack on release, vs click and it happens)
totally understand, yea
that's kinda the weird bit
fortunately the rest of the strucure component wise is really simple
My game is #1191567732920045598 and wow I shouldn't have changed the title
Your game is so ✨aesthetic✨
ive been playing around with stuff like components having a can_{action} and a on_{action} func, one to check if it can attack (fire rate component would go, has it been long enough? no? no fire for u!) and if the can_action finishes, the on_action for components with it get called
Even the greybox levels look great
so like a bunch of things might have _on_attack, but the mode component has a can in addition
once can gets cleared, on gets called, which in the fire rate component makes it trigger CD + actually doiung shit in the other components like firing
I actually have a system for letting the player call functions on actors
Yesssss hehehe
in a shellnut that's how triggers and various things in quake-like mapping workflow goes
things have a targetname, you then call it with a function name
and at one point, i thought why not just link the two together
functionally it's super super similar to your game actually
i do appreciate that though - i of course am limited in my artistic ability, and so i go with very stylized graphics to hide my shortcomings (a technique i've used in drawing for a while now, especially with uneven lines, etc :P ) and it's been a really fun journey to settle on something I feel is visually my my own style
Yeah that's the cool thing about making code systems
yeah!! the day i showed that off to some of my friends who were used to typical retro FPS games
opening the console, then typing "get_targets", getting a list of valid map entities, then calling an abitrary gdscript function i did not include an explicit call for just blew their minds
That's so awesome
open console
help
-> shows Player object among others
enter "Player.queue_free()"
-> player removed from existence
I want to put a dev console in my game but... I have little to debug like that
I can run every scene independently (I did a lot of work for that) so I can check things quickly
that was a "duh" thing, but it was neat where i could do
"m_use_targetname Door1 toggle()" for example to call Toggle, a custom function written for the moving entities (in this case, a door named Door1
that was the cool as fuck thing, because that target name is what its built with in the map editor itself
oh thats awesome, i would love to get to that kind of point where i can run things so deseparate
That's going to be awesome for modders / players
this is
exactly!
It was super important here, because I will be quickly tweaking and testing puzzles little by little
it's like back in Fallout 3 with some glitchy ass cutscenes that take camera control away from you
sometimes they didn't return it and you were stuck
so you'd open the console and do whatever the command was to force control back
it was annoying - but the player couuuuld fix that among other bugs
Oh that's a huge help
yeah! that kind of thing i feel goes a long way, especially in combination for games that are expected to be modded or using some kind of custom content
I really dislike when I get stuck in a game and just can't save, can't do anything but quit and lose progress
Like, c'mon let me at least cheat to the point that it's playable
yeah! it's really frustrating, so that's why i figured meh, i'll just leave the console as fully powered as it was for me in dev
Reminds me of an idea I have for a hacking game
if you wanna cheat and ruin SLAMFIRE for yourself, well, that's on you :P
what cheating is varies person to person
i even plan on including some gameplay accessibility options, like invuln or unlimited ammo, etc
Accessiblility options are great
I like that more games are seeing them for that and not demeaning the player for it
yeah i love asking people for suggestions there
because there are many i never would think of but are great
Sometimes I'm really dumb about accessibility
one person in my discord suggested if i do any flashbang effects to have an option for them to be black screens rather than white screens
i had never thought about it but immediately i was like
no thats just gonna be Default behavior lol
Like, I was once thinking that I needed to put symbols on the different colors to make them more accessible for colorblindness, and also change them to orange and blue
And then I was like... wait... it's already black and white
🤦🏾♂️
One monochrome set to another... ops
It literally could not have been more readable
Try the Tetris piece method?
What's that?
Oh that's cool
not the best example? but there is an option often for colorblind pieces
they still use the original guideline colors, but they are textured differently for each as you can see
old monochrome. versions of the game are like this too
I think symbols / simple shapes work better in some cases
yes! visually distinctive shapes over colors
Like the PSX symbols are awesome, and I'm definitely stealing that for puzzle objects in Command Quest
On the switches I can use x for off, o for on
:D i love it
Bonus of being non-language dependent
One bad thing is that triangles happen to be terrible at pointing at things
Which corner is the front!?
So I have to figure out something that's that simple but better
Anyhoo good luck with SLAMFIRE
Going to be on Steam?
You bet!
Awesome
Speaking of accessibility, are you adding controller support or at least planning to?
i would very much like to, despite it being traditonally odd for this kind of movement, the base game itself is intended to be similar to quake in the sense that the game is "meant" to play one way, but given emergent movement tech can be played in a totally different way
i do plan on it, and currently it is halfway functional
that said, the movement code is written with input strength in mind! so the hard part is really just making sure it remaps right across diff controllers and so forth/
glad to know!
Awesome way to plan ahead
i'd love to say it was my idea but essentially it's why i had an 'fsu' vector4 to describe forward, side and upward motion inputs from -1.0 to 1.0
but what's the fourth data piece you might ask?
scale :D
for keyboard and mouse it's fixed numbers - 128 or 64
though i'll probably rebase it to use 0 to 1
Baaad news
i put two and two together while thinking about the console, what you can do with it
and it turns out, console's fine; whatever, you have to type the commands yourself
but...
the way maps work currently will have to be redone
right now as it stands, loading a custom .map file with qodot is an INSANE security vulnerability.
this strikes me as a CRITICAL flaw that MUST be paid attention to
why and how you might ask
WELL
qodot on a simple level and by extension, Quake .map files in general, store entities with a target name.
For example, your door might be door1 .
When the player triggers something - say, a button - the button calls door1 and uses another property it has - targetfunc
simple enough: call a function on a remote target
the problem is: there is no santitization or checking of what that target func could be!!!!!
if you are not SCREAMING at me already by now.... well...
what does that mean?
** loading a .map file at runtime is not safe at all **
this kinda fucks all the progress uve made already
Not entirely
But it is a major, major, major, major issue that the game cannot release without first addressing, and as it stands, completely kneecaps runtime map loading
The good news is, this is.... not a sinewave problem, I think this is a genuine security flaw that needs to be addressed by t he particular tooling
I don't know but Hahaha fun
yikes
as long as it cant run actual code
bc u dont want anyone opening the user directory and using delete()
(cant remember if thats a real func but yk what I mean)
That's exactly a scenario I'm trying to prevent here
Because currently, if you just do it out of the box as qodot kinda expects things to work
That and so much more is possible x_x
So anyway this is basically a complete stopper for all progress and I am no longer working on anything else until this is solved.
yikes
hoping this can be addressed soon
this also brings an issue to my game as well, since I wanted runtime map loading for user-made maps
I dont use qodot but i fear I might have a similar issue
yep. if you have custom map entities that can be used - and you do - this is... something that you have to think about if you're offering users the ability to do whatever
if this is a problem with qodot, you should raise a git issue
it is and it isn't
it's something i am making a lot of noise over right now there too though
as well as to anyone else i know dealing with this kind of system
it's more on the designer and coder of how the systems intermingle - but a lot of currently documented approaches directly lead to this issue and there's not really any warnings or mention of the ramifications
it's not a strictly qodot problem but it is something that would affect anyone who wants to use it indreictly because it's a system they'd have to set up as well
yikes
@storm kraken
Idea but severely stupid and inefficient
create your own map making system
well that is basically what i have to do yes
well, my first step was
"is it actaully even possible to call OS singleton functions externally?"
"can I even get a reference to OS/DiplayServer/IP/Whatever?"
(Godot resources have a similar issue when used as save files, and yes an attacker could use OS.something in them)
the answer is no, not without a prior ref really or exposed method already and due to how the map entities work passing method names it wouldn't be possible to pass actual data to that
yepppp that is exactly what i had in mind when thinking about this
this is a fancy resource after all when you think about it
so as far as i can tell: the maps themselves can't do this kind of thing (whew)
There is a solution for that one though
Take a look at the repo
Anyway about map files
Are you already thinking of allowing players to make custom functions for things?
the console may, but in a REALLY weird roundabout way i'm unsure of now, able to do ti though
if i can create new properties on an object or attach a script etc that is defined on the fly then yeah, you could just
a) create a new object in the console
b) create a script and attach it
c) define the script with some func to target say, OS.shell_open(google.com)
d) then you run that new object.method you made and bobs ur uncle
but i dont think thats possible to do from a map making perspective, and someone would have to type commands in the console to do that
awesome though gonna take a peek there now
oh sick it has some good regex already :D
Yeah it looks super neat
i'm in a bit of a strange mental state so i decided to take advantage of that
i did some story writing today and you know what
i think i have an insanely funny idea. here's a teaser
A product of their own hideous degeneration, the project's goal is to research and create artificial adrenaline boosters, brain function adapter implants, and other artiforgs to unlock the next generation of terror-commando: one that knows no fear, no limits, and no failure.
If the government couldn't solve problems for its own citizens, it sure could silence them from speaking and worrying about them.
While relatively simple for a human to experience, it's difficult to quantify such decision making abilities in the brain. That's where LUX SYSTEMS steps in. Funded by stolen Medicare funding, and moved into a clandestine production facility near [UNKNOWN], the projection packet quickly and silently becomes a reality.
i would love to share the full thing but that'll have to wait
but oh man i'm having wayyyyy too much fun
surprise i took evil government money to harvest your brain abilities, i hope you still play SLAMFIRE <3
on another note that is also a biiit more practical: i sat my ass down and properly made the console resizable and repositionable
need to fix the scaling and allow you to change the text size with ctrl pgup etc buuuut
interesting
sounds apocalyptic slightly
quite
hey also here's an old demo for some music also :D something different
Woah that's super cool
and here's some more, this one's for some environment props and not actually OST
this is one of my fucking favorites so far like damn
this is unreal tbh
cannot wait for the rest but that's enough for now
If I make a 3D game I want all music to come from radios and old music players
...and, some other fun news today:
Lux Systems, LLC now exists >:O
it's Company Time
bless me (CEO) thank me (CTO) i'm amazing (CFO) and worth it (CIO)
this is like solo dev with artist, programmer, sound designer, but advnaced
this is going to be me when writing my end credits
"everything: me"
gratz btw
YEAHHAAAHAHAH
AWESOME
OMG CONGRATS YAY
WOOHOO
*ahem*
it's exciting for sure, soon i willl be able to set up the steamworks account with the company's bank acct
then i'll be finishing TERROR SHELL and throwing it up on steam for $5
heck yeah best of luck
What's TERROR SHELL?
it's pretty simple to do this stuff but it is a bit expensive up front
small side projecti made a long time ago but put on hold
Yeah, that's where I'm at
it's basically a devil daggers clone
2.5d mixed voxel and sprites my beloved...
yeah it was a super fun mini project to get into and work on basic crappy AI etc
gotta make more enemies an then it's pretttty much done
Awesome work!
I'm just going all out with Command Quest
The LLC is basically for that game in my head right now
oh yeah, i just have it for all of my games
Yeah, that's my future goal
you got this 💪
I meant like, this is my first project and I'm not following the "start small" advice
from what i gathered you're still in school or on the younger side - keep it up, i wish i had done these things a decade ago
setting small? meh. you can sandbox small things all the time. it's what i did to build out things and learn then bring it into my project
you're doing fantastic, and i believe you will easily have a future doing more at this rate
aw, thank you
I'm eagerly looking forward to the day I release the first public slamfire demo
Same here 💪🏾
it was a lot of fun to see the people I know who have expectation for a movement game play it and be impressed
Can't wait to see what everyone else thinks
But that crowd is also satisfied with like, literally noncombat and only tricks hahahaha
I mean it already looks fun just from the clips and you happen to do really well with polish and juice
I don't think most people will be dissapointed
i sure hope not! but the nice thing about making a game in this direction (taking classic mechanics that have proven to be a solid base) does do some realllly heavy lifting
Very true
i am so fucking impressed 😭 this is amazing and totally made my morning to wake up to
i am ecstatic
in other news- development will resume tomorrow at normal speed
i wish i had your energy
whatcha mean
yesterday I touched up 6 NPC sprites and then didn't do anything else
my ADHD/procrastination is saying "you've already done all the hard work, you get to just relax now"
D:
oh some days i don't do much
i have done like nothing the last week
i made the console resizable and like fixed a security vuln
i feel that for sure though, some days it's so easy to finish one thing and then go Ok I've earned it
i do work really burst-y
motivation can be a tricky thing, and we vmall find it in different ways
i will say after this break i feel an entirely renewed vigor and commitment
the power of your loved ones, ya know
yeah that's fair
i didnt mean to complain at you lol, your project gave me motivation to try an ES:Arena style game after i finish my current zeldalike
to start dabbling in 3D
oh i didn't feel that you were complaining at all
best of luck in 3D if you do pick that up
it's always a honor to hear that someone felt inspired to try something new seeing this
Wahoooo!
You're an inspiration ;)
I'm also definitely jumping into First-person 3D after this
But I think I'll take... a cozier route...
any ideas?
complex movement aside i think it wouldn't be so awful really
the player motion really is the biggest challenge for my project imo. everything else is not so bad
fascinating :0
i always like to see creative things people do with video games cameras (like an. actuall handcam or something the characters have in-game)
Yeah I got inspired by the BoTW and ToTK camera system
pokemon snap?!
Nah
Never played it
But it'd be a cozy immersive sim
So you'd have to get creatures in frame using your wits based on what you know about said creatures
ohohoho funny
Also, no limits, take as many photos as you like; you have a ✨ magic ✨ polaroid.
my least favorite part about FF15 was the photo limit
because it made me conservative about taking pictures
only to find out it doesn't actually matter
I picture it as a cozy and comfy game, in a modern fantasy setting like Hilda, where modern tech exists when it has to, and retro tech never went out of style.
I also really want to do the whole diagetic thing
Solo acoustic guitar plays on your MP3 player, photos get stashed away in your album, your tools clank around in your backpack.
But uh this is all ideas for now :P
Why doesn't it matter?
because at the very end you just pick your one favorite and it shows up in one cutscene
yeah.
it does scroll through them in the credits but even if you have like 10,000 pictures it could just randomly pick some
like they arbitrarily chose "200 pictures" as your limit
Yeah kinda random
noooooo omg
I meant the ff15 stuff
I know
good morning gamers. I've been working on the component system in the background.
I saw this online and was inspired big
oooh this is fancy
yeah this is cool as hell
I've been fiddling with a component system using it today
think it could play very nicely with map entities and target names
How exactly are you going to use it?
I think on a simple level it'll at least make setting up my components for the weapons and actors to be relatively simple but on a deeper level I do wonder if it can be also integrated into my existing target name system which is based on groups and if you think about it metadata is like groups where we use them for tags but way stronger
Woah you're a fast typer.
That's the really interesting thing to me. It's just groups but better
I am indeed a fast typer but that was also voice typed
Tell me your pattern please I'd love to hear it
🤣
Okay, so it's a great way to use composition
But instead of components, it's actions
Yes :0 thats exactly why my brain was SPINNING at this
Imagine I have a Card
In the script I can have this:
class_name Card
extends Node
@export var actions: Array[Action]
func play_card(target: Card):
for action in actions:
action.act(self, target)
Ah, that's totally how my movement works
Do you SEE the possibilities!?!?
Yeah :D
I was like, how did I not discover this before
You can literally have reusable actions all over the place :O
So here's what I'm thinking
This is a basic door setup: the tirgger area and the mover
they are linked via properties: "target" in the trigger calls a "targetname"d entity 's "targetfunc"s
...you see where this is going
Yeah I see that
so yeah, previously this was done via groups: the mover in Godot would be put in the "func_mover1" group according to its targetname
BUT
....i'm thinking this can now kinda morph into a UsableComponent
and like with the metadata system
...if object.has_meta(usable_component)...
object.usable_component.use()
etc
YES
its like has method but i feel 1) much safer and 2) its like almost meat to be accessed given what *metadata * is!!!!
thats why i was slike
hoyl shit
this is game changing
then it's no longer hoping you have the same func name
it's if has_meta(is_damagable)
object.damage()
and so on
You just made a safe has method wow
:D Awesome
alfred
brought this to my attention
Very nice!
and in the replies there is someone doing it with resources
it blew my mind
i went from hating groups to thinking this might just be the most useful thing i have found to date that helps me understand wtf i;'m doing with components and this whole reusable design and
It's so crazy because even a veteran will keep discovering crazy new awesome things they can use
my brain doesnt work like this, every day i realize more and more what i dont know lol
🤣 Still a realization!
i am so far from being a veteran i really hope that was not meant to talk about me lol
i agree konate - i feel the exact same way
every day i'm like holy shit people are so smart
that's when I started
I just have the ability to do this full time
Right. If you're still pre-college aged, your project would be an amazing resume booster as well for applications
like if you ask me command question is quite impressive of a project at your age especially
are you not in college?
quest*
Not me
Yeah it's fucking insane isn't it nether
talk about one bright future ahead of them
I'm planning 3 commercial releases at 18 💪🏾
hell yeah
Successful? Maybe not
we're similar bc thats the same thing thats happening to me
But they'd hopefully improve my resume a good deal
It's not about the success, I would almost view this more as a portfolio builder and for you especially now knowing that at a time in your life where it'll be conducive to pursuing further education etc
If you can use this as part of an application to get a full scholarship to college then oh boy
i checked out your website a while ago btw, its really smooth
i love it
That's my only advice these days to kids going into college is do it as debt-free as possible
Thank you
Yeah, part of
Not that that has to be your goal
thats a bit hard to do though
I don't know how much GPA and grades matter but that's in the bag 😎
Things may have changed since then, but what got me a degree was because of my high school GPA and test scores
I didn't go to the most insane college, I just went to one that offered me the best deal which was a full scholarship
It sounds impressive but then it was just a public state university
So it was a good deal rather than trying to go somewhere prestigious and building up a ton of that
debt
Degree is definitely a goal, but I'm definitely for the scholarship route
I wouldn't have been able to go to college if I didn't have a scholarship of some sort
My family would not have been able to afford it
yikes
So fortunately getting that scholarship paved the way for me to become my own independent woman
That's why I think you're doing something really good because you're displaying something that schools would salivate over and I think would really help you get that kind of scholarship
furthermore you might even have some passive income to help you out
Oh yeah if you heard my baby voice in my devlogs you wouldn't be so surprised
i honestly didnt know you were making a game until just now, where can I find more info about it?
#1191567732920045598
It's all on my site, and I share in my server and in that little forum post
I bet you'd have been a game dev earlier if you'd just known about it, Sinewave
i was making mods for fallout 3/NV and Gmod when I was 13 😭
damnnnnnnn
Hey that is also awesome
I was making kinda shitty mc servers at that time
yeah, i was into that stuff too
neat
oh ffs power went out
how did I just notice that my lamp changes temperature color when I toggle it on and off between three modes
I've had this for a year and I turn it on and off every day
usually I only turn it on and off when I wake up and then go to sleep though maybe that's why
because when the power went off and then back on it came on but it was like bright white instead of orange so I noticed it
sorry that freaked me out lol
hello again :D
here's a neat thing we're building.
it's not done yet but the basic idea is to teach people visually how to time rockets
it's wrong but it's close
it roughly considers your speed in the look direction when you fire
will solve in the morning but the idea is to color the crosshair in defined stages depending on how close you match up with the predicted rocket impact time
so i t'll go from red to yellow when you're close and finally to green when, at that moment if you fired you are moving at the correct velocity to impact at the same time
good heavens
I'm glad they built-in that kind of dictionary into each node. I can imagine how this can be used to recreate Unity's ECS without bumping up the node count
I much prefer bumping up the node count ro recreate ECS >:)
(or just make everything a component, no entities)
I don't like to make higher node counts for reasons, but, yeah, it works this way for me, just making a child node that represents some component and it does it's own thing to parent
is making components a good practice to do, or should it only be done in specific circumstances
I think it is more of personal preference. In IP, you can turn a prop to medkit just by adding a node with st_medkit_prop.gd script assigned to it. Or, to weapon you can pick up just by adding one with com_prop_dropped_weapon.gd and etc. I think it is handy to easily modify behavior of existing nodes, but still very far from actual ECS that was made in UE/Unity which is kinda good in it's own ways
Also some flickering lights are just light nodes with flickering component added to them
It's good practice in most cases
It lets you add basically any reusable functionality to anything just by adding a node, and it stops you from rewriting the same code over and over.
You already use composition even if you didn't know.
im honestly not too experienced with actual good practices in godot
Godot nodes are components already. You can add a Sprite2D to anything to add visuals, add a RigidBody2D for physics, add a Node2D to give something a position, etc.
ooh
These are all components, so when you make your own, just think like that.
"What if this was a built-in node?"
Generally, you just make sure things don't depend on other things when they don't need to, make sure they have the minimum required functionality, and make sure they are reusable.
what are good practices to follow just in general?
ahhhhhhhhhh
Oh, yeah, and avoid using names, paths, and strings when it's not safe
But these are just guidelines to make your life easier
If something else works for you (and you know it does. Make sure it's not just you being stubborn) then do that!
If not all that stuff, making of gameplay logic would've been harder just because of how hard it is to make checkpoint saving if you just make it all in single script, plus it's easy to fix an issue in one script that would fix it everywhere just in case... it can break everywhere too, but that's different side of the coin
Wow so nice and clean
My project is a mess
Because I was also half-learning Godot when I started
Now I'm not changing what I made already :P
imo and for slamfire
i am trying to not have things be a some if they don't need to
we'll see
Thank you!
Don't worry, i have enough of mess too lol i guess it's impossible to fully avoid it
wdym
project S is basically that for me
learning as I go
IP for me
theres things that are horribly written there because it was made months ago
i cant imagine what illogicalapple had to go through when he first joined the team 😭
he fixed like 13 different scripts in project S (and taught me some good coding practices as well)
You are going for that Quake/Source gameplay logic creation and i appreciate it as it is a good reference. I'm kinda trying to do that on my own too, but ended with "Source-like logic but on acid"
ohoho my
yeah, I am trying to curb that in advance.... but honestly there's a few things i do that are perhaps. tad a extra and unnecessary in the end
I'd be very careful since Project S seems to have a large scope
You could find yourself stuck in a loop of refactoring code constantly
Is it really that possible to make it too extra? When i make stuff i always find a reason to write some "Script Toolkits" or "Script Components" as i go lol
I think your previous experiences have carried over quite well here
there has been 12 different rewrites of the player code 😭
I think you'll find out what needs to be focused on once you make fully-developed levels or heavy prototypes or something like that. The best way to find out is to go through this battlefield
I. the end I often wonder if I'm overcomplicating things
BROTHER
but we've finally landed on one that is actually good
that was 4 months ago
so glad to say that we haven't rewritten it since
Yeah there's been a lot of rewrites in my own game Pretty much everything and I have no there will be another rewrite of the whole last project
Very stupid idea of me to make that as my first project
every time I get better at organizing the tree structure and I reuse a lot of the algorithms and fit them better together
Damn, i think the only reason why i didn't rewrite IP that much is just because i had 2 scrapped shooters made on Unity lol
since i wouldve learned complex things wayy before I would if I had taken it slowly
There is no easy way and you may learn things fast the hard way too
i learn things relatively fast as well, so I think its a good balance
Im NEVER deleting the epic games folder again 😭
omfg
genuinely
The issue when tackling a project with a large scope like that with minimal experience is that you will constantly find yourself needing to improve the systems you wrote not even that long ago
that shit will stay until I get a new pc
Yes, I know, refactoring is awesome. It's not many systems though, just one, and the functions are all abstracted so it's still easy to use (even if it is not easy to change)
this is true
So I am leaving all that mess where it is
Better done than perfect
im glad to say that ive learned alot and I don't need to do this often
The time spent on this will very likely take away from time that could be spent working on content or new features
I used to do that all the time last year
about the same time I created the project S thread
my game dev (and programming) skills have improved greatly since joining this discord server to be quite honest
Thats good
but lens flare 🥺
lol
I cringe at my old tree structures
Children just calling parent functions all over the place
Horrible circular references
the scene tree for the player node is absolutely horrendous and I sincerely apologize to whoever has to go through it
Ultimately, if you've come to a decent point with your systems and are able to see the rest of the game through, dont worry much about how well your project is structured (unless it is really hindering your ability to implement content)
@export variables WITHOUT DOCSTRINGS
Oh yeah fortunately I don't have any children calling parents anymore
fortunately, illogical hasnt needed to do that
Your customers dont care about how well your game is put together until it becomes a problem for them (e.g. bugs)
this is an exaggeration btw but its still a bit messy
It is important to me unfortunately
One of the key issues with cruelty squad was that working with it and modding it was a complete pain in the ass
agreed
It's a major project goal of mine for the name to be easily modedable in a variety of different ways
wow I didn't spell that right sorry lmao
Yeah your game has to be very modular and well structured for that
u dont need docstrings if its self explanatory
You could do a modding API to keep people from working with your direct code / project structure
I had planned that for my own project
I like the ✨ *** polish*** ✨
I plan to do this
but Idk about implementing maps
since all project S's maps are made using godot
Or you don't need docstrings if your engine doesn't even support them so you are forced to make them self-explanatory or else you are screwed
rather than a simpler mapping software
Like CSGs?
3.5?
You guessed it!
I use CSG for prototyping
Have them use a mapping software made in Godot that lets them interact with, well, almost Godot
I see
Kind of a very very very very abstracted tool
I dont remember if Qodot has runtime importing but that could very well be a good thing to integrate into a modding API (as you can also do object placement in trenchbroom as well if I recall)
my mapping workflow so far is:
prototype csg
export as glb
import into blender
remodel in blender
but the main issue is that
my poor 8gb of ram computer cant export scenes as glb
so I gotta send it to others
i have extended qodot quite a bit for this :)
Open access to code as "Software Development Kit", give them ability to make scenes in Godot, provide toolset to export PCK files, load them as mods, tada, you've got fully versatile modding system with major security flaws, waiting for System32 to be removed by Thomas The Train Map mod
Thats pretty excellent
i paved the way for them to add support for the map editor we prefer - netradiant custom
lol
Yeah you'd definitely have to secure it
it's... the single most valuable addonn and probably what taught me how this all works
i will likely end up writing a custom map importer eventually though
Exporing PCK is definitely something you'd probably want, though, unless you use a custom format
I cant recall if you can import model data in runtime but I would imagine it to be possible, and at worst you could write a GDExtension to aid in doing that
you can do a lot
i can't rmember what it was but i had to figure out some setting already to use res:// assets in a certain way
I'm exporting PCKs for my game because that is a way to make exporting more modular (come on it's not fun to export 4 gigs for eternity each time), but for mods? I still have no clue, if there was a way to validate all that stuff, but i've not learnt much about it either
as far as mods, things that change function of the game i can't really control 100% unless something is made through that mod API (but then i have to re-invent godot basically, which i don't really know)
so i'm considering th esafety of things from the map maker's perspective as realistically i expect most people to just make their own custom maps with the base game assets
i'll be releasing the base game .fgd files and all the tooling we used to make the maps all the same
it seems to be largely safe
I think for an initial release, having custom maps be the big thing for modding is just fine and is very safe
yeah, so the other thing is custom weapons and enemies, and i think honestly just setting them up propery with a component system would naturally build in a 'toolset' for people to make their own
if that makes sense
Level editing is going to be as safe as it gets
hahahah
Can you help me with this?
Sure, what's the problem on your side? I used PCKExport class of 3.x. but i expect it to have the very same issues even at 4.x.
I plan to implement modding support using .pcks
but like
have a mod system that doesnt have any source code
just pointers
so like
PlayerSpawn
I think having some kind of custom parser or maybe even a visual node solution for creating new behaviors would be good enough for some. IDK, nothing will ever beat a full decomp when it comes to modding but when people have access to all of what GDScript is capable of its very easy to create and distribute malicious code through mods
Triggerbox
I'd like content like new levels and puzzle objects to be easily addable via PCK but I have... no idea how
What kind of things do you have to set up before?
so u are forced to load the level in-game to play it
Maybe make an external tool thats bundled with the game that'll let you import map geometry and place objects
Essentially like a gimped Godot editor
one downside is that it would just be godot but with a project with tools
meaning you could embed custom scripts in the maps
meaning you can run OS.execute()
I dont know how to find a way around that
https://docs.godotengine.org/en/stable/tutorials/export/exporting_pcks.html
Basically that page provides a basic example, however, it doesn't tell much about PCKExport class, one sec
Use cases: Oftentimes one would like to add functionality to one's game after it has been deployed. Examples of this include... Downloadable Content: the ability to add features and content to one'...
Well I didnt imagine scripts or anything would be exposed to the player
It would strictly be a tool to import geometry and interact / add objects in the scene tree
In mapping
Sorry, PCKPacker, not PCKExport
Inherits: RefCounted< Object Creates packages that can be loaded into a running project. Description: The PCKPacker is used to create packages that can be loaded into a running project using Projec...
if I use godot itself
you can just add custom scripts to a scene
ur own scripts
which would run in-game
which would allow calls to OS
var packer = PCKPacker.new()
packer.pck_start("test.pck")
packer.add_file("res://text.txt", "text.txt")
packer.flush()
It is as easy as it is written here, however, if you try, for example, adding image files (textures basically) into it and load it in exported game, you are going to be screwed
maybe I could make it only do that
an disregard any scripts at all
Really, why?
Minimal script to make it work, so... Gonna explain how it works
I don't think I'd have to use this one though
The thing is, your exported game doesn't really have these files you put into project like .tga or .png or other, instead, there are engine's counterparts somewhere in .godot folder (in 3.x. it's .import, they changed that)
So when you export PCK, you also have to find where is the actual, "imported" file of the engine itself
.import files actually have certain data like file's MD5 that would refer to imported file and, yeah, you just identify it and add into your PCK file manually
Yep, it is not easy, that's why i sent that code up there
It is for 3.x. but i think it can be changed relatively easily for 4.x. as the logic of MD5 stuff didn't change since 2.x.
Godot Editor's "Export" button does something like that internally btw (just take a look on your PCKs with PCKExplorer or godot_pck_tool), but to my knowledge they never exposed it
I so wish they exposed that
Then we could easily make Godot editor in Godot engine
Again
We still can!
True true
Otherwise that script wouldn't be possible
Just going to be pretty difficult to get exporting working identically
Still i have a question related to scripts... I'm not sure how to export them really, especially if that is some kind of auto-load stuff
In my case i just use Godot's built-in exporter to export just limited part of the game with all scripts included
So basically i use PCKs as a way to store heavy assets outside of main PCK
It was kinda tricky, but still worth it
It was fun to get 12 GB export out of nothing and now getting more cleaner 5 GB ones
Those which are pretty identical to Godot's export
Nice
Luckily I only have to worry about imports
I'm the only one making DLC for my game >:D
Hey how do people mod Hollow Knight?
Hehe yay monopoly
Did Team Cherry ever release something for that?
Other question: How the hell people managed to mod Cruelty Squad
My guess is that people decompiled it and did their own modding tools, with blackjack and mod loader
lol
I'll make a level editor if I can 👍🏾
But... that'll be a PCK made by me! Mwahahaha
Ah I see
That's legal, right?
As long as they don't do anything malicious with it...?
Or redistribute or something else?
It's not a copyright infringement if the author has nothing against it, like Ville Callio, he didn't really give a shit about it so here we have modding
If you've got a virus with these it's totally your problem :)
oh yeah i expect people to decompile the game
If that would happen in Steam Workshop, that would be a piece of news
i can't exactly stop them
:O
But people-made mod loader? Total anarchy
Is there any concrete way to allow modding for godot games
simple adding of maps
There are many ways to go about adding support for user-generated content
Simple maps can use an in-game level editor
More complex ones can use a dedicated tool
Or you can expose a little bit of the game to modders
hmm
Those are in order of safest to riskiest
Might also be easiest to hardest but exposing some of the game might not be too difficult compared to a dedicated tool
i'm ok with leaning heavily on the "you are downloading user-made content and as such must understand the risk involved; you are responsibile for ensuring content you choose to run on your computer is not malicious"
mapmaking i don't think it's possible as i've trried a number of ways to get into naughty commands with it and i don't think i can
but with usermods proper, it's either kneecap heavily the modding capabilities or have potential security issues
Forgot about it?
yeah it makes a lot more sense if you have seen that content
iirc the way most people do it is they just check for files in a folder named "mods" in their directory and the mod file tells it where to load it
That's what I'm going to do
you can include a "modpack" with your game that does a lot of the frontloaded work for the modder
Except "content"
or you can make them figure it out
like the mod file will have just an enum titled "map" or something and the modder chooses that enum as part of the mod file
so when it loads it up the game knows to put it into the map files as a selectable option
i will now stop spamming sine's channel :V
only in passing 
okay sooo i should have just
made the rockets slower to show how this works
but here is a fancier hud too
:D
sometimes the small things can be so so so cool
I don't really get what's happening
OH
OHHHH
No way!
That's so cool
You can make rockets explode by hitting each other!
And like, walk in front of a rocket! :O
noooope
totally not even it
yeah i need to be more clear about this in-game for SURE but the hud still is not done
check this out
trey to notice what's going on here
Aw man
nah i'm glad you had no idea
it means i do need to mention what the heck that bar is
Okay, rocket jump is cool
it's a visual display of how var the rocket has to go before it hits!
why od you want that
so you can synchronize your rockets!
and learn how to rocket jump and pogo etc and timing
at the end i do a basic sync.
i shoot down and land and then right before that rocket hits i shoot another and both stack
no caption needed
heres the first thing that uses the new metadata system
to say this was a breeze and beyond simple to add is an understatement
it rocks
that's me trying to break it etc and press esc a bunch and it works correctly
its actually like
astounding easy in godot
the inbuilt methods do so much heavy lift
I've found much of Godot development to be like that
After doing input in Unity, then doing input in Godot, I was just... astonished
yea!!
I also love that everything I make feels like a natural extension of the engine
Yeah!
i feel like i do something wrong and then i go looking in the docs and i find a method to do what i want 95% of the time lol
I use all of the built in classes and think, "using this feels just like using my own classes somehow
yeah its startling lol
This is way too common lol
im realizing how much i used to overbuild my code because i didnt think about how to reuse things
i thought i did, but in the wrong way, which was limiting
beep beep boop boop
so the final element is your crosshair color
it shows the comparison between when you're going to collide with your current velocity and when the projectile you're about to shoot collides
with that, hopefully the toolset is roughly complete to learn how to rocket jump
So, I began work on a major rewrite today because the window manager half worked and I realllly started to get components and metadata in combination
this is so easy already man
a few hours of work and i have so much already in but better
All right so the next step today is that I want to unify the actors properly
In the past they certainly shared some class inheritance but I want to be able to switch the player on the fly out with AI and vice versa.
But I got to say it's damn confusing
I think if I can learn this though and figure it out it's going to be smooth sailing from here
Metadata let's you do interfaces almost?
a bit
as a quick aside, today was a bit more background work
the window manager works correctly now and supports the multi window console and embedded console
however i have gained some new important contacts and team members!
has been for a while
i guess it's a good time to list that here
behind the stage we have:
-two veteran, world record holding defrag / action FPS players making maps and guiding movement balancing; one of them also helps the below make music
-one of my lovely girlfriends makes music and wants to help make art
-my sister with some financial and business things
today, an old irl friend of mine who's done QA testing for various video game companies among other work spoke eto me and came on board
Woah that's super cool
and to a limited degree, conslutation from my friends responsible for...
Become the immortal warrior-prince Atilla, awakened after millenia in deep space by an impudent invasion of your tomb-ship. Pick up your blood-sword and investigate - are these intruders the old enemies from your past, or as yet unknown foes to conquer? No matter, they have rooted themselves into the ship and defiled all that is sacred to you wi...
$6.99
seriously, check it out; great game, the developers are really nice and have offered a lot already
to whatever limited degree, i'm really happy to at elast gottens ome insight from them
i wouldn't claim them as employees or anything, but the advice so far really has been very helpful
To that extent, I'm really grateful for everything so far and all the support from people here and elsewhere I have met along the way. Game development has been a truly magical journey
Are those command hints?
yeah
friendship with rotate_object_local over
now Quaternion(Vector3.UP, deg_to_rad(rot.x)) * Quaternion(Vector3.RIGHT, deg_to_rad(rot.z)) is my best friend
thanks
the hackiest and funniest math abuse i've ever thought about
Wow
Math
I've not learned about quaternions just yet
It's taught in school right?
..unlikely
i was exposed to them through electrical engineering of all things
one class, though
Aw man
they're not that difficult but i didn't hear them spoken of much for some weird reason
even though they're kinda very important
i guess depending on the discipline
i have a weird path through all of that
Welp I will be avoiding that specific math topic for a while
for game dev it can be really useful in 3D
and the concept isn't that rough, just rather arcane
:0 and so begins the brain stealing activities
i have figured out how to take over enemies and return their previous controller back
For some reason "I have no soul" is extremely funny to me
It's not like, insulting themselves or something, they genuinely have no soul 😆
That's awesome!
Now you can start another game with this mechanic >:)
Joking, don't do that
this shouldnt be as funny as it is
its just the split second cut to "I have no soul" and then it returns to the other thing
