Amateur Gamedev General ~ /agdg/ + /vm/

Kayden Thomas
Kayden Thomas

Logo Arguments edition

Resources
/agdg/index.html
/vm/index.html
#8/agdg/ via irc.rizon.net

Links
Wiki: http://8agdg.wikidot.com/
Beginner's guide: /agdg/res/29080.html#29080
Previous thread:

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)

All urls found in this thread:
http://8agdg.wikidot.com/
https://itch.io/jam/xkcdgamejam
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/casting-and-type-conversions
https://itch.io/jam/me-too-i-too-anti-harassment-game-jam
https://itch.io/jam/punch-nazis
http://pixellogicbook.com/
https://www.codeproject.com/Articles/20550/C-Event-Implementation-Fundamentals-Best-Practices
https://lmgtfy.com/?q=c%23+convert+byte%5B%5D+to+int32
https://eliasdaler.wordpress.com/2015/08/10/using-lua-and-cpp-in-practice/
http://www.nickknowlson.com/blog/2013/04/16/why-maybe-is-better-than-null/
http://picosong.com/wnx6j/
http://picosong.com/wnxbR/
http://www.nickknowlson.com/blog/2013/04/16/why-maybe-is-better-than-null/#comment-867458529
http://8agdg.wikidot.com/
https://vocaroo.com/i/s1ChzYcxEUx2
https://vocaroo.com/i/s167WEsQnX2K
https://mega.nz/#!Z3QhBKwb!A2Bw7Gmzt72QoKk5B4vgZl8KhkkLGRnJtAZ0Pp2DfhY
https://en.wikipedia.org/wiki/Digit_ratio
https://www.youtube.com/watch?v=BAQb-5VKxmg
http://www.sciencedirect.com/science/article/pii/S0301051105000888
https://stackoverflow.com/questions/13366083/why-does-the-arrow-operator-in-c-exist
https://my.mixtape.moe/teuebg.mp3
https://my.mixtape.moe/cnvlok.mp3
https://my.mixtape.moe/cxjyil.mp3
https://my.mixtape.moe/zuatnk.mp3
https://my.mixtape.moe/hyxakl.mp3
Benjamin Lopez
Benjamin Lopez

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
Jose Wood

Dub dubs
ID dubs
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
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
Jordan Myers

make a radio show styled pointy clicky tbh

Kayden Stewart
Kayden Stewart

finish updating mod
finally, i can get back to work on making game
wait, i have to write stuff for website
finally, i can get back to work on making game
friend working on a patreon-funded game wants me to rehaul his melee system

One thing at a time, I guess.

Grayson Baker
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
Caleb Nguyen

are those steam engine trains?

Caleb Perez
Caleb Perez

qt anime witch grills vs trains
This is too much autism, user.

Carter Taylor
Carter Taylor

friend working on a patron-funded game wants me to re haul his melee system

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

Samuel Thompson
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
Dylan Murphy

fucking tentacle raping cthulhu steam trains.

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

Colton Young
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
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
James Kelly

hey if it counts for god of war it counts

Dylan Barnes
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
Jonathan Reed

plz elaborate, or point me in the right direction.

Gavin Wright
Gavin Wright

I have a C++ object in Unreal Engine called "PlayerItem" that has a number of functions, namely,
PrimaryPress
PrimaryRelease
SecondaryPress
SecondaryRelease
Reload
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
Evan Hernandez

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

Liam Adams
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
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
Elijah Sanchez

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

Ayden Perez
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
Chase Barnes

Ain't my game. It's one of the demo day demos from GDIDoujins
/agdg/res/29841.html#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
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
Robert Allen

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

Dominic Stewart
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
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
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
Daniel Hill

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

Ethan Miller
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
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
Jacob Lewis

multiplayer mode
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
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
Eli Adams

Current animations

Jaxon Smith
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
Hudson Collins

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

Michael Reyes
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
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
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
Owen Evans

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

Colton King
Colton King

someone do an actual RTS decent porn game tbh

Easton Roberts
Easton Roberts

someone do an actual RTS decent porn game tbh

RTS
Porn game
pick one user

Christopher Anderson
Christopher Anderson

RTS porn game

there I picked

Carson Wright
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
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
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.

capture and tame tentacle monster
unleash it upon cultist coven to rape them to death

Justin Watson
Justin Watson

small scale RTS
some units are fairly unique, some generic cannon soldiers but there are unique heroes (like warband). Army leaders are also uniqe
game is basically recruiting qt's from the street, scanning the battlefield for cutes, mobilizing units to capture them. Defeating a whole army lets you capture its leader (high class girls, nobles).
You can stop at anytime to camp where you can socialize with your army and fuck people (even cute boys).
Rape dungeon lets you mind break prisoners to your side or just a higher pay for lower recruits.
There are of course more peaceful ways to get close to girls like gifts, diplomacy, etc.
You know what, fuck it. Warband but with rape and magical shit to have girl diversity.

Chase Roberts
Chase Roberts

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

Justin Allen
Justin Allen

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

you want warcraft clone then

Charles Adams
Charles Adams

Oh boy I can't fucking wait

https://itch.io/jam/xkcdgamejam

Nicholas Mitchell
Nicholas Mitchell

Yeah, any idea of how to implement one into another?
just put the damn porn in the VN section of the game, finish mission, get lewds.

Asher White
Asher White

Take break from gamedev to work on other shit
Take up x86 assembly
Feels kinda nice to learn something new
Realize I'm having more fun writing assembly than working on my game
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
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
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
Juan Smith

C# interfaces can only define signatures and no implementations
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
Charles Reed

So, an abstract class.

Nicholas Peterson
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
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 code
Bar b;
b.SomethingDefinedElsewhere();
b.SomethingShared();

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

Brayden Cox
Brayden Cox

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

Thomas Ortiz
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
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.

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

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

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

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

Leo Stewart
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
Bentley Phillips

hi anton

Wyatt Brooks
Wyatt Brooks

Morning lads.

James Morris
James Morris

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

Logan Hall
Logan Hall

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

Nathan Hill
Nathan Hill

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

Isaac Reyes
Isaac Reyes

india.com talking about respecting women
That's a fucking laugh.

Camden Gutierrez
Camden Gutierrez

Thanks anons

Jose Garcia
Jose Garcia

That flying animation is hilarious

Angel Gonzalez
Angel Gonzalez

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
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
Thomas Bailey

Found a momentum-building bug in jumpy boi

Hudson Clark
Hudson Clark

What happens when you build up speed for 12 hours?

Cooper Cox
Cooper Cox

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

Connor Bell
Connor Bell

momentum-building bug
Does said bug like jamborees, by any chance?

Luis Gomez
Luis Gomez

nothing really happened. the robodude got stuck riding his board

Dylan Ramirez
Dylan Ramirez

can't even parallel universe

shit game tbh

Kevin Garcia
Kevin Garcia

perhaps the switch was subtle?

Sebastian Sullivan
Sebastian Sullivan

#define in the middle of a function
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 http://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
Jeremiah Diaz

<only have 2k lines all this time
but then again i didn't bloat my code with get and set methods

Nolan Ortiz
Nolan Ortiz

but then again i didn't bloat my penis with condoms

Thomas Rivera
Thomas Rivera

Properties are a wrapper around two methods
This means every time you want to write to a variable or even read it, you have to call a method
Can't pass values by ref if they're a property
At best you can make a new delegate instance that points to the function (why)

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
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
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
Gabriel Davis

muh patterns
Fellate a gun my friend.

Jose Lewis
Jose Lewis

implying there's anything wrong with small codebase
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.

Liam Miller
Liam Miller

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

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

Brandon Cox
Brandon Cox

but this time I didn't bloat the street with shit

This is a bad idea.
Why?

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

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

Benjamin Price
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
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
Lincoln Cook

Very Good! Do you make these in photoshop?

Jaxson Morales
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
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
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
Camden Ramirez

you may have multiple different constants that do the same thing in different parts of the codebase.

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.

https://lmgtfy.com/?q=c%23+convert+byte%5B%5D+to+int32

Logan Jenkins
Logan Jenkins

You should still be using the #defines, just group them at the top of the code.
I think you're assigning an extra standard to this just because it uses the #define syntax.
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
Aiden Roberts

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

Julian Foster
Julian Foster

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

Mason Campbell
Mason Campbell

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

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

Jaxon Martinez
Jaxon Martinez

global variable
#define is not a global variable

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

I like writing useful macros inside of my functions when the macro isn't relevant anywhere else. Like:
#define FSW (1.0f / FONT_CW)
#define FSH (1.0f / FONT_CH)

float off_y = floorf(normal_off / (float)FONT_CW);
float off_x = (float)(normal_off % FONT_CW);

If I want to use the macro inside of more than one function, I put it on the top of the file like normal. If it's only being used in one function, this kind of rigor doesn't make sense.

Carter Reyes
Carter Reyes

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

Kayden Lewis
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
Kayden Hernandez

#define is not a global variable
#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 think that you are being very overzealous about programming rules.
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.
If I want to use the macro inside of more than one function, I put it on the top of the file like normal.
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
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.

#define defines a variable
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.

Makefile
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.

External Libraries
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.

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?
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
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
Jaxon Fisher

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.
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.
Makefile
I don't use makefiles
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.
Everything in OpenGL begins with GL, for example, so it's easy to not have conflicts.
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
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
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
Jose Robinson

Just a stricter version of a naming convention.
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: http://www.nickknowlson.com/blog/2013/04/16/why-maybe-is-better-than-null/
now you can't be immediately certain of what function you are really calling.
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
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
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
Nicholas Rodriguez

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

Logan Perez
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
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
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.

many popular languages with real type systems are adopting Optional types (Java, C#) or include Optionals on launch (Rust, Swift, Kotlin, Haskell, etc)
real type sytems .. Java, C#
lol

Ryan Perez
Ryan Perez

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

Ethan Russell
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
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
Cooper Barnes

You won't discourage us, Satan.

Justin Morales
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
Cameron Sullivan

Is CG Cookie a good learning resource for Blender?

Camden Howard
Camden Howard

Morning lads.

Dylan Perez
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
Evan Cruz

b urself xD

Noah Wilson
Noah Wilson

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

Jacob Jones
Jacob Jones

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

Noah Hall
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
Christopher Long

http://picosong.com/wnx6j/ or http://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
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
Ryan Miller

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

Samuel Watson
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
Christian Peterson

someone make a god gayme that's not basic tbh

Benjamin Hill
Benjamin Hill

a god gayme that's not basic

Nathaniel Powell
Nathaniel Powell

populous
black and white
from dust

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

Dominic Allen
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
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
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
Isaiah Phillips

LOL

James Brooks
James Brooks

bullying local dev because of weebshit

John Barnes
John Barnes

o fuck

Brandon Lee
Brandon Lee

Amazing.

Chase Hill
Chase Hill

BRUTAL

Parker Cruz
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
John Hall

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

Isaiah Wilson
Isaiah Wilson

Ouch. Felt that from here.

Josiah Ward
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
Henry James

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

Christopher Thompson
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
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
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
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
William Green

do the first half of that and not the later half

nice try

Bentley Richardson
Bentley Richardson

naming convention is enforced by the compiler rather than by humans
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.

languages with real type systems
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
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
Luis Howard

male
no bulge

I'm onto your reverse traps

Nathaniel Lopez
Nathaniel Lopez

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

Thomas Sullivan
Thomas Sullivan

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

Carson Adams
Carson Adams

implying tomboys are not top-tier

Carson Perez
Carson Perez

get out

Josiah Green
Josiah Green

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

Noah Gray
Noah Gray

Tell me more

Easton Cook
Easton Cook

storing player data
struggle with first thing for 3 days
first thing works
struggle with second thing for 2 days
second thing works
the system is now fully automated
go to bed feeling fulfilled
wake up next day
nothing works
after some checks
find out my IP has changed
change accordingly
doesn't work
nothing depending on the IP works now
change it to local to test
still doesn't work
teammate says: hey user have you finished things server-side?

HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA

Christopher Morgan
Christopher Morgan

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

Nathan Ward
Nathan Ward

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

Brandon Jenkins
Brandon Jenkins

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

Liam Hernandez
Liam Hernandez

C H I N E S E J E W

Luis Richardson
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
Jacob Mitchell

ModPlug, duh

William Walker
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.

Juan Gray
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
Lucas Allen

Why are you polymodeling your characters?

Grayson Foster
Grayson Foster

from dust
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
Liam Gutierrez

release game for free
add a bitcoin miner into it

Noah Bell
Noah Bell

Does the cracked version of a game do away with DRM?
maybe

Andrew Morales
Andrew Morales

SS13
/tg/station
You can add scripts to the comms array
Eg, be a jokester and sneak into the comms area and add word filters and mute specific players over the radio, etc
Some memelord used an external script to upload a BTC miner to the server itself

Grayson Edwards
Grayson Edwards

because i haven't learned how to sculpt properly yet

Adam King
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
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
David Kelly

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

Jack Powell
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
Christian Mitchell

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

Nicholas Lopez
Nicholas Lopez

I will eventually

Cameron Myers
Cameron Myers

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

Landon Allen
Landon Allen

I still think, that you don't need a compiler to tell you this.
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.
The only real types that exist are signed/unsigned integers of different sizes, and floats, i.e. what is exposed in C.
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)?)
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
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:
The rules act like the seat-belt in your car: initially they are perhaps a little uncomfortable, but after a while their use becomes second-nature and not using them becomes unimaginable.
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
Thomas King

Got any advice on what should be added to the song?

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
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
Ethan Thomas

Looking nice
was mostly done by someone else
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.

but you would practically give the players access to that mining account if they find out
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

who the heck is Tetradev?
lurk more

Colton Johnson
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
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
Thomas Gutierrez

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

Leo Gomez
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
Cameron Brooks

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

Hudson Evans
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
Connor Green

Do that
Pipe it into pre-rendered sprites
Use mixels
Indie GOTY edition

Levi Smith
Levi Smith

what a majestic creature

Justin Brooks
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
Christian Perry

Scrolling past I thought it was angelic Dad.

Grayson Turner
Grayson Turner

No, pools work with just an address, no login and nothing
Huh, for some reason i thought you need it, i remember someone telling me you do. Good to know though.

Jose Rodriguez
Jose Rodriguez

For my farm sim
/agdg/res/27922.html#27922
Yes im trying to keep the topology similar to the reference

Im going for Pokemon Sun&Moon style

Jeremiah Powell
Jeremiah Powell

Thanks dude, that's pretty funny
<This AAA game ripped off my tiny little Unity demo! What a plagiarist!
wew.exe

Jordan Bennett
Jordan Bennett

Mesh modelling is great.
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
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
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
Charles Perry

brb following advice and ruining my game's asthetic

Matthew Adams
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
William King

not that I'm any good at it
Case in point.

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

Julian Myers
Julian Myers

There's an easy solution for all of this.

Cooper Jones
Cooper Jones

Model base mesh > sculpt character > retopologize?

Carter Hall
Carter Hall

Yes

Jordan Richardson
Jordan Richardson

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

Chase White
Chase White

One of the naming conventions in Ruby…
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.

C also has pointers in its type system…
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.

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.
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.

but if you're launching something large and combustible at escape velocity that contains humans…
Which i'm NOT doing, I only follow rule 6 and 10. Being able to program creatively is what makes programming fun.

Jackson Martin
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.

Isaac Price
Isaac Price

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

Colton Moore
Colton Moore

Helvetica Scenario/10

Joshua Thomas
Joshua Thomas

and that would be?

Isaac Powell
Isaac Powell

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
Dylan Wood

No but seriously I need help with buttons

Colton Gray
Colton Gray

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

Elijah Long
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
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
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.

Grayson Edwards
Grayson Edwards

holy shit kolwoon user you're still here?

Benjamin Fisher
Benjamin Fisher

Looks pretty sick.

Evan Flores
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
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
Kevin Martin

HE'S BACK!

Aaron Martinez
Aaron Martinez

fucking neet turtle girls tbh

Brayden Edwards
Brayden Edwards

Showed too

Anthony White
Anthony White

brb stealing

Michael Smith
Michael Smith

Looking rad, bro.

Aaron Morales
Aaron Morales

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

Cameron Foster
Cameron Foster

Lookin pretty good lad

Gavin Lewis
Gavin Lewis

Make a custom UI and that thing is ready to ship

Jace Reed
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
Brandon Hernandez

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

Christopher Russell
Christopher Russell

I'd love a demo.

Robert Rivera
Robert Rivera

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

Elijah Hughes
Elijah Hughes

There we go

Josiah White
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
Brandon Jackson

oh, a titlescreen idea
it'll just be like a sort of static TV screen, and occasionally you'll see glimpses of other pictures in the background!
try it out

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

Daniel Brooks
Daniel Brooks

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

Blue/white: Controls moving blocks
Red/yellow/green: Stops or reverses+restarts conveyor belts
Teal/purple: Toggles certain walls
Red/outline: Clones next / Clones all objects
X / outline: Releases trap / Releases all traps

Matthew Jones
Matthew Jones

ever heard of "Contrast"?

Connor King
Connor King

What's wrong with webdev?

Jonathan Sanders
Jonathan Sanders

Everything tbh.
low barrier of entry means the vast majority of webdevs are talentless, undisciplined troglodytes who get paid for copypasting JQuery code and don't understand basic programming concepts
incessant culture of masturbation over design trends, new frameworks on a weekly basis which fix non-issues, and needlessly large stacks of .js ontop of .js bullshit layer
a race to the bottom where readability, functionality, performance and filesizes are violently disregarded in favor of buzzword-tier meme features
languages so permissive that it's possible to have 3 to 4 different programming languages in a single file, or to asynchronously load additional code into the runtime by injecting and possibly manipulating raw code strings in the DOM
javascript, a weakly typed do-whatever-the-fuck-you-want language with bizarre kinks like making every non-initialized variable a global instead of giving a warning, is everywhere, even server side, even the fucking CLI tools are javascript
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
Hunter Turner

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

Landon Morris
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
Ryan Walker

Alexander Brandon (also known as Siren in the demoscene and tracker community

Bentley Allen
Bentley Allen

three out of my 20 colleagues would have passed fizzbuzz, and the positions were well paid.
the positions were well paid.
Would you mind putting in a good word for me?

Carson Long
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
Lincoln Turner

<itemlist is actually a very complex drop down box / selectbox / whatever people call it but can allow multiple columns
<thinkgen of creating multiple 16:9, 16:10, 4:3, 5:4 resolutions and putting respective aspect ratios within those columns so you're not fucking around with two itemlists
<as usual godot has no detailed documentation, just the bare minimum

Ian Diaz
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
Gavin Hernandez

Damn, am I glad to see you.

Did I miss a lot, aggydaggy?
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. http://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
Ethan Diaz

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

Adam Lee
Adam Lee

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

Hunter Brown
Hunter Brown

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

Logan Myers
Logan Myers

Study music theory.

Colton Lee
Colton Lee

Do you know music theory?

Brandon Nelson
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:
https://vocaroo.com/i/s1ChzYcxEUx2
https://vocaroo.com/i/s167WEsQnX2K

William Morgan
William Morgan

Let's dindas

James Watson
James Watson

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

Colton White
Colton White

there is nothing wrong with the animation

Gabriel Moore
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
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
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
Kevin Ortiz

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

Zachary Phillips
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
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
Hunter Morales

hell yea

Josiah Wright
Josiah Wright

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

Luis Brooks
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

Justin Butler
Justin Butler

pretty easy

Kevin Lewis
Kevin Lewis

Can someone with Blender knowledge help me out?

https://mega.nz/#!Z3QhBKwb!A2Bw7Gmzt72QoKk5B4vgZl8KhkkLGRnJtAZ0Pp2DfhY

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

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

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

The model is NSFW btw

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

David Sullivan
David Sullivan

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

Logan White
Logan White

How's this look for water?

Luke Clark
Luke Clark

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

Ryan Powell
Ryan Powell

not very good

Gavin Fisher
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
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
Christopher Nguyen

Reduce circles or use algorithm to make them more sporadic.

Levi Adams
Levi Adams

Start by removing the circles.

Sebastian Scott
Sebastian Scott

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

Nathan Long
Nathan Long

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

Nathaniel Gomez
Nathaniel Gomez

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

Thomas Harris
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
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
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
Adam Bennett

Do you ship these two?

Jordan Thompson
Jordan Thompson

Elliot Rodger lite and nodev tranny
Why'd you even post this here? They don't frequent these threads.

Austin Jenkins
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
Joshua Murphy

ctrl+f ID
it's the same autist who spams CG Cookie links and starts enginewars in the 4chan /agdg/ threads
starting the same "reminder that" polymodeling vs sculpting arguments he does over there
posting the same dev e-celeb bullshit he does over there, that's even less relevant over here
lmao. fuck off retard.

Andrew Ward
Andrew Ward

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

Gavin Allen
Gavin Allen

You sound upset.

Angel Roberts
Angel Roberts

Match made in heaven :3

James Davis
James Davis

AAAAAAAAAAAAAAAAAAA / 10

Joshua James
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
Dylan Mitchell

Messing around with barrier tiles … not quite there yet

Wyatt Bennett
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
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
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
Carter Morales

Yes. Learn how to sculpt.

Eli Wright
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.

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

Austin Myers
Austin Myers

r8 my hoplite

Gabriel White
Gabriel White

So ist es. War aber immerhin gerade trainieren.

Logan Clark
Logan Clark

shifted towards the left too much.
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
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
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
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
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
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
https://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
Juan Butler

Knuckles shouldn't be as horizontally aligned as those are. Watch https://www.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
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
Camden Wood

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

Luke Taylor
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
Nathaniel Baker

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

Samuel Butler
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
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
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
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
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
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
Landon Green

(checked)
88
white magical gloves
:^)

Mason Miller
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
Ryan Lee

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

Daniel Moore
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
Blake Gonzalez

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

Daniel Garcia
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
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
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
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
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
Jordan Thompson

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

tbh

Matthew Stewart
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
Hudson Mitchell

Thanks for the feedback. I made some changes.

Parker Russell
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: http://www.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
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
Luke Hall

Now he looks like Ronald Macdonald Rule 63.

Charles Scott
Charles Scott

tbh you need more shading tbh

Jayden Stewart
Jayden Stewart

Well this is about what I expected

Christian Martinez
Christian Martinez

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

Charles Fisher
Charles Fisher

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

Nathan Thomas
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
Grayson Gomez

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

Henry Myers
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
Alexander Richardson

What even is Sigma2?

Owen Reyes
Owen Reyes

A game engine that i'm working on.

Aaron Cruz
Aaron Cruz

What OS are you using? Is that XP?

Kevin Morris
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
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
Hunter Edwards

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

Christian Hill
Christian Hill

Found a cool way to make grass

Jeremiah Perez
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
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
Jacob Perez

Maybe it's not very clear to someone who cannot into C. Here's an explanation with memory addresses.

[foo] = 0x0010
foo = { int a, x }
[bar] = 0x0020
bar = 0x0030

foo.x = 0x0010 + 0x0004
bar.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
Nolan White

bar.x was meant to be bar->x

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

Henry Gonzalez
Henry Gonzalez

serves no real purpose as far as I'm concerned
"." 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
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
Benjamin Russell

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

Mason Morgan
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
Jacob Murphy

intel graphics
current driver breaks blender, hides top bar
previous driver breaks GZDoom
Cool, is the player a wizard?

Nicholas Flores
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
Nathaniel Morales

There's two reasons why -> exists
compatibility with an older version of C where struct members were global and thus had to be either unique or have the same offset in memory, and -> could be used for some wizardry
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
Jeremiah Green

Ok done

Easton Cox
Easton Cox

Looks good, ship it.

Landon Carter
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
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
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
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: https://stackoverflow.com/questions/13366083/why-does-the-arrow-operator-in-c-exist
C was a much weirder language before C89.

Josiah Davis
Josiah Davis

have you tried respawning the bar?

Luke Perez
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
Alexander Gonzalez

want to make vidya
shit at programming
can't draw
decide to learn music
develop my skills and think I finally found something
no one likes my stuff

Landon Nelson
Landon Nelson

post it faggot

Nathan Nelson
Nathan Nelson

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

Xavier Clark
Xavier Clark

blog on Holla Forums
nobody likes me
will spend the next week wondering why

Jack Taylor
Jack Taylor

not being a jack of all trades and learning the basic of all to get shit going until you can form an actual team

Dylan Bennett
Dylan Bennett

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

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

Brody Campbell
Brody Campbell

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

Gabriel Brown
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
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
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
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
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
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
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
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
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
Julian Long

Sorry #1
I feel like shit
Sorry #2
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
Cameron Torres

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

Evan Kelly
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
Colton Cox

static aabb3f getNodeBoundingBox(const std::vector<aabb3f> &nodeboxes)
{
if (nodeboxes.empty())
return aabb3f(0, 0, 0, 0, 0, 0);

aabb3f b_max;

std::vector<aabb3f>::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
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
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
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
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
Jason Brooks

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

Aaron Hernandez
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
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
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
Ryan Jackson

Maybe name is a bit off but that shouldn't matter, you should be okay with…
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.
Operator overloading may be out of place but it could be used well…
Maybe, just not here. Compound literals can tell you a lot more.
Yes you can just use indices but generic for is cleaner
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
Oliver Evans

I'm not fluent with C++
it's C++'s fault
it's C++ programmers' fault
m8 pls
I guess it's just arbitrary
It is because results are identical, it's just there's spaghetti way of doing it and proper way of doing it.

Carson Thompson
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
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).

MinEdge and MaxEdge probably being unions
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
Blake Lopez

reddit spacing
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<aabb3f> &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
Aiden Bailey

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

Benjamin Wood
Benjamin Wood

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

Brody Ross
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
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.

What operator overload are you even talking about?
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.

I doubt it…
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
Lucas Howard

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.
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<aabb3f> &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
Justin Carter

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

Ryan Reed
Ryan Reed

I was just thinking about that myself, good point.

Connor Powell
Connor Powell

Yo where da new thread at

Jace Morales
Jace Morales

NEW THREAD

Disable AdBlock to view this page

Disable AdBlock to view this page