9a217d No.15280894
Post-Demo Day edition
How'd your demos go over, anons? With all that feedback, your game is bound to be amazing, right?
Resources
>>>/agdg/
>>>/vm/
>#8/agdg/ via irc.rizon.net
>Dev resources: http://8agdg.wikidot.com/resources
Links
>Wiki: http://8agdg.wikidot.com/
>Beginner's guide: >>>/agdg/29080
>Previous thread: >>15242893
Announcements
>QUARTERLY DEMO DAY SCHEDULED FOR November 11th
>Please contribute to the wiki if you can
9a217d No.15280943
Gonna enter crunch time and do mostly coding for the next while. In the meanwhile, I wrote this song. Quite happy with it.
https://files.catbox.moe/7zv5jt.mp3
Not sure when I'll have much worth showing from here.
431dd0 No.15280970
YouTube embed. Click thumbnail to play.
Just a little treat - something I've been working on
c31b6e No.15280972
>be me
>making minecraft clone
>have chunk class that generates mesh for chunk (16x16x16 grouping of blocks, quads only drawn on blocks adjacent to air to prevent overdraw)
>want to create association between textures and quads for my chunk
What's the redpilled way to do this?
Some stuff I've considered:
1: add another byte for each quad in my vertex array which corresponds to the texture that I should use, and just make one texture in my fragment shader for every texture that i could possibly need (lol), and adding logic in the shader to select the texture based on that value. I currently like this one the most, because it seems easiest.
2: Store quads for different textures separately, and give each its own vertex buffer object; in draw call, iterate through these data structures, binding the proper texture before each is drawn. Maybe bad for draw speed, because I'm making a very parallel operation more synchronous by iterating through my data structures before putting things through the rendering pipeline?
aba530 No.15281033
>>15280972
>and adding logic in the shader to select the texture based on that value. I currently like this one the most, because it seems easiest.
You're not allowed to dynamically select a texture in shader code. I've made the same mistake before, adding a flat int layer value to the vertex / fragment shader inputs, and using it to index into a sampler2D[]. The end result is graphical artifacts; fragments of one triangle will sometimes end up using the texture of fragments from another triangle, which can be a different texture than you intend. Note that I'm talking about "fragments" here, individual pixels will sometimes, depending on how the GPU batches it, use the wrong texture. Not even the entire triangle.
The correct solution is to accept your lord and savior GL_TEXTURE_2D_ARRAY. It doesn't have the downsides of a texture atlas (which is texture bleed), whilst being a performant solution.
6d8630 No.15281182
Anyone want to help me with my story for a game? I'm trying really hard to put the pieces together and make something that resembles a good story. It's a partially story driven game. so how I design the game relies on how I write the story, and how I write the story relies on how I write the game.
It will probably never turn into a complete product, but I'd appreciate it if I could get some input from anons.
fe2190 No.15281215
>>15280970
Is this for SL?
9a217d No.15281266
>>15281182
I can try to help if you want. Most of the storytelling in my game isn't given directly, though, since it's a fucking platformer.
158d16 No.15281356
>>15280970
What is it going to be and what are you using to make ?
c31b6e No.15281395
>>15281033
Okay, I think I see how to use texture arrays now, but how would I get the correct depth to shader for drawing the quad? Binding the layer number as a uniform before calling draw?
I'd have to do this for every quad though, isn't that slow?
96bf9e No.15281694
>Game status: still cornflowerblue.jpg
>Interactivity: can press F1 to enable a flag or F2 to disable a flag
>58 fps
Its gonna be rad
b03e64 No.15281700
>>15281395
You put the texture index as a vertex attribute.
96bf9e No.15281726
>>15280972
How would you handle transparent blocks or stuff with altered geometry (eg thin column blocks)?
What about polling adjacent blocks between chunks?
6d8630 No.15281733
>>15281266
Well, the concept is it's an FPS-RPG, and it's basically a Deus Ex ripoff, except with other elements of gameplay and story-telling to make it feel unique. Maybe it would be like Deus Ex x STALKER, linear progression but large and explorable areas. Or maybe something along the lines of Watch_Dogs done right.
It's a futuristic sci-fi game with hacking elements to it, and shooting. And the same immersive sim elements that made Deus Ex special.
Here's bits and pieces I have to the story so far:
>Large tech companies have gained monopolies on everything. There's one standardized operation system that most software is written for, and only big-brand services on the internet are in use. Most of the general public has become unaware of the alternatives, and access to such information is generally censored on these services
>massive censorship and surveillance going on. The big tech companies sell information to the government
>media featuring degeneracy and mind-numbing nonsense are promoted by these companies, intentionally giving the false illusion that it's popular
>general population starts acting like a bunch of degenerates and as a result lose their strength and independence. Resulting in dependence on the government
>doing certain, inappropriate actions in real life will result in temporary bans from proprietary services. Not really a game mechanic, but something to tie into the story for other conflicts
>game starts off in small town America. the censorship and authority enforced by technology are blatant even in this small town
>eventually the player travels to Silicon Valley in SanFran hellhole, where the issues are even more apparent and the city looks dystopian, even to modern and well accustomed people
That's all I have so far. I need some bigger underlying issue going on that triggers all of this, though. Something beyond just, "the internet is censoring people and big businesses are selling information to governments"
Maybe the player has a cyber security role for a local branch of a bigger company, and something happened at this branch that they're trying to censor. Hacking in this game will be a well developed mechanic and will rely on problem solving. So, the first few missions will involve counter hacking and improving your company's security.
I don't know, I don't want to rip off of Deus Ex too much.
6d8630 No.15281867
>>15280970
Whoever this guy is, he's quite accomplished in his life
https://www.ejgold.com/
c31b6e No.15281979
>>15281700
well, this sounds like a good solution, but for some reason glTexStorage3D is giving me a very hard time.
I've been using code from the wiki trying to get it to work on my machine (https://www.khronos.org/opengl/wiki/Array_Texture) but this particular call seems to segfault every time.
However, when I was reading about texture arrays, I came across texture atlases, which also sound like a very reasonable, easy to implement solution. I think I'll try to implement that.
>>15281726
I'm not sure how I'd handle blocks iwth altered geometry yet.
Preventing adjacent quads between chunks from being drawn is something I've given a bit of htought to, but not yet implemented.
75e6cd No.15282011
>>15281867
>Me: Is it OK if I multi-class my character?
<GM: Sure, I don't see why not
>Me:
f3921d No.15282049
>>15282011
>transformation
>guru
>happenings
>cold war spy
>spiritual gaming
>jeweler
>zen gardener
Now this is a man who drinks his own koolaid.
b03e64 No.15282082
>>15279202
Well, the occlusion culling is active at least...
b03e64 No.15282145
>>15281979
Have you used https://www.khronos.org/opengl/wiki/Example/Texture_Array_Creation ? Anyway, with atlas textures, remember this: there's no (reasonable) way of doing texture wrap. So if you want to collapse quads with the same texture into one and repeat the texture across it all, you can't do that. Well actually, you can, but you need some extra data. For instance, you could have per-vertex texcoords in the UV plane as normal, which describe the coordinate within the texture (not the atlas) and a second set of textures that tell you where in the atlas the texture is. Then you just need to do the coordinate wrap manually. Depending on your precision requirements, you could squash this into just 4 bytes, but it's tight.
461b0f No.15282194
>>15281733
The premise seems alright and current enough to spark some interest. If the player character is not just some blank slate for you to take over and fuck around in the world, he must have strong motive that would make sense for him to delve into the conspiracy swamp and risk his life. Like for example: gov hides the truth about some nasty event and the protag is made into a scapegoat so he has to clear his name, but it's not so easy because he has whole system against him or something like that.
I think the world you described should be a background to the protag's personal struggle against whatever pushed him to act, unless he's meant to be a hero/revolutionary that wants to change a world itself, not just his own slice of it.
> I don't want to rip off of Deus Ex too much.
Just dew it. No point in trying to be original unless you come up with the better idea for something.
aba530 No.15282225
>>15281395
What I do is simply put the texture index as a vertex attribute as >>15281700 says, though in my case I simply extend my vec2 uv to a vec3. (The third argument being the "layer".) This keeps code pretty clean & simple.
>>15281979
glTexImage3D should function identical to glTexImage2D.
The easiest way to get it to work is to simply stack the layers in the image vertically, and then divide the texture's height value by the amount of layers you have, and tossing that into the function. Pic related is an example, I have a 16x2048 image, which is supposed to be interpreted as a 16x16x128 image.glTexStorage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 2048, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); // Instead of this, which loads the image as 2D.
glTexStorage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, 16, 2048/128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); // Do this, which loads it as a 2D array[128].
You also don't need to call glTexStorage*D before putting data into it. glTexStorage*D just reserves the memory, and is useless if you end up uploading data in it right after it anyway.
c31b6e No.15282272
>>15282145
Yes, the code you linked was what I had tried to get working.
Even if it isn't an ideal solution, any implementation is better than nothing.
Thank you for the help
>>15282225
I've gotten my texture atlas working at this point, so no need for me to use a texture array, but I'll try it without the glTexStorage call in the future if I need to use one; I wish I knew why it was segfaulting, though.
aba530 No.15282321
>>15282272
>I've gotten my texture atlas working at this point, so no need for me to use a texture array
Sure. Just keep in mind that supersampling & bilinear/trilinear texture filtering can cause texture bleed to happen.
75e6cd No.15282333
Theme for Ludum Dare 42 is Running out of space
9a217d No.15282384
>>15281733
I'll just list some notes as I can come up with them.
>How far in the future is this? Monopolies are far from unrealistic, however, people being blissfully unaware that anything exists outside of them is quite dystopian. Dude Sex takes place in 2052, 52 years after release, so at the time of launch, going from the state of the world to where they portrayed the world being was actually possible.
>Why do tech companies need to sell the information to the government? Can the government not just demand it be handed over?
>exactly how is the degeneracy pushed onto the general population? Internet and media of course, but what else is being done? This should be showcased in the structure of the world itself. Was religion perverted beyond recognition, or straight up outlawed? If outlawed, would then there be underground cults, like Deus Ex?
>how is the population generally controlled? With violence, like 1984 or North Korea, or more like China and Tencent's promised system, where their social media scores people based on loyalty to the government and association with the right people? In that system, if you don't have a high enough score, you can't get loans, housing or work high-paying jobs. You did mention that ban from proprietary services, I suppose it's similar to all the shadow bans and stuff like the Unpersoning of Alex Jones. Could be an interesting subject to tackle, though I think that it should be pushed further, unless the internet is more important then than it is now. Perhaps there is no longer physical money and people could have their credit accounts frozen for disobedience.
>I know that even small towns are embracing technology, but how reliant are they? For this to work, to be without constant access to the internet must be the equivalent of being homeless in this world, or at least close to as significant. Refer to my suggestion in the previous point, but how far will it go? Perhaps a significant portion of work is now over the internet, or a significant portion of schooling and education.
>If there was a closer link between the social media monopolies and the government, then social media itself could be used as a government ID/Passport. This could address my previous point. Perhaps everyone's assigned an "account" at birth, to serve as a birth certificate on top of that. It could also explain how newer generations become so used to the state of affairs so quickly.
>Dystopian is easy to say, but how dystopian? With the implementation of technology everywhere, I'd expect a lot of screens and LED billboards everywhere. However, a big part of Deus Ex and 1984 was the disconnect between the rich and the poor, and how widespread homelessness was. It could be a flashy city on the surface, but dingy and abandoned in reality. But it's all good, they still have their smartphones!
The idea for cyber security isn't a bad one, actually. It allows to further highlight the discrepancy between the rich and poor, or the party and the people. If cyber security and hacking is a big focus, then I have two important points:
>what goals do the hackers have? are their numerous factions with different goals?
>what is actually possible with hacking?
Consider my idea of unifying government IDs and birth certificates under an account. You would be able to entirely change your identity to escape major crimes. You would also be able to pretend to be someone else, to get them arrested, and so on.
Also, the idea of linking banking to that as well, I think it's quite obvious what hacking that would result in. This gives me the idea of certain factions of hackers simply doing it to help the general state of affairs and giving the money to organizations who need it, whereas others do it solely for profit and gain, though that may be a bit on the nose. Perhaps the supposedly nice organizations are not as nice as they seem.
A big part of Deus Ex was having it's own story, which in the background predicted many real world happenings. You could take that angle, predicting where technology will go next. I've given you some examples, but some can just be part of the worldbuilding itself. How big is VR in the future? What utility does it have? Could VR be used for propaganda, or reeducation, of political dissenters? What about Smartphones? They will obviously be a big part of culture, but what are they like now? Did technology like Google Glass and such take off now?
I've written a bunch of general thoughts, but can't really give you an exact focus. I did suggest those angles on hacking though, and those could do you well, I think. I hope those notes help, either way. Oh, and don't worry about ripping of Deus Ex, it's been as good as dead as the first game.
8df1c8 No.15282440
>>15282333
Why do the ones I like never win, Mr. Trips?
75e6cd No.15282547
837743 No.15282550
If I'm moving my character with rigidBody.Moveposition() what's the best way to calculate his speed knowning that rigidbody.velocity doesn't work?
As of now I'm doing something like this
Vector3 position = rigidbody.position;
{function to apply movement}
Vector3 velocity = (position - rigidbody.position).sqrmagnitude
but my velocity is really small so it's pretty useless.
Any suggestions?
837743 No.15282597
>>15282550
I'm a fuckin idiot I should just divide that by Time.deltatime
6d8630 No.15282694
>>15282384
Thanks for the input anon. Really appreciate it. I like the idea of a Chinese style "social credit" system, and having government I.D. being linked to your online presence.
I don't want the game to take place too far into the future. I'm thinking maybe 2040, about 20 years into the future. I know that kind of conflicts with the idea of people forgetting about non-proprietary services, but I think that's already starting to become a reality. Most normalfags with a phone these days basically have their entire internet access pre-installed on their phone. They use Google search engine, YouTube app for watching videos, facebook app, and every other service that has been monopolized by Google or someone else. This problem is even worse if you're a normalfag with an Android. I feel like even if someone wanted to start more "ethical" alternatives to YouTube and Twitter, they'd be drowned out because they aren't as easy to access and most of the general public simply isn't going to hear about it.
So, saying people completely forgot about alternatives may be a bit of stretch, but during 2040, when these companies basically monopolize all services for communication and accessing media, I doubt the average 25 year old Joe is going to know that there are currently other operating Systems besides the ones that Current Big Tech Company is putting on their devices.
(1/2)
6d8630 No.15282696
>>15282694
>how is the population generally controlled? With violence, like 1984 or…
I'm actually still thinking about it. Trying to weigh the pros and cons of either a brutal authoritarian dystopia, or a dystopia that was created from humanity's negligence and submission. I had originally thought about robot police roaming the streets, or people having a chip in the back of their neck with a paralysis switch that the government can enable at any time. But I think a brutal 1984 dystopia might be a bit too bizarre, especially considering it's only 20 years into the future.
My overall idea is that the government tries to create a certain illusion of freedom. You are free to work any job you want, and you can buy any computer you want. Read whatever book you want, and buy the house you want to live in. Our good government isn't going to punish you, but these big tech companies have the right to restrict access for any purpose and at any time. Maybe with the exception of government social media I.D.
On the other hand, they did take away a few rights. 2nd amendment is gone, and people still have freedom of speech, but their credit will be harmed by what they say. And, recently, people have been getting banned from services for doing things in the privacy of their own home. There was an outrage about this, but all conversation is being silenced.
>exactly how is the degeneracy pushed onto the general population? Internet and media of course, but what else is being done? This should be showcased in the structure of the world itself. Was religion perverted beyond recognition, or straight up outlawed? If outlawed, would then there be underground cults, like Deus Ex?
Actually a really good point. It's a problem in today's world, with the media glorifying weakness and shaming ambition and achievement. Teenage girls are acting like sluts because their favorite pop stars told them to, and 20 year old men are acting like they just got their balls chopped off, because they feel like that's the only way they can fit into their "subculture" of socially awkward nerds.
Obviously, this tactic is something that will only change subcultures and hive-minded countercultures. It won't change the general population. But, lately even the mainstream media has been trying to promote degeneracy to the average person. CNN published an article a few months ago encouraging men to let their wives fuck other men. Imagine a world where that was a common thing to see when turning on the news, and we had no means of publicly ridiculing them. I imagine that would actually begin to confuse people enough to mentally break them.
Not to mention the power shills have to hijack internet threads and create an illusion of common consensus. What if LITERALLY every time a man complained about his wife cheating on him, 10 or more people tell him that what his wife did was perfectly okay and that he should accept what happened? That's how degeneracy is pushed. By making an illusion of consensus and shaming people who don't participate.
>Lol, you want to get married and have kids? What a fucking loser, I'm gonna go have a 3-way with my open-relationship girlfriend and her new boyfriend Tyrone.
I think I should definitely expand on the concept of degeneracy being normalized. Have the consequences be portrayed in this world. You know, one of the bigger fears the older generation have about millennials is that they won't be adept enough in the workforce, and some people are even worried about what happens when the boomers die and Gen X retires. Will we have a workforce full of unskilled and unmotivated workers? I'll probably explore things like that.
I really appreciate the input anon. You made me talk myself into a lot of things. Maybe I'll focus on world-building for now and write up a document. I'll come back with that later.
(2/2)
8df1c8 No.15282721
Who else is joining LD? I forgot it was even happening, so I'm just gonna do a quick and simple game in the time I will have. Have the unused brainstormed ideas I came up with, in case you're struggling for inspiration yourself.
9a217d No.15282891
>>15282694
>>15282696
Godspeed, anon, you have some great ideas there, just a matter of fleshing them out and good execution.
c6a995 No.15282944
>>15282721
>Out of space
>A simple bus traffic sim
a112c5 No.15283030
59880d No.15283217
Hi there, soul-drained drunk pro-dev here.
Ask me anything I guess
ad2862 No.15283227
>>15283217
wich 2hu wud u fug and why do you want to gas the kikes
a42663 No.15283234
>>15282748
Looks like someone skipped leg day.
59880d No.15283238
>>15283227
ur mom twice lol
why do you want to exterminate cocroaches?
They shouldn't spread.
af2aa7 No.15283574
>>15282333
>>15282721
>tfw haven't participated in a Ludum Dare since 32
I would participate this time just to do it alongside some of you guys but I'm working on my current game and have too much to work on after that. Don't forget to post your entries for us to see.
55db8b No.15283588
RPGdev,
Rethought how I'm doing the game a bunch, here are some things I'm sold on for now:
> 3 classes instead of 5, so 6 subclasses which makes ai easier to code,
> Gonna do some sort of Starfox/Super Mario World 8x8-32x32 tileset system to build an overworld that plays like Advance Wars meets Fallout. You do your movement actions then any parties on the overworld react. If you either party touches the other, you appear in an instanced map.
> Combat is now planned to play like Vandal Hearts (1) meets Fallout, turn based on a grid but instead of a whole party moves then the next moves, the player can choose any of their units to move, then the ai moves on of theirs until both parties are out of action points for that whole round. The player will have an option of "end turn", which means they will not move or otherwise use their units until the ai has exhausted their choices and chooses to end turn. You move, ai moves, continue until one ends turn, then the either moves the last of their units or ends their turn, everyone's action points refresh.
> When combat is not happening, the player can move freely like in Xenogears.
> When combat begins, units move to the nearest grid space. if it is a ledge, they go the opposite way.
This is all planned. I just got the Debug Console (which can be used by anyone, with credit) working with a button toggle. I have to move this functionality to my controller scene. After this, I'm going to work on some more HUD elements (I drew the one on screen, the little green box) a while back. Game will be 320x240 fullscreen, working on how to make it look decent. It is supposed to look shitty/old, you'll see what I'm doing with that. I've also been taking notes on the SamsTeach Yourself Godot 3.0 guide. IF YOU BUY THIS, GET READY FOR SOME POOR ENGLISH HOO BOY. I'm writing note cards to make a cheat sheet for the editor and scripting stuff. I'll upload the graphic as it is completed. Another thing I plan to finish is player movement, using some of my Unreal code. I want the player to move quickly like in Smash, sneaking around has to be fun. More on that soon, gonna be working Sunday and Monday on code.
55db8b No.15283702
>>15283588
I should point out that I drew those feet/legs/walk cycles based on the 2D sprites I did of the Xenogears character. This was in 3-4 hours at work, in between slow parts of my shift on Wednesday night. These came out pretty decent I think, especially the 3-4 at the center of the paper. Gonna keep at it, then upload those into Gimp so template editing might be easier in the future. This is not a focus, right now I'm planning, building my project, constructing base scenes in Godot, and putting together a portfolio binder.
64a6da No.15283752
Can't figure out how to rig, animate, and blend character animations. I need animations like MGS, they need to be fluid and natural.
dd429f No.15283771
YouTube embed. Click thumbnail to play.
>>15283752
MGS uses motion capture
f4fbf7 No.15283773
>>15283752
maybe you should try to be more of a gamer. I figured that out for my game in about 10 minutes.
64a6da No.15283800
>>15283771
Not MGS 1 and that did pretty well for its day.
>>15283773
Sorry I have a child, no time to play games all day. When I could be making progress.
What tools are you using? I found blender to have a cluttered and horrible interface, yet ironically have the best one out of the dozen or so model editors I tried. It seems that no one has made a model editor that actually works well. It's like the Linux situation. It sucks shit, but its the only thing out there that makes some sense.
551ad7 No.15284051
How to do I go about implementing accurate animations for players/characters moving over deformable terrain?
where they step on debris and lift themselves up with their legs or only move if their feet actually make a solid connection?
8df1c8 No.15284065
>>15284051
It's called Inverse Kinematics, start searching for your engine plus that term.
551ad7 No.15284076
c6a995 No.15284126
>>15284065
Is this why graphics libraries and engines have a matrix object that stores it's inverse?
75e6cd No.15284150
>>15284051
You do it backwards. You don't make the legs move the character, you move the character and then make the legs appear as if they are doing the work.
If you want to do it the other way, where the movement of the legs drives the movement of the character as a whole, you are entering uncharted territory. I can't think of anything existing that would work for games. There's stuff like the IK rig and Motion Matching out of Ubisoft and some neural net animation controllers that all produce really nice animations, but those are all reactive, moving the legs to match the movement of the character as a whole rather than moving the character using the legs.
440af9 No.15284152
>>15284065
Do jiggle physics also rely on IK? Are there any good engine-agnostic articles or papers on this stuff? Maybe I'll try implementing something like that in my engine.
>>15284126
Inverse matrices are often used in calculations unrelated to that, so I don't think that's the reason.
551ad7 No.15284167
>>15284150
I've just played a game recently (Exanima) where the character leans to one side (as if the legs are just dangling from the body and the player is looks as if they are just controlled by a single position) when you move forward and turn at the same time and I want to avoid that because it looks like shit.
440af9 No.15284220
YouTube embed. Click thumbnail to play.
Found something regarding realistic character movement. Possibly the most impressive tech I've seen in years.
75e6cd No.15284243
YouTube embed. Click thumbnail to play.
>>15284152
The overgrowth dev went over the way he did procedural animation, vid related. Probably your best bet as far as something that is easy to implement and looks nice. While it would be nice to have something like Motion Matching it's not really feasible for a one man no budget project.
>>15284220
The tech has advanced to four legged locomotion since then.
https://www.youtube.com/watch?v=uFJvRYtjQ4c
75e6cd No.15284255
d74124 No.15284923
I'm considering of taking a game dev course. Is it worth it? I'm ADHD and doing stuff by my own leads to a dead end.
cc6965 No.15284936
>>15284923
>doing stuff by my own leads to a dead end
Gamedev will be a dead end for you.
d74124 No.15284948
>>15284936
Everything else is a deader end for me, I don't like them. I can actually work well with a team that watches over me while I work and tells me how to do stuff.
837743 No.15284976
>>15284948
find another hobby
d74124 No.15285011
>>15284976
What if there's none.
0cc48b No.15285019
>>15285011
Try and do things, but I wouldn't waste money on a course. And I definitely wouldn't expect to make money out of gamedev.
cc6965 No.15285098
>temperature lowers below skin melting levels
>suddenly tons of progress
114f6b No.15285111
>>15285098
It rained here, 70-something deg. F. from 115 for a week or two. Going to a coffee shop to do more work today, might get rained on. wewlad
158d16 No.15285472
7954cc No.15285596
I don't frequent these threads so forgive the ignorance but is that guy who made the Gondola vaporwave thing still working on his game?
b996b2 No.15286949
>>15282082
This is the problem, I really wasn't thinking when I made that executable. It's set to only draw the leaf you are currently in, I did that to check the PVS and see what leaves it's supposed to have.
I'm working on the PVS generation right now.
d74124 No.15287041
>>15285019
>wouldn't waste money on a course
>wouldn't expect to make money out of gamedev
Why so antisocial and pessimistic?
c297a6 No.15287053
>>15287041
I view those things as a test. Don't let it deter you from your goal.
6d8588 No.15287248
This may not look like much but it's 500,000 objects on screen at once translating around a cube at a cinematic™®© 34 FPS
c6a995 No.15287249
>>15286949
Remind me again what your engine does that modern engines don't? Where is it limited?
0afd56 No.15287317
>>15285596
I believe it was taken out back like old yeller
39e209 No.15287375
Anyone here using blender know how to force it to only use defined keyframes? I made 3 keyframes I want to use, but as soon as I spaced them out it generated a fuckton of them that lerp between the ones I actually want.
0afd56 No.15287390
>>15287375
Sounds like you might have autokeyframing on. Also, if you don't want keyframes to interpolate between each other, set their interpolation mode to Constant (default is Bezier).
39e209 No.15287400
>>15287390
Already messed around with all that.
39e209 No.15287403
>>15287390
>>15287400
I should be more specific. That killed it lerping from frames, but it still exports all the frames with the keyframes even if they don't do anything.
b996b2 No.15287493
>>15287249
It's written to use the same idea as the quake engine, goldsrc engine, except it uses modern graphics API's and formats, while still being backwards compatible with older systems.
It doesn't really do things that diffrently beyond having access to better image compression, etc. by being made in 2018. I want to eventually make game engines that do things modern engines don't. But right now it doesn't really do anything that you couldn't do right now with something like idtech3.
It's at least faster than a modern engine on the merit of doing less things.
0afd56 No.15287497
>>15287403
That sounds like an exporter plugin issue rather than blender itself. Many of the export formats I've used don't support bezier interpolation, they just dump keyframes onto every single frame of the animation to retain the same movement while still just using linear. So it's probably the same thing you're getting. Try looking for an option in your exporter for "key all frames" and disable that.
75e6cd No.15287501
>>15287403
Blender is baking the animation, probably because you are using a proprietary format like FBX that blender doesn't have great support for.
https://docs.blender.org/manual/en/dev/addons/index.html#import-export
39e209 No.15287512
>>15287497
Doesn't have one. I'm going to resort to janky workarounds.
>>15287501
>FBX
No. I'm the anon wasting his life away at GLTF.
c6a995 No.15287520
>Don't want to use default ISerializable shit in C# because it's "bloated", same with JSON. Instead my game is going to look like
<../data/user/someLevel.ma0
<../data/user/someLevel.ma1
<../data/user/someLevel.rep
Where .ma0 is the map metadata, .ma1 is the map tile data, and .rep is the replay file
75e6cd No.15287541
>>15287512
>GLTF
Godspeed anon.
dc660f No.15287588
>Just want to make some vidya music.
>Spend the next 4 hours fucking with VSTs, FL Studio, and Kontakt.
Kill me. Why is Kontakt so fucking buggy?
c6a995 No.15287848
How do I maintain a stable framerate?
Let's say my game is designed to run at 60 fps and "one second" of gameplay consists of 60 ticks, so that things essentially happen 1:1 to real time.
Right now, I'm having a rolling average of the last 300 frame times (5 seconds' worth). At startup, there's a big spike - therefore, for the next 5 seconds, the average frametime looks high, so it might update more than necessary. What do?
e2d83d No.15287860
>>15287848
Look up delta time.
It ensures everything "works" no matter the update speed.
c6a995 No.15287879
>>15287860
My game works in terms of ticks, though. Objects have to update in a deterministic way, so I can't afford to have floating point error, so I have to use a tick-based system.
Or would I just accumulate time each frame, and either call 0, 1, or 2 tick updates depending on how the math works out?
e2d83d No.15287909
>>15287879
Number two is I think how you'd implement it in that sort of system.
It's a little less smooth but it *should* do the job.
e2d83d No.15287916
>>15287879
>>15287909
So yeah, accumulate the time and then update as many times as you need
b996b2 No.15287919
>>15287520
why not just separate your format into sections? My format does things like print:
LEAF_LIST
NODE_LIST
,etc to show what part of the data should be read.
>>15287848
write a FPS limiter to guarantee that a frame takes at least a certain amount of time. If this amount of time is higher than the maximum amount of time it takes to complete a frame without the FPS limiter, then it will be stable. The way you do this is record the frame time and if it doesn't meet this minimum, check time in a loop until it does. To limit CPU usage if you have a lot of time before you hit this minimum, call sleep to give up CPU to other processes. But if you are close to meeting it, don't call sleep and hog the CPU to make sure it's accurate. Also, never call sleep for more than the minimum.
c6a995 No.15287934
>>15287919
>why not just separate your format into sections?
I've never really done something like that before, so I didn't try it. Stuff like variable-length fields or looking for termination characters seems scary to me so I avoided it.
>write a FPS limiter to guarantee that a frame takes at least a certain amount of time
My first attempt kept the average frame time, and then tracked a minimum and maximum threshold value, flagging the main loop as being either too fast or too slow, which would result in either pausing or calling two updates, but I kept noticing subtle timing errors with it.
What are acceptable values?
b996b2 No.15287993
>>15287934
60 FPS is a good default. So basically you would have a variable for your timestep and a variable for your minimum timestep, which would be 1/60 seconds. And you would block by checking the time until you meet or exceed this minimum timestep. As long as you can always complete a frame faster than this framerate then it will be stable. You would have to lower it if you couldn't do that. Some pesudo code would look like:
time_update(time_t time){
time.new_time = get_time();
time.tstep += time.new_time - time.old_time;
time.old_time = time.new_time;
}
...
while(1){
time_update(time);
if(time.tstep > time.min_tstep){
update_game();
time.tstep = 0;
}
}
Of course it's more complicated than that, if you want to look at the actual code I use I can show it.
What I do is, since it's in the file the size of the buffers are known, so I just have a header that has a bunch of numbers that tells me how big each buffer is going to be.
c6a995 No.15288095
>>15287993
Is there a particular reason why the inner part of the while loop uses if(>step) rather than while(>step)?
b996b2 No.15288130
>>15288095
while is redundant because it is only true once, with the time.tstep = 0;. So, its misleading because it makes that look like a loop, when it's not.
83c562 No.15288144
>>15288130
You assume tstep will always be smaller than min_tstep, leading to less frames per second when your assumption is wrong.
Using while instead of if, and subtracting min_tstep from tstep instead of setting it to 0, would always attempt to update and draw every frame, even if one takes longer because of some irregular expensive computation.
There are arguments for both cases, just pointing out what c6a995 presumably meant.
b996b2 No.15288171
>>15288144
That makes sense- I never thought of doing it that way. I was only thinking of this system in terms of each individual frame when I wrote it.
bd398d No.15288513
Finally learned somewhat how to texture
837743 No.15288914
Why doesn't unity allow me to start a coroutine from inside of a class?
d9155f No.15288926
>>15288914
has to be started from a monobehaviour
also not sure if you could call them with a string
837743 No.15288931
>>15288926
Wait so my only solution is making another function that is used exclusively to start a coroutine?
That's absolutely retarded
d9155f No.15288939
>>15288931
assuming that you only have one player, do this
have a static reference to the player monobehaviour
then from the object you showed do Player.refer.StartCoroutine(…);
if you REALLY want to do everything from within the object, you make a function in it that checks the progress and call that from a monobehaviour (like the player) every frame or whatever your timestep is
837743 No.15288956
>>15288939
That worked but damn that's dumb
837743 No.15289090
>>15289070
I wanna cum all over your spritework
c9a4c9 No.15289334
>Still no Weenella release date
Why live?
83c562 No.15289373
>>15289334
And what does this have to do with /agdg/ in your imagination?
bbc143 No.15289376
>>15289334
>no sound
Why do you keep living indeed.
c6a995 No.15289483
>>15289070
Damn nigga, you hand drew all those sprite animations?
dc660f No.15290139
>>15289070
>Chest equip item is called a vest, and its sprite has no pauldrons.
>Overworld sprite gains pauldrons from equipping it.
That aside, excellent.
c6a995 No.15290149
>Update and Draw steps should exist independently, one should not hamper the other
>Therefore, I need to check the total frame time, and both methods to ensure that one isn't excessively fast or slow
>But code duplication is a bad thing, which means each "group" of functions can be extracted into an object instance, so I now have a Draw instance and an Update instance
>Each contains the target and elapsed times, etc, as well as a rolling average time to make sure we're within valid bounds
>Now each component is measurable but I can't just have my Game root object behave differently either
>Game instance is also a "component" with the same pattern so it can now monitor the speed of any of its child components
This feels weird but it works and I think it's secretly a good design. It's basically a tree structure with no restrictions on structure
cc6965 No.15290227
Can any C macro autist tell me if it's possible to make a macro for this:
>arr_pushMany(&octaves, 4, (f32[]){10.0, 1.0, 2.0, 0.2});
so that I can type it something similar to this:
>arr_pushMany(&octaves, 4, f32, (10.0, 1.0, 2.0, 0.2));
e5c0e3 No.15290337
>>15290227
afaik C macros are just dumb substitution so no, but you can do that in Rust.
macro_rules! arr_pushMany {
($a:expr, $b:expr, $c:expr, ($($d:expr),*)) => {
arr_pushMany($a, $b, &[$($d),*]);
}
}
and it looks like
arr_pushMany!(&octaves, 4, f32, (10.0, 1.0, 2.0, 0.2));
b996b2 No.15290398
>>15290227
This code seems pretty redundant. Is this what you're trying to do?
void push_many(void *dst, size_t ecount, size_t esize, void *src){
memcpy(dst,src,ecount * esize);
}
int main(void){
float *buf = calloc(1,sizeof(float) * 10);
push_many(buf,4,sizeof(float),(float[]){ 10.0f, 1.0f, 2.0f, 0.2f });
for(int i = 0; i < 10; i++){
printf("%f\n",buf[i]);
}
}
cc6965 No.15290450
>>15290337
I'm curious how many indie devs are using Rust. I've never heard of it being used for gamedev.
>>15290398
That's more or less exactly what I'm doing. I'm just using it as a makeshift variadic arguments since C's stdargs are shit.
b996b2 No.15290465
>>15290450
You don't need variadic arguments for a simple memcpy. The type system isn't that important since it's just blocks of memory, so you don't need to make it explicitly aware of the type of memory you are passing it.
cc6965 No.15290500
>>15290465
But I need the type when creating the array into the function call anyway. And I have other similar functions where I want to loop through the items rather than just copying the data.
0ffcc9 No.15290676
So for my game's battle system, I want enemies to randomly select one of up to three party members to attack, excluding any party member currently in the "KO" state. How can I do this in C#?
6d8630 No.15290691
>>15290676
Add all non-KO party members to a temporary list, and then randomly select from that list.
0ffcc9 No.15290712
>>15290691
God dammit, I should've done this in the first place. I should really stop worrying about doing things that seem too simple and just fucking do it. Thanks.
1f802e No.15290894
finally time to start a new game with godot.
39e209 No.15291370
How do engines usually do attachment points on weapons? Is there a way to do it in the 3d editor without needing some extra tool for adding these things?
6d8630 No.15291732
>>15290894
Is it worth learning that language? Every time I try and pick up Godot, I hit a mental block trying to learn that awful Godot Script or whatever it's called. Getting flashbacks BYOND's Dream Maker.
67f409 No.15291757
>>15291732
If you really hate GDScript (which is really close to Python), Godot also supports C#.
1f802e No.15291763
>>15291732
is easy as fuck though.
b996b2 No.15291884
It turns out that the leaf bounding box is being generated incorrectly… so it creates the wrong center point which makes it reject things that it shouldn't be rejecting. This creates the incorrect PVS. If I fix this tonight, I will hopefully have fixed the PVS calculator.
>>15290500
that just sounds like an iterator. You can implement that by passing in a function pointer to the function you want to act on the list while you iterate through it.
1f802e No.15291975
I'm so fucking tired of every engine I try is not perfect.
>unity and unreal
BLOAT to the max propietary garbage, literally spyware.
>gamemaker or rpg maker
literally toys and propietary.
>godot
can't even use the latest version on my toaster nor I can get the third party modules to work.
>libgdx
can't even get working the wizard on my linux
>love2D
trash language made by thirld worlders.
Every fucking engine is garbage, bloated or using third party meme shit like Net framework or Oracle garbage.
And I'm sick of doing something and hoping there's not some magical bug in the engine.
I just wanna make games but every fucking retards keep telling me that raw Opengl and SDL are just impossible to use and that I shouldn't make my own engine and that is hard as fuck.
At this point I'm so frustrated by this.
a4f844 No.15291988
>>15291975
then make your game, expect some bugs and deal with them if you give a fuck at that point.
e2d83d No.15291990
>>15291975
What errors are you getting with godot (or does it just crash?)
Might be the new renderer, they're working on backporting it to the old opengles version so maybe that'll fix it fo you?
c6a995 No.15291993
>>15291975
>love2D
>trash language made by thirld worlders.
meme spacing aside, you do realize that Love2D is a framework for Python and isn't itself a language?
1f802e No.15291998
>>15291988
>>15291990
>>15291993
I'm talking about my overall experience with game engines, and I'm very angry right now.
Will start to enginedev a pong game tomorrow.
67f409 No.15292016
>>15291975
If you want to make 2D vidya, look into http://orx-project.org/
>>15291993
>Love2D
>Python
Lua, faggot.
0afd56 No.15292017
>>15291993
> Love2D
> framework for python
02f35a No.15292022
>>15291975
On this topic,
What do you want to see in an engine? Be as verbose as possible.
c6a995 No.15292025
>>15291998
>>15292016
>>15292017
I knew it was Lua, I don't know why I wrote Python.
I'm very tired and spent all day working on my engine timestep and still have no idea how to organize shit.
eaefbc No.15292808
>>15284220
movement systems like this lead to every character action becoming animation-based and you end up with shitty, unresponsive gameplay and frustration.
76270c No.15292815
>>15292808
But muh CINEMATIC FEEL™ is more important than gameplay.
7bbda0 No.15293278
Is there any place I can download 3d models of popular games? I want to see triangle counts of models in various games over time.
If anyone can just link a resource that tracks this stuff that would be better.
b049ca No.15293290
7bbda0 No.15293292
8df1c8 No.15293304
>>15293292
>get quite literally what you ask for
>n-nope
>>>/out/
7bbda0 No.15293316
>>15293304
Think of a model from a PC game that's popular.
Now try and find that. Regards.
bf5624 No.15293329
>>15293316
oh, yeah I know a site that has loads of ripped models from pc games.
8df1c8 No.15293333
>>15293316
It's the best place available, if it's not on there you're shit out of luck. They have a forum where they'll help you rip shit yourself, which you're going to have to do if you want shit that's not on there.
55db8b No.15293363
YouTube embed. Click thumbnail to play.
>>15283588
Changing the codename of the project to Sync now, can't think of a better one yet.
I have the HUD working better, resizing at any size with the game. Had to make sure my project's "shrink size" and "aspect ratio" window properties were set to 1 and ignore, respectively. Xolonium is a fun font, I hope I'm allowed to use it for my project. I think I can.
d9155f No.15293709
why does lightmapping have to take so long
nearly every setting is at 1/4th of the default ones, and it still takes hours for a 100x100 scene
837743 No.15293844
Does anyone have any idea if it's possible to export each animation as a separate file without the actual model connected to the file?
My artist is using Blender and exporting in FBX, but all he can find is to just have the model itself containing a bunch of animations, meaning that if we want to add another animation, everything else has to be replaced.
It's absolutely pissing me off and I don't even know what I should google to fix it
837743 No.15293852
YouTube embed. Click thumbnail to play.
>>15293709
Watch vid related, it will give you an idea of what the settings mean and tell you what to turn down so it doesn't take 15 hours to bake.
d9155f No.15293869
>>15293844
have one fbx with a skeleton and a mesh for the character
have a bunch of fbx with a skeleton but no mesh, for the animation
141503 No.15294009
>>15293844
It's just a checkbox, dude.
1f802e No.15294015
>>15293844
look up the action editor on blender and make every new animation as a diferent animation.
unity should load every animation as a new file.
3fe819 No.15294629
Wow, that only took an entire month. How the fuck do 3Dfags do it?
141503 No.15294636
>>15294629
The first steps take the longest.
329bb9 No.15294640
b996b2 No.15294657
>>15294629
It takes three months because it needs one month for each dimension
d9155f No.15294667
>>15294629
>writing your own engine
why do you think it takes forever
cc6965 No.15294676
Are there any resources for making your game maximally moddable? I'd like to have something where the player can just drop mods into a folder and they get loaded at startup, but I have no idea how mods even work.
16a390 No.15294686
>>15294676
You could do it like Bethesda: You should already have folders for all your assets in the game, just make a folder that has priority over the other folders and has the same asset folders, then whenever someone downloads a mod they just drop the folders into that folder and everything gets sorted.
You could also do the same thing with zip folders and just have the game access the zip folders inside the mod folder and replace everything.
cc6965 No.15294703
>>15294686
But that only helps me with json-tier mods and texturepacks. I want to know how to load gameplay altering code files.
16a390 No.15294709
>>15294703
Same concept, just have the game load those code files instead of the ones you currently have.
d9155f No.15294713
>>15294703
i know c# lets you compile strings at runtime
c6a995 No.15294716
>>15294709
You'd have to run a compiler with your game
141503 No.15294721
>>15294657
That would be 1.5 months since he did 2 dimensions in 1.
cc6965 No.15294722
>>15294709
That doesn't answer how you can load multiple mods without them immediately conflicting with one another.
141503 No.15294730
>>15294722
Mod tools or establish some kind of order, like date modified or whatever.
16a390 No.15294733
>>15294716
You're basically just making an engine then. You might as well have the game compile every time you launch it at that point.
>>15294722
>mods conflicting with one another
Welcome to modding. In a perfect world the game would iterate through the mod folder and just use the last example of a file it came across.
cc6965 No.15294755
>>15294730
Date modified for what? My game .exe? What are "mod tools" in practice and how do I add them for my game? This is why I asked for resources on the topic because I don't fundamentally understand how a code altering mod works.
16a390 No.15294817
>>15294755
What programming language are you using?
cc6965 No.15294884
16a390 No.15294958
>>15294884
Then to my knowledge you don't have the ability to change code on the fly like that and you would have to recompile the game every time you launched it if you wanted to support mods that edited the code. If you want something like that without compiling every launch then >>15294713
cc6965 No.15294985
>>15294958
I could probably include some iteration of mingw and call it from the launcher, but that still doesn't really answer how you preserve compatibility between mods. You can load tons of mods to Minecraft with them affecting the map data and item properties and stuff without them breaking one another, and I want to know how that all works.
16a390 No.15295026
>>15294985
Just have the game go through the mod folder and give everything in there precedence over their respective game files. It doesn't matter how many mods you have. If two mods replace the same thing then just have it use the final mod it iterates through's files.
cc6965 No.15295084
>>15295026
What files? Am I supposed to have a separate file for every part of every feature?
Though now that I think of it, I wonder if I could somehow read the source code of the mod and mold it into the original code. For example if there's 2 definitions of a struct, I could combine all the properties. That way multiple mods could modify the same struct without breaking each other.
16a390 No.15295122
>>15295084
Yes, you are. In your Minecraft example most of that data could be stored in .xml files which the mods could replace.
bf4f76 No.15295133
>Want to make vidya
>Don't know where to start
>Download Godot
>Don't know a single programming language
>Have no idea what the fuck I'm doing
>Feeling totally overwhelmed and without focus
Anyone have advice on overcoming this first hurdle? I need to focus my autism and break the main project down into mini projects, but I'm at a loss at what to do first. I just want to make a Digimon World 1 clone. Should I just watch some jewtube tuts on Godot to ease myself in?
1f802e No.15295135
>>15295133
make something like pong or breakout or flappy bird.
b996b2 No.15295137
>>15294884
What you have to do, is you have to load the code for mods out of a dll or so. This can be done on windows and linux respectively:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms683212%28v=vs.85%29.aspx
https://linux.die.net/man/3/dlopen
Then document what functions you will try and read out for any mod. This way a modder can inject code into your program in an arbitrary way based on how much control you give them. For example if you are defining some items in your code, you would have an external function that queries the dynamic library for items to define, allowing a modder to create their own items.
c6a995 No.15295165
>>15294733
This is something I don't want to do, but have it be moddable. This is why my simple fucking puzzle game is taking months to figure out because I don't know how to approach it.
Like I can create all sorts of states and flags for objects to use, and then rely on data to plug things together, but I don't know how best to check all these interactions and make specific behavior
67f409 No.15295172
44c9a4 No.15295179
>>15295133
>Don't know a single programming language
Do Code Academy or something
cc6965 No.15295208
>>15295133
Learn literally any language, there's very good interactive tutorials for javascript/python and shit in codecademy. Once you know how to code in one language, it's not that hard to move onto another.
>>15295137
I think I recall handmade hero using those to load something, but I ignored it at the time. Seems like the right direction to look in, thanks
75e6cd No.15295235
>>15295133
If you're just starting out you are going to have to start reading and watching beginner tutorials until you can understand the documentation. Once you can understand the documentation that will be your main source of knowledge on top of just googling your questions and reading whatever comes up.
>I just want to make a Digimon World 1 clone.
DON'T MAKE YOUR DREAM GAME FIRST. Or even second, or third, or forth. Make your dream game when you know how to make every individual part of it or when you have the money to hire people who can collectively make every part of it.
At this point make a clone of some Atari game such as Pong or Breakout. I made asteroids and lunar lander as my "learning games". Even when you have some games under your belt making simple learning games is a great way to figure out your workflow. For example if you get used to Godot but now you want to learn Unity, you make space invaders or something in Unity to learn how Unity works and figure out your workflow with that engine.
55db8b No.15295315
>>15293363
320x240 stretched to 1280x720, aspect ignored. That font is size 8, for both objects. I might be making the console part of the gameplay, something like what Deus Ex does for hacking.
83e881 No.15295376
procedural bridges
No collisions yet, however.
I create a whole bunch of {Mesh, Material, Matri4x4[]} objects and draw them using Graphics.DrawMeshInstanced.
It's pretty damn fast, so fast that generating takes way longer than rendering.
Although the original plan was for the bridge to respond to wind and characters on top of it, animating this thing is way harder than I wish it was, even if I compile the result into a single boned mesh just for animating. Any alternative I might find to animate this will probably be pretty damn hard, it seems.
I can pretty much do any other repeatable object with this shit, should be pretty good for rails and fences
087693 No.15295384
75e6cd No.15295401
>>15295376
Rather than having to control the curve by hand, which it seems like what you're doing, have you thought about doing something like this?
https://en.wikipedia.org/wiki/Catenary
83e881 No.15295513
>>15295401
well. I had no idea what was the name of the curve, one more thing to do tomorrow
55db8b No.15295609
141503 No.15295823
>>15295133
There are tutorials all over youtube.
>>15295208
If you want modders to be able to make game logic, like conditions and dynamic stuff, you're going to have to add scripting ability to your game. The plus of this is that much of your own game can be scripts, which makes changes easy.
b996b2 No.15296087
I finally fixed the occlusion culling system in my engine. It might be a little hard to see the wireframe view since Vulkan does texture-mapped wireframes while OpenGL does it in white. But at any rate the engine now can cull things properly, so the performance should be much higher. Now I can continue onto other kinds of cool things like making the graphics actually better, optimizing my BSP tree, fixing the linux version, etc etc.
>>15295208
From what I have seen the guy who runs handmade hero knows what he is doing.
b996b2 No.15296167
>>15296087
OK, that video was too compressed, this one should show it a little better.
75e6cd No.15296184
>>15296167
Is occlusion automatic or do you have to lay down brushes to determine where occlusion happens as you do in valve games?
b996b2 No.15296222
>>15296184
Occlusion is automatic. It's also automatic in valve games as well. It's just that valve games also include tools like hint brushes that let you do it manually, even though it's not a requirement. valves engines are using the same exact kind of automatic occlusion culling as my engine, in terms of the theory behind it.
90d195 No.15296260
>>15296222
it's not automatic in valve games, it's done during compiling, vvis being the tool which determines occlusion. Maps must be blocked out by designers so they are sealed, which helps with vvis. It is best to treat even outdoor areas as rooms with a floor, 4 walls and a ceiling when compiling for the final .bsp.
-t. used hammer for like 8 years
75e6cd No.15296294
>>15296222 (checked)
Neat. Do you have plans to add hint brushes to allow for extra map optimization or do you find that you get enough performance as it is?
>>15296260
Also Neat.
b996b2 No.15296359
>>15296260
I have also used hammer editor, I can understand what you mean but maybe we are using the wrong words. What I mean by automatic is exactly that: such a tool like hlvis constructs visibility portals for each leaf and calculates a PVS, and it does this automatically, just like my engine, you don't have to plot out portals or anything like that. I thought you were talking about how you can manually place visibility portals with hint brushes.
The requirement to block out the maps isn't an absolute requirement by the algorithm but it's a very sensible requirement to impose on mappers. Basically you can use the visportals to check which leaves (and therefore, polygons) are never going to be visible to the player, and you can use this to prune the map and basically cut the amount of polygons you need to consider in half (about). My compiler actually doesn't do this optimization yet and so it's slower, it generates a more bloated BSP and PVS then the hlvis, hlbsp, etc would.
This map editor and engine actually work exactly the same way as hammer does, after the map is ready to compile it does a CSG merge (like hlcsg) on the brushes, it compiles the resulting polygon list into a BSP tree, then it creates a PVS out of it for occlusion culling.
In the future I want to make it do a two-pass BSP compilation, the first pass is to generate visibility portals and cut the polygon list down, so that it only needs to consider the polygons on the "interior" of the map, and then the next pass is to redo the BSP compilation on the reduced polygon set so that the BSP and PVS are smaller. I can also make it faster by keeping a list of the original polygons from before the CSG operations are done, and then eventually only storing polygons from that original list, which would stop all of the problems with an increased polycount from polygon splitting.
>>15296294
Yeah, I do want to add hint brushes because I don't want to make compromises on optimization, if I have extra cycles I am sure I can waste them on some other effect, and make the game look better. I haven't actually checked performance on a computer where it matters yet, I just got this to work. Right now i'm working on some debugging HUD so that I can look at how many polygons are being drawn and how many frames I am getting. Then I want to test it out on my windows XP machine which only supports OpenGL 1.3, it is the perfect computer to test it on since this actually will make a big difference in performance for it.
Also, right now it's missing frustum culling and back-face culling, so the polycounts can be reduced more, beyond the ways to optimize the BSP like I talked about earlier. Kind of a long post but those are my ideas for it.
90d195 No.15296388
>>15296359
>you don't have to plot out portals or anything like that
No, but you still have to do quite a bit of work, especially if your game has vertical gameplay like in tf2, you need to set the walls and ceilings quite high and account for surrounding geometry/visibility. The games handle it by using the data vvis generates, vvis generates it based on the brushes you mapped out for it. The less you do, the longer the compile time and the worse the optimization.
75e6cd No.15296393
>>15296359
>Kind of a long post but those are my ideas for it.
Don't worry about it, I always enjoy reading your posts. If I didn't want to hear I wouldn't have asked.
b996b2 No.15296420
>>15296388
I just mean, it can do it for you… not that it can do it very well, or that you don't have to be aware of how it works to get good results. I guess I just interpreted it to mean something more extreme than what you meant. You're completely right.
I only used hammer with goldsource so I am mostly thinking of making those kinds of maps in this engine. It should be able to do a good job at that.
>>15296393
Thanks, I'm glad you like it! I wrote that mostly because I was surprised about how long the post was. I'm going to test out my framerates on my weaker hardware since it's not going to make a difference yet with my main machine.
b996b2 No.15296598
OK, so looking at it, on my T61, with occlusion culling, I get 190fps on the worst spot and 250fps (my cap) on almost all of the other spots. Without it it bounces from 75 to 90fps. This is on an Intel 963/965 integrated GPU. So this is the computer that really benefited the most from it.
On my T41, which is the computer that really needs this feature, or so I thought, just stayed at 50FPS the entire time, and went up to 100FPS if I raised the framerate cap. Kind of confusing. It didn't make a difference if I had occlusion culling on or not. When I set it to wireframe mode with occlusion culling off it totally fell apart and couldn't render fast at all. So it makes me think that the Z-buffer was enough to keep it rendering fast. This card does hardware occlusion culling with the HyperZ II unit inside it, which uses a hierarchical Z buffer to do occlusion culling in hardware, so it's pretty interesting to see how effective that is.
It's pretty impressive either way that it has such a better Z buffer. The card is an ATI Mobility Radeon 9000. Even though the intel GPU has a better shader, since it supports OpenGL 2.0 while the Radeon card only has OpenGL 1.3, i'm wondering how this card will end up performing in the end. It has a fragment shader which is using a platform specific shading language, not even ARB assembly shaders work on it.
f46972 No.15296611
>>15296167
Dude how did you learn to write a 3d engine in c? I'd love to try making my own but i'm such a tard with programming
b996b2 No.15296718
>>15296611
You have to follow a lot of tutorials, these are the ones that I used mostly. The rendering engine that I wrote works the same way as the one described in the last link:
http://nehe.gamedev.net/
http://winprog.org/tutorial/
https://vulkan-tutorial.com/
https://software.intel.com/en-us/articles/api-without-secrets-introduction-to-vulkan-part-1
https://vulkan.lunarg.com/doc/sdk/1.0.57.0/windows/tutorial/html/index.html
http://www.alsprogrammingresource.com/bsptut.zip
https://www.cs.utah.edu/~jsnider/SeniorProj/BSP1/default.html
https://www.cs.utah.edu/~jsnider/SeniorProj/BSP/default.htm
Work your way up by writing simpler and slowly more complicated engines. Eventually you will get there. It's not about skill, it's just about writing more code… you will learn more than you realize by challenging yourself that way. At one point, I really didn't know very much about programming at all, but only spent my time working on engines.
f897ef No.15296752
if i bake a skinned mesh to a regular mesh is there any big pro/con?
i'm getting rid of the skeleton so less gameObjects, but i'm also using a new mesh, so more memory, right?
90d195 No.15296790
>>15296420
I just wanted to clarify, hammer is a mishmash of the greatest technology of 1998 with weird off-shoot middle of the road high end stuff circa 2005-2006, and bizarre hackey stuff to enable beyond current gen possibilities in other editors. All things you gotta factor for when using it. I'm not calling you out or anything, just clarifying.
The way vvis works is it looks in the playable area as defined by areas outside of the void (leak) and determines what the player can see when looking in every direction from every accessible point in the map. minimizing the number of accessible points minimizes the compile time, improves performance, and this is done by blocking things out. pic is a diagram I felt like making for fun
f46972 No.15297038
3dbadf No.15297198
Just about completed based off reference. Changed the colors to something I might want to run in Tabletop Simulator.
32dde1 No.15297269
god i fucking hate steam reviewers fucking self entitled little shits
ab2640 No.15297529
>>15291370
Store metadata along a model describing the attachment points. Obviously you need at least a position, in model space. Possibly an orientation, depending on what you're trying to do. Like, say you wanna have a turret hardpoint on a space ship. You probably want the turret to snap to the hull, so you'll need a vector or something describing what should be up for the turret. In addition you might also want a roll angle, so you can point the turret/cannon backwards, or whatever. This can be combined into one thing by using a quaternion. In engines that use a scene graph, this is trivial to implement. When loading the ship, create a node for the ship hull, then for each hardpoint create a node using the model of the turret that goes there, parent it to the ship's main node, then set it's local transform to the location-rotation of the hardpoint as specified in the metadata. You can then (probably) make it point at the enemy by simply doing turret.lookAt(targetPos), as (usually) those functions takes the nodes transform hierarchy into account. It's real easy doing it manually, too. You basically figure out what transform in global space needs to be applied to point it in the right direction, then transform that down through the hierarchy and you end up with the transform in turret local space needed to turn it the right way, then apply that.
To do something like a sword, you'll want to implement parent-child relationship between hardpoints and model bones. This is also easy to do in a scene graph, since the bones can easily be a part of the scene graph. You just do what you normally do, I.e. drive the animation in the scene graph and such and parent the sword to the hand bone. It'll stick like glue. If you're doing ragdoll physics, you could even make the sword an actual extra bone that's just added to your skeleton, like all the rest and have it collide and affect the pose. Same thing for anything else, like armor. Just parent it to the appropriate bone and make sure the animation traversal visits it and updates it's local transform.
As for 3d editor, you'll probably have to write your own plugin. Unless there's some kind of generic metadata export script. Though this isn't that difficult, especially in blender. Just find some good script that does something similar and use it as a reference. Use the console inside blender to explore the data structures. I'd personally use an Empty to represent a hardpoint. You can load a turret model into blender and use modifiers to snap it to the Empty, applying all relevant transforms in the process (location, rotation, even scale). Have the export script indicate what it's parented to in a way that you can find it in the engine, like the name of the parent bone. You could unify it by giving all models an implicit root bone, or letting parent-less nodes be implicitly parented to the model root (i.e. the root node of the model instance in your engine). You could write a small editor that shows the model graphically with all it's hardpoints rendered and presented in a list. Then you can set any additional metadata, like size restrictions, plasma only, max power available, etc. So no, you'll want an extra tool. Or export the metadata to a text format like json and hand-edit it. Actually, with blender you can make UI extensions that lets you turn an empty into a hardpoint and set it's properties right in the editor. You might even be able to create ghost objects to show what turret you've selected for that hardpoint. But it's a lot of work figuring out blender's api and some things, like having an animated preview of the turret firing would be exceedingly difficult. With an external tool, you have max control.
cc6965 No.15297652
>port my noise generator to new engine
>1D works fine, time to do 2D
>it generates the first couple pixels and then fades to dark gray
>can't find anything out of place about the code compared to either the 1D generator or my old engine
837743 No.15297707
YouTube embed. Click thumbnail to play.
>>15295376
Anon I don't want to disappoint you but there's already a program integrated with unity and unreal that does this
d9155f No.15297714
>>15297707
yea but it's not free
i too have a generic spline thing to make fences, but that's about as much as i need, not gonna spend whatever houdini is charging
c4c4d2 No.15297784
Does anybody know how Aurora 4x does the graphical representation of planets and ships? I wonder if it uses some external library or if it's just VB6 and .Net.
e14752 No.15298090
I can finally see the light at the end of the tunnel on collision improvements.
>Fixed collision wall merging bugs
>Separated stepping up into sectors you're colliding with until after wall collisions are resolved
>Camera easing rather than modifying your z position when close to a stair you can step up
>Anti-tunnelling for fast moving entities against walls, slow entities and other fast entities
>Added sleep/wake for entities to further reduce checks when there's a bunch in close proximity
>Added special case for colliding with two walls that converge at a very acute angle so it doesn't result in hundreds of small resolutions
6078ed No.15298105
>>15282011
Impressive. Very nice.
83e881 No.15298182
>>15297707
cute, but no runtime generation.
We want players to be able to make the bridges wherever they want.
115406 No.15298273
>700 lines of C
>couple months later I wonder if I could do it in Lua
>100 lines of lua
Yep yep yep I've made some mistakes.
cc6965 No.15298327
>>15297652
>end up at my random number generator function
>it's taking in a long as a seed instead of double like it's meant to
>somehow worked correctly until this point
One of these huh.
3fe819 No.15298462
>>15298273
This is some top-tier writing anon.
c9a4c9 No.15298976
>>15289373
It's an amateur (free) game in RPGMaker
>>15289376
The original has no sound :^(
8df1c8 No.15299049
>>15298976
These threads aren't to discuss free amateur games, they're for developers of amateur games to discuss what they're doing.
6d8630 No.15299101
YouTube embed. Click thumbnail to play.
>>15291975
>I just wanna make games but every fucking retards keep telling me that raw Opengl and SDL are just impossible to use and that I shouldn't make my own engine and that is hard as fuck
First of all, quit meme spacing, we can tell you've been getting advice from Reddit because you format your post like a retard.
Secondly, you don't need to learn raw OpenGL. If you want to a make a 2D game, I recommend SFML. It handles input, graphics, audio, and network. You don't need 10 lines of code and autistic memory management to load a sprite. It's really easy to use, while letting you use the complexity offered by C++.
Also, most online OpenGL tutorials are pretty shit. I'll admit that. There's a lot to uncover, but most of them just teach you how to draw a 2D triangle and then say,
>"Yay, you've learned OpenGL, now fuck off and make a game with this."
So, if you want to make a 3D C++ game from scratch, I'll point you to a good resource.
His name is Benny. His voice is full of soy, and he always sounds like he's ready to give a warm, fuzzy hug. But, his videos are actually quite in-depth, and he actually takes the effort to explain the low-level work going into the code. I like him because he's not some meme-tier shit programmer teaching people awful practices. And honestly, his voice is rather refreshing compared to the typical "groaning bored teenager" tutorialist, or the Indian with the thick accent showing you how to build a meme-tier game engine
83e881 No.15299419
gonna remake these shit trees into a cool magical banyan, replacing the smaller trees into support roots. We gonna use grass tech to make a zillion individual leaves, also more roots
c6d546 No.15299781
>off for 4 days in a row
>only work for 2 hours at most
Fuck
6d8630 No.15299852
Got a C++ question.
A cool thing I learned from the SFML book is modern C++'s "smart pointer" feature, which I thought was really nice, because C++'s memory management is probably one of the most dangerous parts about the language to a less skilled programmer.
But, even today, in modern source files, I don't see any projects using smart pointers. They all use the classic new/delete functions. Is there some kind of con to smart pointers that I don't know about? You'd think that something so convenient would be in awfully wide use by now. I just want to make sure I'm not doing something absolutely retarded by using smart pointers for things like Scene Nodes.
c6d546 No.15299867
>>15299852
Smart pointers have basically superceded classic ones
9a217d No.15300018
Is there a comprehensive changelog from OpenGL 2 to 3, and from 3 to 4 anywhere? Specifically for renamed commands and such. Most guides, including the one I'm following, utilize 3 or 4 and I spoke a few threads back about wanting to make it compatible with older PCs, and I don't think I need much more than 2.
b996b2 No.15300054
>>15300018
https://www.khronos.org/opengl/wiki/History_of_OpenGL
It's not that hard to make it compatible with 1.1 if you really want to go for it.
ecf7dc No.15300056
>>15298182
From where to where? Your town is small.
75e6cd No.15300101
>>15299852
Many programmers will just write C code in C++ and ignore many of the modern features. This isn't because smart pointers are terribly slow or memory hungry, people are just lazy. They learned about pointers the C way (which is how people should learn it) but then they don't bother to learn it the C++ way. Their decision to use raw pointers is based on what they know rather than what is the best tool for the job at hand.
>But, even today, in modern source files, I don't see any projects using smart pointers.
I'm surprised you haven't found any modern source file that uses smart pointers. Here are three I found with minor searching.
https://github.com/meta-toolkit/meta/blob/master/src/analyzers/analyzer.cpp
https://github.com/grpc/grpc/blob/master/src/cpp/client/client_context.cc
https://github.com/godotengine/godot/blob/a8e845a474c01c4cde1416ed00e6ae456786c1fb/thirdparty/etc2comp/Etc.h
And here's some articles about the overhead and performance of smart pointers compared to raw pointers, in case you are interested. Long story short if you've decided to use smart pointers only use shared_ptr when you can't use unique_ptr.
http://www.modernescpp.com/index.php/memory-and-performance-overhead-of-smart-pointer
http://blog.davidecoppola.com/2016/10/performance-of-raw-pointers-vs-smart-pointers-in-cpp/
83e881 No.15300191
>>15300056
The island will be large, the player will be able to choose any area of the island to build their farm and will eventually be given or sold an artifact to teleport to and from the city
6c8a15 No.15300304
I have a question.
I understand why collision meshes were simplified in order to simplify the work,but now that we have all the extra power is there any specific reason to not just use the actual mesh as collision data?
Is it another case of things not improving because of devs not bothering to optimize their stuff to make use of resources?
vid unrelated
6d8630 No.15300414
>>15300304
Some meshes do that. Especially landscape meshes like rocks, or anything involving round architecture.
But, character models contain a shit ton of polygons, and the result you get from directly using character models as a collision mesh isn't exactly worth the performance cost. So, the compromise is to put a low poly mesh on each body part, with geometry accurate enough that you really can't tell the different unless you autistically examined each pixel on your screen.
75e6cd No.15300456
>>15300304
Here's a paper on the subject.
In practice people prefer to put the computing power into other things. The current method of building a collision mesh out of convex shapes works well enough for most applications and is way faster in runtime.
dd429f No.15300573
>>15298090
Good shit.
>>15300304
There isn't always a need for increased collision detail. Stairs, for instance, often use a slope collider for player collisions because it's smoother for first person cameras.
08c07c No.15300611
>>15300304
what is that from?
1d39d1 No.15301252
>>15300304
>Is it another case of things not improving because of devs not bothering to optimize their stuff to make use of resources
It's literally the opposite. Using a handful of simple 3D shapes for collision testing is significantly better performing than testing collisions against tens of thousands of triangles.
Also I'm pretty sure 3D models are transformed in the GPU during animation, so the triangles' in-world positions aren't readily available.
461b0f No.15302315
>>15297198
This looks pretty good. Though I think there are too noticeable contrasts between different densities of the mesh in various places. Looks inconsistent, like a weird mix of low and hi-poly. There's also a few other issues.
c6a995 No.15303245
>>15300573
Unless it's a MGS game, in which case every stair is modeled and interacted with as they run up/down them, and the camera still behaves smoothly anyways
330d06 No.15303291
>>15297198
>>15302315
I dont know, but it feels off and not like the fire warriors in 40k.
199c6e No.15303520
>>15303291
Of course it doesn't, otherwise GW does their usual legal carpet bombing.
af2aa7 No.15303710
>>15297198
I like how this is coming along. I think it's missing some of the "bulk" that the reference has which, in my opinion, makes the reference look better. Your helmet, for example, doesn't have the extra plate that goes over the top of his head. Yours has quite the slope from the neck to the shoulders, whereas the reference appears more stout and has a little more bulk to his chest plate. With him looking more lithe than normal, he looks more like an air caste dressed in a commando suit.
The last thing I would point out is that the antennae on the backpack seems superfluous. The helmet antennae would already handle things like communications. I would naturally assume that a special operations helmet would be better at whatever communications they perform. I'd go a step further and point out that Pathfinders don't use extra communications equipment, instead relying on their advanced helmets. I would suggest pulling the back antennae and refining the helmet a little bit.
What variations do you plan on making? Are you doing just normal Firewarriors, or are you doing loadouts for all of the various teams/pathfinders? I actually really like the default Tau color scheme, so I really hope they're released in a default scheme, or are at least easy enough to recolor.
c6a995 No.15303750
>>15298090
So how's this work? You're drawing a bounding box around the starting radius/bounds and the projected region it will end up, then comparing against geometry?
d1c9b2 No.15303783
Does anyone know of good classes about basic gamedesign and/or leveldesign i can pirate ? I lack the theoretical knowledge as to why i should do what and where. For example "Build puzzle sections between action sections to let the player cool off between fights", "use more noticeable objects to unconsciously lead the player along a certain path" and that kind of stuff.
c6a995 No.15303798
>>15303783
A lot of it is just common sense though. Where's that one autist that wrote the book about WL4's level design which is like 600 pages long? That's apparently a good read.
What kind of game?
67f409 No.15303799
>>15303783
Most game design classes are useless, study other games and figure out what makes them work and what could be improved. Other helpful exercises include reading source code, studying neuropsychology and hypnosis, and developing an interest in architecture and landscaping.
ff4521 No.15303820
>spend about 2 days figuring out why the shooting mechanics at this tutorial page doesn't work http://kidscancode.org/blog/2018/04/godot3_tanks_part4/
>look up at his source code too see if I was missing something
>can't find it at all
>try his version and it works
>compare the code too see if I made any typo
>nope nuffin
God damn this shit is driving me to the wall.
c6a995 No.15303880
>>15303820
It's probably some instancing error with the node/scene setup you've done
6d8630 No.15303933
>>15303783
The autism behind perfect level geometry and psychologically leading the player along certain paths sounds compelling at first, but it's really overrated.
Just do what Nintendo does. Make your hard levels first, then after that, ask yourself, "what's the most non-intrusive way I can teach a player how to get used to this gameplay?"
In the hard levels, you don't really need to worry about such psychology. You only need to make sure that the enemies are in the right place and that the level geometry is relevant to the player's or enemies' objectives.
6d8630 No.15303942
>>15303783
>>15303933
On second thought, play Super Metroid. In my opinion, Super Metroid is the epitome of good level design and non-intrusive tutorials. It basically does exactly what you're talking about, giving the player a huge world to explore without ever feeling lost because the game is designed to be figured out without any lines of dialogue and no walkthroughs.
c6a995 No.15304021
I made a hard limit of 4 players, though most maps will only have 1, possibly 2 players allowed on them.
Is there a way to guarantee that index falls between 0..3, but without having to call a helper function every time? It feels redundant but I can't think of a safe way to remove it and guarantee it won't fall
dd429f No.15304092
>>15303820
Did you connect the signal to the Map script? The tutorial didn't seem clear on that part, you need to actually use the editor to do this, just naming the function _on_Tank_shoot won't do anything without it.
e14752 No.15304461
>>15303750
The AABB is used to get the list of potential collision objects from the spatial hash table. If the entity has a velocity large enough that it would move further than it's radius in one tick then it does additional tests first and stores the how far along the movement vector those collisions would happen, then uses the earliest one to correct the target position. Then regular collision checks happen after that for more fine grained responses. The extra checks are just circle-line or line-line intersection tests with heights interpolated based on where along the movement potential collisions are tested.
494c7b No.15304528
>>15303783
You learn good game design by playing video games. You notice what works and what doesn't, what you like and what you don't like. Whatever you don't pick up through playing will be learned by listening to your playtesters. Game design classes are a scam.
259a8d No.15304649
Does anyone have a pdf of "the pushing points topology workbook"? I tried different torrent sites but can't find it, I checked the share thread but didn't find it. It's supposed to be really good for learning good 3d topology and quick to get through.
Does anyone have good topology books, sites or youtubers? I'm getting pretty good with blender hard topology modelling but I'm still learning.
c6a995 No.15304729
Well I made some progess this week at least.
My goal is to have a headless game state, so I can feed it a bytestream for replay files. An advantage to this is being able to verify that custom maps or levels have a valid replay after patches, or to just show off your solutions to puzzles.
To do this, I put my GameState class as a a container of references to eg PlayerComponent subclasses, which look like link related. They're basically a small handful of state with a large number of general methods to interact with them. Hopefully, I'll be able to extract those methods into some kind of object API so custom game objects don't have to poke at underlying bitfields and such, they just call methods and it it just works https://hastebin.com/hezigaxodu.cs
6ec34d No.15305079
>>15304649
Look at the wiki, on the gamedev resources page.
Has everything I'd suggest already compiled there.
dd429f No.15305785
>>15304649
>the pushing points topology workbook
It's on CGPeers. Accounts are open now.
I'm uploading it to volafile too but that will take longer than making an account and torrenting it: https://volafile.org/r/f8vk0tec
75e6cd No.15306580
YouTube embed. Click thumbnail to play.
This is an interesting paper. It's basically path-tracing for sound with specific optimizations that focus the limited samples on areas that matter more, giving better results than the alternatives in the same amount of time. They used an Intel i7 3.5 GHz processor and 32 GB of ram. They generally got good results at around 16ms per frame on a single thread, meaning it's viable for video games.
http://gaps-zju.org/bst/
Here's a direct link to a video showing it in action and comparing it to other algorithms.
http://gaps-zju.org/bst/bst.mp4
And because I know someone is going to post it, vid related is the Aureal A3D 2.0 Rooms demo from 1998.
a8b214 No.15306603
>>15306580
>vid related is the Aureal A3D 2.0 Rooms demo from 1998
I remember having that shit on our computer, and I was always confused because it looked like a videogame but I couldn't find any objective. I was still mesmerized by all the things making sounds though.
277264 No.15306626
Physics is a cruel mistress.
dd429f No.15306892
>>15306626
>loli_upset_over_physics_bugs.webm
259a8d No.15306902
>>15305079
Yeah there's some nice things on topology there http://8agdg.wikidot.com/resources
But the guide I'm asking for was recommended by one of the main guys who makes blender hardops so it's going to be good. I'm pretty good with topology now, can get some nice smooth curved surfaces with detail but there are some scenarios I get myself into that I find I don't know how to get out of.
>>15305785
Nice! thanks anon!
>CGPeers
Registered
259a8d No.15307011
>>15305079
ignore my reply here:
>>15306902
wrote it first thing after waking up XD
polite sage
e14752 No.15307115
>>15306626
>second webm
Hair brushing when?
ff4521 No.15307177
>>15303880
>It's probably some instancing error with the node/scene setup you've done
And how can I check if I screwed up on that part? Godot doesn't complain anything about Node instance being wrong.
>>15304092
>just naming the function _on_Tank_shoot won't do anything without it.
Not even when the Player tank is inheriting from the Tank scene? By that logic I would have to copy and paste the same script for every Tank out there that exist on the map, so if I would have for example 10 Tanks on the map I would need 10 scripts for it just to make the shooting signal to work.
If I use this for the map script then the shooting works now.
extends Node2D
func _ready():
set_camera_limits()
func set_camera_limits():
var map_limits = $Ground.get_used_rect()
var map_cellsize = $Ground.cell_size
$Player/Camera2D.limit_left = map_limits.position.x * map_cellsize.x
$Player/Camera2D.limit_right = map_limits.end.x * map_cellsize.x
$Player/Camera2D.limit_top = map_limits.position.y * map_cellsize.y
$Player/Camera2D.limit_bottom = map_limits.end.y * map_cellsize.y
func _on_Tank_shoot(bullet, _position, _direction):
var b = bullet.instance()
add_child(b)
b.start(_position, _direction)
func _on_Player_shoot(bullet, _position, _direction):
var b = bullet.instance()
add_child(b)
b.start(_position, _direction)
ff4521 No.15307622
>>15307177
<Now in the map’s player instance, we can connect the shoot signal to this new function.
Yes of course I missed this part so I was supposed to connect the shoot() signal from the player tank that is placed on the map, not the scene itself with the shooting signal at the map script and renaming the signal appropriate too so that I don't need the _on_Player_shoot signal, just the one that is already there (_on_Tank_shoot) , it still worked previously but it is a bit more clearer to me and to the code now, kurwa do I feel stupid. It still irritates me thou that why the map scene has to the handle shooting part which sounds illogical to me if anything the weapon itself should handle it so either the turret or the tank node itself. Sage for double posting
c6a995 No.15308494
>>15306626
That first webm is excellent
75e6cd No.15309313
I have an idea for a mechanic and I would like feedback.
The player wears different cloths. Each item of clothing is assigned to a different body part or set of body parts, sometimes with "bleed over" into other body parts. For example a t-shirt covers the entire torso, none of the neck, and some of the arms and hips, so it bleeds over into the arms and hips. Sometimes you can pick where you wear an item. For example you could put your pants on your legs but not your hips to represent sagging your pants and suffer a movement penalty or you could put the pants on your head if you wanted to roleplay a character that's literally pants-on-head retarded.
The cloths are stored in a list, with the innermost cloths appearing later on the list. So if you were to tuck in your shirt, the shirt would appear after the pants. But having an un-tucked shirt lists the shirt before the pants.
You can also attach some wearables to some other wearables. For example you could pin a badge to your shirt. Then any items that goes over or under the shirt goes over or under the badge as well. Also a byproduct of this method is that you could pin the badge to the inside of the shirt if you really wanted to.
All of this together has mechanical significance with something like a concealed weapon.
For example you can attach the holster to your pants. Attaching it to the outside of your pants makes for a quicker draw, attaching it to the inside of your pants makes for a more concealed weapon. Then you can either have your shirt tucked in or not tucked in. Tucking in your shirt reveals the concealed weapon, but makes it faster to draw, while not tucking it in covers the weapon and better conceals it.
377c9b No.15309420
>>15309313
Are you me? I had a similar idea
c6a995 No.15309453
>>15309313
TF2 and Dwarf Fortress do something similar.
In TF2's case, it's for hat flags to determine what cosmetics can be worn together; eg a helmet could cover the face, which includes the eyes, so you can't also wear sunglasses with it.
In DF's case, each worn item has a coverage value associated with it, a unitless value that determines how much it covers up the underlying clothing or how bulky it is. Basically, to prevent you from wearing 30 cloaks at once, but also lets you layer clothing in an appropriate manner.
Actually, most roguelikes have a stack-like implementation like you do for clothing. You put on your enchanted underwear, then put on some pants, then you wear that belt you found, only to realize you can't take anything off because the belt is cursed
75e6cd No.15309578
>>15309453
Neat. That bulkiness and stack-based clothing looks like a good idea. I think I'll steal those. I suspected I wasn't the first to come up with something like this.
>>15309420
This seems to be a natural outcropping of figuring out cloths in a game. "How am I going to store the cloths the player is wearing? What about a list? But how will I order the list…" and so on until the mechanic is fully formed.
886f30 No.15309607
Just letting /agdg/ know that if they need someone to do music for free just let me know. I just put out an album and some singles and would appreciate the feedback about it and if you want work sometime. I'll probably be busy with things, but I'll make sure I respond as soon as possible. Here's my new single, Ridgin' On, it is basically 8-bit Ridge Racer and it is in STEREO so get your headphones or stereo set to listen to it.
886f30 No.15309611
Soundcloud embed. Click thumbnail to play.
>>15309607
Forgot to post the track
199c6e No.15309694
Fuck you, Microsoft. UPDATE OPENGL! I'M NOT USING DIRECT3D IT'S SHIT. I JUST WANT GL_UNSIGNED_INT_8_8_8_8
b996b2 No.15309697
I added in frustum culling to Sigma II. This cuts the polycount down quite a lot. The poly count is still higher than it needs to be, and can be lowered even further with improvements that I will make to it in the future. For example, all of the polygons split by the BSP and CSG steps of map compilation could be rendered with the original polygons, instead, which will lower it by quite a lot, too. Back face culling will also make the polycounts lower.
199c6e No.15309749
AHAHAHA Fuck yourself Microsoft and your shitty OS. I worked around your bullshit.
9e43ae No.15310327
>>15309313
I was thinking about a physics-based-clothing system just the other day.
You can tether accessories anywhere on your person so you can stick a bunch of ammo pouches anywhere in different places much like Kerbal space program. Then, the tether point for the pouch could only be one place and low so in game the accessory jiggles around a lot.
9e43ae No.15310334
>>15310327
Also, it would be cool to have a weapon accessory system where you can superglue attachments on wherever so you can have 20 flashlights on a gun or even an ammo pouch in a gun
75e6cd No.15310393
>>15310334
>>15310327
Sounds interesting, fun, and difficult to implement.
dd429f No.15311096
>>15307622
>It still irritates me thou that why the map scene has to the handle shooting part which sounds illogical to me if anything the weapon itself should handle it so either the turret or the tank node itself.
Putting the on_Tank_shoot method in the Map node makes sense because it's purpose is to add a bullet to the map scene. If it were in the tank or turret node you'd need to get the tank's parent and then spawn the bullet as a child of that node. This is easy in a simple scene, but a more complex scene may have several nodes of depth between the tank and the map (for instance, a Navigation and NavigationPolygonInstance node).
Anyway, the method would be better named "spawn_bullet".
c0dcf2 No.15311247
>>15310393
If it's not hard, it can't be fun.
aba530 No.15311438
>>15309694
Why the fuck don't you just use GL_UNSIGNED_BYTE instead?
>Fuck you, Microsoft.
You mean Amd/Intel/Nvidia, right?
eb38ae No.15311487
Question(s) for the thread veterans out there.
How did you guys start your journey in game development?
Here are some supplementary questions as well.
How much did you know before going in? When you first started what resource did you use to help you learn? Youtube tutorials, torrents, books, pdfs, or just reading the documentation? What was your first failed project? What was your first finished project? How many failures/unfinished works/projects did you have in your belt before feeling balanced?
I've been lurking and posting sparingly on these types of threads for a while so I'd like to thank each of you for posting your progress, you guys are great.
3b28b2 No.15311503
Does anyone have those low poly models someone was posting a few days/weeks ago?
bf5624 No.15311892
>>15311487
>How did you guys start your journey in game development?
Ever since I was a kid I had always loved games, but had never really thought I could make games myself.
Though, despite that, I did take part in some hobbyist game design (idea guy/UI designer/designer) for a few small hobby projects growing up (rpg maker tier, mmo private servers, etc). Because of that confidence issue, I had never really put in the effort as I didn't have an intrinsic drive todo so, and I was just doing it because it was a hobby for my group of friends.
However, I have always been interested in dissecting games since I got a n64 when I was a kid (LoZ was the first game I fell in love with), and I've been participating in debating game mechanics, and their potential since my early days on /v/ (pre-8ch).
Around 2013 I had a life crisis, and finally came to the realization that gamedev is what I'm "meant to do", as in, I know in my own mind that this is my purpose in the world (be it self-ordained or not).
I'm aware that sounds pretentious, but despite my awareness of that point, it sustains my motivation and drives me to push through failure.
>How much did you know before going in?
Mostly just passively learned game design knowledge (countless hours playing games), some experimentation, and a lot of discussion concerning mechanics and such on /v/.
>When you first started what resource did you use to help you learn?
I learned programming first, C++, python, java/javascript, and then C# (which is now my preferred language, a good middle between the languages I liked writing).
I went to uni for learning most of those languages (except C#), but self-learning through say code academy for babby's first steps into programming in say python to get a feel for actively using logic to solve problems, in a programming context, is a good alternative too. Although, if one lacks some intrinsic motivation then well… their mileage may vary.
For learning the engine I decided to use (unity3d) I read docs, read the forums, experimented with a BUNCH of small projects just dicking around, and making a few half-baked games.
After that I expanded my C# knowledge (read C# in depth, did a lot more research into C# docs, actively committed myself to learning design patterns, design principles, and all kinds of game related algorithms).
In my past I'd find a new topic I was interested in (game programming related), and then go on to do some learning, experimenting, failing, improving, and so on.
>What was your first failed project
oh boy, my first failed project was from 2014, I was making an ev nova inspired game (basically I was going for something like starsector in terms of battle mechanics, but a more persistent world like ev nova), and found I didn't have enough knowledge to make what is in hindsight a small burgeoning on medium scale game.
Basically, the code base became a mess, bcs despite going to uni for compSci, they just taught OOP, and nothing like the principles of SOLID, and I didn't even know unity used an EC-OOP hybrid design pattern; so it was bound to fail.
>What was your first finished project?
I've made a few tech demos/libraries
Like a procedural noise generation library, procedural generation tech demos for dynamic run-time editable terrain, and implementing all kind of different contouring algorithms (generating terrain on the fly using noise and so on). I've also made a few other small demos, like asteroids and a shitty bullet hell, but they're not really worth mentioning.
I've actually put the final iteration of that procedural tech demo project on hold (dual contouring on the GPU), until I release my current game, as I plan on completely re-writing the cpu-side code completely, and it's not needed for my current project.
>How many failures/unfinished works/projects did you have in your belt before feeling balanced?
Humm, quite a few. I've definitely finished more projects to an acceptable level than the amount I've totally dropped though.
I feel pretty confident now, but I know there's so much I don't know; which imo is a good balance to have.
All my past failures, and finished but disorganized projects of the past were great stepping stones, and really helped me spot my own weaknesses in terms of gamedeving.
>you guys are great.
y-you too
bf5624 No.15311904
>>15311892
>bcs despite going to uni for compSci
>bcs despite [me currently attending]* uni for compSci
polite sage
199c6e No.15311921
>>15311438
>Why the fuck don't you just use GL_UNSIGNED_BYTE instead?
Because GL_UNSIGNED_BYTE doesn't support streams of unsigned integers. A pixel in my buffer is one 32-bit unsigned integer, so if I use GL_UNSIGNED_BYTE then I everything is in greyscale.
>You mean Amd/Intel/Nvidia, right?
AMD/Intel/Nvidia aren't the ones who locked away everything that's >OpenGL 1.1.
199c6e No.15311932
>>15311921
>GL_UNSIGNED_BYTE actually works
Oh damn I look like an idiot.
Well, I still needed to use GL_BGRA, so my previous post still applies.
cc6965 No.15311951
>>15311487
Work on shitty ms paint adventure games in The Games Factory when I was like 12 and had no idea wtf I was doing -> many years later learn javascript from codecademy -> work on various browser game/software projects over years -> learn C mostly from "intro to C" and early episodes of handmade hero. I haven't learned a thing from a book in my life though I've tried. I just do what I want to do, and search for answers when there's something I don't know how to do.
>What was your first finished project?
For game projects I've only "finished" a small idle game where you gathered various resources, fed npcs and built buildings. I want to redo that idea some day. For non-game projects it's hard to say what counts as "finished".
>What was your first failed project?
>How many failures/unfinished works/projects did you have in your belt before feeling balanced?
Don't think I've ever completely abandoned anything because I rarely work on something I don't have a strong interest in, I just lose motivation/interest and put it on hold. I still plan to work on all the things I have on hold. I've only really worked on a couple projects, but I tend to redo them completely when I reach a certain point and realize the current architecture isn't that solid. I think I've redone my main game project 3 times, though that was, as far as I remember, the first game project I ever worked on not counting The Games Factory shittery.
aba530 No.15312026
>>15311932
>Well, I still needed to use GL_BGRA, so my previous post still applies.
That's because you're ignoring the data format.
What you seem to want is a uint32 to represent one pixel. This however introduces stupid little-endian nonsense, which is something you have to deal with when you're moving data between different devices or big-endian files.
If you don't want to deal with endian bullshit, just don't do that. Just store/load your image as uint8[pixels*channels], instead of uint32[pixels]. Clean up the format of your data, and the simple elegant code will follow.
199c6e No.15312038
>>15312026
Yes, that's what I used to do but, a single UINT32 seems to be faster than 4 UINT8s.
1b97ec No.15312447
>>15304021
and it with 3. any number anded with 3 will be 0-3.
6e56ad No.15312479
What's the logic that makes total war combat work? Like, you have a bunch of little battalions that march around but each unit in that battalion has their own path finding and combat SEEMS like each unit actually harms each other unit.
I can't figure out how this is accomplished .
d9155f No.15312498
YouTube embed. Click thumbnail to play.
>>15312479
the original shogun used a neural network for the individual pathfinding i think
or something of the sort, i watched these ages ago
6e56ad No.15312513
>>15312479
To clarify, i imagine that there's a logical object for each battalion which is used for movement/path finding. Then, each unit is assigned a number (as part of an array for example) and that specific number corresponds to a position for a particular formation. That AI's position is adjusted based on the direction of the battalion object and it path finds to that location. When a unit is killed then that element of the array is popped out and each unit with a lesser number moves up one place. In battle, each unit attempts to hold formation but fighting takes precedence so it will attempt combat until it can escape and reform.
There's a lot of optimisation in the engine naturallu because you can reuse the same textures and models for each unit in a battalion. I think I could make a more efficient total war…
Great… This is the third game I've become obsessed with completing despite having no time to actually work on anything.
>>15312498
Il watch these
facace No.15312796
Needs more juice, but smithing is more or less mechanically done.
>>15289090
Thanks, I'll quote that for the back of the box.
>>15289483
Yeah, if hand drawing means placing pixels with a mouse.
837743 No.15312893
Alright so I have my main model exported with no animations.
I then asked my artist to export all the animations as single files, so these essentially have the armature and one animation per file.
HOWEVER, when I import them into unity, the armature disappears and only "root" appears inside the file. If I try to play the animation on my mesh, nothing happens.
How the fuck am I supposed to set this up exactly?
Is there no way to actually separate animations in different files? What the fuck
d9155f No.15312979
>>15312893
did you check if the models actually have their armature exported? reimport them into whatever you're modelling with
837743 No.15313030
>>15312979
They do, if I open the animation and try to select a root node all the parts of the armature are there.
They just don't seem to show up in the file itself
d9155f No.15313042
>>15313030
post screenshots, i'm clearly not getting something
b996b2 No.15313065
>>15311932
Remember that this isn't a feature every implementation has. Query GL_EXT_bgra and if it's not present reorder the bytes to RGBA.
https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_bgra.txt
73e0e2 No.15313289
Soundcloud embed. Click thumbnail to play.
Sharing a tune I made during my days fooling around with PXTone. If somebody want some music for their game, I'd like to help.
>>15309611
Nicely done, mate. I'd like to hear this in an action setting.
>>15280943
Sounds comfy at the beggining and dramatic at the end, keep doing stuff like this.
What's your setup for music making?
837743 No.15313308
>>15313042
There's not really anything to see
>Pic 1: When FBX models made in blender are imported into unity the hierarchy breaks.
Battery, Hand, Strap etc should all be inside "Armature" as they are when in blender
>Pic 2: When exporting just the animation without the mesh all the files that got moved outside of "Armature" are not there anymore.
Armature is also deleted and only "root" which was previously contained inside "Armature" remains.
I don't know why this happens and I can't find anything about fixing it
d9155f No.15313318
>>15313308
is that only the project view? hierarchy only goes as far as 1 set of children there
did you actually try putting it in the scene
837743 No.15313348
>>15313318
Scene is exactly the same
Importing the Blender file directly into unity creates the same problem so it's definitely something with how Unity imports files and not how they're exported.
d9155f No.15313365
>>15313348
try changing the root bone in the import settings
d9155f No.15313376
>>15313348
>>15313365
also make sure Preserve hierarchy is true
837743 No.15313385
>>15313365
>>15313376
I have, but the model has already been imported and the hierarchy has already been broken at this point, so it's not going to fix itself
d9155f No.15313388
>>15313385
try exporting as an fbx instead of blend, even though that's generally supposed to be worse for blender
837743 No.15313403
>>15313388
>>15313385
Shit nevermind, I reimported a few times and now it's working as intended
My mesh hierarchy is still a mess but now the animations do look like they're working
83e881 No.15313792
How do I use these collections of points to detect where the ledge is?
They are sphere casts, so they tend to accumulate on hard edges, thus should be usable to detect ledges using them.
Currently I can tell if here is a possible ledge or not near me, but I can't tell where it is.
I am open to suggestions on new ways of doing this too.
d9155f No.15313805
>>15313792
i think you're supposed to pick the highest+closest ones
f9ee05 No.15313811
is there still a market for a text-based/low sprite open world lewd rpgs like coc without 90% dickgirl npc saturation?
83e881 No.15313829
>>15313805
what about when this happens?
75e6cd No.15313830
>>15313792
I think there's a paper written by a Valve employee about this. Give me a little and I'll find it.
d9155f No.15313845
>>15313829
right, well i guess the ones closest to your preferred height
if they're above it, they're not climbable because you're a manlet
i don't know tbh, i just put colliders for this thing
75e6cd No.15313859
>>15313792
Nevermind it was a power point not a paper. Starts on slide 29 and it's for AI not for player characters, but it should still be helpful.
https://steamcdn-a.akamaihd.net/apps/valve/2009/ai_systems_of_l4d_mike_booth.pdf
138c84 No.15313876
>>15311892
how helpful is python for creating a game? Is it a good language suited to that purpose?
83e881 No.15313888
>>15313859
I guess I will try reading this
9a217d No.15313943
>>15313289
Glad you enjoyed it, anon. I don't have much of a setup per se. I don't play any instruments myself, but have a rough understanding of the ones I work with, how they're generally played and the limitations they have. I mostly just have an empty project file that I copy over, with every instrument I use. I keep the ones I need, delete the ones I don't for that song. Typically I come up with song ideas from hearing other types of songs that are similar. I write the idea down, set up any new instruments that I might need, get a sequence, midi, sheet or whatever I can of the song and work from there to figure out how it's written. It's kind of up in the air whether the song sticks to that style, though. The song I posted in particular, the initial inspiration was David Wise's Wizards and Warriors. From there, I found a piece by Vivaldi which had an uncanny similarity to it, and listened to some of Vivaldi's other work, and at the end, when I couldn't make the piece distinct enough from Vivaldi's own work, it ended up different from both.
For the actual instruments themselves, the Piano is a free VST I found, and the rest are multiple, layered soundfonts. I've tried pirating a bunch of VSTs to at least try them out and I couldn't get any of them to sound right. I got some soundfont pack I found by just searching, went through all of them, picked out the good ones and tried to layer them nicely, and then removed the ones that ended up being inaudible. Both the string section and the brass section have four soundfonts per layer, and the percussion have three.
I've figured out techniques over the years on how to write music, but I can't say I'm book-smart on the subject, though I did read a book on it ages ago, and some of it stuck with me. I have a document where I wrote out what notes correspond to which notes in major, minor and diminished scales, and also for each chord, what chords differ from them by exactly one note, as well as which chords fit in a key.
That's about it, really, I hope that answered your question. It's nothing too complicated, just me working piece by piece until something sounds good, and keeping notes of what songs I should rip off learn from whenever I hear something good.
837743 No.15313956
I've seen this powerpoint posted a lot but I've never understood what this part was for
Are they just looking for the exact point where the ledge starts?
How do you even find that with casting?
837743 No.15313985
>>15313956
Oh actually I see, they're looking for a point that is lower than the previous ones, that's pretty smart
75e6cd No.15314016
>>15313985
>>15313956
You were right the first time. It is trying to find the edge closest to the character. But you could use it to find a lower ledge.
837743 No.15314025
>>15314016
Oh no I get that, but I think they're finding the edge closes to the character by casting down and moving back and comparing if the hit point is lower than previous ones checked
75e6cd No.15314054
>>15314025
Ah I see, that makes sense.
886f30 No.15314147
Soundcloud embed. Click thumbnail to play.
>>15313289
I'm glad you enjoyed it. I've been doing chiptune for the past four years, it is honestly refreshing compared to where I started composing on GarageBand with some help from my dad six years ago. Learning the ins-and-outs of certain sound hardware have helped me find my style since a lot of modern chiptune composers seemed to emulate Tim Follin or Jack Kaufman which is not bad. FM Synthesis is incredibly difficult, so I staying with 2 operators for now until I have the time and mathematical knowledge to understand four operators.
Also, I liked how your composition really emphasizes the echo and simplicity as if the character is inside the cave. My composition only uses 12 monophonic channels at most(5 from the 2A03[percussion, bass, melody], 4 from N163[chords], and 3 from the Konami VRC7[Bass, melody due to how the chip handles with custom instruments I could only used 3 channels at most].
>>15313943
Your piece kind of reminds me of a theme song to a soap opera which is fine if you're aiming for that JRPG-esque style. Also, nice usage of your melodic motif. Hope you find your style in the meantime.
My music education spans from elementary school to early high school, played in many bands inside and outside of school, and I grew up learning the keyboard and doing some percussion at school. Composing for me was like a seed, started making up introductions to songs for my piano recitals then eventually here composing on 0CCFamitracker and Ignite which is really cost-effective for the kind of music you can create although I wished they added more selections for woodwinds, brass, and strings. Ignite is only 49.99USD, so if you are on a tight budget and have a Oxygen product that is not registered you can get it for free. Chiptune is also good, but there is a huge learning curve to optimize how your composition sounds on certain sound chips. Fun fact: Most of the samples I used on FamiTracker usually consists of some percussion samples I salvaged from my hard drive, samples ripped from NES games, recording my voice on my phone then converting it on the program, and using some stuff from Ignite. I believe good music comes solely from a good composer NOT good equipment.
I guess I should showcase what Ignite is capable of doing, so here's something I made for my English class that wasn't used. I was trying to do an audio interpretation on the novella, Heart Of Darkness.
886f30 No.15314173
There's one thing you have to consider when using Ignite, and that's the DAW doesn't support VSTs but you can get some expansions which I highly do not recommend since they are just simple sfxs and percussion loops.
83e881 No.15314194
>>15314054
>>15314025
>>15314016
>>15313985
they are actually just moving back until no more raycast hit, therefore that is the "correct enough" position of the ledge.
They don't even care about the ledge orientation
f6ca34 No.15314279
>>15312796
It looks so damn great, I hope you end up making a shitload of money.
83e881 No.15314686
Yellow (almost invisible) is where Unity accuses the box cast of hitting, this is what starts the whole process
White is the yellow point moved into the character facing plane (point = character position, normal = character.right).NearestPointInPlane(raycast hit)
Green is starting position of a backwards walking sequence of sphere casts (these tends to find hard edges). Maybe I could replace with raycasts where only the last one is a spherecast to reposition the result
Blue is where each spherecast hits
Red is where the backwards walking gives up
Teal is procedure result.
Now I only need to be able to differentiate different edges found by teals somehow.
There are plenty of optimizations waiting to happen, but that will have to wait until my character is actually doing the stuff with the ledges, so very very low priority
f2c551 No.15314714
>>15289090
As long as it's just pixels and not TILES
c6a995 No.15314986
>>15311487
>How did you guys start your journey in game development?
When I was 13 (so about 15 years ago) I messed around with a shitty program called RPG Toolkit. It was pretty terrible in hindsight. Think RPG Maker, but done by a 1MA with 2002 tech. As bad as it was, it introduced me to scripting and basic programming structures (if, while, etc). Obviously I was too young to make anything worthwhile.
Later, in 2007, I joined the development team for Mordor XP, which was a community mod for an obscure Windows dungeon crawler. Fell apart in a year or two, but I picked up drawing in Photoshop around this time, and contributed in that way. I still wanted to work for videogames, so I went off to college.
My 2-year course ended up taking 4 years to complete, because I didn't want to move to (((Toronto))) and also had difficulties finding a suitable co-op placement (I also failed my final semester because of WoW and had to redo it. I later sold my account to a friend for $200). The education was pretty awful; they did not cover a C-family language, and we had two semesters introducing us to Java. They didn't even get as far as generic typing. So, in a way, I feel all my coding has been self taught.
One co-op was at Blackberry doing server tech support for their enterprise clients (Outlook emails pushed to mobile devices). At this point they were already sacking people left and right due to their layoffs so I wouldn't get rehired. The one client I can remember, they wanted a simple phone list for all their connected devices. Simple enough, right? I didn't know how to do it and the solution seemed to be to clone the server into a new environment and import the list and view it that way. Turns out this was a bad idea and I let them dictate how to do it, and brought down their email server for about 3 hours. US Department of Treasury and Mint, New York Division. So that was fun.
My other co-op was at a small local game studio. They used XNA framework, and I think that's why I stuck with C# and XNA for so long, before finally moving to SFML last year. I didn't contribute much, I almost feel like I wasted their time. They did make a game before and after I worked there, so that was cool. I mean, you can check out Gravonaut on the iStore, but it's ancient by now.
So basically, I messed around with a little bit of everything, learned algorithms and more compsci stuff on my own after graduation, but still haven't just like made game yet.
Oh, actually one other fun thing I did in high school (using Turing). I made a shitty "dodge the falling balls" game without OOP somehow, since instancing confused the fuck out of me. I put it in a shared class folder, but I also made it spam the user's personal drive with hundreds of empty folders every second. I only got one person with it, and I had to stay after class and delete them. I just sorted by date and it was no problem for me, could've gotten in a lot of trouble
>How much did you know before going in?
Nothing really. Just slowly accumulated knowledge, plus focused learning on whatever topic I needed at the time.
>When you first started what resource did you use to help you learn? Youtube tutorials, torrents, books, pdfs, or just reading the documentation?
This was before YouTube. Or at least, I never used it. RTFM is a fantastic skill to have and will carry you far. Discussion boards about how to approach certain problems, StackOverflow/QA sites are useful, too.
>What was your first failed project?
All of them, technically. I haven't finished a single playable demo in the 10+ years I've been hobbying at it.
>What was your first finished project?
I made a "game" where you can bump into a block from a certain direction to activate it, and then flip it into an adjacent tile, reversing the allowed directions. It was more or less a prototype and the drive I had it on seems ot be slow and failing, else I'd show it off, even though it's a non-game
>How many failures/unfinished works/projects did you have in your belt before feeling balanced?
I mean, I must have lost count of how many projects I've started and abandoned by now
I've been active in these threads since 2012 or so, back when "Motavio" was a thread mascot and we had Recap Mondays. I remmeber Catmouth Island was a popular game at the time.
83e881 No.15315078
>>15311487
>How did you guys start your journey in game development?
Making scripts in RPGMaker XP and attempting to recreate cool things I saw in FF7/8 and others RPGs of the same years. Of course, I never managed. But I did a script that enabled you to use the mouse to move/click menus (although the move part was taken from another pathfinder script)
>How much did you know before going in?
How to open a browser and yahoo things
>What was your first finished project?
Never heard of those
>How many failures/unfinished works/projects did you have in your belt before feeling balanced?
There is no such thing
Just like start some shit, even if it's too wild of a dream, you will certainly learn something along the way that will help you in your next crazy project.
I don't even care too much about my current project, but I know that if I don't finish it, I will never finish anything. This is the best chance I ever got on finishing something, and I will not let it go away for nothing in this world
2e0643 No.15316181
Quick question
Is it worth it to have Clickteam Fusion for any reason?
4556cb No.15316440
Hello people, is been a while since I posted, in the past I made some stuff for GDI Doujin and their Bavarian Scout Ranger game project, currently I am in need of some small works so I would like to open up for small commissions, what I do right now is clothing, my texture detail work is horrible but I have gotten a good grasp on modeling clothes, I use Marvelous Designer and Maya most of the time.
Small jobs for small prices I guess, not doing rigging at the moment, although my topology is usually good now it is still a pain to get movement right.
If you are interested please leave a reply.
3dbadf No.15316443
>>15302315
Fixed a bunch of the poly issues and gave some better looking damage. Regarding the supply bags I figure they'd be held up by strong velcro, most of the references I looked had didn't really have a hugely obvious way to bags to be held onto the armor.
>>15303710
I see what you mean about his build and some of the armor points. I'll see if I can alter him a bit to get him up there, though based on the body I'm using it'll be kind of tough. I think I will get rid of the antennae before I export too, it was just something I wanted to throw in there. I will be making heavily altered version of the Pathfinder, Breacher, and Stealth Suit but I won't be releasing these models to the public, I've wanted my own unique set for a while.
39e209 No.15316463
>>15311892
I didn't read your giant wall of text, but that first picture is basically a picture perfect representation of the current game devs. It's so cucked it's not even funny. Show that shit to Lookglass studios.
e323e7 No.15316698
I'm looking through insurgency's (source game) gun models now. Why do they have two models for the same gun? (e.g. sks "reference" is 6000 tris, sks is just 1500 tris). Is one used for close proximity to the camera and the other the low poly mesh for further away? It's weird because the low poly is a different size. I don't know if that's the reasoning.
Also, how would one catch you if you ripped models from other games?
bf5624 No.15317076
>>15313876
>how helpful is python for creating a game?
Python is a great entry level language.
Because python is an interpreted language there's no need to wait for compilation, and it's suited to the purpose of learning the very basics of programming (using logic in a programming context).
Also, I have some good news, if you're a logical person you will have a natural affinity for programming logic, as you have a network of transferable knowledge, and it will just be a matter of your brain adjusting those neuronal pathways to a programming context. Thus, python is useful here bcs it's easy to use, and you can get more practice time in faster w/o having to mess with basic shit; as to solidify those logic pathways in your brain for a programming context.
After one solidifies the understanding of said logic, I'd recommend to learn a low-level C language (preferably C++ or C), and learn the low-level aspects of programming. This is extremely relevant to gamedev as games have a real-time performance requirement; which requires knowledge of smart memory/cache/cpu usage practices. Note: the importance of understanding these low-level aspects cannot be understated (pointers/memory addresses, heap/cache, and how this interacts with the CPU).
The logic of these steps are rooted in this idea: take the most efficient route to building transferable knowledge.
I.e. solidify an understanding of programming logic via python (transferable to all languages), and to then learn the low-level aspects for how a programming language interacts with the CPU (transferable to all languages).
These are the basic foundation stones to learning to code in a gamedev context.
However, there are additional building blocks of knowledge one needs (design patterns, high to low level abstract, design principles, language specific quirks, etc), but with those cornerstones of transferable knowledge any language will be quite accessible to you.
>Is it a good language suited to that purpose?
Python isn't suited to games, and with enough time produces bad-practices that one learns due to the intrinsic qualities of the language (very high level language, interpreted, etc).
It's really only useful for practice/learning, and shitting out some quick logic w/low effort + no concern for performance (that's one reason it's so popular in the scientific field).
e5c0e3 No.15317174
>>15313876
And once you’ve learned all the low level stuff, you’re ready to make the jump to Rust.
d9155f No.15317180
>>15317174
>not going full haskell
1900c9 No.15317202
>>15317174
>Not pictured
The rust boat refusing to move because the captain can't mathematically prove that there aren't rocks somewhere in the ocean that the pilot could potentially navigate over.
>Also not pictured
The two men with paddles on the inside of the ship actually pushing the damn thing around.
>Also not pictured
That the boat takes four days and nights to unmoor, but only the first time, hopefully.
>What is actually pictured
An unmerged PR against the develop branch which only compiles on nightly with a handful of opt-in unstable features using a very specific set of dependencies.
Come back in a year or so and you might actually have something developer ready which looks vaguely like that.
d66ec0 No.15317204
>>15317174
The one thing Rust succeeds at is being an EVEN HARDER language to write in than C++. To think that it also runs slower and takes 10x as much time to compile as C++, a language that already takes ridiculous amounts to fime to compile.
461b0f No.15317214
In Unity, is there a way to check if and which colliders are intersecting with a chosen collider with the option to pick which layers to ignore during the check? I don't want it happening through normal collision and having to continuously keep tabs with OnTriggerEnter/Leave/Stay and all that because I don't need this information all the time, only triggered by some very rare events.
d9155f No.15317219
>>15317214
you could just check the bounds of every collider in the scene yourself, but that's about as tedious as using ontriggerenter
248d4e No.15317222
>>15317174
>never heard of this rust thing
>sounds too good to be true
>now hear all sorts of conflicting things
Can anyone who's actually worked with both c++ and rust tell about their experience?
1900c9 No.15317255
>>15317222
It's very fun, but a lot of things you take for granted in C are just not as stable or battle tested in rust. It causes a frustrating amount of friction, especially if your project is in an area where you're not comfortable enough to just dive into the internals of whatever libraries you're using and start fixing things yourself.
I don't "work" with rust, no one does. But I've written enough hobby rust to have a love/hate relationship with it.
d66ec0 No.15317262
>>15317255
So basically it's a toy language.
1900c9 No.15317301
>>15317262
It's not racket levels of toy language, but it doesn't make me want to fucking kill myself like half the languages currently in production do, so it must be at least slightly a toy language.
3a1836 No.15317465
>>15311487
>How did you guys start your journey in game development?
BASIC on the color computer 2. Later C and some assembly on the Amiga 500. Then Turbo C and Turbo Assembler for my 486dx2. So yeah, like 1986 - 1996 self-teaching. I finished a few little games along the way. Now I just mess with GPUs exclusively; OpenCL and GLSL for simulations and even a few simple games.
>>15317222
Rust isn't at a point that it can be taken seriously. Maybe someday. It has a very long way to go.
89e04d No.15317871
>>15317465
so, no one interested in some 3D modeled clothes right now? I think my latest "client" died or something, they don't respond.
837743 No.15318216
>>15317214
Are you talking about Collision or Triggers?
OnCollisionEnter lists all the colliders currently colliding as explained here https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html
If you're looking for triggers, as far as I understand it OnTriggerEnter is called once for each trigger intersecting with another. So inside of OnTriggerenter you could add the specific collider being triggered to an array of colliders and do something with that.
Is this what you're looking for?
83e881 No.15319613
Ledge detection coming up
Now I need to be able to tell how big the ledge actually is, and cache it.
I had a ton of false positives early on, so hopefully they won't come back to haunt me
3dbadf No.15319618
Any crits on the render before I finalize it?
c6a995 No.15320142
>>15317871
What will happen:
>find anon who considers you essential to his game/progress
>he's a really bro guy so you take on a little more than 2 or 3 pieces for him
>half to stop halfway through because the client decides you contact you again
>you need the money so you have to prioritize him
>we never see you again
>find out that things fell through with the client, and then you ended up with dick cancer or something that needed your immediate attention in real life so you no longer have time to visit the threads, except for lurking for an hour every two months
Seen it happen
>>15317222
My understanding is that Rust is designed to be semantically "perfect". That is, you don't need to test for null, because the program should never semantically end up in that state, etc etc. It's basically a programming language by programmers for programmers. It's still very young and in development, so compilers are slow and there is not a lot of widespread support.
6df186 No.15320319
Im new to 3D modelling in blender. Why is the lighting so fucked up with the normal map?
3dbadf No.15320340
>>15320319
Maybe it's just a rendering issue. Have you looked at it through other mediums?
b996b2 No.15320963
I made a cool bug trying to fix a bug happening in the OpenGL immediate mode rendering path.
also the engine has back face culling but I decided to not merge polygons in the way I was doing it. This is because I might make a software renderer for the engine in the future for platforms that don't support OpenGL. In that case it makes sense to keep the increased polycount because I can Z-sort it with the BSP, meaning I only need to write to the Z buffer and don't need to read from it. Since Z buffering is worse in software but draw calls don't have as much overhead.
The back face culling only reduces polycount a little bit but its still useful.
66f9b4 No.15321253
>>15318216
>Are you talking about Collision or Triggers?
I meant triggers.
>you could add the specific collider being triggered to an array of colliders and do something with that.
My problem is precisely that I want to avoid using this method and I was hoping there might be some alternative. Continuously keeping score of what enters and leaves the trigger is a huge waste for what I'm trying to do, because I don't need this information all the time. But I guess there's no other solution, I'll have to think how to make this work without it eating up too much framerate.
>>15319618
Pad on a right shoulder looks too sharp at its peak when reflecting specular lighting.
277264 No.15321743
Progress. Finished new eyes and starting pickup.
141503 No.15321787
>>15321743
House looks like a southern ranch for some reason.
83c562 No.15321812
>>15321787
>southern
You could say that, yeah.
bf5624 No.15321944
>>15321253
Use a technique inspired by an observer pattern.
The trigger waits to be triggered by a specific component inheriting from an IActivatable interface, and upon triggering due to having that interface, it adds the collider/component needed to an observed collection you iterate per frame (which is specified in the implementation of IActivatable.AddToObservedCollection()).
You can have different collections that perform different tasks, which you add to depending on what collection you specify in the implementation of the IActivatable interface's add method.
66f9b4 No.15322953
>>15321944
>IActivatable
Could you point me to some tutorial that explains the basics or a working in Unity example I could learn from by picking it apart? I tried to search for it, but everything I find is above my understanding.
1e69d3 No.15323139
>start modding a VN in Renpy
>runs on Python
>ok
>refuses tab spaces for whatever reason, wants four normal spaces instead
>functions that only accept floats do not automatically convert 1 to 1.0 and similar
>getting an object's precise coordinates impossible without using workarounds
>instructions do not wait for previous timed instructions to finish; if you ask an object to move to the right for one second and then mirror itself, you need to start moving it, pause other instructions for one second, and THEN mirror it, otherwise the mirror instruction will overrule the move one and the object will stay in place
What the everliving fuck. Why is something that was obviously designed so that even a troglodyte can use it also so goddamn idiotic with quality of life?
c6a995 No.15323247
>>15322953
I'll do you one better. If you're learning to program, it is better in 99% of cases to learn a "real" language first, rather and a one-off proprietary scripting language. Therefore, with Unity, it should be C# based. C# is a perfectly fine language with a good balance between accessibility and flexibility (eg automatic memory management and type safety); if you need more power C and C++ are good options as well (though do note that C redundant since you'll be reimplementing C++ on your own essentially, and won't need the low level power it provides, and at the same time, choosing between C++ and C# for performance is retarded, since they're more than enough for anyone in here - instead use whichever paradigm appeals to you more).
That said, if you stick with C#, read over all these and it will give you a wonderful foundation for the language.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/index
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/index
bf5624 No.15324039
>>15322953
I don't know of a unity example off the top of my head, but I can point you in the right direction.
I did also word that sorta weird, my excuse is I was trying on my mobile phone
>IActivatable
The I in IActivatable is the syntax to denote "Activatable" is using the interface keyword.
Here's an example of what I mean:
public interface IActivatable{
void AddToObservedCollection();
}
//inheriting from IActivatable interface too
public class ActivatableTriggeredBehaviour : Monobehaviour, IActivatable
{
//implement IActivatable methods/properties here
public void AddToObservedCollection ()
{
//add to ActivatedBehaviourSystem list
staticHelper.AddToSpecificObservedCollection (this);
}
}
//SEPARATE
//Allowing you to CUSTOM DEFINE the order of your update ticks for your systems, and not rely on unity's shit script execution order bs
public class ActivatedBehaviourSystem
{
public List <GOs> Gos;
void Start ()
{
//do init stuff necessary
}
void Update ()
{
foreach (var g in Gos)
{
DoSomeFunctionality(g);
}
}
void DoSomeFunctionality (Go g)
{
//do stuff!
}
}
//hide in inspector //custom order of initialization and update ticks here
public class UpdateSystems : Monobehaviour
{
ActivatedBehaviour activatedBehaviour = new bla;
void Start ()
{
activatedBehaviourSystem.Start();
otherBehaviourSystem.Start();
otherThingSystem.Start();
}
void Update ()
{
activatedBehaviour.Update();
otherBehaviourSystem.Update();
otherThingSystem.Update();
}
}
Interfaces are just contracts of functionality, used here to just make things easier, and we're also abiding by the interface segregation principle of SOLID.
So, you'd have a monobehaviour that inherits from the interface, and check for the component (which has the interface) by the triggered GO (if it's not null); then if it has the interface you perform the AddToObservedCollection method.
Per your implementation of the method, it would add the GO/component/etc to the specified collection, which is iterated on per frame and performs your wanted logic/functionality.
This is basically utilizing an entity-component-system design pattern, but isn't as thorough as I'd want.
Though, that's about what you'd need to do what I mentioned.
Code is untested and is using shorthand for stuff.
7790a7 No.15324076
https://my.mixtape.moe/mjctph.7z
Had made a shitty tetris game on demo day and couple of anons played it. Now made improvements to it and is starting to look more like an actual game now.
Use mouse to move, left click to rotate and hold right click to make speedy fall.
Known issues:
<Still can't quit without losing
<Can't lose as long as you hold down the right mouse
<Blocks can still sometimes overlap
c6a995 No.15324701
It's trivial enough to implement a Stack with an array, just track the end point and possibly resize the array if needed. With a Queue, you have to manage a front and end that can wrap around, and again resize the array if needed.
If you insert in a random place, you HAVE to move elements around, which is expensive. Are you able to use a tree to insert elements via swapping, yet keep it unordered?
c6a995 No.15325393
>>15325378
>>15325378
>>15325378
>>15325378
>>15325378
_________
/\__/\ /
( ´∀`)< >>15325378
( ) \_____
| | |
(__)_)