Amateur Gamedev General ~ /agdg/ + /vm/

Logo Arguments edition

Resources
>>>/agdg/
>>>/vm/

Links
>Wiki: 8agdg.wikidot.com/
>Beginner's guide: >>>/agdg/29080

QUARTERLY DEMO DAY SCHEDULED FOR FEBRUARY 2ND
Polite reminder that the wiki exists, you are encouraged to contribute to it if you can (even if it's just your game page)

Other urls found in this thread:

itch.io/jam/xkcdgamejam
msdn.microsoft.com/en-us/library/system.io.file(v=vs.110).aspx
docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/casting-and-type-conversions
itch.io/jam/me-too-i-too-anti-harassment-game-jam
itch.io/jam/punch-nazis
pixellogicbook.com/
codeproject.com/Articles/20550/C-Event-Implementation-Fundamentals-Best-Practices
msdn.microsoft.com/en-us/library/system.bitconverter.toint32(v=vs.110).aspx
lmgtfy.com/?q=c# convert byte[] to int32
eliasdaler.wordpress.com/2015/08/10/using-lua-and-cpp-in-practice/
nickknowlson.com/blog/2013/04/16/why-maybe-is-better-than-null/
picosong.com/wnx6j/
picosong.com/wnxbR/
nickknowlson.com/blog/2013/04/16/why-maybe-is-better-than-null/#comment-867458529
8agdg.wikidot.com/
vocaroo.com/i/s1ChzYcxEUx2
vocaroo.com/i/s167WEsQnX2K
mega.nz/#!Z3QhBKwb!A2Bw7Gmzt72QoKk5B4vgZl8KhkkLGRnJtAZ0Pp2DfhY
en.wikipedia.org/wiki/Digit_ratio
youtube.com/watch?v=BAQb-5VKxmg
sciencedirect.com/science/article/pii/S0301051105000888
stackoverflow.com/questions/13366083/why-does-the-arrow-operator-in-c-exist
my.mixtape.moe/teuebg.mp3
my.mixtape.moe/cnvlok.mp3
my.mixtape.moe/cxjyil.mp3
my.mixtape.moe/zuatnk.mp3
my.mixtape.moe/hyxakl.mp3
twitter.com/NSFWRedditGif

I was playing Bavarian Scount Ranger and I'm loving it. The game is more than meets the eye, the QTs have far more mobility than you'd expect. It's fun to go full sanic.

sorry I haven't played much of the other demos - but I will make sure to play them and invest time in them

Nice, OP.

Anyways, it's nice to have all the demo day stuff out of the way, hopefully the threads will calm down once again. I should post more shit on here, but a lot of it is not stuff you can easily show off and I haven't made as much progress as I want to due to work.

This is my code that lets me read in my new file format, for saving files in my map editor. It's a rather simple way of doing it, since the command system lets me reuse a lot of code.

make a radio show styled pointy clicky tbh

One thing at a time, I guess.

...

So he's taking money to make a game, but then tells you to make it instead? he's paying you for it, right?

are those steam engine trains?

This is too much autism, user.

what flavor of sytem? was trying to get one set up for my game and i'm kinda hung up on it.

Yes "making it" and more "making an existing system not suck". Either way, yes.


I'm a bit torn between a 1-2-3 style combo system that would encourage focusing on one enemy at a time, and a straightforward each-attack-does-the-same-damage-but-with-a-randomized-animation system that would allow for handling groups of enemies more equally and encourage dashing in and dashing out.
I'll try out the latter first, even if only just to get the impact in.

fucking tentacle raping cthulhu steam trains.


I dunno man, it has a lot of charm to it.

make it like DMC but with mgs3 and like nior also add in some nier automata however make sure there's alittle of attack on titian plus modded minecraft tbh


if it looked better I'd be down like some dead clowns tbh

well i was going to have a standing attack and a running attack with heavy attacks for each does that count?

hey if it counts for god of war it counts

Weapons can now be picked up and have full functionality. The weapon is a child of a generic weapon object and overrides it's parent's primary and secondary fire functions. Hopefully this means I shouldn't need to touch the Player Character object when adding new weapons.

plz elaborate, or point me in the right direction.

I have a C++ object in Unreal Engine called "PlayerItem" that has a number of functions, namely,
on top of the usual BeginPlay and Tick functions.
I created the KatanaItem object that was a child of this "PlayerItem" object, then I overrode the above functions and added in more functions to get the behavior that I wanted the weapon to have. These functions play animations, hit objects, and handle the deflecting of projectiles. All of that is handled in the KatanaItem, and almost none of it is handled in the Player Character.
The player character just has to have a reference to the object and know that it's a child of "PlayerItem" and it can call the above functions. If I were to create a pistol the same functions would be called in the same way, I wouldn't have to add or change anything on that front.
To get the player to hold the weapon I have a Grip component attached to a bone in the player character's skeleton. The weapon is attached to that bone, and a blend in the animation blueprint that is engaged when the player picks up the katana so that they hold their arm at that 90 degree angle. The blend is one of the things that isn't handled inside the Katana.
The animations/sounds/etc are stored as montages in the Katana, which then reference the Player Character's animation instance to play them.
I also have a TArray of PlayerItem's that acts as an inventory but I haven't really tested that with more than a single item so I won't say much as my implementation could be flawed.

I can imagine The Specialists mod from Half Life, revisited, would look tremendous like this.

I just looked it up. The mod shares quite a few similarities with what what I have planned for the final product of my game. You're making me want to add a multiplayer mode and I'm probably already biting off more than I can chew.

Let's say you open a file and read all the bytes. You now have a byte[]. How do you convert this into fundamental object types (eg, Int32 or String)? Using C#, all I see are various conversion functions but nothing to "initialize" an int from a bunch of bytes, for example. Same for string/char[]

Conversely, if I have a tab-delimited text file, I literally have to do result=String.Split('\t'\) and do Int32.TryParse(result[1]), etc to read the format. Is that a normal way to handle it?

I feel like this could be improved by replacing your model with Reisen

I am one of the 3D artists on this game, I apologize for some shortcomings but I want to thank you for your support.

Ain't my game. It's one of the demo day demos from GDIDoujins
>>>/agdg/29841


thanks for your work! Maybe you should contact Shinobu's husband for advice on imoproving the models?

Oh and I read you used mocap. What did you use for it? I worked with the iPi solution myself

I didn't use mocap, when it comes to the girls my boss is the one who added the stock animations and I only made a few extras like the ones on the riding sections, I want to improve on the character models though, I made the giant tentacle monster, the dog thing and the turtle, still, I only followed the 2D artist's outline so most of the credit in design goes for them, I model stuff and rig it most of the time, we also get some stuff from Mixamo for the NPCs animations.

Sounds like you have a full on team, are you just doing this for fun or do you have funding?

You cant just freely cast data like you can in C, C# is a managed programming language that makes you use the conversion functions which ensures that there are no instances of undefined behavior. But if you want to do cool, fun things like that you can just use the unsafe keyword, and all of the unsafe functionality, although I don't know how to use it because I don't use C#. The normal way to do it is probably what you described, I think it just feels weird for you because you are thinking about it in a C mindset when it comes to how the memory works, when in C# you are actually supposed to make yourself unaware of those concerns and use the standard library. It sounds like you should use C or C++ if you want to write programs that work with memory in the way you are describing, because C# is not meant to be used that way. I'm pretty sure the correct way to write C# is to just glue the standard library functions together just like what you are doing.

I work for GDI idependently, not sure where the "studio" is but I am from Mexico, I get the commission and send the stuff over to the boss, I do it both because I like games and for money.

Yo, MoM user here. I see that some of you anons were worried about me in the previous thread; I am fine though!

I am getting close to releasing my Demo. I am aiming for Christmas, but we will see; I will be uploading a video soon though, show casing some of the changes I have made and some of the features that will be included with the demo. I am very flattered you guys were worried about me though

someone code me a ultra realistic eco system simulation game pls tbh

Took a break to play Blood and only just now realised it uses billboard voxels for certain map objects. That's really neat.

Right, but File.ReadAllBytes[] is a thing, and I'm just wondering a proper way to parse it into "real" values via deserialization.

Not that it matters right now, hardcoded stuff works fine as I build up my functionality.

stay away from it until your main game is complete

multiplayer is a whole different beast and feature creep like this will kill your motivation to finish a project

I wasn't considering actually doing it, just stating that it's temping. I already have a long enough list of things I need to do and networking isn't on that list, thank goodness.

Current animations

Was someone in the last thread talking about how to implement double tap motions or multibutton presses? A while back, a burst of inspiration led me to hammer out the basic controls for a standard fighting game in Unreal Engine and a system for easily implementing and calibrating (sensitivity) double tap and multibutton combinations. I have no interest in making a fighting game so I'll gladly give some advice if it means giving my work some meaning.

I should mention that I'm a blueprintfag and not a codefag so I have a blatant disregard for effectiveness or optimization and probably couldn't help you in converting it to code.

How do i make a 2D game that doesn't look like pixelshit without becoming an artfag?

Voxel technology had been developed for Shadow Warrior prior to Blood. The same technology exists for Duke Nukem 3D if you use a source port.

some guy created a new level editor for Tomb Raider. I've been playing around with it. It's pretty nice.

Sounds like you need to find an artist, or learn how to actually make decent pixel graphics. There's a nice book that goes over how to make effective pixel art, someone dumped it here once, but I don't remember the name of it.

I think this may be what you're talking about. It's called Pixel Logic.

someone do an actual RTS decent porn game tbh

pick one user

RTS porn game

there I picked

Yeah, any idea of how to implement one into another? because the whole "hurr hurr, losing unit gets raped" is basically a waste of resources.

have the resource be the thing which is raped and have every fucking unit be slutty and appease a fetish that's not trash tier, then have your production buildings be able to be see through which shows various units fucking.

the name of the game could be to acquire as many humans as possible from various towns, cities, villages and what have yous on the map which you can also get by intercepting transport units or raiding the enemy human breeding pits.

ur not very creative tbh if this wasn't all that obvious to (you)

One of the games I have in my ideas folder is a lewd RTT. Plays kind of like X-COM where you control an organization dealing with the apocalypse. Your soldiers are genetically engineered waifus. Enemies are cultists, demons, mutants etc. Some pet raising elements where you can capture enemies and tame/recruit them by giving them things to 'play' with. You can then send them into battle.

You know what, fuck it. Warband but with rape and magical shit to have girl diversity.

Yeah, that's it, lotta good stuff in this book.

I'd be down like a dead clown if it was less like x-com and more like evil genus although tbh


you want warcraft clone then

Oh boy I can't fucking wait

itch.io/jam/xkcdgamejam

just put the damn porn in the VN section of the game, finish mission, get lewds.

Maybe it's because I have to take my attention away from programming when I dev, idk. When I'm writing assembly I only have to think about the code, whereas there's twenty different things that all need attention when working on a game. I'll write some code for my game, realize other things need work, then I'll mess around with animations, sprites, assets, debugging, and other shit. Maybe I just need a better workflow, or if I could find a way to complete a specific task start-to-finish with my game before getting distracted by another task.
Anyone else have this problem?

It's probably because it's new and it feels different , combined with the feeling of "constant progress" that it feels more refreshing than your game.

My suggestion is that you write down your ideas for anything that isn't code and put it on the backburner until you're done coding it. If you need art just use placeholders with appropriate notes.

>Someone on SO suggested that you create an interface, but also an extension method to define partial interface behavior that all implementations have access to

So, an abstract class.

Not at all.

An abstract class is a reference type and has completely different requirements and semantics and functionality to an interface, despite looking similar.

An abstract class is limited to classes only, since structs are a sealed type by be design. However, structs can implement interfaces, and this allows you to cheat and define some utility on structs.

Interesting. Something like this?

public interface Foo{ void SomethingDefinedElsewhere();}public struct Bar : Foo { public void SomethingDefinedElsewhere() { // Do something defined by Bar }}public static class ExtensionMethods{ public static void SomethingShared(this Foo obj) { // Do something all Foos do the same }}// Later in codeBar b;b.SomethingDefinedElsewhere();b.SomethingShared();

I guess that would work, but it feels a bit scummy.

c# "programmers" are literally on the same level as java "programmers" holy shit

managed languages with garbage collection. Until you know C++/Lua well enough to use the debugger and static analyzer, they are pretty good options. Well C# is anyway. I'm universally unimpressed with Java and what I've seen made with it.

To be fair, C# is literally identical to Java, except for being generally better developed. Remember that MIcrosoft originally designed it with identical syntax to poach developers so they'd use their .NET framework.

In my defence, my projects don't usually get far enough that I need to read stuff from files, and hardcoding works well enough until then. But seriously look:
IO.File: msdn.microsoft.com/en-us/library/system.io.file(v=vs.110).aspx
Casting: docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/casting-and-type-conversions

I can open a byte stream, or read all bytes or read all lines with files. The result of that is that I get a byte[] or a string[]. Let's say I have a byte[128] as a result of calling File.ReadAllBytes. There's no obvious function to take the first 4 bytes and convert it into an Int32, for example. I can't do (int)MyArray, because that would tell C# to treat the whole byte[] as an int[] instead, which isn't correct.

Nor could I do int n = new Int(MyArray[0]) or a similar operation. As I mentioned, using ISerializable is probably the best approach.

Actually, having to look shit up to write this post, I see there is a BitConverter class that does exactly that - thank you for being a dick user, because I never would have found out about this until much later

so i started a modelling/animation course
this is what i get after 4 hours
i miss blender
and it isn't even free

hi anton

Morning lads.

is a good way of thinking about it. At least, dilbertman agrees.

Yeah, I'm definitely a systems over goals oriented person.

itch.io/jam/me-too-i-too-anti-harassment-game-jam
itch.io/jam/punch-nazis
lol

That's a fucking laugh.

Thanks anons

That flying animation is hilarious

Oh I have that second book. Recommended that you give it a quick read. I never finished it, but it was worth what I paid for it I think.

Another decent one is A Whack on the Side of the Head

I've read both of the ones I posted, both really good, both recommended. I'll look into A Whack on the Side of the Head, mate, thanks.

Found a momentum-building bug in jumpy boi

What happens when you build up speed for 12 hours?

let's first see if 10 minutes make a difference. brb Q&Atesting

Does said bug like jamborees, by any chance?

nothing really happened. the robodude got stuck riding his board

shit game tbh

perhaps the switch was subtle?

This is a bad idea. You should put all your #defines that aren't conditional compilation directives in the top of the file, or better yet, your header.


The official book is pixellogicbook.com/
I've seen vague posts suggesting he plans to make the whole book free when it's done, so you might want to keep an eye on it. Anyway, have another 3 chapters. I especially recommend Ch. 5: Readability; it's probably the most important concept other than lineart.

(checked)
This sounds similar to the Java 8 interface solution, where default interface method implementations can be written, but they can only be written using interface methods.

...

...

Gamedev is quite far from the "acceptable" way to use a language. XNA for example, breaks at least 3 major rules for using struct objects, like Rectangle or Vector3, making them mutable, larger than 64 bits, etc because of optimization.

While the average user here doesn't need the sheer optimization those low level things can do, there's literally nothing wrong with preferring fields over properties

I started over last week and audited my code as I re-ported it and slimmed it down, I'm back up to 1518 lines across 22 files. It's mostly the same functionality, but now I can define Sprites from a file

Any good tutorials on how to implement scripting support like Lua bindings for a C++ game, not technically but structurally? Im wondering how to setup events so that a script could pick up on them and interfere with them.

For example, i have an entity that receives damage, but has active buffs / item effects, which are just scripts, and they could alter or negate the damage. How do you go about setting this kind of thing up?

Fellate a gun my friend.

Also having line count increasing rapidly in your project is a telltale that you're doing dogshit programming. My game has just over 1k lines of useful code, and already it does well over half the things it's supposed to be doing.

While this covers C#, it's still a decent read
codeproject.com/Articles/20550/C-Event-Implementation-Fundamentals-Best-Practices

Basically I would imagine you pepper your code with hooks like OnBuffApply, OnBuffTick, OnBuffRemove, OnActorUpdate, OnAttackAnimationBegin, etc and just call them at appropriate times. Now I'm not sure if that's ideal or not, but that's how I would naively approach it

Why?


I thought that because of:
You already saw them, but doesnt: msdn.microsoft.com/en-us/library/system.bitconverter.toint32(v=vs.110).aspx do what you want?


It's literally Microsoft's designated Indian language. The project started out as J++, which was a nonstandard version of Java Microsoft developed, which was then renamed to J# and then C#.

thought so, few of my friends was shunned and confused about what kind of progress am I really making on my game.

Yes it does exactly that. I was thinking of eg ISerializable and the attribute, or Int.Parse(), or xx.ToString() shit, I didn't know of that namespace

Very Good! Do you make these in photoshop?

(checked)
Because if you have to reference the value at some other point (e.g. when writing or modifying the header) you may have multiple different constants that do the same thing in different parts of the codebase. Grouping constants at the top of a file for internal constants or in a header for shared constants is a good habit to get into.

Mostly, but I changed to Aseprite because my PC's motherboard started to fail so I just cloned all my shit onto my laptop and used it because I didn't have my copy of PS installed on it yet

I basically set up all my images to have a 512x512 size, and a fixed palette (NES plus additional generic ramps) for gradients. Each sheet holds exactly 256 32x32 images, which means I can index frame data with a byte. All animated objects have a reserved 4x4 (16) frame square they can take advantage of however they want. I've earmarked my sprite sheets so that the top 3 chunks are reserved for 12 animations, while the bottom chunk is reserved for 64 single-frame items (or however I want to do those)

As far as handling the animations ingame, it's a little more complex. I have XNA's Texture2D, but also my own Rectangle[] called Source, an Int[] called Frames, and a Timer which resolves to a value between 0..1. I keep these in an object called Sprite, as well as an additional "DrawArgs" object (which tracks origin, flip, rotation, etc). There's a static helper method on Sprite which takes those three values and intelligently determines what pathway to take to draw them (eg, if sprite is invalid, it draws nothing, if a sprite is given, and it has a rectangle[] for frame data, it will use it, unless you specify your own data in the call which overrides it, etc).

Finally, I have a few helper objects on file load to make generating objects easier. I have an Image class which contains only a Texture2D and a Rectangle[], and an Animation class which contains only a Timer and an Int[]. These don't have any specific interaction with themselves or anything else. Rather, they're just a handy container instance that gets thrown into a list, and I can pick and choose which things to assemble to make my final sprite. I'm also working on the bit format and how to best read/write from a file to make it all load quickly and robustly

Gamedev seems like a waste of time. It requires mental focus, its high effort, and it just gets more and more difficult as you get further into a project. I could be using that time to get an absurdly high paying job And then retire with no game :(

It's literally just a stand-in for something like "const size_t hdr_size = 40". I think you're assigning an extra standard to this just because it uses the #define syntax. #define's are hard to mess up and you should really just use them anywhere that it's convenient.

The reason that I was using it was because the constant size_t doesn't work when setting the array to zero as it's being initialized. I changed it to equivalent code like so: const size_t hdr_size = 40; brush_t *blr = NULL, *tmp = NULL; while(!feof(fp)){ char hdr[hdr_size]; (void)fscanf(fp,"%20s[^\n]",hdr); if(!strncmp(hdr,"RECT_PRISIM",hdr_size)){Since, it doesn't actually need to be zeroed out.


lmgtfy.com/?q=c# convert byte[] to int32

You should still be using the #defines, just group them at the top of the code.
As a matter of fact I am, because the #define syntax defines a global variable that can have unexpected side effects in other code due to name collisions. Namespaces in C are basically nonexistent, especially in the preprocessor; you need to take special care not to accidentally override something or screw something up.
If your project ever gets to >10k lines, you should block most #defines with #ifndefs because you'll inevitably have name collision problems. Paranoid? Sure, but it's better than a buffer overflow ACE exploit.

Thanks for the bug report, user. You're doing the lords work.

I like the level design, though. Reminds me of Tribes: Ascend (RIP).

Anyone knows how to get lua53.lib? How do you build it?


Thank you user, i also found another tutorial explicitly explaining lua + C++ in games and ECS-frameworks:
eliasdaler.wordpress.com/2015/08/10/using-lua-and-cpp-in-practice/

#define is not a global variable

This #define is only valid inside of this file, I think that you are being very overzealous about programming rules. This is a non-problem. I already use #define, and I already know how to program in C. Name collisions are not an inevitable problem.

I like writing useful macros inside of my functions when the macro isn't relevant anywhere else. Like: #define FSW (1.0f / FONT_CW)#define FSH (1.0f / FONT_CH) float off_y = floorf(normal_off / (float)FONT_CW); float off_x = (float)(normal_off % FONT_CW);
If I want to use the macro inside of more than one function, I put it on the top of the file like normal. If it's only being used in one function, this kind of rigor doesn't make sense.

Nevermind, it's just well hidden on the luabinaries website

you can just write that as a function instead of a define and every compiler in existence will inline it for you. you can use the inline keyword if you really feel like it.

#define defines a variable that is global for the specific .c file being compiled; if you're including headers, you can have name collisions occur between two defines in two different headers or a header and the file, because individual header files are not namespaced.
I do agree that I'm being paranoid, but I've been burned by this sort of Makefile and cpp nonsense before. I had used a bunch of external libraries at that time though, and I presume your code has far less external dependencies than what my code contained.
Are you not using that HDR_SIZE when writing your headers to disk as a bounds check to make sure you don't overwrite data? That's what I was assuming you were doing (or would be doing in the future), and why I suggested putting it at the top in the first place.

Also that code sample didn't actually use FSW/FSH


Would gcc inline it for you in a debug/unoptimized build? I'm pretty sure it would but I don't remember.

Writing an inline function is more typing and harder to read than the macro. My problem is that I want to copy paste text around while also being able to change that text easily. #define is the solution to that problem. So, that's my reason.


Again, #define is not creating a variable. The Preprocessor copies the number 40 into all of the places where it finds the symbol. It's a constant.

I don't use makefiles, since it generally locks your program into either using GCC or MSVC, and enables people to create really incomprehensible source trees since nobody has to look at the source tree anymore. Batch files / IDE files are good enough for me.

Generally I avoid these, but when I use them I don't have naming issues. Everything in OpenGL begins with GL, for example, so it's easy to not have conflicts.

The check here is actually pretty pointless since in my format string I write "%20s" which means that hdr is already not going to overflow as long as it's above 20 chars. I just use strncmp instead of strcmp on principle, so HDR_SIZE was useful to use, even though strcmp is acceptable here. It could stop a bug if I wrote a header that was too long, though. So, it's a kind of arbitrary thing that I wrote because I was following my own rules.

You're right, that was dumb, this is the whole sample:
void draw_char(char c, float x, float y, float size, float aspect){ if(c < ' '){ return; } uint32_t normal_off = c - ' ';#define FSW (1.0f / FONT_CW)#define FSH (1.0f / FONT_CH) float off_y = floorf(normal_off / (float)FONT_CW); float off_x = (float)(normal_off % FONT_CW); float ht = size * aspect;//* FONT_CHAR_HEIGHT_CONSTANT; off_x *= FSW; off_y *= FSH; draw_tquad(x, y, x + size, y + ht, off_x, 1.0f - off_y, off_x + FSW, 1.0f - (off_y + FSH));}

This code works since i'm doing immediate mode rendering, so I don't have a reason to change it, but in another project I had to rewrite it so that the data was precomputed and stored in a VBO.

I managed to get the mirror effect in Max Payne's end combat level to work.

The tricky bit was figuring out how the engine processes reflections, you need to supply an alpha image because the engine only uses bitmaps. So no layers allowed.

In this case both rooms are identical and I added an ashtray just to add to the effect.

Goddammit, when I state a "variable" I don't mean "allocates a memory address in the program's stack space that is initialized with the given value and used when referenced", I mean "places the name and replacement pair into the C preprocessor's key/value table, which can change at any time". If you had e.g. #define TEN 10 #define TEN 9 int main(){return TEN;} main() would return 9, because the first #define would define a variable TEN to be replaced with 10, the second one would redefine TEN to be 9, and then the find-replace of all instances of TEN would be conducted with the second #define value of 9.
The reason I brought up Makefiles wasn't because they were the problem, but because it's hard to figure out exactly what's gunking up the Cpp during a build script, and sometimes Make will change compilation order on you which exposes name overwrites. Frankly without using the Makefile to step through the compilation process, I probably would have a harder time figuring out what's going on.
The reason everything in GL starts with GL is because of the namespacing issues. If the C preprocessor had any namespace handling, prefixing would not be required.
I'm not going to give you a deontological imperative to Always Put Your Preprocessor Definitions At The Top Of The File, but I do think it's a good habit to get into. I think you know what you're doing, though, so I'm not going to continue forcing the issue. Keeping function-specific macros with the function seems alright to me.

I already do put my #defines on top of the file, or in a header, right now those two in that function are the only case of this. Sorry for the annoying semantics reply about #define not being a variable.

I honestly think that the idea of namespacing is unncessary, because instead of: gl_dothing, you type gl::dothing. Just a stricter version of a naming convention. And if you do something like "using namespace gl", I think that that is pure cancer because now you can't be immediately certain of what function you are really calling. The same goes for operator overloading. Namespacing solves a non-problem and only adds uncertainty to the program, which is part of why C++ is so hard to read.

Threw together a crowdfunding campaign, already regretting it for how much communicating there'll have to be with high level backers, but its a concrete step towards a release

Yes, but the nice thing about namespaces is that the naming convention is enforced by the compiler rather than by humans, and the compiler will complain if you screw it up or do something ambiguous. A similar argument drives why many popular languages with real type systems are adopting Optional types (Java, C#) or include Optionals on launch (Rust, Swift, Kotlin, Haskell, etc): because Option forces null checks to become part of the type system rather than something that must be manually enforced. Here's a good blogpost on the topic: nickknowlson.com/blog/2013/04/16/why-maybe-is-better-than-null/
To use the Optional metaphor, adding "using namespace" is equivalent to defining every type as Optional. You lose all the benefits in the same way the leprechaun tying a ribbon to every tree causes you to forget which tree has the pot of gold. Don't do it. If you want to avoid rewriting the namespaces all the time, make a #define cool_func(x,y,z) lib::cool_func(x,y,z). This way you're explicit about which library you're referencing when using any external dependency.

Unfortunately, I missed demo day. That's okay, because I don't think this is worthy of a demo yet. I did manage to get over a huge development hurdle: figuring out how the fuck the game knows which hex you're hovering over.

Since each hex isn't an actual GameObject, instead there's just a list of every single center vertex inside the GameObject for the mesh. Then, in a child object (and it HAS to be a child object, otherwise it screws up) is grid of box colliders. When the game starts, for each collider, the game grabs all of the hexes inside those colliders and puts them into a list of lists. Then on each Update() frame, if you're hovering over the mesh, it first gets the collider you're inside, then iterates over every hex to figure out which is the closest. Why am I doing it this way? Because the old way simply iterated over EVERY hex, and ran at about four seconds per frame.

Don't most 3D games usually raytrace a vector from the mouse pointer and project it into 3D space, then transform it to find the appropriate thing?

Yes, I do the raytracing, but this is the "find the appropriate thing" part that I'm talking about specifically.

Before going to work on another BBS asset I just wanted to say, this SketchUp thing is kind of interesting to use, will save me a lot of time when it comes to modeling certain buildings.

I just have one question, do these houses usually have windows on the side? just wondering since I sometimes find them too close to one another.

I don't think the way he is using them is bad. It's in the source file too so it is limited in scope to that file. He's using it to save typing essentially, which is fine. It also sounds like a single-person project. I've also seen many other people do exactly this too. I think I saw some of this in the imgui source code the other day. name collision in a single source file isn't really a concern. the order of compilation will not have an effect on this situation.

At first I though making some inlines might be a good idea. But after seeing his full function it all looks fine to me. It saves some typing, it limited to a single file scope, and it's defined near the only place it will be used. It's not spread throughout the file so it makes very little sense to define it at the top, as a reference when reading through the code.

Pretty much agree with this. Operator overloading in particular is pure cancer. Everyone new does it. Now you see random class and struct instances scattered around being "added" and "multiplied", but the operation could be literally anything. It's like naming a function by a single letter. It's worse than that really. It's naming an arbitrary function by a common, well defined word that usually implies something other than you are using it for.


lol

Yes, yes, they're both bad, but you have to admit that C doesn't have a lot of the type checking that Java and C# have, and you could never implement something like Optional in such a way that null checking is enforced at compile time. The C compiler just isn't smart enough to do something like that, because new types can only be made through composition of other types through structs and unions. You literally can't do it without reinventing C++.

This is literally the best game ever made by agdg.

It stands out among the endless stream of shitty sidescrollers/pixelshit and babbies first RPGs.

Whoever made this is now the king of agdg

Well, I assume that architectural standards vary greatly across time and cultures, but I can tell you how it works in Germany.
It's been a few years, but if I remember correctly, usually one side has no windows. It's called the "weather side". It's the side that will be rained on the most, statistically speaking. Not only would windows on that side have the uncomfy views the most often, but they'll also be the the most work to keep clean.
Aside from that, it's also made sure the living, bed and children's rooms have big windows and are facing the cardinal directions that will get the most sun, for obvious reasons.

You won't discourage us, Satan.

Anyone knows why my root bone is moving after exporting the animated model to Unity despite it being completely stationary in Blender? Ignore shitty animation, please

Is CG Cookie a good learning resource for Blender?

Morning lads.

Trying to get shoulder topology right, im trying to follow some references some anons suggested, but still looks bad, should i make another ring between the arm and the body?

b urself xD

Think it has to do with root motion (in the animation import settings under Motion)

The whole point of "going outside your comfort zone" is to stop being yourself, Mr. (1) and done.

You've probably seen this already, but you can wall run indefinitely.
Steps to reproduce: Run towards wall, equip board, jump towards wall, unequip board while wallriding, move up to counteract gravity.
You can weave to get more speed, as shown in the webm.

picosong.com/wnx6j/ or picosong.com/wnxbR/ which version is better or at least more pleasing?
I have been away for a while due to being on a dev team with a group of friends. From here on out Kowloon is becoming more of a side passion project to me but one I wish to put care and time into.

I like the second one more. The first one sounds very sharp and feels like it would drown out other sounds. To me they convey different atmospheres, too. The first one communicates action, maybe a manhunt or something. the second one makes fills the atmosphere with dread and melancholy.

Of the two I think the second one fits a lot more.

...

So why not just make a bunch of libraries and extend C so that it has all the functionality of C++?

someone make a god gayme that's not basic tbh

...

populous
black and white
from dust

all solid gameplay but it wasn't very complex and didn't do much

Just popping to say this comic is the first genuine chuckle I've had in a few days and I hope all you faggots make progress on your various projects. And that at least one of them has a fat pair of tits.

Don't worry. I'll make sure to add several waifus to the post-apoc industrial fantasy game we're making.

Second one, my dude. Still will need work but is on the right track.
Needs Neotokyo OST tbh

Adding Kowloon to wiki.

LOL

...

...

o fuck

Amazing.

BRUTAL

What you guys are referring to as Neir Automata, is in fact, Neir/Tetrachrome, or as I've recently taken to calling it, Tetrachrome plus Automata. Neir Automata is not a game unto itself, but rather another free component of a fully functioning waifu system made useful by the Tetrachrome dev, 2Booty, and vital waifu components comprising a full game as defined by Yoko Taro.

You should start by learning the game's name before calling it anything else.

...

Ouch. Felt that from here.

Thanks, I'll need to come up with a proper title later. As of now the game is just two maps with me experimenting with gameplay options, verticality, and level design. My end goal is to get to E.Y.E-tier huge if not further.
Got any advice on what should be added to the song?

what kinda interesting gameplay are you going to have with it?

I got tired of arena and hallways so I wanted to try something new: Layer based levels.
These are arena-esque areas or even hallways with a focus on having different layers and floors to jump between (by jumping stupidly high and running sanic speed).
This style of hopping around behind cover and onto rooftops and walkways would be encouraged by low time to kill.
Aside this though it would be huge areas with no enemies filled with exploration. A constant need to wander an endless completely non-linear city is the goal.

You're a fedora living in a futuristic religious dystopia, hunting down the last copy of Fight Club. Since guns are bad you use an intricate debate system to subdue your opponents and when all else fails, your trusty replica katana will slice through anyone who doesn't understand property is a spook and thus trespassing isn't real.

Stress testing my way of handling sprites. Got about 2,400 on screen updating and drawing, uses about 7% CPU on my single core 2.5 ghz laptop and about 18 mb memory

Well I mean, XNA's way of rendering sprites. I'm just holding them in a list and sharing their resources as much as possible. Still, it's very fast for my purposes.

do the first half of that and not the later half


nice try

I still think, that you don't need a compiler to tell you this. It's just typing "gl" or whatever at the beginning of all of your functions. I get more confused when a program does things like "vertex3fv" "begin(TRIANGLES)" "bindBufferARB" instead of "glVertex3fv" "glBegin(GL_TRIANGLES)" "glBindBufferARB". I also think that "gl" is less work to type than "gl::", which makes it nicer.

The only real types that exist are signed/unsigned integers of different sizes, and floats, i.e. what is exposed in C. I think that all of the rules that Java and other languages with the same attitude towards types are really just a bunch of arbitrary and restrictive rules, because they're built around an "idea" of what types should be and not a reality of how it's perceived by the machine.

This is supposed to be chibi-like, but i think the feet are too small, what do you guys think? its a male model btw

I'm onto your reverse traps

He's going to kill himself at this rate man.

If the Polish mob didn't get to him already.

...

get out

Your game IS using mod tracker music, right? You don't want to have unnecessary bloat sound, right?

Tell me more

HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA

Just listen to the Unreal and Deus Ex soundtracks and you'll be sold.

I guess it will be a matter of putting them according to the internal design then.

If you've got some tracker recommendations can you add them to the wiki?

C H I N E S E J E W

i adore modtracker music just as much as the next guy but it won't fit my current project.

My other project, on the other hand…
recording this reminded me how much I learned since starting work on itand the decision to start from scratch is a good one


Ain't my music. It's an old Alex Brandon track, a Ghost in the Shell tribute

ModPlug, duh

I've never used anything besides OpenMPT, so if it's bad I wouldn't know any better. But I do know that it supports a pretty wide array of formats, including Unreal's one.

...

Feels good to finally be back to work on this again.

Implemented a vignette shader. Which, admittedly, was mostly done by someone else, but it's nice to tweak with shaders and learn how they work.

Why are you polymodeling your characters?

Looked it up and all the reviews are complaining about having to install uplay to play it. Does the pirate version do away with this?

...

maybe

...

because i haven't learned how to sculpt properly yet

Seems like it'd just be a matter of time until you get discovered and then people would be all over your ass.

Had a similar idea once, but you would practically give the players access to that mining account if they find out. Another idea would be a background script that opens ads or your website with ads. But honestly not many people play free games except free porn games, might as well go with patreon in that case.

What's stopping you from starting? Characters are way better to sculpt than to polymodel.

still ID hopping, cunt?

you even posted this shit on cuckchan hoping to get (you)s, even though they don't know who the fuck tetradev is.

I wouldn't know why you'd go to cuckchan, but why not stay there

I will eventually

I am pretty sure tetradev originally came from cuckchan, so shouldn't they know him even better?

Well of course you don't need a compiler to do this for you, but it helps. One of the naming conventions in Ruby (note: I despise Ruby) is that boolean functions end in a ? (e.g. num.isEven?) and functions that modify internal state instead of returning a copy of the data end in ! (e.g. list.clear!). This would be all well and good, except this is purely a naming convention and it's not enforced anywhere, so libraries could have functions that don't end in ! modify internal state and you'd never know until you read all the docs or encountered an unexpected error. If the compiler enforced that side-effect functions must have ! at the end, this problem would never happen because it literally could not occur; you'd be able to detect the mismatch at compile time, rather than runtime. This is the same tradeoff with Option vs. null checks and namespacing vs. prefixes: you could do them manually or automatically, but at the scale you're working in, you wouldn't feel much of the benefits of automation that would be apparent when you're dealing with many libraries or a large codebase.
C also has pointers in its type system, as well as structs and unions. However, it doesn't have some basic type concepts such as generics; if you want to make different LinkedLists that contain different kinds of data, you have to define a new IntLinkedList and FloatLinkedList and all the rest manually, which gives you plenty of room to screw up.
What truly is a "real type" though? Technically floats don't really exist; they're just binary data that is interpreted as representing a float. Neither do pointers; they're just binary data representing an address in memory. And unsigned and signed integers don't really exist either, they're just binary data too that are interpreted in different ways. And numbers smaller or larger than the register length are also binary data, padded with 0's or stored in multiple words of memory as required. The B programming language (C's predecessor) treated everything in this way and was completely typeless in a way that not even Javascript could ever be. There is a reason it is no longer used.
(also hearkening back to your complaints about operator overloading: when you multiply two ints and multiply two floats, the multiplication operator is being overloaded. Do you want only one of these to work, and the other to be relegated to float_mult(float a, float b)?)
Yes, and that's the point. The restrictions are in place to reduce the possibility of errors, like not checking your null variable or having namespace collisions. To make a metaphor, most people in a stereotypical Christian marriage with 2.5 kids and mom running the house while dad works were happier back in the 50's than gender-equitable marriages, and are happier today where they exist. Certainly some things like stigmatization of homosexuality and premarital sex are arbitrary and restrictive, but following these arbitrary restrictions lead to a much better quality of life compared to ignoring them.
Take a look at some "arbitrary and restrictive rules" NASA and JPL use in their C code (pdf). Pay attention to the last line:
You certainly don't need to follow this standard in your game, but if you're launching something large and combustible at escape velocity that contains humans, you better be paranoid as all hell.

It has that industrial vibe to it I personally would like to hear some industrial samples added to the track. Perhaps a bit more variety to the melody, maybe a beefier base or even a proper baseline.

Pardon my newfaggotry, but who the heck is Tetradev? The wiki only lists an RTS he abandoned, and that he "DID NOTHING WRONG"

These are some nice digits.

Looking nice
This got me thinking, is there a website where people showcase shaders, with previews and everything? So many simple things are just the same over and over again, like Bloom, contrast, color correction, water reflection/refraction blending and so on.


No, pools work with just an address, no login and nothing, that's why miners hidden in websites are a thing. They can't do shit with your address, and to make it more obscure you could have several (thousands / millions), and redirect the money so no one ever finds out who is behind that address. That's the beauty of crypto


lurk more

Anyone have examples of good button sprites? I keep getting shitty UI things on google.

These are floor tiles you can walk on to trigger something, and as far as I know, will just be a static image

All I can find on Tetradev is an abandoned Patreon and a 404'd Tumblr with two archive.org snapshots. It appears he was working on Tetrachrome, which was some sort of 3rd-person action-adventure with waifu protagonist.
I don't get why anyone cares enough about this guy to make a meme about him though. Did he throw a tantrum or quit when N:A was released? Is there more backstory than just "N:A beat him to the punch"?

He just threw a tantrum, not all that spectacular really.

Finish the remainder of the mesh and I recommend you combine sculpting and mesh modelling to push and pull the shape, that's how I do it and it creates more pleasing results.

One thing to remember is that good topology naturally builds form, so following that work should work out perfectly fine for what you are trying to achieve, anyway what is it that you are actually making?

A chibi (4 heads height) cowboy, to be my protagonist

Reminder that learning how to sculpt can take your character modeling a long way forward.

You don't want to make pic related for your games, do you?

...

what a majestic creature

Protag for what? you can follow the topo flow while still maintaining proportions for your own game, you do know that right?


Mesh modelling is great.

Scrolling past I thought it was angelic Dad.

Huh, for some reason i thought you need it, i remember someone telling me you do. Good to know though.

For my farm sim
>>>/agdg/27922
Yes im trying to keep the topology similar to the reference

Im going for Pokemon Sun&Moon style

Thanks dude, that's pretty funny

...

Only for hard surfaces. Even then, you'd want to do hard surface sculpting for something with a lot of detail.

As for characters, if you're polymodeling them, you're doing it wrong unless you're making a lego game or something. Organic characters will always come out better sculpted.

Oh it is you, the every day life guy, do you have concept art or is that pic you posted the only reference you have?


Nah it's perfectly fine to mesh model, I personally employ a combination of mesh modelling and sculpting, not just retopology, shit turns out fine, not that I'm any good at it, look at how low poly that model is, it would be easier to just mesh model it then sculpt and retopologize.

I have every fucking pic except for what i actually need, i can't find a good 4 to 5 head chibi male model sheet
So i pick references of all kinds and try to find middle ground

brb following advice and ruining my game's asthetic

Yeah its pretty funny but you should know that Tetradev is still one of the most respected yesdevs around here and probably got farther than anyone else when it comes to polish and quality

Case in point.


You realize it's possible to sculpt low poly models? Do you not understand the sculpting workflow?

There's an easy solution for all of this.

Model base mesh > sculpt character > retopologize?

Yes

yes user i know ive been practicing this is my work in progress, tell me how it looks so far

I don't get why you're describing all of this to me. I just gave you my personal opinion on the topic, I understand how namespaces work and what kind of things they accomplish, I just don't believe that it's more useful than a simple style guide. libraries don't follow a style but as long as your functions do, it's fine.

I get how types work. I don't actually understand the point of this part either because it's like a write up on the topic instead of an argument for something. I think that doing things like writing a note that says your number should be interpreted as a pointer to a 32-bit int is fine. I don't think that being unable to freely assign things between int types and bool types, like in languages with "real" type systems accomplishes anything, though.

I know why they were designed that way, that doesn't mean that, because I don't like the rules, that I don't understand the rationale. I get that they're there to stop errors. I just simply disagree with languages that bake a style guide into their language, because I usually don't like the style that they make you use. It solves a problem if you're overseeing a staff of Indians who aren't very good at programming. It doesn't solve a problem if you know what you're doing and know how to follow a style guide. I don't think that the verbose way of calling me a fag achieves anything in your post, either.

Which i'm NOT doing, I only follow rule 6 and 10. Being able to program creatively is what makes programming fun.

Not enough volume in the facial anatomical features; at the moment he looks too bony. For something like this, you should really get a human anatomy book and study it vigorously.

Not sure what's going on at the back of the head where it meets the neck. Looks like he's wearing a mask so you should probably smooth that transition.

Speaking of the back of the head, it looks too flat. It needs to be more rounded and consistent.

That said, you're still lightyears ahead of most indiedevs.

>nickknowlson.com/blog/2013/04/16/why-maybe-is-better-than-null/#comment-867458529
wew 5 year old Terry comment

Helvetica Scenario/10

and that would be?

There, think I finally finalized my palette. It's NES48 plus extra gradient ramps

Most follow 0,2,4,6,8,a,c,e, but some groups have extra stuff eg in the 8-f range and stuff

No but seriously I need help with buttons

just apply sound to the button press if you can't nail the visuals

I like sculpting. I think it's great, especially for an artist. But it isn't the right way for me. I have a wacom and PC able to handle the high poly meshes, and I've dabbled a bit in it. But its overkill for me and my personal style of low poly psx models. Besides gameplay and fun are the backbone of my game, not a fuck is given to normalfags and their taste in graphics which the industry cowers to. I have this idea that a game's visuals should only "represent" a thing and that trying to too closely duplicate something makes for a soulless xerox world. To me, actual gamers are like playgoers, they don't cry about the kitchen missing a wall and roof, or the fact that Peter Pan is played by a girl, and it doesn't detract from their level of immersion or enjoyment. Non-gamer tourists I equate to the typical moviefag who cant appreciate practical effects and gorge themselves of CGIshit. AAA is Hollywood 2.0 producing soulless shit because they have every minutiae boiled down to shekel-farming perfection. I'm just a one-man team trying to make gaming great again by challenging industry standards and saying, "FUCK YOU" when people say "you're doing it wrong" because all that matters is my game play loop and whether or not people love it to death, not how I got there. Fuck overly complicated workflows being the end all because the current retards running gaming into to the ground say so. Or maybe that's how I excuse my imperfect work. Ranting Nodev Off.

My only experience with this is a shameful past of webdevfaggotry. I'd recommend having the button visibly lower, possibly beyond / below the surrounding level, and darken the surface of the button. Also if you have a hover state, make it brighter there.

I feel sorry for the guy, I can understand his frustration. It's fucking retarded to think Yoko stole it, or that the game wouldn't have done as well if the main character had a different design. I hope he can rework the visuals of his game to make it something to stand-out.
And that is fucking funny image.

...

...

holy shit kolwoon user you're still here?

Looks pretty sick.

I got a new PC and my old Unity project crashes when it tries to loadup the level geometry, which is a .blend file.

Also, I haven't been doing gamedev for 4 months because I got a job, but I'm free now. Did I miss a lot, aggydaggy? I missed you guys.

You might want to give the button a base so it looks like it is protruding from the ground. pic related is my attempt

HE'S BACK!

fucking neet turtle girls tbh

Showed too

brb stealing

...

Looking rad, bro.

...

...

Whatever happened to that one fella that was making that game with the tiddy demon

Lookin pretty good lad

Make a custom UI and that thing is ready to ship

This guy i think


Kowloon Dev you owe us a Demo Day demo I think. I was looking for your stuff.

He was busy finishing up another project no one gave a shit about.

I'd love a demo.

It's possible but I'd have to finish at least map01 of the first sectors main city.

There we go

Is there a fact that it was tetradev making those posts?
We got yandev and that guy from monstergirl island going full retard, one was tripfagging and the other was in discord.
But what about tetradev?

In retrospect, I really should've guessed that white text on white static would look like shit.

There, that should do it for the buttons. Couldn't decide on blue or white

ever heard of "Contrast"?

What's wrong with webdev?

Everything tbh.
Im so fucking glad i left that industry for good, it's a cesspit. Im not exaggerating, three out of my 20 colleagues would have passed fizzbuzz, and the positions were well paid.

Wow, I didn't understand any of that. Good job, user. You keep on trucking!

Yup. So I tried darkening it and making them colored so it'd contrast against the background.
Nope, still illegible shit. Guess the titlescreen idea is a bust. I'll try it again another time.

...

Would you mind putting in a good word for me?

Keep the background white like in the first draft, maybe even lighten the blacks in the static. Then give your text a black border, keep the white fill. This is how subtitles are rendered to be legible on every background.

...

Making a lightweight scripting language. I've almost got the language features and execution hooked up completely.

Soon it will be hooked up to reflection (the Unity Debug.Log is just registered as Log on an object called Debug, not being called via reflection yet), and then a REPL console window so I can use it to debug stuff more easily.

I also plan on using it to hold scripts for small things I can't be arsed to recompile every time I make a small change, or want to change during runtime, because even though Unity advertises itself as being able to recompile during runtime, you have to write your scripts a certain way to allow that to work, and I don't like to be restricted like that.

Damn, am I glad to see you.

1. Our first quaterly demo day. YOu can still download the demos and give your thoughts about other people's work
2. We now have a wiki. 8agdg.wikidot.com/ sorry I haven't gotten around to adding your game
3. People kept asking what happened to you


And one of my favourite artists and voiceactors. His solo albums released in the recent years are pure gold. the song isn't really in game, I just played it in the background to show how mod music would mesh with the thing

I hope you own already a vulkan compatible graphic card :^)

Any good resources on making vidya music that isn't fucking ambient noises or le retro styled pixelshit?

Just like make music and make it loop. Don't make what you don't like.

Study music theory.

Do you know music theory?

Make bleep bloop retroshit, and then arrange it with proper instruments. Maybe lift a couple elements from songs ya like here and there. I don't know shit about making music, but making melodies is easy, because anything works.
Functional, but below mediocre Examples:
vocaroo.com/i/s1ChzYcxEUx2
vocaroo.com/i/s167WEsQnX2K

...

also, you can't extend two different abstract classes, but you can implement as many interfaces as you want

there is nothing wrong with the animation

The problem seems to occur only when in 'Rig' tab I set animation type to 'Humanoid' but when I set it to 'Generic' everything behaves as it should. 'Humanoid' seems to be some Unity standard, can I just ignore it and use 'Generic' instead without any problem or is there some benefit from sticking to 'Humanoid' down the line?


Tried looking there and I only found the option to set 'Root Motion Node' whatever that is. But unfortunately no matter what I pick the problem does not go away.
I also tried messing with 'Root Transform' options but it didn't do anything meaningful either no matter which option I picked.

Unity have a animation system called mecanim.
What it does in simple terms is, get your animation, retarget to a 'humanoid' generic bone structure, and through that, it can apply the very same animation to any other model you set as 'humanoid'.

In humanoid mode, your model can use literally any animation, with a small error
In generic mode, your model can only use animations made for your model.

I am not an expert on it, so you should google 'unity mecanim' and read up on it.


This alone is reason enough for me to use unity over any other engine, since alone I can't handle making 20 animations for 20 characters, so reusing the same animation on all of them is practically a must for small dev teams, if they want to have many characters on their games, that is

Sounds like pay off will be worth the effort, I'll keep trying to fix it and I'll look into Mecanim. Thanks.

I forgot make a pickup sprite for the berserk rune. Fixed that

He had a history of being mad about Automata, made a similar post before in some thread and completely disappeared after the happening. Basically confirmed.

Yo Guys, MoM user here. I just wanted to let you guys the demo is nearly done; all the areas in it are mapped out, I just need to touch it up and tweak a few more game play mechanics before its presentable. I would LIKE to release it by Christmas at the earliest, and February at the latest. I will also be uploading some videos before the demo release, as I tweaked some animations and mechanics which I think you would all appreciate.

That being said, here is some imaginary of the bank that will be featured in the game, as well as the man who runs the place. As per usual, I am happy to answer any questions!

hell yea

How difficult would it be to make your own version of ballistics?

Can anyone vouch for FNA? Someone recommended it to me on twatter as a cross platform replacement of XNA that still targets .NET 4.0

pretty easy

Can someone with Blender knowledge help me out?

mega.nz/#!Z3QhBKwb!A2Bw7Gmzt72QoKk5B4vgZl8KhkkLGRnJtAZ0Pp2DfhY

I downloaded this model, but for some reason when I try to export it with a json exporter it gives me pic related as error.

I have no idea what it means, however I do know that if I either don't export the textures OR delete all the materials the exporting works just fine.

I need someone that knows about blender to download this shit and check if materials and texture have any weird settings that might cause this to happen. I can't seem to find anything weird but I don't know how to use blender well.

The model is NSFW btw

Please help I really don't know what to do, I can't model and I can't find anyone that is willing to work on something with me without me paying them 200$ upfront

Actually I think I figured it out after deleting shit at random

How's this look for water?

if you have a whole lot of imagination, I guess it can pass as water

not very good

I think it would look better without the circles, and if you made the waves move like pic here so they look like they're flowing.

Awful. Without the circles it could pass, but the circles themselves make it look far too grid-like and reveal too much of the tiling. The lines alone are far too even. You should make them more broken (and probably slant them diagonally) if that's the look you're going for.
If I were you, I'd just remove the circles and plan on replacing the entire texture eventually. Without the circles it's good enough as a placeholder.

Reduce circles or use algorithm to make them more sporadic.

Start by removing the circles.

The lines are too static and need to move more. The circles serve no purpose and should be removed

HOW ABOUT YOU USE NORMAL SIZED PIXELS TO MAKE NORMAL 2D ART YOU FUCKING CAVEMEN

Because unless you're an excellent artist your game is just going to look like shit

For reference, this is what I was using as a source… They only have 4 frames of animation

As for the circles, I think they're supposed to be bubbles coming up to the surface, but I'll see what I can do

If it's supposed to be bubbles coming up to the surface then they should be darker in color when under the surface. Also that's not a good reference for a water tile, it's really bad

That source looks awful, find something better.

The water doesn't even flow right, it flows backwards in some of the frames.

Do you ship these two?

Why'd you even post this here? They don't frequent these threads.

Damn he just got fucked at the perfect wrong time. Even though they were technically working on it before him and it was a race to the punch and it wasn't like his game would get near the immediate exposure if it was as good as he was suggesting it was going to be

lmao. fuck off retard.

Reminder that mods actually do their jobs with /agdg/ threads.

You sound upset.

Match made in heaven :3

AAAAAAAAAAAAAAAAAAA / 10

I could see this being very popular after it's tightened up and the kinks are worked out because it's so unique compared to what's out there. Would play/10.

Messing around with barrier tiles … not quite there yet

Why don't you just make a few sprites that connect but are different and apply them based on a simple formula using xy? I seen this done in ss13 code to give the space background a reasonable variety.

Any tips to improving the hands?
Im thinking of changing the length of a few fingers, specially the pinky fingers, its too long

Im afraid the company is located in germanistan.


I honestly would try, but im making this game on a two week deadline in a race against a couple friends

Yes. Learn how to sculpt.

Look at your own hand and compare. Your index finger should line up with your arm. Right now all fingers are sorta shifted towards the left too much.


Freitag abends auch nix besseres zu tun als hier rumzuhängen?

r8 my hoplite

So ist es. War aber immerhin gerade trainieren.

Should've specificied I'm referring to the top left picture. For the one below it's obviously to the right.


More contrast in the colors, it's hard to tell the arms and legs apart from the armor.

Doesn't sculpting hurt the polycount since it requires more detailed meshes?
Im going for a Pokemon Sun&Moon style with exception for the hands, which are more detailed, a bit of blockyness is fine


i might be a mutant, my middle finger is the one in line with my arm, also my pinky is so tiny, i decided to model this one 25% longer

You really need to learn more before getting into the whole modeling thing. You don't just sculpt things and be done with it; you sculpt and retopologize it for a mesh you can work with. On top of that, you learn a lot about the fundamentals of topology in the process, which is extremely important and you clearly don't understand it.

Guter Mann. Ich sollte auch irgendwie Sport machen.


Then look up references. Shouldn't be hard to figure out whether you got fucked up hands or not.
You should be using lots of different references for everything art related anyway.

I do plan on having a byte value per tile which is randomized and can eg be an offset to the global tile animation timer so they can look different or synchronized. Maybe not since some tiles depend on it looks right (eg conveyors)

I don't want to have 16 frames for like 8 variants just for water, since thats excessive. But i do want to support different tilesets and a few functionally identical (eg brick wall)

Note that hands are sexually dimorhphic, having an index finger that is longer than the ring finger or almost as long means you're a women or a low T numale faggot
en.wikipedia.org/wiki/Digit_ratio


Ich kanns nur wärmstens empfehlen. Ich kann mich nicht für Fußball, Joggen oder sowas begeistern, aber Trainieren ist ein großartiger Kontrast zu autistischen Beschäftigungen wie gamedev

Knuckles shouldn't be as horizontally aligned as those are. Watch youtube.com/watch?v=BAQb-5VKxmg and notice the pentagon shape Jim begins his hands with. I think including this by raising or lowering knuckles will improve your hand.

Ich glaube Joggen würde sich mir anbieten, habe keine Muckibuden in der Gegend. Ich hatte vor Kurzen ein Mal den Fall, dass ich zum Zug sprinten musste. Danach ist mein Kreislauf abgekackt aber das Abend Essen schmeckte dafür umso geiler.

study anatomy. save sculpting for later when you can use it. learn topology somewhere between those two.

The armor's (I presume) color is too similar to the skin, also silhouette is too generic, no weapon, no shield or any other distinctive shapes that could help me determine who this guy is. To me he looks like a tanned, shirtless dude, with a mullet, wearing red shorts with censored eyes. The sandals are pretty good and shin protection looks ok enough - those parts are recognizable.

Sculpting is useful for more than just humans you know. Even for simple things.

Schaden kanns natürlich nicht. /fit/ness kann man am Anfang zur Not aber auch zuhause mit zwei 20€ Hanteln von Amazon machen.

yeah, but in the context of making a human hand you're not going to get very far if the anatomy is off. sculpting, modeling, or otherwise.

Also I think your thumb could use more mass and length. It should be nearly as long the index finger when disconnected and laid side by side. Compare by holding the thumb of one hand next to the index finger of your other hand.

Sicherlich. Ich hab eine casual version von Convict Conditioning probiert, was eine Zeit lang gut lief. Aber Routine ist so eine Sache bei mir.

Solved issue I was having with sector surfaces and contents getting drawn at the wrong time because I was trying to draw them entirely at one point (when a reverse side sector of a wall was present). I remembered that tree traversal doesn't guarantee that will work, just that the walls won't be ordered incorrectly so now valid walls always draw the front sector's contents but only in a clipped region like pic related. Basically the technique Build uses.

It's a knock on performance for now but only because I'm still drawing back to front due to how the previous drawing worked. Now I should be able to swap to a front to back and eliminate a lot of overdrawing. Feeling pretty fucking happy.

What kind of game are you making user? As Soon as I saw those white hands, I was wondering if they were white magician gloves like mine!

(checked)
:^)

I suspect a lot of people will make up reasons as to why my game is "racist". I wish people would just leave fantasy settings alone

It looks less like water and more like polka-dot, fam.

FPS-ARPG thing, ideally something that feels like Hexen meets Diablo. Sounds like your demo will be right in time for next demo day.

tbh fam you shouldn't have gotten the 88 get, then I wouldn't have a excuse to shitpost one :^)

The anatomy looks a bit off. It looks like he doesn't have hands, and you definitely have enough space to add a thumb or something. Also, his legs look like dog legs because they move back; human knees can't bend backwards.
Take a look at and , they might help you out.


>Males: mean 0.947, standard deviation 0.029.
>measure myself
>1.024
Am I a freak?

It sounds like we are working on very similar projects in terms of setting. What kind of style you are going for with your game, any examples of it?

You can go to the doctor to get blood works done to check, the hand thing is just an indicator. There's no shame in doing testosterone replacement therapy if you're low T, it will drastically improve your life.

I don't have any examples to show yet but what I've got in my head differs a lot from your style. I'm aiming for eldritch horrors and antagonists in battle dresses in what feels like a medieval setting. I've still a way to go before I can really start on the game aspect and art direction.

While the art direction is different, I am still very excited non the less. They needs to be more fantasy FPS games!

someone make a fantasy crafting simulation game that includes cooking, blacksmith, brewing, tailoring, leather working, carving and masonry.

tbh

So Remedy licensed Max Payne's engine to this company that made 3D Benchmarking software and they made this demo for the game.

I tried extracting the files directly from it but apparently it was made with an earlier version and didn't work

However I did further digging and this Russian group actually released a patch that allows you to extract files from the demo's format.

I'm kind of curious if I can reuse some of the assets they used in this demo like the character skins/animations in a MP1 mod

Thanks for the feedback. I made some changes.

I don't believe I'm low-T though. Many of the indicators in low ratio like increased aggression, Asperger's, slower fetal development, and higher numeracy are better descriptors for me than most things under high ratio except for depression, anxiety, and improved exam scores. I might get it checked out.
**On a completely unrelated note, here was an interesting study I found in the Wikipedia citations: sciencedirect.com/science/article/pii/S0301051105000888
It essentially says that high-ratio people prefer to demonstrate high status by either refusing to contribute (egoism) or contributing more than they have to (altruism), while low-ratio people prefer to contribute their expected amount on a regular basis.

The anatomy looks a lot better, but the skin color is still a bit off. I think changing that purple-grey shaded skin color, or getting rid of it entirely, would make the sprite a lot more readable.

Now he looks like Ronald Macdonald Rule 63.

tbh you need more shading tbh

Well this is about what I expected

I did it. I got the main character from this demo into the vanilla game

it looks way better still than on the video, probably just the resolution

I wasn't able to get the glasses to work because it's a separate thing. I might fiddle with it.

They also didn't bother to make an "angry" texture for the face so whenever you shoot a gun it causes the character's head to turn white til it goes back to normal. I can fix that by just copying the existing head texture and renaming it or just using a different face for it. I think the devs of this benchmarking software just retextured an existing npc from Max Payne for it.

this post actually perfectly sums up everything wrong with webdev. I think ill save it.

Sigma II Editor now exports maps to the SW1 (Sigma World v1) format, which is the format Sigma II will be using for levels. Now, I just have to render my new 3d data in Sigma II.

What even is Sigma2?

A game engine that i'm working on.

What OS are you using? Is that XP?

No, it's windows 7 with the classic theme. However, I regularly test the engine on an older computer which runs XP and it works perfectly fine. It's also compatible with Linux.

Is there a way to get C to read "." as "->"?

-> looks ugly as fuck, is annoying to type, and serves no real purpose as far as I'm concerned.

Then you'd deal with uglier (*pointer).thing wouldn't you?

Found a cool way to make grass

Is there any situation where both thing.foo and thing->foo are applicable? If not, then there's no reason for the differentiation.

Spot a fag who never touched C in his life. But allright, I'll spoonfeed you: dot notation computes value address based off address of the original variable, arrow notation computes address based off value of a pointer variable.
foo_t foo;foo_t * bar;foo.x = bar->x = 0;
In C++ you can also use dot notation if the value is reference type, it's kind of like pointer type except it's not allowed to be null.

Maybe it's not very clear to someone who cannot into C. Here's an explanation with memory addresses.
[foo] = 0x0010foo = { int a, x }[bar] = 0x0020bar = 0x0030foo.x = 0x0010 + 0x0004bar.x = 0x0030 + 0x0004
With dot notation, object's fields addresses are at offset off variable address. With arrow notation, they're at an offset off memory location the pointer variable points to.

bar.x was meant to be bar->x

Well whatever I'm too sleep deprived for this conversation anyway.

"." is used for a member of a struct or class.
"->" is used for a member of a struct or class via a pointer. If you really want to overload operators, C++ is the way to go.

You're still implying that there's no occasion where both are usable at the same time.

It's essentially the same thing, you just have to use a different syntax for the same object for no reason just because the context is different.

It's like being told to use "++" instead of "+" when adding floating point values.

A pointer isn't the same thing as the data to which it points. It's a completely different data type. I'm just gonna tell you, you'd probably better brush up on programming 101 before you try to make a game.

Cool, is the player a wizard?

Holy shit making the head was harder than the hands

Yeah, i gonna stretch the legs and make the feet bigger, i guess i will make it 5 heads height instead of 4 heads

There's two reasons why -> exists
>When you use -> you KNOW you're working with a pointer. The compiler can warn you when you think you're working with a pointer but aren't. If . worked for everything you could make mistakes and get undefined behavior.


That head topology is shit, although if the head never deforms I guess it wouldn't matter much.

Ok done

Looks good, ship it.

Why exactly is it shit? too many polygons? i can cut some
The face will be drawn over it Megaman Legends style, i won't move the face mesh

it's shit if you need to animate it because there's nothing there, but like he said if it's not deforming it doesn't matter

Topology is the way the polygons "flow" around the shapes of the model. How good your topology is determines how well your model deforms. If you have a model or part of a model that doesn't deform then topology is less important.

A better way to look at it is that it's a "type-safe" member access operator. If the type you're accessing is a pointer, and you expect it to be the struct, using "." will cause the compiler to complain. The main reason that this is useful is because there are many things you can do with a pointer that you can't do with a struct (look up pointer math) so overloading the dot operator could cause confusion when reading code.
I agree it's kind of arbitrary, though. It's even more arbitrary than your example imo, because your example would differentiate between two different types of output, while . and -> both would return the same thing when they're properly used. Here's a nice StackOverflow discussion on the legacy reasons for the differentiation: stackoverflow.com/questions/13366083/why-does-the-arrow-operator-in-c-exist
C was a much weirder language before C89.

have you tried respawning the bar?

Maybe you could just split your other windows to get the top bar? Webm related if you don't know how.

...

post it faggot

Keep working at it and you'll get better.
Also post your stuff.

...

...

Here some projects/experiments.I never finish anything
my.mixtape.moe/teuebg.mp3
my.mixtape.moe/cnvlok.mp3
my.mixtape.moe/cxjyil.mp3
my.mixtape.moe/zuatnk.mp3
my.mixtape.moe/hyxakl.mp3

They're shit, I know. Go ahead and laugh at me.

for what it's worth, I like the second and fifth ones

Thanks. I'm trying to work on my production so the first and last one's are my most recent trying to get better.

Not finishing things is a pretty surefire way of making sure they'll be shit. Imagine an artist complaining their sketch isn't as good as someone else's finished artwork.
What you have sounds more competent than what I can make, you'd just need more of it and probably refine some things as you add more. First passes are rarely perfect.

good shit except the first one, it fucking hurts my ears.
just keep doing it, ond don't shy away from criticism, here is some guy, seven(?) years after he started playing piano.

Hey thanks man. I'm just really worried my "style" sounds like shit and that I'm the only one who can get into it. They sound OK, right? I hope.
One of my problems is that I'll spend 6+ hours editing one section of a song, get tunnel vision with the sounds, then end up fucking shit up. I also spend all my energy doing one thing because I'm a perfectionist. It's hell, music production is hard, let alone composition.

the first one made my ears bleed
the second is good, but needs to have that slow and loud beat removed or replaced by something else
the third has potential
the fourth is very good, if you tone down the beat really stop with these fucking loud beats
the fifth is very good, it would great on a game with a dark urban setting

OK I'll work on my mixing. I wasn't aware they were that loud to other people. I just really love loud aggressive beats (death grips fan). But I guess I took it way out of line. I'll tone it down and refine my style. Less is more.

First one is a a mess, but not in a good way like No Money Down Low Monthly Payments or Igorrr.
I think the second one is good and could be developed into a full song.
The melody on the third one sounds like someone who's never played guitar before is plucking the strings. You could clean it up into something good.
The fourth one sounds like cheap royalty free music but isn't bad.
Fifth one is pretty fantastic. Reminds me a little of Boards of Canada. You should put in the work and finish it.

Stop with the pity party. Whether you're really insecure or doing it to fake humility, it's fucking annoying when done excessively.
Or don't, you'll have quirk for your artistic persona that's more memorable than simply being level-headed.

Thanks for the advice. Yeah, I don't really have experience playing instruments except for the trumpet, so that's half my problem with making music. I just go by what sounds good to me, but I guess I need to take it one step further and actually learn how to play the guitar or something. I'll finish the fifth one. It's the one I spent most of my time on. Been working on it for a few months on and off (not that great knowing how to continue songs, it's a lot of trial and error). I'll keep working on my sound design too.

Sorry, I'm just not very confident in my skills. I've tried showing my friends my stuff but they always give me weird looks so it just made me feel like shit.
I'll stop the pity party, sorry.
Thanks again everyone, this means a lot to me. I'll keep going and try to get better.

Work on your self confidence, user. You don't need to give excuses or apologize for looking for critique, when you're doing it with genuine intentions of learning. Assuming you're not friends with some assholes and going by the attitude you displayed, maybe they gave you these weird looks not because they thought your music is complete garbage but because they wanted to give you some critique but were unsure how to do it without hurting confidence. I don't know shit about music but I liked your stuff. Makes me want to learn how to make music myself, actually.

Yeah, you're right. I'll work on that too.
I appreciate your perspective, user.

loads of potential tbh. as the others said, see if you can extend your tracks some more and improve the mixdown/production.
I can see why some people think beats like the first one are too loud or whatever, but I don't really agree (other than some unbalance in the mixdowns here and there maybe), so I suppose it's a pretty subjective thing. Keep making what you want, but don't limit yourself to one style too much, being able to demonstrate you're capable of different sounds and moods will help a lot as composer for game music, I imagine.

static aabb3f getNodeBoundingBox(const std::vector &nodeboxes){ if (nodeboxes.empty()) return aabb3f(0, 0, 0, 0, 0, 0); aabb3f b_max; std::vector::const_iterator it = nodeboxes.begin(); b_max = aabb3f(it->MinEdge, it->MaxEdge); ++it; for (; it != nodeboxes.end(); ++it) b_max.addInternalBox(*it); return b_max;}
this is part of the minetest sourcecode. does this need comments? it's just in there with no context, other than "getNodeBoundingBox". it doesnt explain what the function inputs are or what the type is for, it seems like it should. Is this good coding practice or does it not matter?

AABB stands for Axis-Aligned-Bounding-Box, what it appears to be doing is it creates a bounding box that the collection of node boxes in &nodeboxes are all inside of. So, it takes a std::vector of AABB's and then returns an AABB that all of the AABB's in the input vector are inside of. I think it also might be storing pointers to the AABB's that are inside of it in the for loop. It's pretty unclear unless you post all of the method's its calling, since none of the names are descriptive enough.

Unfortunately this is written in C++ and is using all of the C++ features, which is why it looks like unreadable crap. Code like this is why I don't use C++, because it's such an annoying language to read. Needless to say it could be a lot better, the function names are really bad.

I think you have a good intuition for rhythm and melody, but your sound design and balancing are kind of ruining it. This is especially evident in the first and fourth ones, which would sound a lot better if you were using different samples and toned down background stuff.
Anyway time for
OFFICIAL PRETENTIONS TIER RANKINGS
5 is top-tier, you could totally make this into a full song
2 is also pretty good, although you could tone down the static and the background a bit.
3 has a lot of potential, but the guitar sample you used is dragging it down imo. If you had a real acoustic guitar recording it would probably be up with #5
4 is pretty bad. Background parts and reverb sort of drown the song in itself, and not in a dreampop way. Even then, the base melody is royalty-free tier.
1 is earbleed-tier. Jesus, get rid of that screeching wub at the beginning. The rest of the song has interesting melody, but the trap/dubstep feel of your samples and harmonies make it seem really bad.

No it's perfectly self-explanatory. You could improve the code marginally by using the "auto" keyword and using generic for in the loop.

for ( auto &it : nodeboxes ) b_max.addInternalBox ( it );

Depending on what it's doing you need to pre-initialize the outer bounding box to opposite infinities or zeroes.

Also you could get rid of the first if statement if you make the code that manages bounding boxes add a zeroed bounding box when it removes the last valid one.

Why don't you try composing your song using basic instruments? You can always change the synthesizer later.

Looking at it more it seems clearer, but it's still a confusing function.

Why is it called "get node bounding box" if it operates on a collection of nodes? Operator overloading also makes me cringe, it should just define new functions for all of those things or better yet use compound literals, which would be a lot clearer. Also, the iterator is just dumb, it should just be using the normal array syntax to iterate over the array instead of using C++'s special reinvention of the wheel. I can get MinEdge and MaxEdge probably being unions with the 6 floating-point coords, so it's fine although I don't get why addInternalBox doesn't just handle aabb's without any kind of initialization, which would let you use a for loop for the whole thing.

Maybe name is a bit off but that shouldn't matter, you should be okay with functions called "urMumIsSoDumHerWholeSourceIsNOP;RET" and whatnot. Operator overloading may be out of place but it could be used well, such as with vector and matrix types, and basically anything that naturally exhibits properties of mathematical entities. Yes you can just use indices but generic for is cleaner and is the same performance - iterator is basically a pointer with a bunch of methods attached. Finally, when you obtain boundaries by selecting minimum and maximum between current and new values, your original values will contribute to it, and it will be something because whether you want it or not, all memory contains some data in it, so better make sure it's the right data. Typically you want to initialize upper bound to negative infinity and lower bound to positive infinity, so that the first item in the loop will set the total bounds to itself and from there on it's normal operation.

Also no setting original values to the first element and starting loop with second element isn't any faster. You're going to write to them same amount of time both ways, the difference is that in the first case they're implicitly initialized to zero and then you write first element manually and the rest automatically, in the second case you manually initialize them to infinities and write all elements automatically.

Sure, nobody gives perfect names, i'm just saying that there is room for improvement there. If you didn't write that code, having bad names means that you have to spend extra time figuring out what the variables and functions really mean. That's all.
Maybe, just not here. Compound literals can tell you a lot more.
How? Sure, it's less code, but now there are two different ways to iterate through an array that you have to be aware of. It's just making the code more bothersome to read if you don't regularly write C++, so you have to infer about this new syntax which solves no problems and just hides some of the information from you.

I'm not arguing about speed, i'm assuming that the compiler can optimize C++ code just fine. It's just about syntax.


I get it, it's not an argument about speed and I guess it's just arbitrary whichever way it's done.

m8 pls
It is because results are identical, it's just there's spaghetti way of doing it and proper way of doing it.

There's subdivision topology, and then there's deformation topology.
They're not totally mutually exclusive, but some things that works in another do not work for the other; in essence it's best to distinguish these as the modeler should have different mindsets per which they're going for.
Subdivision topology is the premise of avoiding triangles, n-gons (things that subdivide poorly), and having good edge flow + loops + poly spacing; thus allowing for good automatic subdividing. This is useful for sculpting/blendshaping, very simple deformations, and proper shading.
Deformation topology considers only "does this deform well". Such as triangles being considered very acceptable, which aren't good for subdivision topo, but can work great for deformation topology; though n-gons are still bad.
The face is a special case as the good edge flow/loops serves multiple purposes; easy sculpting/blendshaping, deformations + easy weight painting, and proper shading w/evenly spaced polys. Though considering deformations the face (mouth & eye region) has less extreme degrees of freedom for a game model context compared to a shoulder, knee, and such things; so edge loops work just fine here.

What operator overload are you even talking about? The only one I see is the iterator increment, which (aside from being in the std library) makes sense as another user pointed out: it increments the pointer, and ++ means increment anyway.

I agree with the other guy that a range-based forloop would've been nicer here, but perhaps this cold was written pre-C++11. i_don't::like_long_ass_names_like_this_either though, but 'auto' would be fine here to replace the iterator type.

I agree the name could be better, because imo 'get' implies it returns a variable, not computes something on execution (so I'd call it calculateNodeBoundingBox or something).


I doubt it. I imagine aabb3f is two vector3fs (MinEdge and MaxEdge). aabb3d just has a constructor overload where it directly takes 6 floats instead of 2 vector3fs.

wtf. anyway i'm tired, sorry for the typos. also I meant to type 'computeNodeBoundingBox'.
Actually, the whole function has nothing to do with nodes. after a little bit more thought I personally would go for something like:
static aabb3f createBoundingBox(const std::vector &internalBoxes){ if (!internalBoxes.empty()) { aabb3f result; for (auto &innerBox : internalBoxes) { result.addInternalBox(internalBoxes); } return result; } return aabb3f(0, 0, 0, 0, 0, 0);}

goddamn I fucked that post up as well!
but you get the idea……..

Pro tip: it's called "outer bounding box".

(me again)
actually just fuck that fucking if-statement right out of there and place an assert.
the caller of the function should make sure he doesn't call it with an empty vector because it doesn't make sense to do, and it doesn't make sense to make an outer bounding box from nothing.
(thanks lel)

C++ has compound literals too, so i'm not blaming it on C++, just saying that one feature (function overloading) is worse than another feature (compound literals).

Besides, I bet you are not 100% fluent in C++ either considering how large the language is.


Sorry, I meant all overloading. I should have written my original post as "overloading makes me cringe" instead of just "operator overloading makes me cringe". And, the function overloads aabb(), as well as the overloading in the iterator.

Sure, it's probably just that- but even then, why take 6 floats? Just call the same constructor as aabb((vec3){ 0, 0, 0 },(vec3){ 0, 0, 0 }). Or better yet use a compound literal and declare it as (aabb){0}.


That looks much nicer, although I would still rather just write it using the normal way of iteration , since I don't know the "auto" syntax. (And, it seems like another reinvention of the wheel… so, I don't see the point of it)

This is how I would write it myself, in C:
aabb3f gen_bounding_box(aabb3f *bl, size_t bs){ if (bs){ aabb3f res = bl[0]; for (size_t i = 1; i < bs; i++) { add_internal_box(&res,bl[i]); } return res; } return (aabb3f){0};}

Right ok. I agree that the usage here isn't great. aabb3f(vec3f, vec3f) is enough. Possibly a aabb3f(float), if you'd for whatever reason really want to do aabb3f(0.f) to initialize it with to min/max values of 0.0f. (But again, pretty unnecessary, and a 0-aabb3f isn't even needed in the function anymore if you write it like I have below)
I get where you are coming from, but you're mostly critiquing the c++ code written here, not the language itself. The language gives you a lot of freedom, which yes, it means a lot of people will abuse this freedom and write terrible code, but that's the trade off for high flexibility and potential to optimize.
I agree random classes should never have the mathematical operators overloaded, but being able to do
vec3 * vec3, is incredibly nice compared to vec3.multiply(vec3), just to name an example, so it would be a shame if overloading was completely removed from the language.

anyway I'd:
static aabb3f createOuterBoundingBox(const std::vector &innerBoundingBoxes) // or 'makeOuterBoundingBox', whatever makes your dick hard{ assert(!innerBoundingBoxes.empty()); // trying to make an outer bounding box without providing the inner boxes? fuck you! that's a programmer error, no forgiveness! go fuck yourself aabb3f result; for (auto &box : innerBoundingBoxes) { result.addInternalBox(box); // tbh i'd rename this to addInnerBoundingBox, but let's work with what we have. } return result;}

You probably need to initialize result to infinities, otherwise resulting bounding box will include 0,0,0 point.

I was just thinking about that myself, good point.

Yo where da new thread at

...

NEW THREAD