11de0d No.14581585
Slideshow edition
Resources
>>>/agdg/
>>>/vm/
>#8/agdg/ via irc.rizon.net
Links
>Wiki: http://8agdg.wikidot.com/
>Beginner's guide: >>>/agdg/29080
>Previous thread: >>14569750
QUARTERLY DEMO DAY SCHEDULED FOR MAY 5TH
Polite reminder that the wiki exists, you are encouraged to contribute to it if you can (even if it's just your game page)
5d3b2e No.14581683
>5 minutes of progress
>5 hours of unit tests
28d1ac No.14581733
A couple of flaws like the bayonet lug being very far or the mag release being weird and I half-assed a few things like the sights and folding stock but thank god I'm finally done with the model.
Now to do the whole rest
1ffd39 No.14581838
Designing and animating UI for my game. This time it's responsive to window size.
894569 No.14581847
npc can move during dialogue+minor improvements
defe4e No.14581856
>>14581847
>visual scripting
>google chrome
>fraps
>framerate counter in a screenshot
>SJWpad++
894569 No.14581861
>>14581856
<visual scripting
>yes goyim, hardscript every single bit of dialogue and ai behaviour, ten trillion lines of code is perfectly fine
<fraps
i get unexplainable framespikes from obs, so it's pretty unreliable
<framerate counter in a screenshot
well this was right before i recorded the thing, so yeah
<SJWpad++
it's legit easier to just use this than to wait 3 minutes for visual studio to turn on
5d3b2e No.14581865
cebed6 No.14581867
>>14581838
Try a different font, something more matching the spirit of the game. Otherwise, looks good so far.
e8cb3f No.14581869
>>14581865
If I recall it correctly the author explicitly stated that if one is a Trump voter he shouldn't use his program because of muh xenophobia. Was it a chink that is living in baquette land that wrote it?
894569 No.14581873
>>14581869
well, unity is run by leftist lunatics and i still use it
if it works, there's not much of a point in changing software over views i don't really care about
cebed6 No.14581874
>>14581869
Who the fuck cares what he thinks?
>Don't use my program because Drumphomph is ebil
God, I want to smack the shit out of anyone who runs their dicksucker about politics like that, where it's not even an issue.
fb9635 No.14581922
>>14581838
those underlines and transitions are spicy
>>14581867
>Try a different font, something more matching the spirit of the game
surely its too early to make a statement like that when the game currently consists of primitives and mock-up art. Unless keyreal has actually made a definitive decision on the direction hes heading and I just missed the announcement
17d57f No.14581928
>>14581874
I honestly can't even imagine being this petty. If some cuck Shillary supporter played my game I honestly would not care. Maybe it would bring some happiness to their miserable life. Why try to divide people even more for stupid shit?
1ffd39 No.14581964
>>14581922
>>14581867
The 3D models and particles are currently all placeholders, which is why the font looks out of place. I'll begin working on the actual environments soon, and then the UI will look more natural. That's the plan, anyway…
b5578c No.14582045
>>14581874
>their dicksucker
That’s a good one
9affd3 No.14582232
YouTube embed. Click thumbnail to play.
Shilling a new DoD vid by Mike Acton relating to the new unity beta features, pretty quality.
You Unity faggos better eek out the last bit of performance u can from Unity and stop being OOP street shitters
i myself can’t stand the old way, it feels so wrong and unoptimized
b9ad3d No.14582250
>>14582232
>Unity finally does something right
>Mike Acton is involved
9affd3 No.14582303
>>14582250
right, about time
I’m glad they’ve been pushed by Mike and others into acknowledging just how bad performance was, by default, using the data design pattern and programming paradigm that the C# side of unity promoted as standard overhead (the EC/OOP Unity way).
It could be gotten around, slightly, with certain tacked on design patterns but shitters wouldn’t do even that; so by default providing this better practice it’ll inevitably raise the bar for performance in general.
Also pretty sure there’s only C# support for the new features, and JavaScript ppl are being left in the dust (yes I’m smug about this, fuck JS)
894569 No.14582323
>>14582232
but OOP street shitting is my life
i'm still gonna wait for unity to release a tutorial on some empty project for this
224d88 No.14582327
>>14581733
Very ugly gun but well modeled.
4a20c5 No.14582336
>>14582303
I don't envy the job they have trying to re-educate all the Pajeets they've attracted.
9affd3 No.14582384
>>14581733
Look at quixel for texturing, its really easy to use, and has photoshop like layers and tools but in a 3D model context w/all layers of textures being paintable/and or/generatable (albedo, normal, AO, materials, etc).
>>14581928
Agreed
>through dick, unity
>through games, unity
Games supply a context where politics has no place, and is in my view a medium where it’s about fun and nothing else. To be misconstrued as a vehicle for some political agenda is really corrupting what it’s all about; though it does serve as a method of identifying “developers” who don’t really care about games, and are using it as a tool instead of just loving the act of playing games in itself.
>>14582323
>OOP street shitting is my life
Hah, yeah it was my life too, up until a few weeks ago. It’s a hard switch, but once u get the pattern down you’ll have a spine-tingling revelation of just how much better this approach is (I know that sounds pretensious, and I’m a faggot, but it’s true to my experience).
Understandable that u want to wait until it’s released as stable, but now is a good time to make at least a basic prototype to learn it.
I’ve got to rewrite my game in this too… and I see myself totally re-doing a lot of it as I can visualize way better approaches that quickly and efficiently solve the real problems; instead of adding layers of abstraction that are only necessary due to the mental model one builds using a more OOP influence design pattern.
>>14582336
My bet is that the pajeets will stick with the “easy” (I.e. already learned) OOP approach, and not migrate to the new API; creating an easily identifiable division between developers who care about performance/games, and those who are just shitting out games.
ea72ba No.14582403
>>14581856
Well its open source so he/she/they have no say in what i do with it
>>14581873
Unity has shitty practices backing it
e8cb3f No.14582423
>>14582232
High Performance Python when? :^)
>>14581874
>Who the fuck cares what he thinks?
Well I just wanted to explain the other anon why naming it as SJWpad++ is a suitable option. Since I am a loonix fag I don't really care much about it since I have other text editors/IDE to choose from.
80a29a No.14582467
HookTube embed. Click on thumbnail to play.
Cookinganon on suicide watch
9affd3 No.14582502
>>14582467
>shekelyiffizen: feature bloat the "game"
>STILL hasn't released all promised features
>STILL adding features
>never ever to be fully released
wew
9affd3 No.14582508
>>14582502
>STILL adding new features
2acb55 No.14582541
>>14582467
Wanna bet it will be the same old shitty recipe system every game has, but with autistic detail where it doesn't need?
Like alchemy in kingdom come, a waste of potential making a system with large complexity and shallow depth
fbdd98 No.14582567
>>14582327
Thanks, it's mostly intentional.
>>14582384
>Look at quixel for texturing
Thanks, that looks interesting and isn't even that expensive. Might be good.
0109fe No.14582620
>>14581856
>he doesn't separate his data and code
>he doesn't want his data to be easily modifiable
jew
0109fe No.14582626
>>14582250
Mike action is terrible to work with, and a massive numale, so he belongs at Unity
5b8048 No.14582638
Just stopping by to check in with everyone, hoping this thread doesn't get derailed like the last one did. Progress is slow but above zero.
b9ad3d No.14582646
>>14582626
Details on him being terrible to work with? Given how shit Unity is, their team probably deserves it.
f508d9 No.14582648
>>14581856
>not using the source engine
9affd3 No.14582669
>>14582626
first i've heard of that.
he seems too logical of a person from the talks I've watched to be like that, but a numale could take that type of purely logical standpoint as threatening.
basically, do u have proof?
0109fe No.14582676
>>14582646
He expects perfection at the very minimum, while trying to "democratize" game development, meaning getting every single shitter in the world churning out some sort of trash. He also proactively seeks out racism to condemn. Not at all surprised that he ended up at Unity.
I know that a lot of the people who work at Unity are even bigger cunts, except without actually being a great programming, so I'm looking forward to seeing what happens with them.
anyway, my favorite part about all this
>unity has horrible programming pratices
>runs like shit
>they hire a bunch of white males to fix it
>>14582669
He's not actually that bad, just the kind of "cocky cunt" that I hate he's actually good at what he does though
6a9648 No.14582678
File: 3826efa13296066⋯.png (Spoiler Image, 433.81 KB, 1068x1463, 1068:1463, tracksuit angel Godette.png)

>>14582648
>not using Godot
b9ad3d No.14582692
>>14582676
>He expects perfection at the very minimum, while trying to "democratize" game development
After barely putting up with the industry's retarded abuse of OOP for so long, it's understandable he'd have a quick temper. I'm alright with it as long as he pushes good programming practices and people use them (even if it's only to make the man shut up).
e7ec36 No.14582729
>>14582648
Source costs ~$25000-$50000 to use commercially (I forget which figure)
20e7ac No.14582737
>>14582678
This nigger knows.
80a29a No.14582756
>>14582648
Source mapping and lighting is comfy (except for hammer crashing constantly and doing shit like misplacing vertices if you don't have a user-made patch), but I'd imagine sifting through Valve's code would be terrible.
9affd3 No.14582757
>>14582676
kek, i love the irony
>I know that a lot of the people who work at Unity are even bigger cunts
u sound like you've either: worked within with unity, or, are talking out of your ass; hard to believe as it's "my dad works at nintendo" tier.
Though I've heard similar sentiments posted online from previous unity employees for a select few people; so the part about a few cunts working there isn't a far stretch, and being common in any real world work environment.
>"democratize" game development
you have the quote wrong btw, its:
>democratize data-oriented programming
so, to make data-oriented programming available to everyone, and to thusly acknowledge that unity has shit standards for performance. which i agree with, and anyone with half a brain that's used unity or played a unity game should agree with.
>He expects perfection at the very minimum
>he's actually good at what he does though
good, and that's all that really matters in the end
27c044 No.14582771
headpat simulator 2018, coming to a fapstation near you in maybe 2018 maybe 2019 i dont know.
name is debatable, depending on when this shit is finished.
Headpats have been officially confirmed as a game mechanic, as demanded by popular demand from like one guy here.
have a headpat-preview.
also sign up to my mailing list in which i will not mail anyone, but it makes me feel like maybe i might actually sell one or two copies when this shit is done.
www.shimapanzer.com
anyone happen to know other places where i should be shilling my waifus and tanks game?
0109fe No.14582776
>>14582757
>you have the quote wrong btw
I was parapharsing his mentality using their terminology,"btw"
b9ad3d No.14582791
>>14582771
If it has catgirls and headpatting, >>>/monster/
5b8048 No.14582795
>>14582678
>Godot-tan is a thing, and of course Rule34 is still in application
Ah, this universe sometimes…
>>14582776
Anyone who has spent any amount of time watching the "meta-game" of Unreal vs Unity knows this. Fucking SJW white-knight types…
9affd3 No.14582805
b9ad3d No.14582806
Any enginedev fags on here might find https://www.gdcvault.com/play/1025331/Inertialization-High-Performance-Animation-Transitions interesting.
>This talk presents a new high-performance approach to animation transitions that the Microsoft team developed for 'Gears of War 4'. The traditional approach to animation transitions involves blending between the old source animation state and the new target animation state; however this can have a significant performance cost, because one must evaluate both the source and target animation states during a transition, effectively doubling the animation evaluation cost. For 'Gears of War 4', Microsoft eliminated these blended transitions altogether and chose to instead handle motion transitions as a post-process with a technique called "inertialization". Eliminating these blended transitions gave them a significant performance boost because they no longer needed to evaluate multiple animation states during the transition. In this talk, David Bollo presents the mathematics behind Microsoft's inertialization technique, for both vector and quaternion values, and show how it can be easily introduced into an existing game engine.
27c044 No.14582813
>>14582791
sweet, tanks anon (haha)
have an 88 for your efforts
b9ad3d No.14582822
>>14582776
>>14582795
>>14582805
SJW shit aside, I get where he's coming from. The baseline engines and programming techniques newfags reach for are pretty bad and we could save a lot of headaches through making and promoting saner default options.
0109fe No.14582824
>>14582813
Are you going to add a catgirl graveyard?
27c044 No.14582839
>>14582824
uhhh how would you imagine a catgirl graveyard?
0109fe No.14582840
>>14582813
and can you post some of your actual game development instead of promotional art?
d909ab No.14582853
>>14582806
That's pretty clever. I wonder how it compares in practice rather than theory.
9affd3 No.14582856
>>14582771
u nailed the anime style, gj u deserve a heatpat yourself
>>14582822
good points.
thanks for exposing that info man, it's good to know.
80a29a No.14582864
>>14582806
Looks cool. If I understand it, at the moment of transition, they store each bones' velocity, position, and acceleration, and then interpolate the bones into the new animation, removing the need to read two animations when blending from one to another.
>>14582853
It's used in GoW 4 apparently. The performance improvement depends on how many animations transitions are needed. I'd like to see more side-by-side comparisons, I wonder if it's better than blending visually.
0109fe No.14582876
I'm impressed by GDC this year, so far only about a half of their talks are irredeemable garbage
>>14582864
Are there any actual animations I can see? It is about animation
27c044 No.14582881
>>14582856
heck yesm
>>14582840
heres is a super professional screenshot of hardcore game development i took, just for you friend
894569 No.14582884
minor improvements on the inventory
i'm also having this really annoying issue with the ui, where everytime i apply a change to the canvas prefab, the one in the scene for god knows what reason suddenly moves random rects, mainly the scrollbars
i don't really need the canvas to be a prefab, but this bugs me to no end
>>14582876
what the fuck do they mean by "believable" performance
b9ad3d No.14582890
>>14582864
>>14582876
The actual panel video is probably paid GDC content. Most of the free videos are either useless social justice stuff or shit like Yoko Taro and a buddy talking for an hour.
>>14582884
He's talking about acting.
d909ab No.14582891
>>14582864
>It's used in GoW 4 apparently.
Right, so it's definitely possible to make passable stuff with it, but I'm wondering if it's much different to work with.
894569 No.14582895
>>14582890
>acting
nevermind, i'm retarded and can't english
e93bc5 No.14582896
894569 No.14582899
>>14582896
it's worse than unreal, but the license is better
e93bc5 No.14582906
>>14582899
What if I wanted to make a 2d sprite based game?
5d3b2e No.14582909
>>14582771
Will this have haptic feedback support?
1d4b76 No.14582910
>>14582906
you could just use love2d
11de0d No.14582919
>>14582906
For a 2D game you might as well use Godot + C++
eb8e51 No.14582925
b9ad3d No.14582930
>>14582906
Godot if you want the usual engine IDE bullshit and all its features, LÖVE for something stripped-down but reasonably easy, and Orx for data driven stuff.
5bc433 No.14582950
>>14582908
Wtf that graphic is worded in a misleading way.
They apparently own 5% of Activision, wich means they are an importatn investor, but they probably dont even get special rights for that.
They hold 40% of Epics stock and it looks like Epics board of directors also has employees on it, so they dont even have 40% of the seats on the board.
You are still giving money to the chinks, but this implies, that they own them outright and they clearly dont.
0109fe No.14582976
>>14582890
Is there a division between the two? I'm not retarded enough to actually to go GDC, so I assumed they shove all the actual talks in with the "woman talking about anime and mobile games" talks
eb8e51 No.14582981
Streamable embed. Click thumbnail to play.
I want to make a standalone First Person game like embed related, but don't know where to start with GZDoom.
I found this guide http://www.lofibucket.com/articles/modding_doom.html on making a standalone mod, but I am still confused about what tools and scripting languages (GZDoom supports 3?) I should be using
b9ad3d No.14582982
>>14582976
Yeah, there's a separate page for free and paid content. Free content is mostly presentations stored as .pdf with a couple videos here and there, while paid has more of everything.
06d5e6 No.14582992
>>14582982
Why is there no pirated version?
0109fe No.14583022
>>14582992
We're talking about the good goy passes to see it live, I think everything is uploaded to youtube afterwards
80a29a No.14583042
>>14583022
Not everything, some stuff is behind a paywall, $550 per person per year.
0109fe No.14583095
>>14583042
gee, that doesn't sound very democratized
2acb55 No.14583188
Making the armatures for the wings and hair will probably take the whole week
0109fe No.14583191
There used to be a C# repository of the decompiled managed side of unity on github, before (((they))) shoahed it. Can't find it anywhere else. Anyone happen to have saved a copy?
6a9648 No.14583202
0109fe No.14583204
Surprisingly, they quietly released the C# source code some time after the shoah
https://github.com/Unity-Technologies/UnityCsReference
2acb55 No.14583210
>>14583202
You need to study more Succubus anatomy dude
a2c1ff No.14583217
Remember to give compliments and critique, anons.
>>14583188
Nice, creepy girls are cute.
0109fe No.14583218
>>14583210
>remember to study anatomy
>links to animeshit
this explains a lot
2acb55 No.14583225
>>14583217
She is not creepy, she is clumsy and awkward
5d3b2e No.14583230
>>14583217
>Nice, creepy girls are cute.
Sometimes too cute.
a2c1ff No.14583231
>>14583225
Still pretty hot
2acb55 No.14583302
>>14583231
>Nintendo will never acknowledge the great potential of the Hex Maniac…
3cff04 No.14583335
>>14583230
It can't be helped that they can bully you all day long and you still can't really be mad at them so long as the merest hint that they overdid it sends them into a state of blind panic.
0109fe No.14583391
>>14583335
Anon's life savings won't last forever, we have to get the bully in while we can
f588b7 No.14583414
>>14583302
>>14583231
She was the only good thing to come out of gen 6
6f0b92 No.14583438
http://www.modernescpp.com/index.php/no-new-new
Are you ready for the next generation of C++? Pointers are now deprecated in C++20
24700a No.14583440
>>14583231
>>14583302
Purple Tomoko is the best.
6a9648 No.14583452
>>14583302
>>14583440
to bad no one cares about her little sister
11de0d No.14583515
>>14583438
>it wasn't posted on April 1st
T-this is still a joke right?
c5d31d No.14583522
>>14583438
More reason to use C. Sadly I'm stuck with C++, because I already wrong all the hard parts of my engine with the STL. I will make an effort to get away from C++11 though
0109fe No.14583557
>arrays are arrays, elements exist linearly in memory
>in multidimensional arrays, elements are laid out row by row
>jagged arrays are objects that contain other arrays (also objects)
>multidimensional arrays should be faster, but accessing them is handled as function calls in the IL
This is complete bullshit, I'm just going to use a flat array for everything
11de0d No.14583618
0109fe No.14583627
>>14583618
they joke about this, but people have been lobbying to remove primitive types in Java for decades
6e2180 No.14583628
>>14583557
Must be C#. If i remember the compiler was optimized for the more common case (single dim array). Multidim arrays should be comparable in speed to jagged ones, but they arent
f15dbb No.14583640
>>14583522
>>14583515
Explain why one would want to use pointers when you have zero-cost abstractions that provide you with additional safety features (i.e. safer way to iterate over std::array)
(Of course, an internal representation of pointers would have to continue to exist, even if they actually removed pointers.)
3520ae No.14583682
>>14582384
>>14582567
>quixel
I can wholeheartedly recommend Substance.
>>14583188
Not bad, but horns > head wings.
Anyone else can't wait for Blender 2.8? I'm not interested in EEVEE as much as I'm interested in multi-object editing. Right now I need to rely on a plugin to do the UV layout for multiple objects onto one texture in a comfortable way.
7de5e3 No.14583732
>>14582881
>Skype
>Photoshop
>Google Chrome
>Steam
>didn't autohide the taskbar
Prepare to be bullied
11de0d No.14583759
>>14583640
I enjoy not having to include std bullshit, not breaking compatibility with 90% of all code written previously and available online, and being a grumpy old man who doesn't like those newfangled automadoos and pointers that may or may not have hit the gym.
0109fe No.14583832
>>14583823
>"we are only successful if you're successful"
>we are very, very, very grateful for your continued love and support
>pulls hands to chest
>unity gets huge amounts of money from failed individuals/teams that buy their shit or assets and then fail
>charges for tons of services that cost money regardless of how you do
I've never seen someone who wasn't a Jew lie this blatantly
0b5f97 No.14583902
>>14582776
I both agree and vehemently disagree. Yes, it's very annoying that you have to master programming languages and the various dev tools before you can really make a good game. But at the same time, that need for mastery is what keeps lazy shitstains who just want to make a quick buck making nothing but shitty Unity Personal Edition games using store bought assets.
I'd much rather game dev tools go in the direction where a good dev can one-man-army a good game as opposed to some schmuck making a mediocre game without any prior knowledge.
>>14583682
How does Substance handle art styles that aren't photo-realistic? All their screenshots they use in their promotional materials show photo-realism. How does it handle anime shit?
cfb7ac No.14583913
>>14582771
It's a minor thing, but looking really closely at your model it seems like some of the straps on her outfit should have the outline effect on them but currently don't. In particular I'm looking at the belt/holster on her thigh where the buckle and the part of the belt that sticks out has the outline around it but the part going around doesn't have an outline, so it looks a little odd. Her bandolier probably should have an outline where it crosses her chest as well. I guess the flat colours are the style of the game, but the rifle is kind of a big chunk of brown and maybe a wood grain texture or some extra details on it would help to break it up a bit and make it more readable.
Otherwise she's very cute, and I'm definitely interested in seeing how your game turns out.
0109fe No.14583917
>>14582771
Maybe you could give us a few pointers on how to make cute anime shit
>>14583188
894569 No.14584056
>beta still doesn't work
>stable builds work fine but lack all the hip new features
well, no jobs for me i guess
3520ae No.14584067
>>14583902
It's a question of shaders. Those tools come with different shaders and you can write your own in GLSL. I'm almost certain they come with a toon shader, but I can't check right now, as I don't have access to my machine. You'd have to show me a screenshot of what you're going for. Then I might be able to help you.
You could try the 30 day trial. Painter is the program you'd want to look at. Just be sure to prepare a couple of models beforehand. You wouldn't want to start the trial before you have enough models to really try it out at your disposal.
"Preparing" means having the low poly models finished and unwrapped, the high poly models finished and the materials vertex painted onto them. Think of the materials in the physical sense: The parts of a model that are made out of different stuff (doesn't matter what it is) should have different vertex colors. They are crucial for masking the layers in Painter. Otherwise you have to draw pixel perfect, which is a waste of time. See pic related.
0109fe No.14584114
>>14583628
Yep, it's C#. I'm trying to learn the internals of it, but there really aren't many resources beyond just looking at the bytecode.
I'm targeting Net 4.6.1 using microsoft's latest C# compiler. The generated IL code for the functions all require the same stack space, but two of these use 8 bytes in instructions and the other two use 11.
public int OneAdd(int a)
{
a = a + 200;
return a;
}
public int TwoAdd(int a)
{
a += 200;
return a;
}
public int ThreeAdd(int a)
{
int x = (a + 200);
return x;
}
public int FourAdd(int a)
{
return (a + 200);
}
1 and 2 have identical bytecode. 3 and 4 have identical bytecode, which is different from 1 and 2, even though they all effectively do the same thing. That means that ThreeAdd is faster than OneAdd. Fun, right?
0b5f97 No.14584126
>>14584067
Breasts of The Mild is about what I'm aiming for. Also, thanks for the tips about vertex colors. Saves me a lot of hassle of figuring that out myself later.
3520ae No.14584224
>>14584126
That's cel shading (same as >>14582771), although without the outline and with specular highlights. The hair seems to use a different shader though, which is a good thing as the hair is arguably the worst part of the pic from the other Anon. (Hey headpatanon, looking into using a material/shader that posterizes for the hair might be worth looking into. They look and work very similar to cel shading, but don't reduce the color gradients to two colors, but any number you wish. On the screenshot that Anon posted Nintendo used four. To get the specular highlight to look like hair rather than a flat plastic surface, you could probably use a normal map.)
I'm pretty sure I could port one of the million cel shaders available online to Painter. Although I won't make any promises, because I'm busy. I'll look into this some more tomorrow. It's 3 am here.
191ffd No.14584238
>almost a quarter of the thread and no one sperging out about racism
>actual developers posting
w-what is this, this hasn't happened in months
8a8f8f No.14584246
YouTube embed. Click thumbnail to play.
>>14584126
Getting good cell shading is largely about getting good normals.
There's a GDC talk that goes into a good amount of detail on how GuiltyGear Xrd pulled off it's art-style. There are some good information in there even if you don't want to make a 1 to 1 copy of it.
3520ae No.14584258
191ffd No.14584272
>>14584114
>C# compiles to object-oriented assembly
what has god done?
1e1cfe No.14584278
>>14584238
Don't jinx it.
>>14584224
You can apply anisotropic effects to get the banded shine that most anime hair is drawn with, as well. Pic related.
4f7cf8 No.14584289
>>14584246
This process is extremely time consuming and unless you can afford a full team I would not recommend it, the results however are excellent and well beyond other games that use cell shading.
f1e520 No.14584328
Any good resources on character animation and transitioning forwards walking to stafing?
3520ae No.14584334
>>14584278
The transitions are still soft though. It's also rather intense and I have to say I like the BOTW one better.
8a8f8f No.14584372
>>14584289
That's why I said there was good information even if you don't want to make a 1 to 1 copy. I agree wholeheartedly that It's not viable to do exactly what they did, but some of the stuff they did is viable for a one or two man band. For example the way textures are laid out, using a tint texture for shadows, and maybe even the way they handle internal lines. I don't expect anyone here to control normals to the degree they did, have 600 bone characters, deform the mesh every key-frame, or have separate lighting for each character that changes as the characters animate.
>>14584328
Blend spaces?
191ffd No.14584390
Object-Oriented Programming in Assembly Language
By Randall Hyde, March 01, 1990
http://www.drdobbs.com/embedded-systems/object-oriented-programming-in-assembly/184408319
What does an object-oriented assembly-language program look Like? A better question to ask is, "What is the essence of an object-oriented program, and how does one capture it within an assembly language program?" Once you strip away the gloss and notation convenience provided by languages such as C++, you'll find that the two main features of an object-oriented program are polymorphism and inheritance.
356d63 No.14584538
>>14584328
I'm making a graphic about it, give me a few minutes
f2126c No.14584564
aab2f6 No.14584568
>>14584114
I think it's pretty obvious that compilers do this. Pretty much every compiler is going to have some problems properly optimizing things that seem equivelant due to internal representation. Even C/C++ programmers have to fight their compilers sometimes
Here's another example of similar failure:
I made a StringBuilder wrapper that has a much needed + overload for the Append method (so I can quickly refactor code that uses plain strings to use StringBuilder with little effort.)
The compiler is pretty good about optimizing most away calls and directly calling the Append method of the internal StringBuilder when I use it,
x += y + z + w compiles to a string.Join(…) call and then calls the Append method.
doing x = x + y + z + w correctly compiles to chained Append calls, so I write most of my long string processing that way, and use interpolated strings for other stuff, like printing out messages.
In your case, I bet that an assignment to a parameter is represented differently internally than an assignment to a new variable. The first two reassign a, the other two make a new variable and assign to that. The program tree for #3 probably gets optimized to the same as for #4 due to the very obvious unecessary need for the variable.
9affd3 No.14584589
>>14583204
I was pretty surprised too, it’ll come in handy for sure
>>14584056
I hope that’s just a winXP theme, as they dropped support for XP.
To get access to the job/ECS functionality you need the “special” beta to get it working (they have 2 versions of 2018.012b, unorganized, I know).
Look at the ECS/Job beta sub-forum on unity’s forum, and go2 the welcome page; u need that beta (2018.012b) linked on that page. Then u need to change the .NET. version to 4.0, reboot the editor, and edit the manifest.json to import the entities and job packages.
>>14583557
Luckily there’s quite a few algorithms for linear-izing multidimensional data.
Look at how compute shader multidimensional threads are linear-ized, and the same algorithm can be applied to data packing.
There’s also Morton codes for cell/neighbor cases.
191ffd No.14584591
>>14584568
The main point is the compiler is unpredictable. People routinely and dogmatically insist that the compiler is fantastic at basic optimizations, when it's clear it misses a bunch of basic shit, and fails to optimize increasing variable by 200 and returning it if you DON'T use an extra variable. You then also get to guess on how the language runtime is actually going to implement the opcodes (like a switch statement).
b9ad3d No.14584616
>when someone says something so incredibly retarded you waste over half an hour staring at his post in disbelief and wondering how the fuck he came to such a retarded conclusion
Please, make the pain stop. I can't dev like this
36cfe7 No.14584664
>>14584114
>>14584568
Don't worry about the IL code. No really. Sure its more instructions but unless you're bottlenecked in a performance critical loop, it won't ever make a perceptible difference.
That said, profile it. Also if using VS then make sure the Compiler Optimizations box is ticked under the solution project's properties. They really should look identical.
Also any book by Jon Skeet or Eric Lippert deals with under the hood shit. Jon is a hobby autist and Eric worked on a compiler team.
191ffd No.14584679
>>14584664
I'm doing it for fun, I don't expect to write any performance critical code in C#
36cfe7 No.14584694
>>14584679
Implement this for fun, I want to see the IL for this now
>public static void AddFive (ref int value, out ref result)
>{
> result = value + 200;
>}
0b5f97 No.14584711
>>14584616
>Complains about a post
>Doesn't show what post it is
1d4b76 No.14584728
Man I've hit another deadlock where I've lost any sense of how java works.
I have my test block with 2 subtypes, and to get the correct subtype to drop for each I have to override damageDropped(int) from the Block class by just adding
>protected int damageDropped(par1) {return par1;}
or having a switch case to return something else for whatever the value is
BUT, by including this override in the class prevents me from overriding idDropped(int) from the Block class
so idDropped() always returns the blockID with the damage value and any if/switch case to change that does nothing, idDropped just gets ignored in the extending class
now damageDropped() in the Block class only returns 0 and is called when creating a new ItemStack inside the dropBlockAsItem_do method
I thought that if I return 0 in my override for a subtype that idDropped should work as intended, but it doesn't
it doesn't make sense
36cfe7 No.14584738
>>14584728
>>14584728
I can't fucking understand your post. I know it's MC but post relevant snippets somewhere? It should behave like C#, no?
It sounds like whatever calling the code is doing so weirdly
36cfe7 No.14584746
>>14584728
>>14584738
Like why are you making a hard subtype when only the instance data gets changed? Am I missing something or are you just following the pattern it had in place?
aab2f6 No.14584765
>>14584591
Unless you're writing everything in assembly, you don't really know what your program actually is!
Compilers are unfortunately a neccessary evil.
>>14584738
C# and java are similar enough on the surface level that most assume they're the same, and different enough when you deep dive that you realize that they handle very similar things completely differently.
Just a few C# structs are user "java primitives", C# generics are real generics, C# loads entire assemblies instead of individual class files
>>14584694
I think you meant out int result, so thats what I compiled.
not the same guy obviously, but here's the il for it:
https://hastebin.com/ugafaxuhov.go
<it thinks IL is GO
36cfe7 No.14584779
>>14584765
Hey cool, ref/out really does save a few lines of IL for static math functions. Obviously not worth it for general code but it's a nice side optimization for tight loop code to use
Did you compile it with optimizations on? Also what did you use to view IL
aab2f6 No.14584795
>>14584779
I made a new console project in vs and compiled it straight with defaults
and I opened it up with ILSpy version 2.4.0.1963
0109fe No.14584800
>>14584765
you nigger, you've compiled that in debug mode, which is pretty useless for comparison purposes
36cfe7 No.14584802
>>14584800
>>14584795
Yeah turn optimizations on, then
aab2f6 No.14584804
1d4b76 No.14584805
>>14584746
No it's a totally new block class and as far as I know it's not a hard subtype. Only the block ID is registered, and based on the metadata it gets a block texture and name but the metadata is never specified anywhere else far as I can figure (metadata/subtype/damage all mean the same thing which further confuses me) but I can make it so that if block:0 is harvested, it drops block:1 and so on and so forth by using damageDropped inside the class
but damageDropped supersedes idDropped for some reason I can't figure
metadata is only ever set by crafting recipes or world building I think, the block classes get that metadata to then do things like change determine damageDropped or texture
0109fe No.14584817
.method public hidebysig static
void AddFive (
int32& 'value',
[out] int32& result
) cil managed
{
// Method begins at RVA 0x2342
// Code size 7 (0x7)
.maxstack 8
// result = value + 5;
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldind.i4
IL_0003: ldc.i4.5
IL_0004: add
IL_0005: stind.i4
// (no C# code)
IL_0006: ret
} // end of method Sums::AddFive
.method public hidebysig
instance int32 AddFive_Local (
int32 'value'
) cil managed
{
// Method begins at RVA 0x234a
// Code size 4 (0x4)
.maxstack 8
// return value + 5;
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: add
// (no C# code)
IL_0003: ret
} // end of method Sums::AddFive_Local
So the static add uses 7 bytes of and the local add uses 5. Both have a stack size of 8.
NOTE: All autism here is a work of fiction, any potential speedups are a product of the author's imagination. Any resemblance to actual programming is purely coincidental.
aab2f6 No.14584826
>>14584817
What was the body for AddFive_Local?
aab2f6 No.14584830
>>14584826
Nevermind I'm fucking retarded
0109fe No.14584832
>>14584826
I think I screwed that up, they might not be equivalent in function. Why do we have both ref and out?
aab2f6 No.14584834
>>14584832
because that's what the other anon asked for
time for AddSix
36cfe7 No.14584840
>>14584834
>>14584832
ref/out is a pattern that you see when dealing with certain static functions that "do something" like math. For example, XNA has many different addition functions for a Vector3:
>Vector3 v;
>v.Add(other)
>v += other;
>Vector3.Add(v, other)
>Vector3.Add(ref v, ref other, out result)
Anyways, ref/out as pass by reference (rather than value) so it avoids copying the parameter into the method (useful for larger struct types), and just uses it directly. So even if this uses an extra IL instruction, it should be faster. Now I'm curious and want to write my own tests.
b9ad3d No.14584844
File: fcb30e3f0c3307c⋯.png (Spoiler Image, 43.42 KB, 2344x266, 1172:133, Screenshot from 2018-04-02….png)

>>14584711
It gets much worse in context and I'm too tired to sum it up in full. tl;dr anti-anime anon has no reading comprehension despite insisting no one can criticize his retarded views on art and beauty without reading Tolstoy's What is Art?.
aab2f6 No.14584845
>>14584832
>>14584817
Local calls have more call-site overhead.
https://hastebin.com/ozuzobehiw.go
>>14584840
ref by itself is enough in this case (since you can modify the ref you are given)
out is a ref that may not be initialized when the method begins, but must be by the time it returns.
36cfe7 No.14584849
>>14584845
Correct. In this pattern, this usually signals that you're writing to the out value (since it's return value is guaranteed).
0109fe No.14584850
Is the anon writing an NES game active? I've been planning one for a few days but I'm having trouble figuring out how to properly organize my code.
356d63 No.14584884
>>14584328
Here you go. fixed minor fuckup
36cfe7 No.14584925
Shit how do I actually view the IL though, I accidentally decompiled it
0109fe No.14584931
>>14584925
just, like, press button
f1e520 No.14584936
Man, one man dev is fucking tiring. I really need to get some buddies with me.
36cfe7 No.14584940
>>14584931
Actually only the constructor is showing up correctly. Everything else fails to resolve for some reason.
>>14584936
We're your buddies, anon!
Now get the fuck back to work
36cfe7 No.14584945
>>14584940
Disregard, I had to hit a refresh button for some reason.
Please be patient, last time I fiddled with this program was in like 2014 to look at Terraria source
0109fe No.14584946
>>14584940
ILspy fucks up sometimes, try turning it off and on
>>14584936
Getting buddies is the easy part, the hard part comes after you get drunk and they bite you FUCK YOU FRED
f1e520 No.14584954
>>14584940
It's not my problem trying to figure out all the new fangled 3D game bullshit. Maybe I should stick to sprite based games.
1d4b76 No.14584983
>>14584805
Here's the custom block class.
public BlockTest(int par1)
{
super(par1, 200, Material.glass);
}
protected int damageDropped(int par1)
{
if (par1 == 0) {
return 1;
}
else if (par1 == 1) {
return 2;
}
else if (par1 == 2) {
return 0;
}
else {
return 0;
}
}
protected int idDropped(int par1)
{
return Item.coal.shiftedIndex;
}
So even though I set the item id of what should be dropped on block destruction, I still get it dropping the test block with whatever subtype was specified in damageDropped()
So it's like I can only use one or the other, never both. I even tried setting a variable based on the damageDropped so idDropped could check what subtype was there, but that did fuck all.
Now I looked at BlockRedstone for an idea, and it calls protected ItemStack createStackedBlock() I guess for when silk touch is used, so maybe I can use that with a conditional or something…
5d3b2e No.14584994
What's the least worst scripting language?
45cdef No.14584995
0109fe No.14584996
2214c7 No.14585003
>>14584994
The one you write yourself.
f1e520 No.14585032
0109fe No.14585045
>>14585032
this guy is trying to trick you into using a non-functional language
1d4b76 No.14585065
>>14584983
Oh I guess I should have looked at the vanilla ore class, it uses the damageDropped() method and idDropped together, but I'm not entirely sure I know what it's doing.
idDropped() has a conditional that checks the blockID (which isn't entirely helpful since every ore block has it's own registered ID) and drops an item related to the block (coal/diamond/lapis) else it returns the blockID to be dropped
then it has damageDropped() with this line
{return blockID != Block.oreLapis.blockID ? 0 : 4;}
but I don't understand this at all, it returns blockID if it doesn't match oreLapis I think, but ? 0 : 4 loses me
36cfe7 No.14585082
>>14585065
You know what a ternary statement is, right? It's basically an embedded if/else statement.
I'm pretty confident that that chunk controls how many item shards are dropped. Eg, redstone or lapis drops 4 fragments. For whatever reason, it still uses lapis as a flag for it? Seriously, try changing it, and I bet you'll get different drops
0109fe No.14585095
>>14585065
>notch actually used a ternary operator
holy shit
{return blockID != Block.oreLapis.blockID ? 0 : 4;}
// is just another way of writing
if (blockID!=Block.oreLapis.blockID) {return 0;} else {return 4;}
// I try to keep things as simple as possible when using them, though, so I'd reverse it
return (blockID == Block.oreLapisblockID) ? 4 : 0;
f1e520 No.14585104
>>14585045
>non-functional language
We aren't talking about C# here.
36cfe7 No.14585110
>>14584845
>>14584940
>>14584946
Okay so I made a self contained program here to test out a few things. I didn't test out the different ways of adding values together (eg += versus a+b), but instead different ways of calling a function:
https://hastebin.com/emagewayap.cs
0109fe No.14585120
>>14585110
Back in 2001, a+b actually used to be faster than +=, but they eventually made it so += compiles to a+b. Which was really pathetic, they should have fixed it earlier instead of telling people not to use +=.
>>14585104
I thought you wanted FRIENDS
36cfe7 No.14585138
>>14585120
I heard that FLOPs are faster in C# and managed languages in general, rather than C++, because the former runs in an optimized virtual machine, and in the case of C++, the compiler has literally decades of different IEEE specifications for floating points to account for
0109fe No.14585166
>>14585138
I could see some very specifically crafted tests making C# compute faster than C++ (where the CLR/VM compiles it to native code) but I'd be really surprised if C# ever matched it otherwise
f1e520 No.14585167
>>14585138
No virtual machine can run faster than bare metal. The only way for C# to be better in any sense of the word is for the C++ compiler you using is massively shit and outdated.
0109fe No.14585171
>>14585167
what if the virtual machine compiles it to optimized native code?
e7ec36 No.14585177
>>14585171
Then it's not running in a virtual machine, is it?
f1e520 No.14585181
>>14585171
>virtual macine
>compile
Anon, I don't think you understand what a virtual machine is for.
36cfe7 No.14585189
>>14585181
You write the raw C# code, and then compile it. The compiler changes it into IL code (intermediate language). This is now .NET-compliant code that could have come from C#, VB, whatever.
When you execute the IL, by means of running your dll or exe file, the .NET specfication winds up a virtual machine and runs the code through it, relying on the JITter to hook into machine code on the fly
0109fe No.14585204
>>14585181
Sure I do. A virtual machine just runs the instructions of another machine on a host. Basically, its job is just to manage the execution of the bytecode.
In the case of IL (compiled from C#), it knows everything about the bytecode, the functions/variables they represent, etc. Even more, it has access to exactly how they're being used, how long they take, etc. A specific runtime implementation has the right to decide that some section of IL bytecode would be worth compiling to native code, and then it just runs that on subsequent function calls.
This is why the java ==virtual== ==machine== is slow as shit to start, because it's gathering runtime data and compiling/optimizing the java bytecode
0109fe No.14585207
>>14585204
why does red texting only work some of the time
9affd3 No.14585218
>>14585207
u need a new line for red text:
==red== text
red text
36cfe7 No.14585235
>Pic 1: 856041, 1015187, 1022049 ticks
When doing naive function calls, it looks like it's fastest to just sum things up. += appears to have equivalent speed to writing to a local variable. Not sure if changing the variable you're writing to affects speed, but it might.
>Pic 2: 451360, 522299, 611867 ticsk
Like I said earlier, ref/out is almost always going to be the fastest way to pass simple data around (eg Matrix objects). The only exception to this is when making a specialized function that operates on an array and you pass the array as an argument and it iterates over it. For passing actual values into a function, ref/out is still the best.
For some reason, using out to a result variable seems to be faster than just doing an in-place alteration on a ref'd parameter.
80a29a No.14585278
>making third-person platformer in Godot
>movement is starting to feel great, double jumps are smooth as ice
>bug appears that causes the player to teleport outside the map and floods the console with a nondescript error message
36cfe7 No.14585291
>>14585278
Probably a math error on the collision code involving a cross or dot product or normal somewhere
164ecd No.14585292
>>14585235
What the fuck just += the literal Vector3.
5d3b2e No.14585300
>>14585278
>>bug appears that causes the player to teleport outside the map and floods the console with a nondescript error message
>I'M FREE!
36cfe7 No.14585304
>>14585292
>anon (1) and done that missed the two dozen posts about tech specs of compiling and benchmarking
164ecd No.14585309
>>14585304
Why are you even bothering benchmarking something that gay?
lmao, uppercasing function names
0109fe No.14585312
>>14585309
What this guy said. It's not like floats and vectors are important for game development or anything.
36cfe7 No.14585325
>>14585312
I hope that's sarcasm because I'm too tired for this shit
f15dbb No.14585353
>>14583759
And I enjoy writing fast and safe code.
Have fun with pointer arithmetic, while I enjoy my compile-time static_assert.
0109fe No.14585357
>>14585353
I'm not looking forward to C++ becoming any easier, pointers are one of the few things that separate humans who are capable of learning from Pajeets
e7ec36 No.14585437
>>14585353
I'm sure you do enjoy those long C++ compile times
3ef82b No.14585438
How would you add into your game a text input box that behaves like the operating system's text input (e.g. has the same shortcuts and copy/cut/paste and everything)?
0109fe No.14585446
>>14585438
variable width fonts are NOT your friend
f15dbb No.14585453
>>14585437
I'm sure you do enjoy those high run-time costs.
Also, if your compiler recompiles everything each time you change something, you're doing something wrong.
The added compile time of compile-time features for a few changed files is negligible.
3ef82b No.14585462
11de0d No.14585479
Slideshow kinda averted, not nearly as fast as it'll have to be though. But I should probably fix that stability issue first.
>>14585453
>using pointers has a high runtime cost
You wot m8?
f15dbb No.14585496
>>14585479
Not using pointers, I mean stuff like checking for some types of errors (compile-time: static_assert), or ensuring you only work with correct units of measurement (like what https://github.com/nholthaus/units is doing).
If you don't use compile-time features you have to do it at run-time.
Using a C array and std::array is the same, performance-wise (zero-cost abstraction).
e7ec36 No.14585522
>>14585453
>compile time bounds checking makes the run time faster
Also, static_assert is literally just reinventing something you can do in the preprocessor:
[/code]
int x = 5;
#if x != 4
#error
#endif
C++ is also missing the bounds checking syntax that C11 has like so:
int foo(int a[static 10]);
[code]
Which causes an error to be raised if the compiler can prove that an improperly sized array was passed into foo on compile time (such as an int g[5]; which is not big enough)
f15dbb No.14585604
>>14585522
"compile-time bounds checking is faster than run-time bounds checking."
Clear enough now?
Of course C can do SOME things compile-time, too.
int x = 5;
#if x != 4
#error
#endif
a) this looks a lot uglier than
int x = 5;
static_assert(x==4, "x should be 4.")
b) static_assert is not just for bound checking, but for stuff like
static_assert(std::is_unsigned<T>::value, "The type T must be unsigned.");
(or other type_trait stuff)
You can do a lot of template magic with that.
I don't get what you are trying to tell me with your C++ vs C11 comparison.
I am talking about C++11 upwards vs C.
Your example in C++11:
int foo(std::array<int, 3> bar) {
return 1;
}
int main() {
return foo({1, 2, 3, 4});
}
This won't compile.
return foo({1, 2, 3});
Will compile.
fbfc95 No.14585713
>>14583438
I don't see why you would want to use the `new` keyword over a unique_ptr/shared_ptr. What's the issue with RAII? Isn't that basically the difference?
f15dbb No.14585740
>>14585713
RAII is clearly superior.
c5d31d No.14585943
>>14583640
Faster code, less compile times, less restrictive bullshit, etc.
c5d31d No.14585950
>>14585604
>"compile-time bounds checking is faster than run-time bounds checking."
I have a very very strong feeling that in 99% of the cases bounds is something you can't even check until runtime. And I'm sure everyone else here does to.
f6c2f2 No.14586009
>>14585950
You'd be surprised how far compile time checking gets you when you use it everywhere.
f15dbb No.14586010
>>14585943
>faster code
What part about "zero-cost abstraction" do you not understand?
>less compile times
Oh, your inherently less-robust code compiles faster. Who cares, with decent design there should be only a few compile units that need recompiling per source code change.
>less restrictive bullshit
As in? What things do you need pointers for, which can't be solved more elegantly and robust at the same speed with modern language features?
>>14585950
Depends on the application, true.
Although I suppose in most cases it's about having a list of things you need to access randomly, right?
Like a list of enemies in your level or something.
In that case, having std::vector and using iterators/for-each-loops is a lot better and more robust than, say, Entity enemyList[MAX_ENEMIES] and then checking if the current enemy is valid or some shit like that.
f15dbb No.14586019
>>14586010
access randomly/iterate through all
4aa438 No.14586127
>>14586125
>animu shirt
>doesn't even crop out the original background
This upsets me.
894569 No.14586135
i finally added arguments to the subscript node, works both in ai behaviour and dialogue
in the actual subscript you simply have to toggle whether a float/bool/object/string node is a variable.
whenever the script is copied/saved/loaded, it checks for nodes that are marked, and adds them to its list of variables
so when the main script reaches a subscript, it checks the subscripts variables and its connections to see if the types match, if so - set the values
now i need to unspaghetti everything
i only now realized that i can just make Float/Bool/String/Object nodes into one node that just has an object as a value
this is the kind of suffering you get when you're constantly updating shitty systems you made years ago
11de0d No.14586156
>>14586010
>having std::vector and using iterators/for-each-loops is a lot better
>std::vector
>better
You do realize we're talking about videogames here, right? There's a very good reason multiple actually that EASTL exists, and various alternatives to it in other companies that don't release their version of it.
For reference, one of the optimizations in my todo list is replacing the current "naive" implementation of my SPH simulation using map and vector with one that has specialized containers and search functions.
f15dbb No.14586184
>>14586156
I am fully aware.
I also think that it is irrelevant for most of the projects here and in many cases just and exercise in premature optimization.
My main point still stands:
I am not arguing for the stdlib implementation specifically, but for the usage of containers like vector, map, array etc. in general as opposed to raw pointers/arrays.
(Of course, if you implement those yourself, you need to use pointers, no way around that)
fcb550 No.14586198
>>14585604
C11 also has static assert.
11de0d No.14586215
>>14586184
You have a point, even I used them for my initial implementation for simplicity's sake and most things aren't as performance-heavy as real time fluid simulation.
I may have a skewed view on these things due to my work with AAA studios, and like I said earlier I'm somewhat like a grumpy old man who doesn't want to learn those newfangled things because they're not how I learned how to do things. Not that I'm actually old, mind you.
894569 No.14586216
>>14586135
yay it works
now i just have to change all the logic that uses floats, bools, strings and objects to use this node instead
0109fe No.14586350
On an unrelated note, anyone who parrots that if you'd care about performance, you'd be using assembly instead, should neck themselves
1d4b76 No.14586521
>>14585082
Turns out the 4 is the metadata of dyePowder that get's dropped when lapis is harvested. So changing that number changes what dye is returned. So if it doesn't return 4 it returns 0 as the damage value to the items being dropped.
I think my big problem is that I have no way of checking what the subtype of the block is before I start returning numbers, the ore class uses blockID which is already registered and just retrieves it at harvest time, but metadata/subtype doesn't have a public int like blockID
so what I end up with is trying to set an int within the method for returning damageDropped and that can't get used until the second block harvest of that type because first harvest is checking against an empty integer
so harvesting the first block drops the next subtype, harvesting that block drops the first subtype, then harvesting the first subtype again drops the item it's supposed to
894569 No.14586635
>>14586216
nevermind, apparently you can't serialize objects
36cfe7 No.14586713
>>14586521
Couldn't you make your own simple API with things like CreateBlock, RemoveBlock, SpawnItem, PlaySound, etc, and just slowly, cautiously rewire the native code to hook into it so its not a clusterfuck?
What's the goal of your project again?
1d4b76 No.14586865
>>14586713
trimming the fat so I can create a built-in API, if I can pack blocks into less IDs by utilizing metadata that would make it easier to add blocks to those lists through the API, same applies to items, then recipes, then more complicated things like worldgen, structures, mobs
So how I wanted this to go down:
>testblock is harvested, drops next subtype
>testblock:1 drops next subtype
>testblock:2 drops golden apple
In order to do this, I had to put in damageDropped()
{ if (par1 == 2) {return 0;} else {return par1 + 1;} }
then in idDropped()
{ if (this.damageDropped(par1) == 0) {return Item.appleGold.shiftedIndex; } else {return blockID;}
and it works exactly as I had planned, I was so close to goofing and getting rid of this.damageDropped(par1) because I was checking if was equal to 2 thinking "that's the last subtype so it should work" but then it dawned on me that this.damageDropped() is returning 0 and not 2 because of it's own conditional
wew
1d4b76 No.14586937
>>14586865
oh wait, that only works because there's only 1 block I had that drops the item instead of itself with subtype…
if I have more subtypes and several are supposed to drop an item then returning 0 in damageDropped will do fuck all because then several of them will be dropping the same item
fuck
0b5f97 No.14586958
Anime Stalkan fag here with more dumb questions. So part of the appeal of anime is girls in cute outfits, but when thinking about a Stalkan game one has to be aware of autism. Pic related is great from a waifu with raifu perspective, but I just know it'll attract autism. From both the SJW types and the muh realism faggots who'll autistically screech about how she'd get Swiss cheesed in a firefight or not be adequately protected from radiation or toxic gasses. Should I compromise and make outfits that are functionally sound or just say fuck it, go with full waifu materials?
Also, was looking at Ocarina of Time's map of Hyrule as a template for the general shape of the world and major locations, thoughts?
b6520a No.14586991
Does anyone know a reliable workflow to get Real life heigtmap Data into ue4 or at least in heigtmap form?
What im after is picking a specific Area on Google Maps and then getting it into a form that i can use as a heightmap.
Tutorials on Youtube ive found assume the earth is flat and manually measuring distances (or some other mistake on my part) has led to some warping of the proportions.
097c2b No.14587006
>>14586958
>muh realism faggots who'll autistically screech about how she'd get Swiss cheesed in a firefight or not be adequately protected from radiation or toxic gasses.
If you get shot with an assault rifle you'd be fucked either way.
>Should I compromise and make outfits that are functionally sound or just say fuck it, go with full waifu materials?
Why not both? Go with Dragon's Dogma style of customization where you can have a slut in bikini armour or play as a heroic knight in believable plate. Have it compact protection a bit but in a way that seems believable.
A girl in a schoolgirl outfit wouldn't be much better protected from gunfire than someone wearing a German paratrooper bonesack.
097c2b No.14587010
>>14587006
>compact
Fuck, I meant impact
d7881f No.14587083
>>14586958
>>14586958
Always mid-full autism, my fetish is precisely ZR like in your pic but walking around in the wild bare assed is asking for trouble and agaisnt any common sense. Get a good full body uniform design without cheap fanservice and put a cute girl inside. This works like a miracle. Belt is essential item as it underlines the hourglass feminine shape.
gif related
4ab136 No.14587095
>>14586958
You already plan to add anime waifus, so going for full muh realism is pointless. I agree with the >>14587006 but I'd add one thing - looks don't have to be realistic but the rules of the world must. For example in cases where there is a radioactive, chemical or fire hazard, just weaning a gas mask on top of bikini armor shouldn't work, it requires too much suspension of disbelief. Character should have to wear a protective suit to survive.
Basically, your job should be to make the clothes realistic enough, but make them look cute, just like in your picture.
097c2b No.14587110
>>14587095
>For example in cases where there is a radioactive, chemical or fire hazard, just weaning a gas mask on top of bikini armor shouldn't work, it requires too much suspension of disbelief. Character should have to wear a protective suit to survive.
Very good idea right here. Make sure you can choose between a realistic baggy hazmat suit or something which looks cute/hot. No idea how you'd design a cute hazmat suit but a hot one would be easy, just make them tight bodysuits.
Pic related but make them fully closed
4a20c5 No.14587168
>>14587110
I can vouch for this being the correct direction to take.
t. Anon that absolutely does not have a bodysuit fetish.
0b5f97 No.14587192
>>14587006
>>14587083
Yeah. I guess the best solution is to just brave the tism fits and have some of both. I only want full-on "practical" outfits for where it matters. Like obviously no one's going through an area so heavily irradiated that the dew on the ground evaporates into mist wearing shorts. Radiation will also be less of a threat than the supernatural/anomalies so I shouldn't have to make too many "practical" outfits.
There will probably only be 2 major ares in the game needing radiation protection and then little pockets of the world that are just for secrets/loot
I guess the best solution would be to make anti-radiation pantyhose(that go under other clothing) or body suits (zero suits) that you have to put on them when dealing with hot zones like >>14587110 suggests.
>>14587095
Finding a believable balance of cuteness and function is more difficult than previously thought. But I'll get it. I've got nothing but time really to figure it all out.
097c2b No.14587212
>>14587192
>>14587110
Maybe a way to create a "cute" hazmat suit would involve taking a baggy one, adding ties, straps and maybe a corset so it resembles a maid outfit or something similar.
4ab136 No.14587218
tfw no chemical warfare suit gf
300940 No.14587241
>>14587095
>>14586958
well depending on the scope of your game, if you have the player constantly reroll/lose equipment. or having it constantly degrade. making the player play with ass-less (damaged) pants or go without. and having proper stalking gear be few and far between.
i think there was a gore system that someone made that used raycastst to delete sections of a mesh via creating an alpha map and modifying the collision so stuff fell out of it. i don't see how half of that cant be made into holy clothing and then adding patch decals on top. when the player "repairs" it.
5c2d63 No.14587314
>>14587192
>I've got nothing but time really to figure it all out.
That dedication is great but those are just outfits/graphics. Where's the GAME
191ffd No.14587335
>>14587314
>anon dedicates his life to the cause
>gets hit by a car and dies
>everyone assumes he gave up because it was hard
8082f9 No.14587398
Here's a few random pages from Madowanai Hoshi, Oikawa-san wears a nice "earth-suit" (shit's so polluted you have to wear one to walk outside of the giant country buildings) that could serve as inspiration for a hazmat suit that's also ridiculously sexy (as S-zawa points out in the last image).
0b5f97 No.14587451
>>14587212
You mean like how Solid Snake's harness helps to emphasize his crotch and ass for the sex appeal?
>>14587314
I was an artist until I became an adult (I found out American comics industry was too pozzed for me to make it in and Japan requires you to work yourself to death for your manga, so I bailed on that), then my interests shifted to computers and eventually game development some years later. So I think like an artist, so getting a strong visualization of the "completed" (quotes because I know games tend to change drastically mid-development) product before hitting the grindstone and making demos and all that. It's just how my brain handles things.
>>14587335
This is probably what will happen.
955d7a No.14587466
trying to fix my wood plank texture but just made it worse
b9ad3d No.14587480
>>14587451
How much experience do you have with gamedev and compsci shit in general? Ideafaggotry can only get one so far.
0b5f97 No.14587542
>>14587480
About 6 months of self-teaching. Gamedev experience was mostly just faffing about in Unity and Unreal and doing a few of their tutorials. I started schooling for a compsci program last fall. It's going real good so far. School isn't pozzed so I'm learning a lot and there isn't a single socjus class in the entire curriculum to interrupt my learning.
36cfe7 No.14587631
>>14585479
You're using a variable timestep for the physics simulation, yes? It's "expected" that it runs at 1/60th of a step every frame, but how do you resolve very large simulations?
Eg, say you had a bunch of input data and wanted to simulate it for a full minute. Obviously you couldn't just do it in one large step, so you'd have to call the update function a number of times, because at each update, a particle might depend on another particle being updated, so how granular do you make the simulation if you get a large time?
2acb55 No.14587637
>>14586958
Fuck realism, use magic if you need to
Make it fun and enjoyable
b9ad3d No.14587654
>>14587542
That's more experience than most ideafags or I have, which gives you an advantage. Best piece of advice I can give is that making games is fundamentally about designing systems, so approaching your worldbuilding from that angle can help you ascend from glorified ideafag with coding experience to a proper gamedev. This is especially important for a Stalker-inspired game, given how heavily the original relied on its AI autism.
8082f9 No.14587733
>>14587631
>You're using a variable timestep for the physics simulation, yes?
No. It's currently running as fast as possible (hence the FPS count) while the delta time is set to a static 4 milliseconds.
The simulation is currently not even completely stable, making it good for games comes after that. But even then, having physics run at a fixed timestep is not unusual. I'll have to see how fast I can get it before making decisions like that though. I'm not even sure it'll be feasible at all right now with my own target hardware.
4b9df9 No.14587740
>>14581847
I've been under a rock for a while. Is this a new Unity feature?
894569 No.14587824
>>14587740
no, it's custom editor stuff
OOP street shittery at it's peak
0b5f97 No.14587948
>>14587654
Yeah. When thinking about systems I've been looking into making the systems more modular because I think it'll both be easier to work on them that way and will allow for better modding potential. If anyone has more experience with such things feel free to advise me.
0109fe No.14588387
>unity's current version of .net doesn't let me suggest inlining
shit
2acb55 No.14588421
Cel Shaded loli
Now all that's left for this to actually take into consideration the ambient light.
Is there a static variable for ambient light in shaders, by any chance?
0e5a6e No.14588423
>>14586958
better start a thrwad on >>/agdg/, bro. I wanna see you brainstorm.
894569 No.14588446
>>14588421
>Is there a static variable for ambient light in shaders, by any chance?
there's a global ambient color for the lighting in the whole scene, i change that from gray to pitch black when dealing with daytime systems, not sure about shaders
4d4d1a No.14588481
>>14585740
RAII is worst girl
5d3b2e No.14588496
>testing shit manually sucks, I should write some automated tests
>writing automated tests kind of sucks, I should write a system to make it easier
>that system got a little complicated, better test it
>testing shit manually sucks, I should write some automated tests
9affd3 No.14588504
>>14587948
Utilize an ECS design pattern for modular systems, and inversion of control (dependency injection) so you can easily switch out systems/components.
For modding the easiest and most effective route is utilization of data driven logic, and harnessing ability to customize entities via switching out and editing component data.
So like kenshi, and fallout/elder scrolls, they use data driven design to allow for easy modding, but to access that functionality each has an external editor.
4d4d1a No.14588527
>>14588481
my bad i meant RAIImu is worst girl
120cd0 No.14588550
Oi if the anon with knowledge of Ukrainian folklore is still around, I'd love to hear your favourite stories
>>>/agdg/31285
Also other anons, if you want anything included, please chime in
0109fe No.14588556
Step 1 of writing a software renderer: why are there stripes
e7ec36 No.14588564
>>14588556
I can imagine you would get that pattern on an RGBA frame buffer by setting every 8th or 16th byte to 255.
9affd3 No.14588673
>>14588496
SOLID is a pretty good guide on making unit testing easy.
2acb55 No.14588889
Fuck farming, now it's a horror game
d49477 No.14588909
What do you guys do to avoid getting sidetracked by the myriad of distractions out there?
If you listen to music, what music?
4aa438 No.14588970
>>14588909
I put my distractions in my game so that my distractions would also be productive.
409d80 No.14588981
>>14588889
please make it both
097c2b No.14589162
YouTube embed. Click thumbnail to play.
>>14588909
This usually helps me get in the right mood.
Seriously though, I'm working on a dark military themed RPG so listening to the appropriate music can help you mentally. Maybe try finding something related to your project.
aab2f6 No.14589167
>>14588421
>>14588889
Kinda, there's RenderSettings which controls most of what you find in the lighting window, and most of it is piped into shaders. There's an ambient light color defined there.
https://docs.unity3d.com/ScriptReference/RenderSettings.html
If you want your own lighting in your shader (which I'm sure that toon shader already does), you can provide a lighting function for surface shaders, or write your own entire vertex/fragment shader or be a cheating bastard and calculate the same term unity's shaders do for ambient light and then subtract that to undo it, since it's calculated and applied in a part of a surface shader you can't directly control
I don't know how to codeblock but if you inspect your compiled shader you can see how it's calculating environment light. I essentially the same calculation in my vertex shader and subtract it from the output emission channel
It was something like
UNITY_INITIALIZE_OUTPUT(Input, o);
o.wpos = mul(unity_ObjectToWorld, v.vertex);
// The whole point of doing this is to cheat and get access
// To the environment lighting inside the lighting function,
// So it can be nullified during the base pass.
#if defined(UNITY_PASS_FORWARDBASE)
o.envLight = 0.0;
float3 worldNormal = UnityObjectToWorldDir(v.normal);
#ifndef LIGHTMAP_ON
#if UNITY_SHOULD_SAMPLE_SH
float3 sh = ShadeSH9(float4(worldNormal, 1.0));
o.envLight = sh;
#endif
#ifdef VERTEXLIGHT_ON
o.envLight += Shade4PointLights (
unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0,
unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb,
unity_4LightAtten0, o.wpos, worldNormal );
#endif
#endif
#endif
Probably could be simpler, but I copy/pasted the code from the fully compiled shader. And then at the end in the surface part
#ifdef UNITY_PASS_FORWARDBASE
o.Emission -= IN.envLight * (1.0 - _EnvironmentLight);
#endif
I forget if I tweaked any of this stuff from what unity provided, but I used it so I could have more control over the lighting of individual characters.
c5d31d No.14589177
>>14586009
Why not just use a normal assertion and turn it off on the release version? Hell I'm pretty sure you could write a macro which does the same thing as static_assert if you want it that badly.
>>14586010
>What part about "zero-cost abstraction" do you not understand?
Except you're using C++. The STL has tons of un-cache friendly containers such as the maps that group the keys and pairs together for some retarded reason, inheritance which also rapes cache and god knows what else. The more I learn about C++ the more I learn about its hidden costs. You'd have to ignore virtually everything else it adds to C.
>Oh, your inherently less-robust code compiles faster. Who cares, with decent design there should be only a few compile units that need recompiling per source code change.
1 run-in with boost has taught me never to underestimate how hard compile-time can rape your productivity, and the anon who tried to argue templates don't slow down compile time on here (when it does to a noticeable degree) has taught me to take everything I read disregarding it with a massive grain of salt.
>As in? What things do you need pointers for, which can't be solved more elegantly and robust at the same speed with modern language features?
Off the top of my head I know void pointers and memcpy are used to put data into an array to be sent as network packets. You can also use void pointers to do generic functions without raping your compile time (like how templates do). I am extremely sceptical about the "same speed" part, since GO is the only modern language that wasn't designed for retards in mind. In pretty much every benchmark I've seen C is always the fastest closely followed by GO.
2acb55 No.14589231
>>14589167
I just want the actual ambient light because my custom shader is actually not affected by it at all.
I want it to get a little bit bluer when it's night and so on.
I guess I will just feed it through a mono behavior every frame or something.
Is there such a thing as static shader variables?
300940 No.14589272
beatlebulb fanart fag here
i'm not sure where i was going with this when i started but i think i needed to stop a bit a go.
aab2f6 No.14589283
>>14589231
not unless you use the same material.
I'd suggest using the same property block across all of the renderers you want to apply the settings to instead of applying individual properties.
0109fe No.14589436
I'm determined to murder my cache as much as humanly possible
845438 No.14589597
.Can anyone recommend books/vids for "AI" dev/script. I'm working on a board game. Thanks
0109fe No.14589638
>>14589597
depends on how autistic you want to get about the foundation, or if you want to jump straight into it
0109fe No.14589645
>>14589597
Foundation, at the very least you'll want to understand the first few chapters and how to use basic algebra and trig
0109fe No.14589650
>>14589638
This one is about general game development patterns that'll make you less likely to turn your project into an manageable mess, I've read it several times
8a8f8f No.14589659
>>14589597
AI is a diverse topic. Without more details as to what you're trying to achieve the best I can say is to look into Finite State Machines and Behavior Trees.
0109fe No.14589671
>>14589659
this guy is your enemy, he's trying to hide all the good information from you
0109fe No.14589683
>>14589645
This is probably the best book on development, focuses entirely on the foundations. The guy wrote it while in jail.
cadbc8 No.14589694
>>14589683
I can't tell if you're joking or if 8chan is fucking up the files, but that's mein kampf.
8a8f8f No.14589698
>>14589671
This is a surprise to me.
0b5f97 No.14589782
>>14588423
I doubt anyone would like a whole thread dedicated to me ideafagging. Plus, I have that natural /agdg/ fear of if I lay out all my plans publicly then someone with more talent (or worse, an actual team) might steal the idea and make the game before I do.
>>14588504
>Thief and Dungeon Siege were designed using an ECS design pattern
Sold, will do it if I can.
d1f211 No.14589858
>>14583522
>using C++ as a shittier C
Either use C or use modern C++. "C with classes" style programming is honestly one of the most miserable experiences out there. It's not as clean as C and it doesn't provide the same quality of life improvements as modern C++. Note that I don't mean just throw the STL around like mad, but don't be afraid of things that make your life easier with no runtime overhead.
0109fe No.14589863
>>14589858
>he doesn't just write in object oriented assembly
It's simultaneously the year 1985 and 2010, get used to it
c5d31d No.14589883
>>14589858
I avoid modern C++ like the plague because it's bloated as fuck, however I'm stuck with it. I essentially code like it's C but use some of the convenient features like new
b5a435 No.14589946
So how do you get motivated after a long day of work? Wait until a day off? Get /fit/?
I'm porting my flying game project Hell Divers from UE4 over to Godot, after having put it on hold for awhile. I have a better idea as to how I'm gunna handle the flight mechanics, but I keep over-complicating the physics. Better to start with simple steps and build it up from there, I'm sure. I'm also still fucking around with godot, figuring out how it works. I like it so far, but it's back to square one from the scripting side.
There's so much I want to do, but it all rests on a working flight model, and I have no excuse in not having gotten that outta the way back when I did have plenty of free time.
d1f211 No.14589958
>>14589883
>modern C++ is bloated
No, C++ is bloated. Modern C++ just makes the bloat worthwhile.
>new
wew
c5d31d No.14589989
>>14589958
>No, C++ is bloated. Modern C++ just makes the bloat worthwhile.
What does that even mean
>New isn't more convenient than malloc
356d63 No.14590028
Have a very rough main menu now. No Options menu yet, selecting it currently does nothing.
0109fe No.14590030
>>14590028
Looking better, but you still haven't fixed the fucking camera
7430a8 No.14590031
>>14589694
>The guy wrote it while in jail
I think he knows
30fe77 No.14590034
>>14589989
I mean that it's "bloat" to use C++ when you treat it like C with new instead of malloc. Modern C++ is about low overhead quality of life improvements and compile time features; intentionally avoiding them when you're already using the language is just stubborn.
356d63 No.14590060
>>14590030
As far as I can tell that's just a fuckup of LIKO-12's internal gif recorder. It looks smooth when I'm not recording– though when I am, it looks exactly as you see it in the gif. I used OBS to record this one, even it's a bit jittery than how I actually see it though.
1d4b76 No.14590212
>>14589946
I have a very hard time staying motivated, my recent boost of motivation actually came from someone telling me that maybe it's time to give up on it, so now I'm compelled to prove them wrong
there's not a whole lot else in this world capable of motivating me like that because there's really no material gain to incentivize me, maybe you'll find a muse or something to incentivize you but it's all down to the individual
getting fit can help your stamina so you have the energy for doing extra curricular things, minimize distractions like social media or playtime, and keep momentum (minimize downtime between dev time, the longer breaks you take between development the harder it will get to build that momentum back up, I find it very difficult to get started again if I've had to take a couple days off from it).
>>14586937
I actually figured out what I had to do for this scenario.
So my revised oreblock class that contains gold/iron/coal/lapis/diamond under one ID needs to return blockID for gold and iron, but coal must return an item ID without a damage value, as does diamond, but lapis returns an item ID with a damage value to say "this is blue dye".
I ran into nothing but trouble with trying to use switch statements for this, maybe I was just confusing myself but I got it to work by having an if statement inside damageDropped() say if (par1 == 0 || par1 == 1) {return par1;} else if (par1 == 2) {subtype = 1; return 0;} else if (par1 == 3) {subtype = 2; return 4; } else { subtype = 3; return 0; }
so in idDropped I can run a check against this.damageDropped and this.subType, I'm not so sure I like how this is set up though if (this.damageDropped(par1) == 0 && this.subType == 0 || this.damageDropped == 1) {return blockID; } else { switch (this.subType) {default: return Block.cobblestone.blockID; case 1: return Item.coal.shiftedIndex; case 2: return Item.dyePowder.shiftedIndex; case 3: return Item.diamond.shiftedIndex; } }
I'm kind of annoyed that I have to include that default case, so maybe I'll just substitute it with else if statements
but the important part is that this works, albeit not very straight forward, next is to figure out why quantityDropped isn't working, tried checking against subtype, lapis should be subtype 2 but only drops 1 item, unless I harvest lapis a second time which it then drops a bunch, but if I harvest any other of that ore in the same class after lapis it will also drop a bunch
9affd3 No.14590227
>>14590060
man that game is moe as fuck
a33a88 No.14590313
What do you do when the thing you wanted to make seems impossible on current hardware and you lose all hope?
f15dbb No.14590316
YouTube embed. Click thumbnail to play.
>>14589177
>Why not just use a normal assertion and turn it off on the release version? Hell I'm pretty sure you could write a macro which does the same thing as static_assert if you want it that badly.
You want it in release, too, though. As said, it costs nothing at runtime.
Also
>using macros
>The STL has tons of un-cache friendly containers such as the maps that group the keys and pairs together for some retarded reason,
You have to know when to use what, in some cases you are better off with a vector or two.
In general though, even when using a std::map the caching won't be your bottleneck unless you are retarded and fill it with actual objects instead of (smart) pointers.
>inheritance which also rapes cache and god knows what else.
Composition over inheritance.
You don't make a custom class for each enemy type, that's shitty design.
>The more I learn about C++ the more I learn about its hidden costs. You'd have to ignore virtually everything else it adds to C.
How about you stop trying to code C with classes?
Treat C++ as a different language, with different paradigms.
C++ does not add to C, C++ is a new language that happens to be able to compile C code.
>1 run-in with boost has taught me never to underestimate how hard compile-time can rape your productivity, and the anon who tried to argue templates don't slow down compile time on here (when it does to a noticeable degree) has taught me to take everything I read disregarding it with a massive grain of salt.
USE PRECOMPILED HEADERS.
Of course everything is slow as fuck if you keep having to recompile the entirety of boost into your compile units.
Yes, templates increase compile time.
But in most cases the biggest source of problems with compile time is retarded design.
Use the Pimpl Idiom, Forward Declarations, Dependency Inversion.
Only include shit you need in the .h, pack the rest into the .cpp
If you have to change one thing and as a result more than one, maybe two files have to recompile, you are doing something wrong.
>Off the top of my head I know void pointers and memcpy are used to put data into an array to be sent as network packets.
Yeah, low level libraries tend to have a C interface, of course you need to use that stuff there.
But if you implement networking, you don't need void pointers or memcpy all the time (except for the very last step, if you only have a C interface to work with).
If I had to do it, I would use a (de)serialization mechanism.
You then can put anything into the network interface, as long as the object knows how to serialize itself into a binary format.
>You can also use void pointers to do generic functions without raping your compile time (like how templates do).
Learn proper software architecture. I'm not even trying to be callous here.
You're filling gunpowder in a pipe and lighting it with a match instead of using a gun, because buying ammo takes too long.
>I am extremely sceptical about the "same speed" part, since GO is the only modern language that wasn't designed for retards in mind. In pretty much every benchmark I've seen C is always the fastest closely followed by GO.
Benchmarks are extremely artificial.
The differences in performance aren't that noticeable in real applications.
Yes, Go scales really well.
Also, about "same speed":
The assembly is literally the same.
If you are interested, here is a talk by Jason Turner, who demonstrates you can code C++17 on a Commodore 64, with almost no overhead.
https://www.youtube.com/watch?v=zBkNBP00wJE
Most modern C++ features are as fast as if you'd do it in assembly.
Modern compilers are MUCH better at optimizing than any of us is.
(Of course, of you do the right high-level descisions. The compiler can't stop you from doing stupid shit in your render loop, for example.)
5d3b2e No.14590327
4beca7 No.14590376
>>14589177
Are you baiting?
Go was LITERALLY designed for retards
8082f9 No.14590382
>>14590316
>In general though, even when using a std::map the caching won't be your bottleneck unless you are retarded and fill it with actual objects instead of (smart) pointers.
Even cache friendlier for small sets of objects is storing an array offset as an unsigned char (1 byte) or short (2 bytes), since pointers are generally 4 bytes (32-bit systems) or 8 bytes (64-bit systems). Of course for the char one it's almost useless since 256 items isn't really going to be slow even if every one of those is a cache miss, but at 65536 items it can save a bit of time when needed.
0e5a6e No.14590632
>>14589782
>natural /agdg/ fear of if I lay out all my plans publicly then someone with more talent (or worse, an actual team) might steal the idea and make the game before I do.
It isn't unfounded as well. Post waifus in the inspiration thread.
1e1cfe No.14590806
>>14590313
>impossible on current hardware
The hardware is more powerful than you know. Ikusagami, a no-budget PS2 game made by some NEETs in a garage, has a level with 65,535 enemies onscreen simultaneously. The PS3 can do real time raytracing, in software only, using crippled student programming kits. Modern PC hardware shouldn't be a problem.
a33a88 No.14590935
>>14590806
What I want to do is essentially the equivalent of massive scale (think: 1000*1000+) minecraft block terraforming operations at 30+fps, and I mean more complicated operations than adding/removing items (think: items affecting each other when they move). That in itself isn't a problem, but it becomes complicated since the items need to be split into chunks and each operation may span many chunks at a time, thus each item may need to reference other chunks.
It feels a little more possible after I've given it some more thought, but it still doesn't seem like it'll work out the way I had hoped.
b5876e No.14590947
>>14589597 my ip cycled, this is me
>>14589638
>>14589645
>>14589650
Thanks, I'll have a scroll through, I just want to jump into it, learn by doing.
>>14589683
I have that version already
>>14589659
>Finite State Machines and Behavior Trees.
I'll look into behavior trees, I get the idea of state machines and it might be good enough for what I need.
In the game, I have a board, I have 2 players, players drop "pieces" on the board. The pieces come from a dictionary of pieces and player can have 7 pieces in their "hand" before dropping the pieces on the board. I have some old video >>>/agdg/30857 , but will record an up to date version It's not turn based, it's real time. There is logic there to resolve what happens on the board, i.e. resolving when 2 enemy pieces are "fighting", you can play 2 player version of it now, but it's not balanced yet. Some AI would be good to help tweak it and test it.
2d7183 No.14591060
Is there something wrong with if statements? What makes them bad – or when do they become bad? There seem to be many game related concepts that benefit from them. What are the alternatives that don't turn a game into to a linear experience?
Say I'm simulating gravity on a player character and I want to render and effect upon landing if the player's falling velocity is greater than some value, is there a better way to do this than with an if statement? If so why? Pic unrelated.
a33a88 No.14591083
>>14591060
Sounds like the worst case of optimization autism. It only starts to matter if you're doing it a ridiculous amount of times per frame.
4beca7 No.14591092
>>14591060
>if statements are heavily related to game dev
ah, so general programming is not really related to if statements..?
4aa438 No.14591095
>>14591060
Repeating what anons here told me when I asked, unless you have thousands of them, there's little performance impact and using something like switches is moreso a matter of convenience for yourself.
Basically, if you chain ifs in ifs in ifs in ifs many times, that's when it gets retarded. But in your example, there doesn't seem to be too much wrong, unless it ends up being far more complex than you described.
894569 No.14591096
>>14591060
>caring about ifs
>caring about performance and memory
get{
if(parentNode!=null){
if (parentNode.referencedBy.Count >index)
{
Node n=parentNode.referencedBy[index];
if(n!=null){
Float temp = n as Float;
if(temp!=null){
return temp.GetResult(); //calculate bool if parent is a Bool type
}else
{
Branch b=parentNode.referencedBy[0] as Branch; //otherwise get the bool from the parents return values
if(b!=null){
if(b.returnValues2.Count>0){
for(int i=0;i<b.connectedTo.Count;i++)
{
if(b.connectedTo[i]==parentNode)
{
return (float)b.returnValues2[i-(b.connectedTo.Count-b.returnValues2.Count-b.returnValues.Count)];
}
}
}
}
}
}
}
}
//if no returns so far, return the default value
return _value;
}
5d3b2e No.14591113
>>14591060
>Is there something wrong with if statements?
Not by themselves. Certain devs get shit for using them in places where a switch would have been more appropriate, and there are places where there's a performance benefit in using the ternary operator instead.
>Say I'm simulating gravity on a player character and I want to render and effect upon landing if the player's falling velocity is greater than some value, is there a better way to do this than with an if statement?
Nah. In general, use if statements when you want different code executed, and consider ternary operators (or similar tricks) when you want slightly different data processed the same way based on some variable.
e.g. if you wanted a different sound effect played based on whether the player is wearing armor, you might be better off writing
playSound(armor ? noiseA : noiseB)
instead of
if(armor)
playSound(noiseA)
else
playSound(noiseB)
Unless your compiler is sufficiently clever.
2d7183 No.14591139
>>14591083
>>14591095
>>14591096
Thanks, anons. This is the impression I had but I was way too much a novice to accept my own opinion.
>>14591113
This is really helpful, thanks a lot. Is MinGW clever?
f15dbb No.14591143
>>14591060
If statements are fine.
The main problem stems form people coding huge balls of spaghetti code with 100 layers of nesting.
If you have huge if - else if - else if - … branches: use switch statements.
If you have many checks to see if some variables are sane/not null/… consider passing by reference, to avoid some of it, or consider changing your objects so that they can never be in some invalid state.
Refactor tests you have to keep doing into their own functions.
Return early.
>>14591113
>Unless your compiler is sufficiently clever.
It is, in nearly all cases.
f15dbb No.14591154
>>14591139
MinGW is not a compiler. It is a development environment, so you can use your GNU/Linux compiler (gcc) and other stuff under Windows.
Type
gcc --version
Should be at least 6 or 7.
f15dbb No.14591165
>>14591139
Oh and btw you can use the Linux Subsystem/Ubuntu under Windows 10 without having to use MinGW.
https://docs.microsoft.com/en-us/windows/wsl/install-win10
So you can develop linux applications under Windows.
CLion supports this, too, I'm unsure about VS, but I think it supports it too in some way.
23c938 No.14591285
>>14590376
>using syncthing to sync music from my pc to my phone
>want to save it to my sd card
<yeah no you can't do that since Go doesn't support writing to an sd card and we wrote the android app in Go
894569 No.14591308
check these sick interfaces out
4beca7 No.14591528
Why do people keep forgetting that even with meme engines programming is necessary?
>browse /agdg/
>lots of people post an idea and 3 pages of drawings/3d models
>game is never made because they can't program
894569 No.14591551
>>14591528
it kind of works both ways
>program game for years
>game is never made because no concept art and story
4ab136 No.14591573
>>14591528
I guess they're more interested in making only their dream game instead of making games as a whole. They have no drive to learn necessary creative skills because to them, those skills are only means to an end instead of being the reward in itself.
83fab6 No.14591574
>>14591528
Are you sure? I seem to remember that the last dozen threads had plenty of people talking about code. Maybe you just remember visuals more vividly.
300940 No.14591664
>>14591574
he is a "visual learner"
76d30b No.14591688
>>14589162
what music would you recommend for a stealth game? where you stalk and grope and kidnap grills
e9d625 No.14591836
Since people love pushing godot:
Does anyone know a convenient way to get an fbx with a skeleton, materials and animations into godot?
0109fe No.14591856
>>14591811
>Na'Tosha
>Assume it's the pink haired abomination
"Hello, World! Well, not exactly. I’ve been around, just quiet. The better part of the last year has been spent on this project: [picture of baby] In early April of this year, Levi and I welcomed Player 3 into our family. Baby Bard is a silly, happy, loud, messy, clever little boy who quickly turned our lives upside down"
>it actually reproduced
>it has a child and still thinks exclusively in funny programming memes xd
8082f9 No.14591871
>>14591856
>assume
You missed the previous thread, huh?
b69e6a No.14591876
>>14591551
>>14591573
These, mainly.
>For the purpose of gamedev, manage to self-teach programming, Photoshop, FL Studio, Audition, Blender, the basics of 3D modeling, 2D and 3D animation, music theory, and writing.
>Find all of them enjoyable to different degrees.
>Need to learn to draw, make textures, and do spritework, but don't get any enjoyment out of them, so every minute spent trying to improve is like pulling teeth.
>Continue to work on game anyway, implement most major mechanics, and write overall plot.
>Game exists, but there's nothing to do in it, because fleshing it out would require being able to create proper assets.
Maybe it'll click one of these days.
0109fe No.14591886
>>14591871
Her parents hated her. How many pink haired landwhales can one company possible have?
>I have a tattoo that says, “memento vivere”. It is a reminder of life - a reminder to live. I find myself looking down at my foot and noticing it a bit more these days.
0b5f97 No.14592010
>>14590632
I'll post waifus in the inspiration thread But plz no bully and steal my ideas
>>14591876
>Can do all of that to some degree except music composition and software
Making music completely escapes me. Thankfully there's no shortage of amateur music composers. There's as many of them out there as there are people who want to be concept artists.
a7e248 No.14592120
>>14592010
>pic 1
>belts belts belts
>wasting valuable leather to make a Geballte Ladung
894569 No.14592547
>List is serializable
<Dictionary isn't serializable
thanks unity
b5876e No.14592630
>>14592547
>Dictionary isn't serializable
WTF why?!
2acb55 No.14592664
>>14592630
>>14592547
Unity can't handle generics
They made a special case for lists, probably just call .ToArray() before serializing and back.
There is a trick related to creating a non-generic Dictionary class that extends the Dictionary with your chosen generics, for instance:
public class IntAppleDic : Dictionary<int, Apple>
2acb55 No.14592674
>>14592664
please note, you still can't use IntFruitDic and expect it to figureout that some instances are Apples and others Orange, it really can't handle generics nor subclasses at all.
When needed, implement the serialization callbacks and serialize a byte[] instead
44f34d No.14592853
Can someone on the wiki put the Sena-H-Game and Kowloon-Shooter in the hiatus category? I know for a fact that their respective developers are working on other things together right now.
8082f9 No.14593065
>>14592853
Aw man, I really liked Kowloon and while on the one hand the Sena one looked kinda uncanny, on the other hand tits.
17d57f No.14593213
44f34d No.14593278
894569 No.14593308
alright, i have a serializable dictionary now
arguments (float/bool/string/Object) in subscript nodes work and get serialized just fine
0109fe No.14593312
>>14593308
did you ever fix the loading time issues?
894569 No.14593321
>>14593312
yes
i deleted the level and it now loads much faster
c5d31d No.14593380
>>14590316
>You want it in release, too, though. As said, it costs nothing at runtime.
That makes 0 sense. Unless you're changing shit around and putting it into release.
>You have to know when to use what, in some cases you are better off with a vector or two.
Until you become acustom to using something only to find out later it's fucking you over one way or another
>In general though, even when using a std::map the caching won't be your bottleneck unless you are retarded and fill it with actual objects instead of (smart) pointers.
I don't use objects. If you use objects all the time everywhere you probably aren't getting much benefit out of cache, especially with OOP.
>Composition over inheritance.
>You don't make a custom class for each enemy type, that's shitty design.
They're both shit depending on how you do composition. At least composition has the benefit of more flexibility.
>How about you stop trying to code C with classes?
I don't use classes. I just made the mistake of using string, vector and new a bunch when I started out.
>Treat C++ as a different language, with different paradigms.
I'm just going to pretend it's C and ignore all the "features" riddled with hidden costs.
>C++ does not add to C, C++ is a new language that happens to be able to compile C code.
I'm just going to stop here tbh.
c5d31d No.14593387
>>14593380
>I don't use classes. I just made the mistake of using string, vector and new a bunch when I started out.
And by this I mean I don't code any classes. I just used string/vec for convenience, and code the rest as if it was C.
c69276 No.14593412
>>14593380
C++ as "C with the STL" is even more cancerous than C++ as "C with Classes"
36cfe7 No.14593519
I need inspiration for clocks, artifacts, shiny metal contraptions, etc.
>>14592547
>>14592630
>>14592664
Can't you make your own serializer interface for it and build the byte array yourself? It's tedious but it might work
0109fe No.14593610
Been looking into the IL switches a bit, specifically how they handle strings. Again, not too many resources on this, so I'm just looking at the emitted code. In all cases, the strings we're testing for are stored in metadata by the compiler.
For smaller sets (around three) it just loads their references onto the stack, calls a compare function, and jumps to the proper address if they match. It does this for the other two.
For large sets (around 12, in my case) it's more interesting. First, the compiler The compiler precomputes a "string hash" of every switch value. Some of the generated IL confuses me, and seemingly performs no purpose at all.
IL_0006: stloc.0
IL_0007: ldloc.0
>push the string hash onto the stack
>pop from the stack and store into local variable 0
>push local variable 0 onto the stack
This part is done for every case
>load the precomputed string hash of the current case onto the stack
>jump to the corresponding offset if they're equal
>then test if that specific string is equal
It's a lot slower than I expected, and I guess they do the last comparison in case of collisions. Although if there was a collision, wouldn't the switch still fail?
The compiler wasn't able to perform any optimizations on identical blocks of code, even though there were only three distinct blocks that were reused across the dozen checks. You could fix this manually by re-ordering the cases to share the statements, I guess.
0109fe No.14593647
>>14593610
I should also add when you're working with integers, there's a special switch opcode, that the runtime can implement in a more efficient way. For 5 int cases, it's seems to group up the values that are close together into the switch statement (implementing a jump table) and the large ints become a normal jump statement.
3520ae No.14593673
>have to write a thesis and can't work on my game
>have to explain marching cubes 33
>tfw I finally understand what the crazy Russian nuclear scientist did
Soon I'll be able to do gamedev again.
5d3b2e No.14593700
aab2f6 No.14593764
>>14593308
>>14592664
That's why I wrote this. Works great for arbitrary data.
efd2c0 No.14593897
36cfe7 No.14593950
>>14593897
A bunch of faggots
8a8f8f No.14594002
>>14593897
It's CryEngine but with integration into Amazon Web Services. You don't have a choice in the matter. If you use Lumberyard and your game has an online component you must you Amazon's Web Services to provide that component.
356d63 No.14594018
>>14594002
I heard it was just CryEngine but pozzed. Guess I heard right.
2acb55 No.14594064
>>14593519
>Can't you make your own serializer interface for it and build the byte array yourself? It's tedious but it might work
It is tedious and it does work.
You declare a byte[] variable, set everything else as non-serializable and implement the serialization interface.
I am doing this for pluggable Edge Processors and Geometry Processors for my terrain system, so I can have a 'face' using any processor you want.
You will also want to serialize the full-assembly-name of the Type you are serializing
1d4b76 No.14594855
>>14590935
I think your main problem with that is render distance. Also 1k*1k+ is an insane distance, keep in mind just how many blocks are in a chunk, and multiply that by 1k*1k. Simulating the changes without rendering would be better than trying to render the changes during play, I don't think you'd ever see that at 30fps.
349040 No.14594970
>>14594855
It's not like minecraft, but the problem that needs to be solved is similar. For one it's 2d, and for two as you suggested it only needs to keep up at 30+fps, not necessarily show the difference at 30fps. The important thing is that it won't be delayed at applying the changes to the items internally.
And just to clarify, it doesn't need to only do that 1000*1000 "terraforming" operation, it needs to do it 30+ times per second.
1d4b76 No.14594990
>>14594970
Oh well never mind then.
b5876e No.14595019
HookTube embed. Click on thumbnail to play.
>>14593760
Wintergatan - Marble Machine has a nice wooden mechanical aesthetic
https://www.youtube.com/watch?v=lQvcoOzmLqs
mechanical drawing style/theme would also look cool, maybe you could turn the game play area on a 45degree viewing and and do isometric mechanical 3D drawing of the board.
e7ec36 No.14595336
>>14591551
can confirm, I have been working on my current project for over a year and literally the only thing that I did for it you could call "making art" was using the text tool in anim8or to render a 3d logo.
b51933 No.14595430
reminder if your 2d game lags on a 21st century computer you should kill yourself
fc1a65 No.14595478
>>14593950
I knew it
>>14594002
I've read something similar. Does that mean that development and publishing of purely single player games is completely free?
defe4e No.14595521
What is the correct way to handle text/console commands? You can't use a switch with strings in C can you?
I can see this becoming very ugly if I keep adding things, especially since I need more nested if/else stacks to handle other parts of the command.
735a45 No.14595522
>>14595430
How does this keep happening? How does someone grab a lighting system off of the GameMaker marketplace, see significant frame drops from it, and think "Eh, that's probably fine," instead of removing it immediately?
8a8f8f No.14595534
>>14595478
>Does that mean that development and publishing of purely single player games is completely free?
This is explicitly stated in their FAQ.
https://aws.amazon.com/lumberyard/faq/
>Q. If I build a single-player game that uses no cloud connectivity, do I have to pay to use the engine?
<No, in this case you would pay us nothing.
72b2bd No.14595538
>>14593380
Please continue posting. I absolutely enjoy watching you making a fool out of yourself.
b5876e No.14595543
>>14595430
Or you could fix your mistake and then kill yourself
8a8f8f No.14595548
>>14595534
Also it looks like I was completely wrong. You don't have to use AWS if you use Lumberyard, you can use your own servers.
fc1a65 No.14595557
>>14595534
I guess I should've checked the site out a bit more. Thanks for spoonfeeding.
I've seen that it also has plug-in support for various adobe products which, considering I've plundered photoshop, I'm not sure I should be nervous about.
5d3b2e No.14595558
>>14595521
You can make a struct with a function pointer and the name and just iterate over them until you find the right one.
8082f9 No.14595591
>>14593897
Literally the only good thing I've heard about it is that it's good for having lots of dynamic lights.
>>14595521
You might want to check out Flex, or something similar.
http://dinosaur.compilertools.net/
3edf59 No.14595674
72b2bd No.14595676
>>14595674
when you make it
8082f9 No.14595689
>>14595674
>>14595676
I'll do it again, I guess.
8082f9 No.14595700
fcb550 No.14595760
Since the thread is ded anyway:
Can anyone post the pdf on drawing walking animations? It's not on the 8ggydaggy wiki.
In return, I will post progress this week. I promise!
735a45 No.14595997
>>14595760
>Since the thread is ded anyway:
Why wouldn't you just request that in the new thread? It belongs in any /agdg/ thread, alive or ded.