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)
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
Jose Wood
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.
Owen Sullivan
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.
Jordan Myers
make a radio show styled pointy clicky tbh
Kayden Stewart
One thing at a time, I guess.
Luke Anderson
...
Grayson Baker
So he's taking money to make a game, but then tells you to make it instead? he's paying you for it, right?
Caleb Nguyen
are those steam engine trains?
Caleb Perez
This is too much autism, user.
Carter Taylor
what flavor of sytem? was trying to get one set up for my game and i'm kinda hung up on it.
Samuel Thompson
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.
Dylan Murphy
fucking tentacle raping cthulhu steam trains.
I dunno man, it has a lot of charm to it.
Colton Young
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
Ayden Garcia
well i was going to have a standing attack and a running attack with heavy attacks for each does that count?
James Kelly
hey if it counts for god of war it counts
Dylan Barnes
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.
Jonathan Reed
plz elaborate, or point me in the right direction.
Gavin Wright
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.
Evan Hernandez
I can imagine The Specialists mod from Half Life, revisited, would look tremendous like this.
Liam Adams
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.
Caleb Evans
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?
Elijah Sanchez
I feel like this could be improved by replacing your model with Reisen
Ayden Perez
I am one of the 3D artists on this game, I apologize for some shortcomings but I want to thank you for your support.
Chase Barnes
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
Mason Watson
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.
Robert Allen
Sounds like you have a full on team, are you just doing this for fun or do you have funding?
Dominic Stewart
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.
Brandon Martinez
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.
Owen Jackson
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
Daniel Hill
someone code me a ultra realistic eco system simulation game pls tbh
Ethan Miller
Took a break to play Blood and only just now realised it uses billboard voxels for certain map objects. That's really neat.
Jackson Bennett
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.
Jacob Lewis
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
Jason Evans
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.
Eli Adams
Current animations
Jaxon Smith
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.
Hudson Collins
How do i make a 2D game that doesn't look like pixelshit without becoming an artfag?
Michael Reyes
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.
Samuel Price
some guy created a new level editor for Tomb Raider. I've been playing around with it. It's pretty nice.
Zachary Cooper
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.
Owen Evans
I think this may be what you're talking about. It's called Pixel Logic.
Colton King
someone do an actual RTS decent porn game tbh
Easton Roberts
pick one user
Christopher Anderson
RTS porn game
there I picked
Carson Wright
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.
John Nguyen
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)
Eli Hernandez
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.
Justin Watson
You know what, fuck it. Warband but with rape and magical shit to have girl diversity.
Chase Roberts
Yeah, that's it, lotta good stuff in this book.
Justin Allen
I'd be down like a dead clown if it was less like x-com and more like evil genus although tbh
just put the damn porn in the VN section of the game, finish mission, get lewds.
Asher White
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?
Carter Taylor
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.
Oliver Reed
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.
Juan Smith
>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
Charles Reed
So, an abstract class.
Nicholas Peterson
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.
Nathaniel Jackson
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.
Brayden Cox
c# "programmers" are literally on the same level as java "programmers" holy shit
Thomas Ortiz
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.
Noah Phillips
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.
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
Leo Stewart
so i started a modelling/animation course this is what i get after 4 hours i miss blender and it isn't even free
Bentley Phillips
hi anton
Wyatt Brooks
Morning lads.
James Morris
is a good way of thinking about it. At least, dilbertman agrees.
Logan Hall
Yeah, I'm definitely a systems over goals oriented person.
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
Hudson Kelly
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.
Thomas Bailey
Found a momentum-building bug in jumpy boi
Hudson Clark
What happens when you build up speed for 12 hours?
Cooper Cox
let's first see if 10 minutes make a difference. brb Q&Atesting
Connor Bell
Does said bug like jamborees, by any chance?
Luis Gomez
nothing really happened. the robodude got stuck riding his board
Dylan Ramirez
shit game tbh
Kevin Garcia
perhaps the switch was subtle?
Sebastian Sullivan
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.
Jeremiah Diaz
...
Nolan Ortiz
...
Thomas Rivera
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
Thomas Adams
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
Kevin Carter
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?
Gabriel Davis
Fellate a gun my friend.
Jose Lewis
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.
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
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#.
Benjamin Price
thought so, few of my friends was shunned and confused about what kind of progress am I really making on my game.
Parker Long
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
Lincoln Cook
Very Good! Do you make these in photoshop?
Jaxson Morales
(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.
Aaron Rogers
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
Ian Ortiz
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 :(
Camden Ramirez
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.
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.
Aiden Roberts
Thanks for the bug report, user. You're doing the lords work.
Julian Foster
I like the level design, though. Reminds me of Tribes: Ascend (RIP).
Mason Campbell
Anyone knows how to get lua53.lib? How do you build it?
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.
Carter Reyes
Nevermind, it's just well hidden on the luabinaries website
Kayden Lewis
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.
Kayden Hernandez
#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.
Juan Reyes
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.
Michael Barnes
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.
Jaxon Fisher
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.
Christian Reyes
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.
Aaron Sanders
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
Jose Robinson
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.
Kevin Bailey
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.
Angel Ross
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?
Nicholas Rodriguez
Yes, I do the raytracing, but this is the "find the appropriate thing" part that I'm talking about specifically.
Logan Perez
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.
Jacob Nelson
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.
Tyler King
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
Ryan Perez
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++.
Ethan Russell
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
Gavin Martinez
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.
Cooper Barnes
You won't discourage us, Satan.
Justin Morales
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
Cameron Sullivan
Is CG Cookie a good learning resource for Blender?
Camden Howard
Morning lads.
Dylan Perez
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?
Evan Cruz
b urself xD
Noah Wilson
Think it has to do with root motion (in the animation import settings under Motion)
Jacob Jones
The whole point of "going outside your comfort zone" is to stop being yourself, Mr. (1) and done.
Noah Hall
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.
Christopher Long
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.
Aaron Smith
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.
Ryan Miller
Of the two I think the second one fits a lot more.
Christopher Baker
...
Samuel Watson
So why not just make a bunch of libraries and extend C so that it has all the functionality of C++?
Christian Peterson
someone make a god gayme that's not basic tbh
Benjamin Hill
...
Nathaniel Powell
populous black and white from dust
all solid gameplay but it wasn't very complex and didn't do much
Dominic Allen
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.
Nathan Gutierrez
Don't worry. I'll make sure to add several waifus to the post-apoc industrial fantasy game we're making.
Carson Diaz
Second one, my dude. Still will need work but is on the right track. Needs Neotokyo OST tbh
Adding Kowloon to wiki.
Isaiah Phillips
LOL
James Brooks
...
Ian Barnes
...
John Barnes
o fuck
Brandon Lee
Amazing.
Chase Hill
BRUTAL
Parker Cruz
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.
John Hall
You should start by learning the game's name before calling it anything else.
Jacob Baker
...
Isaiah Wilson
Ouch. Felt that from here.
Josiah Ward
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?
Henry James
what kinda interesting gameplay are you going to have with it?
Christopher Thompson
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.
Eli Scott
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.
Adrian Thompson
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
Samuel Sanders
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.
William Green
do the first half of that and not the later half
nice try
Bentley Richardson
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.
Parker Baker
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
Luis Howard
I'm onto your reverse traps
Nathaniel Lopez
He's going to kill himself at this rate man.
Thomas Sullivan
If the Polish mob didn't get to him already.
Carson Adams
...
Carson Perez
get out
Josiah Green
Your game IS using mod tracker music, right? You don't want to have unnecessary bloat sound, right?
Noah Gray
Tell me more
Easton Cook
HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA
Christopher Morgan
Just listen to the Unreal and Deus Ex soundtracks and you'll be sold.
Nathan Ward
I guess it will be a matter of putting them according to the internal design then.
Brandon Jenkins
If you've got some tracker recommendations can you add them to the wiki?
Liam Hernandez
C H I N E S E J E W
Luis Richardson
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
Jacob Mitchell
ModPlug, duh
William Walker
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.
Colton Allen
...
Juan Gray
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.
Lucas Allen
Why are you polymodeling your characters?
Grayson Foster
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?
Liam Gutierrez
...
Noah Bell
maybe
Andrew Morales
...
Grayson Edwards
because i haven't learned how to sculpt properly yet
Adam King
Seems like it'd just be a matter of time until you get discovered and then people would be all over your ass.
Alexander Myers
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.
David Kelly
What's stopping you from starting? Characters are way better to sculpt than to polymodel.
Jack Powell
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.
Christian Mitchell
I wouldn't know why you'd go to cuckchan, but why not stay there
Nicholas Lopez
I will eventually
Cameron Myers
I am pretty sure tetradev originally came from cuckchan, so shouldn't they know him even better?
Landon Allen
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.
Thomas King
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.
Grayson Baker
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.
Ethan Thomas
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
Colton Johnson
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
Adrian Clark
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"?
Thomas Gutierrez
He just threw a tantrum, not all that spectacular really.
Leo Gomez
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?
Cameron Brooks
A chibi (4 heads height) cowboy, to be my protagonist
Hudson Evans
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?
Connor Green
...
Levi Smith
what a majestic creature
Justin Brooks
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.
Christian Perry
Scrolling past I thought it was angelic Dad.
Grayson Turner
Huh, for some reason i thought you need it, i remember someone telling me you do. Good to know though.
Jose Rodriguez
For my farm sim >>>/agdg/27922 Yes im trying to keep the topology similar to the reference
Im going for Pokemon Sun&Moon style
Jeremiah Powell
Thanks dude, that's pretty funny
Charles Martin
...
Jordan Bennett
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.
Luis Brooks
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.
Jack Turner
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
Charles Perry
brb following advice and ruining my game's asthetic
Matthew Adams
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
William King
Case in point.
You realize it's possible to sculpt low poly models? Do you not understand the sculpting workflow?
Julian Myers
There's an easy solution for all of this.
Cooper Jones
Model base mesh > sculpt character > retopologize?
Carter Hall
Yes
Jordan Richardson
yes user i know ive been practicing this is my work in progress, tell me how it looks so far
Chase White
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.
Jackson Martin
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.
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
Dylan Wood
No but seriously I need help with buttons
Colton Gray
just apply sound to the button press if you can't nail the visuals
Elijah Long
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.
Brayden Morales
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.
Jackson Cox
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.
Jaxon Reed
...
Robert James
...
Grayson Edwards
holy shit kolwoon user you're still here?
Benjamin Fisher
Looks pretty sick.
Evan Flores
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.
Alexander Richardson
You might want to give the button a base so it looks like it is protruding from the ground. pic related is my attempt
Kevin Martin
HE'S BACK!
Aaron Martinez
fucking neet turtle girls tbh
Brayden Edwards
Showed too
Anthony White
brb stealing
Elijah Gonzalez
...
Michael Smith
Looking rad, bro.
Ian Sanchez
...
Adrian Long
...
Aaron Morales
Whatever happened to that one fella that was making that game with the tiddy demon
Cameron Foster
Lookin pretty good lad
Gavin Lewis
Make a custom UI and that thing is ready to ship
Jace Reed
This guy i think
Kowloon Dev you owe us a Demo Day demo I think. I was looking for your stuff.
Brandon Hernandez
He was busy finishing up another project no one gave a shit about.
Christopher Russell
I'd love a demo.
Robert Rivera
It's possible but I'd have to finish at least map01 of the first sectors main city.
Elijah Hughes
There we go
Josiah White
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?
Brandon Jackson
In retrospect, I really should've guessed that white text on white static would look like shit.
Daniel Brooks
There, that should do it for the buttons. Couldn't decide on blue or white
Matthew Jones
ever heard of "Contrast"?
Connor King
What's wrong with webdev?
Jonathan Sanders
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.
Hunter Turner
Wow, I didn't understand any of that. Good job, user. You keep on trucking!
Landon Morris
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.
Ryan Walker
...
Bentley Allen
Would you mind putting in a good word for me?
Carson Long
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.
Lincoln Turner
...
Ian Diaz
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.
Gavin Hernandez
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
Ethan Diaz
I hope you own already a vulkan compatible graphic card :^)
Adam Lee
Any good resources on making vidya music that isn't fucking ambient noises or le retro styled pixelshit?
Hunter Brown
Just like make music and make it loop. Don't make what you don't like.
Logan Myers
Study music theory.
Colton Lee
Do you know music theory?
Brandon Nelson
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
William Morgan
...
James Watson
also, you can't extend two different abstract classes, but you can implement as many interfaces as you want
Colton White
there is nothing wrong with the animation
Gabriel Moore
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.
William Myers
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
Owen Richardson
Sounds like pay off will be worth the effort, I'll keep trying to fix it and I'll look into Mecanim. Thanks.
Kevin Ortiz
I forgot make a pickup sprite for the berserk rune. Fixed that
Zachary Phillips
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.
Caleb Taylor
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!
Hunter Morales
hell yea
Josiah Wright
How difficult would it be to make your own version of ballistics?
Luis Brooks
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
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
David Sullivan
Actually I think I figured it out after deleting shit at random
Logan White
How's this look for water?
Luke Clark
if you have a whole lot of imagination, I guess it can pass as water
Ryan Powell
not very good
Gavin Fisher
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.
Isaiah Cook
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.
Christopher Nguyen
Reduce circles or use algorithm to make them more sporadic.
Levi Adams
Start by removing the circles.
Sebastian Scott
The lines are too static and need to move more. The circles serve no purpose and should be removed
Nathan Long
HOW ABOUT YOU USE NORMAL SIZED PIXELS TO MAKE NORMAL 2D ART YOU FUCKING CAVEMEN
Nathaniel Gomez
Because unless you're an excellent artist your game is just going to look like shit
Thomas Harris
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
Ian Garcia
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
Gavin Morris
That source looks awful, find something better.
The water doesn't even flow right, it flows backwards in some of the frames.
Adam Bennett
Do you ship these two?
Jordan Thompson
Why'd you even post this here? They don't frequent these threads.
Austin Jenkins
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
Joshua Murphy
lmao. fuck off retard.
Andrew Ward
Reminder that mods actually do their jobs with /agdg/ threads.
Gavin Allen
You sound upset.
Angel Roberts
Match made in heaven :3
James Davis
AAAAAAAAAAAAAAAAAAA / 10
Joshua James
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.
Dylan Mitchell
Messing around with barrier tiles … not quite there yet
Wyatt Bennett
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.
Christopher Baker
Any tips to improving the hands? Im thinking of changing the length of a few fingers, specially the pinky fingers, its too long
Angel Reed
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
Carter Morales
Yes. Learn how to sculpt.
Eli Wright
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?
Austin Myers
r8 my hoplite
Gabriel White
So ist es. War aber immerhin gerade trainieren.
Logan Clark
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.
Luis Ross
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
Jason Lee
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.
Eli Campbell
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.
Justin King
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)
Zachary Lewis
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
Juan Butler
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.
Jordan Hall
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.
Camden Wood
study anatomy. save sculpting for later when you can use it. learn topology somewhere between those two.
Luke Taylor
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.
Nathaniel Baker
Sculpting is useful for more than just humans you know. Even for simple things.
Samuel Butler
Schaden kanns natürlich nicht. /fit/ness kann man am Anfang zur Not aber auch zuhause mit zwei 20€ Hanteln von Amazon machen.
Adam Turner
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.
Asher Price
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.
Wyatt Ortiz
Sicherlich. Ich hab eine casual version von Convict Conditioning probiert, was eine Zeit lang gut lief. Aber Routine ist so eine Sache bei mir.
Adrian Wilson
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.
Thomas Nguyen
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!
Landon Green
(checked) :^)
Mason Miller
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
Ryan Lee
It looks less like water and more like polka-dot, fam.
Daniel Moore
FPS-ARPG thing, ideally something that feels like Hexen meets Diablo. Sounds like your demo will be right in time for next demo day.
Blake Gonzalez
tbh fam you shouldn't have gotten the 88 get, then I wouldn't have a excuse to shitpost one :^)
Daniel Garcia
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?
Connor Rodriguez
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?
Camden Williams
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.
Asher Murphy
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.
Blake Moore
While the art direction is different, I am still very excited non the less. They needs to be more fantasy FPS games!
Jordan Thompson
someone make a fantasy crafting simulation game that includes cooking, blacksmith, brewing, tailoring, leather working, carving and masonry.
tbh
Matthew Stewart
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
Hudson Mitchell
Thanks for the feedback. I made some changes.
Parker Russell
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.
Jaxson Jenkins
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.
Luke Hall
Now he looks like Ronald Macdonald Rule 63.
Charles Scott
tbh you need more shading tbh
Jayden Stewart
Well this is about what I expected
Christian Martinez
I did it. I got the main character from this demo into the vanilla game
Charles Fisher
it looks way better still than on the video, probably just the resolution
Nathan Thomas
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.
Grayson Gomez
this post actually perfectly sums up everything wrong with webdev. I think ill save it.
Henry Myers
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.
Alexander Richardson
What even is Sigma2?
Owen Reyes
A game engine that i'm working on.
Aaron Cruz
What OS are you using? Is that XP?
Kevin Morris
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.
Juan Scott
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.
Hunter Edwards
Then you'd deal with uglier (*pointer).thing wouldn't you?
Christian Hill
Found a cool way to make grass
Jeremiah Perez
Is there any situation where both thing.foo and thing->foo are applicable? If not, then there's no reason for the differentiation.
Colton Thomas
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.
Jacob Perez
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.
Nolan White
bar.x was meant to be bar->x
Well whatever I'm too sleep deprived for this conversation anyway.
Henry Gonzalez
"." 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.
Asher Butler
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.
Benjamin Russell
It's like being told to use "++" instead of "+" when adding floating point values.
Mason Morgan
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.
Jacob Murphy
Cool, is the player a wizard?
Nicholas Flores
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
Nathaniel Morales
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.
Jeremiah Green
Ok done
Easton Cox
Looks good, ship it.
Landon Carter
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
Jose Lopez
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
Jaxon Barnes
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.
Isaiah Cooper
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.
Josiah Davis
have you tried respawning the bar?
Luke Perez
Maybe you could just split your other windows to get the top bar? Webm related if you don't know how.
Alexander Gonzalez
...
Landon Nelson
post it faggot
Nathan Nelson
Keep working at it and you'll get better. Also post your stuff.
for what it's worth, I like the second and fifth ones
Gabriel Brown
Thanks. I'm trying to work on my production so the first and last one's are my most recent trying to get better.
Daniel Robinson
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.
Brandon Nguyen
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.
Alexander Anderson
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.
Brandon Walker
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
Caleb Edwards
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.
Luke Taylor
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.
Cooper Young
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.
Anthony Roberts
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.
Julian Long
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.
Cameron Torres
Yeah, you're right. I'll work on that too. I appreciate your perspective, user.
Evan Kelly
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.
Colton Cox
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?
Thomas Stewart
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.
Jose Morgan
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.
Gavin Ramirez
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.
Mason Gomez
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.
Jason Brooks
Why don't you try composing your song using basic instruments? You can always change the synthesizer later.
Aaron Hernandez
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.
Anthony Morris
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.
Jack Perry
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.
Ryan Jackson
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.
Oliver Evans
m8 pls It is because results are identical, it's just there's spaghetti way of doing it and proper way of doing it.
Carson Thompson
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.
Carson Lewis
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.
Blake Lopez
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);}
Aiden Bailey
goddamn I fucked that post up as well! but you get the idea……..
Benjamin Wood
Pro tip: it's called "outer bounding box".
Brody Ross
(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)
Jaxson Myers
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};}
Lucas Howard
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;}
Justin Carter
You probably need to initialize result to infinities, otherwise resulting bounding box will include 0,0,0 point.
Ryan Reed
I was just thinking about that myself, good point.